From dceaa225cd09c2a7b3cf8a139269729f86c46b19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 18 Oct 2022 12:14:54 +0200
Subject: [PATCH] opengl32: Use the unixlib interface for EXT functions.

---
 dlls/opengl32/Makefile.in   |     1 -
 dlls/opengl32/make_opengl   |   154 +-
 dlls/opengl32/opengl_ext.c  | 21484 ------------------------------
 dlls/opengl32/thunks.c      | 24306 ++++++++++++++++++++++++++++++++++
 dlls/opengl32/unix_thunks.c | 24218 +++++++++++++++++++++++++++++++++
 dlls/opengl32/unixlib.h     | 22763 +++++++++++++++++++++++++++++++
 6 files changed, 71348 insertions(+), 21578 deletions(-)
 delete mode 100644 dlls/opengl32/opengl_ext.c

diff --git a/dlls/opengl32/Makefile.in b/dlls/opengl32/Makefile.in
index 0e23f5c7d11..380a686f261 100644
--- a/dlls/opengl32/Makefile.in
+++ b/dlls/opengl32/Makefile.in
@@ -7,7 +7,6 @@ DELAYIMPORTS = glu32
 EXTRADLLFLAGS = -Wl,--image-base,0x7a800000 -mcygwin
 
 C_SRCS = \
-	opengl_ext.c \
 	thunks.c \
 	unix_thunks.c \
 	wgl.c
diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl
index 3fadd6f0445..00864525171 100755
--- a/dlls/opengl32/make_opengl
+++ b/dlls/opengl32/make_opengl
@@ -25,10 +25,6 @@ use XML::LibXML;
 #       defined in the OpenGL core for the version defined by
 #       'opengl_version').
 #
-#     - opengl_ext.c : in this file are stored thunks for ALL possible
-#       OpenGL extensions (at least, all the extensions that are defined
-#       in the OpenGL extension registry).
-#
 #     - include/wine/wgl_driver.h: definitions for the tables of OpenGL functions.
 #
 #
@@ -54,7 +50,6 @@ use XML::LibXML;
 # Files to generate
 #
 my $spec_file = "opengl32.spec";
-my $ext_file  = "opengl_ext.c";
 my $wgl_driver_file = "../../include/wine/wgl_driver.h";
 my $wgl_file = "../../include/wine/wgl.h";
 
@@ -200,11 +195,16 @@ sub get_func_args($$$$)
     my $ret = "";
     foreach my $arg (@{$func->[1]})
     {
+        my $ptype = get_arg_type( $arg );
         my $pname = get_arg_name( $arg );
         if ($decl_args)
         {
             $ret .= " " . ($convert_args ? ConvertType( $arg ) : $arg->textContent()) . ",";
         }
+        elsif ($convert_args && defined $remap_types{$ptype})
+        {
+            $ret .= " ($remap_types{$ptype})$prefix$pname,";
+        }
         else
         {
             $ret .= " $prefix$pname,";
@@ -223,45 +223,10 @@ sub get_func_ret($$)
     return $ret;
 }
 
-#
-# This functions generates the thunk for a given function.
-#
-sub GenerateThunk($$$)
-{
-    my ($name, $func, $prefix) = @_;
-    my $call_args = get_func_args( $func, 0, 0, "" );
-    my $decl_args = get_func_args( $func, 1, 0, "" );
-    my $func_ret = get_func_ret( $func, 0 );
-    my $ret = "";
-
-    $ret .= "$func_ret WINAPI $name($decl_args)";
-    $ret .= "\n{\n";
-    # special case for functions that take an HDC as first parameter
-    if (@{$func->[1]} && get_arg_type( ${$func->[1]}[0] ) eq "HDC")
-    {
-        my $pname = get_arg_name( ${$func->[1]}[0] );
-        $ret .= "  const struct opengl_funcs *funcs = get_dc_funcs( $pname );\n";
-        $ret .= "  " . get_func_trace( $name, $func, 0 ) if $gen_traces;
-        $ret .= "  if (!funcs || !funcs->$prefix.p_$name) return";
-        $ret .= " 0" unless is_void_func( $func );
-        $ret .= ";\n";
-    }
-    else
-    {
-        $ret .= "  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;\n";
-        $ret .= "  " . get_func_trace( $name, $func, 0 ) if $gen_traces;
-    }
-    $ret .= "  ";
-    $ret .= "return " unless is_void_func( $func );
-    $ret .= "funcs->$prefix.p_$name($call_args);\n";
-    $ret .= "}\n\n";
-    return $ret;
-}
-
 sub generate_unix_thunk($$$)
 {
     my ($name, $func, $prefix) = @_;
-    my $call_args = get_func_args( $func, 0, 0, "params->" );
+    my $call_args = get_func_args( $func, 0, 1, "params->" );
     my $func_ret = get_func_ret( $func, 0 );
     my $ret = "";
 
@@ -281,6 +246,7 @@ sub generate_unix_thunk($$$)
     }
     $ret .= "    ";
     $ret .= "params->ret = " unless is_void_func( $func );
+    $ret .= "($func_ret)" if defined $remap_types{$func_ret};
     $ret .= "funcs->$prefix.p_$name($call_args);\n";
     $ret .= "    return STATUS_SUCCESS;\n";
     $ret .= "}\n\n";
@@ -302,11 +268,16 @@ sub generate_win_thunk($$)
     foreach my $arg (@{$func->[1]})
     {
         my $pname = get_arg_name( $arg );
-        $params .= " .$pname = $pname,";
+        $params .= " .$pname = $pname," unless $arg->textContent() =~ /\[/;
     }
     $ret .= ($params ? " = {$params }" : is_void_func( $func ) ? "" : " = {0}");
     $ret .= ";\n";
     $ret .= "    NTSTATUS status;\n";
+    foreach my $arg (@{$func->[1]})
+    {
+        my $pname = get_arg_name( $arg );
+        $ret .= "    memcpy( args.$pname, $pname, sizeof(args.$pname) );\n" if $arg->textContent() =~ /\[/;
+    }
     $ret .= "    " . get_func_trace( $name, $func, 1 ) if $gen_traces;
     $ret .= "    if ((status = UNIX_CALL( $name, &args ))) WARN( \"$name returned %#x\\n\", status );\n";
     $ret .= "    return args.ret;\n" unless is_void_func($func);
@@ -808,57 +779,6 @@ foreach (sort keys %wgl_functions)
 
 close(SPEC);
 
-my $file_header =
-"/* Automatically generated from http://www.opengl.org/registry files; DO NOT EDIT! */\n\n" .
-"#include \"config.h\"\n" .
-"#include <stdarg.h>\n" .
-"#include \"winternl.h\"\n" .
-"#include \"opengl_ext.h\"\n" .
-"#include \"wine/debug.h\"\n\n";
-
-$file_header .= "WINE_DEFAULT_DEBUG_CHANNEL(opengl);\n\n" if $gen_traces;
-
-#
-# Finally, more complex, the opengl_ext.c file
-#
-open(EXT, ">$ext_file") or die "cannot create $ext_file";
-print EXT $file_header;
-
-# The thunks themselves....
-my $count = keys %ext_functions;
-my $wrappers = "";
-print EXT "const int extension_registry_size = $count;\n\n";
-foreach (sort keys %ext_functions) {
-    if (needs_wrapper( $_, $ext_functions{$_} ))
-    {
-        my $decl_args = get_func_args( $ext_functions{$_}, 1, 0, "" );
-        my $func_ret = get_func_ret( $ext_functions{$_}, 0 );
-        $wrappers .= "extern $func_ret WINAPI $_($decl_args) DECLSPEC_HIDDEN;\n";
-    }
-    else
-    {
-        print EXT "static " . GenerateThunk($_, $ext_functions{$_}, "ext");
-    }
-}
-print EXT $wrappers;
-
-# Then the table giving the string <-> function correspondence */
-print EXT "\nconst OpenGL_extension extension_registry[$count] = {\n";
-my $i = 0;
-foreach (sort keys %ext_functions) {
-    my $func = $ext_functions{$_};
-    printf EXT "  { \"%s\", \"%s\", %s }", $_, join(" ", sort @{$func->[2]}), $_;
-    if ($i != $count-1) {
-        print EXT ",";
-    }
-    $i++;
-    print EXT "\n";
-}
-print EXT "};\n";
-
-close(EXT);
-
-
 #
 # Generate the unixlib.h file
 #
@@ -884,6 +804,11 @@ foreach (sort keys %norm_functions)
     next if defined $manual_win_functions{$_};
     print OUT generate_func_params($_, $norm_functions{$_});
 }
+foreach (sort keys %ext_functions)
+{
+    next if defined $manual_win_functions{$_};
+    print OUT generate_func_params($_, $ext_functions{$_});
+}
 
 print OUT "enum unix_funcs\n";
 print OUT "{\n";
@@ -892,6 +817,11 @@ foreach (sort keys %norm_functions)
     next if defined $manual_win_functions{$_};
     printf OUT "    unix_%s,\n", $_;
 }
+foreach (sort keys %ext_functions)
+{
+    next if defined $manual_win_functions{$_};
+    printf OUT "    unix_%s,\n", $_;
+}
 print OUT "};\n\n";
 
 print OUT "typedef NTSTATUS (*unixlib_function_t)( void *args );\n";
@@ -917,6 +847,7 @@ print OUT "#include \"winbase.h\"\n";
 print OUT "#include \"wingdi.h\"\n\n";
 
 print OUT "#include \"unixlib.h\"\n\n";
+print OUT "#include \"opengl_ext.h\"\n\n";
 print OUT "#include \"wine/debug.h\"\n\n";
 print OUT "WINE_DEFAULT_DEBUG_CHANNEL(opengl);\n";
 
@@ -926,6 +857,33 @@ foreach (sort keys %norm_functions)
     next if needs_wrapper( $_, $norm_functions{$_} );
     print OUT "\n" . generate_win_thunk($_, $norm_functions{$_});
 }
+foreach (sort keys %ext_functions)
+{
+    next if defined $manual_win_functions{$_};
+    next if needs_wrapper( $_, $ext_functions{$_} );
+    print OUT "\nstatic " . generate_win_thunk($_, $ext_functions{$_});
+}
+print OUT "\n";
+
+foreach (sort keys %ext_functions)
+{
+    next unless defined $manual_win_functions{$_} || needs_wrapper( $_, $ext_functions{$_} );
+    my $decl_args = get_func_args( $ext_functions{$_}, 1, 0, "" );
+    my $func_ret = get_func_ret( $ext_functions{$_}, 0 );
+    printf OUT "extern %s WINAPI %s(%s) DECLSPEC_HIDDEN;\n", $func_ret, $_, $decl_args;
+}
+
+# Then the table giving the string <-> function correspondence */
+my $count = keys %ext_functions;
+print OUT "\nconst int extension_registry_size = $count;\n";
+print OUT "const OpenGL_extension extension_registry[$count] =\n";
+print OUT "{\n";
+foreach (sort keys %ext_functions)
+{
+    my $func = $ext_functions{$_};
+    printf OUT "    { \"%s\", \"%s\", %s },\n", $_, join(" ", sort @{$func->[2]}), $_;
+}
+print OUT "};\n";
 
 close OUT;
 
@@ -952,6 +910,11 @@ foreach (sort keys %norm_functions)
     next if defined $manual_win_functions{$_};
     print OUT generate_unix_thunk($_, $norm_functions{$_}, "gl");
 }
+foreach (sort keys %ext_functions)
+{
+    next if defined $manual_win_functions{$_};
+    print OUT generate_unix_thunk($_, $ext_functions{$_}, "ext");
+}
 
 print OUT "const unixlib_function_t __wine_unix_call_funcs[] =\n";
 print OUT "{\n";
@@ -960,6 +923,11 @@ foreach (sort keys %norm_functions)
     next if defined $manual_win_functions{$_};
     printf OUT "    &gl_%s,\n", $_;
 }
+foreach (sort keys %ext_functions)
+{
+    next if defined $manual_win_functions{$_};
+    printf OUT "    &ext_%s,\n", $_;
+}
 print OUT "};\n";
 print OUT "\n";
 
diff --git a/dlls/opengl32/opengl_ext.c b/dlls/opengl32/opengl_ext.c
deleted file mode 100644
index 98967cf5897..00000000000
--- a/dlls/opengl32/opengl_ext.c
+++ /dev/null
@@ -1,21484 +0,0 @@
-/* Automatically generated from http://www.opengl.org/registry files; DO NOT EDIT! */
-
-#include "config.h"
-#include <stdarg.h>
-#include "winternl.h"
-#include "opengl_ext.h"
-#include "wine/debug.h"
-
-WINE_DEFAULT_DEBUG_CHANNEL(opengl);
-
-const int extension_registry_size = 2694;
-
-static void WINAPI glAccumxOES( GLenum op, GLfixed value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", op, value );
-  funcs->ext.p_glAccumxOES( op, value );
-}
-
-static GLboolean WINAPI glAcquireKeyedMutexWin32EXT( GLuint memory, GLuint64 key, GLuint timeout )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %d)\n", memory, wine_dbgstr_longlong(key), timeout );
-  return funcs->ext.p_glAcquireKeyedMutexWin32EXT( memory, key, timeout );
-}
-
-static void WINAPI glActiveProgramEXT( GLuint program )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", program );
-  funcs->ext.p_glActiveProgramEXT( program );
-}
-
-static void WINAPI glActiveShaderProgram( GLuint pipeline, GLuint program )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pipeline, program );
-  funcs->ext.p_glActiveShaderProgram( pipeline, program );
-}
-
-static void WINAPI glActiveStencilFaceEXT( GLenum face )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", face );
-  funcs->ext.p_glActiveStencilFaceEXT( face );
-}
-
-static void WINAPI glActiveTexture( GLenum texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", texture );
-  funcs->ext.p_glActiveTexture( texture );
-}
-
-static void WINAPI glActiveTextureARB( GLenum texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", texture );
-  funcs->ext.p_glActiveTextureARB( texture );
-}
-
-static void WINAPI glActiveVaryingNV( GLuint program, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", program, name );
-  funcs->ext.p_glActiveVaryingNV( program, name );
-}
-
-static void WINAPI glAlphaFragmentOp1ATI( GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", op, dst, dstMod, arg1, arg1Rep, arg1Mod );
-  funcs->ext.p_glAlphaFragmentOp1ATI( op, dst, dstMod, arg1, arg1Rep, arg1Mod );
-}
-
-static void WINAPI glAlphaFragmentOp2ATI( GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d)\n", op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod );
-  funcs->ext.p_glAlphaFragmentOp2ATI( op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod );
-}
-
-static void WINAPI glAlphaFragmentOp3ATI( GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod );
-  funcs->ext.p_glAlphaFragmentOp3ATI( op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod );
-}
-
-static void WINAPI glAlphaFuncxOES( GLenum func, GLfixed ref )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", func, ref );
-  funcs->ext.p_glAlphaFuncxOES( func, ref );
-}
-
-static void WINAPI glAlphaToCoverageDitherControlNV( GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mode );
-  funcs->ext.p_glAlphaToCoverageDitherControlNV( mode );
-}
-
-static void WINAPI glApplyFramebufferAttachmentCMAAINTEL(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glApplyFramebufferAttachmentCMAAINTEL();
-}
-
-static void WINAPI glApplyTextureEXT( GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mode );
-  funcs->ext.p_glApplyTextureEXT( mode );
-}
-
-static GLboolean WINAPI glAreProgramsResidentNV( GLsizei n, const GLuint *programs, GLboolean *residences )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p)\n", n, programs, residences );
-  return funcs->ext.p_glAreProgramsResidentNV( n, programs, residences );
-}
-
-static GLboolean WINAPI glAreTexturesResidentEXT( GLsizei n, const GLuint *textures, GLboolean *residences )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p)\n", n, textures, residences );
-  return funcs->ext.p_glAreTexturesResidentEXT( n, textures, residences );
-}
-
-static void WINAPI glArrayElementEXT( GLint i )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", i );
-  funcs->ext.p_glArrayElementEXT( i );
-}
-
-static void WINAPI glArrayObjectATI( GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", array, size, type, stride, buffer, offset );
-  funcs->ext.p_glArrayObjectATI( array, size, type, stride, buffer, offset );
-}
-
-static GLuint WINAPI glAsyncCopyBufferSubDataNVX( GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p, %d, %d, %d, %d, %ld, %ld, %ld, %d, %p, %p)\n", waitSemaphoreCount, waitSemaphoreArray, fenceValueArray, readGpu, writeGpuMask, readBuffer, writeBuffer, readOffset, writeOffset, size, signalSemaphoreCount, signalSemaphoreArray, signalValueArray );
-  return funcs->ext.p_glAsyncCopyBufferSubDataNVX( waitSemaphoreCount, waitSemaphoreArray, fenceValueArray, readGpu, writeGpuMask, readBuffer, writeBuffer, readOffset, writeOffset, size, signalSemaphoreCount, signalSemaphoreArray, signalValueArray );
-}
-
-static GLuint WINAPI glAsyncCopyImageSubDataNVX( GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p, %p)\n", waitSemaphoreCount, waitSemaphoreArray, waitValueArray, srcGpu, dstGpuMask, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth, signalSemaphoreCount, signalSemaphoreArray, signalValueArray );
-  return funcs->ext.p_glAsyncCopyImageSubDataNVX( waitSemaphoreCount, waitSemaphoreArray, waitValueArray, srcGpu, dstGpuMask, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth, signalSemaphoreCount, signalSemaphoreArray, signalValueArray );
-}
-
-static void WINAPI glAsyncMarkerSGIX( GLuint marker )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", marker );
-  funcs->ext.p_glAsyncMarkerSGIX( marker );
-}
-
-static void WINAPI glAttachObjectARB( GLhandleARB containerObj, GLhandleARB obj )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", containerObj, obj );
-  funcs->ext.p_glAttachObjectARB( containerObj, obj );
-}
-
-static void WINAPI glAttachShader( GLuint program, GLuint shader )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", program, shader );
-  funcs->ext.p_glAttachShader( program, shader );
-}
-
-static void WINAPI glBeginConditionalRender( GLuint id, GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", id, mode );
-  funcs->ext.p_glBeginConditionalRender( id, mode );
-}
-
-static void WINAPI glBeginConditionalRenderNV( GLuint id, GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", id, mode );
-  funcs->ext.p_glBeginConditionalRenderNV( id, mode );
-}
-
-static void WINAPI glBeginConditionalRenderNVX( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  funcs->ext.p_glBeginConditionalRenderNVX( id );
-}
-
-static void WINAPI glBeginFragmentShaderATI(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glBeginFragmentShaderATI();
-}
-
-static void WINAPI glBeginOcclusionQueryNV( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  funcs->ext.p_glBeginOcclusionQueryNV( id );
-}
-
-static void WINAPI glBeginPerfMonitorAMD( GLuint monitor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", monitor );
-  funcs->ext.p_glBeginPerfMonitorAMD( monitor );
-}
-
-static void WINAPI glBeginPerfQueryINTEL( GLuint queryHandle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", queryHandle );
-  funcs->ext.p_glBeginPerfQueryINTEL( queryHandle );
-}
-
-static void WINAPI glBeginQuery( GLenum target, GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, id );
-  funcs->ext.p_glBeginQuery( target, id );
-}
-
-static void WINAPI glBeginQueryARB( GLenum target, GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, id );
-  funcs->ext.p_glBeginQueryARB( target, id );
-}
-
-static void WINAPI glBeginQueryIndexed( GLenum target, GLuint index, GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, index, id );
-  funcs->ext.p_glBeginQueryIndexed( target, index, id );
-}
-
-static void WINAPI glBeginTransformFeedback( GLenum primitiveMode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", primitiveMode );
-  funcs->ext.p_glBeginTransformFeedback( primitiveMode );
-}
-
-static void WINAPI glBeginTransformFeedbackEXT( GLenum primitiveMode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", primitiveMode );
-  funcs->ext.p_glBeginTransformFeedbackEXT( primitiveMode );
-}
-
-static void WINAPI glBeginTransformFeedbackNV( GLenum primitiveMode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", primitiveMode );
-  funcs->ext.p_glBeginTransformFeedbackNV( primitiveMode );
-}
-
-static void WINAPI glBeginVertexShaderEXT(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glBeginVertexShaderEXT();
-}
-
-static void WINAPI glBeginVideoCaptureNV( GLuint video_capture_slot )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", video_capture_slot );
-  funcs->ext.p_glBeginVideoCaptureNV( video_capture_slot );
-}
-
-static void WINAPI glBindAttribLocation( GLuint program, GLuint index, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, index, name );
-  funcs->ext.p_glBindAttribLocation( program, index, name );
-}
-
-static void WINAPI glBindAttribLocationARB( GLhandleARB programObj, GLuint index, const GLcharARB *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", programObj, index, name );
-  funcs->ext.p_glBindAttribLocationARB( programObj, index, name );
-}
-
-static void WINAPI glBindBuffer( GLenum target, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, buffer );
-  funcs->ext.p_glBindBuffer( target, buffer );
-}
-
-static void WINAPI glBindBufferARB( GLenum target, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, buffer );
-  funcs->ext.p_glBindBufferARB( target, buffer );
-}
-
-static void WINAPI glBindBufferBase( GLenum target, GLuint index, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, index, buffer );
-  funcs->ext.p_glBindBufferBase( target, index, buffer );
-}
-
-static void WINAPI glBindBufferBaseEXT( GLenum target, GLuint index, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, index, buffer );
-  funcs->ext.p_glBindBufferBaseEXT( target, index, buffer );
-}
-
-static void WINAPI glBindBufferBaseNV( GLenum target, GLuint index, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, index, buffer );
-  funcs->ext.p_glBindBufferBaseNV( target, index, buffer );
-}
-
-static void WINAPI glBindBufferOffsetEXT( GLenum target, GLuint index, GLuint buffer, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld)\n", target, index, buffer, offset );
-  funcs->ext.p_glBindBufferOffsetEXT( target, index, buffer, offset );
-}
-
-static void WINAPI glBindBufferOffsetNV( GLenum target, GLuint index, GLuint buffer, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld)\n", target, index, buffer, offset );
-  funcs->ext.p_glBindBufferOffsetNV( target, index, buffer, offset );
-}
-
-static void WINAPI glBindBufferRange( GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld, %ld)\n", target, index, buffer, offset, size );
-  funcs->ext.p_glBindBufferRange( target, index, buffer, offset, size );
-}
-
-static void WINAPI glBindBufferRangeEXT( GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld, %ld)\n", target, index, buffer, offset, size );
-  funcs->ext.p_glBindBufferRangeEXT( target, index, buffer, offset, size );
-}
-
-static void WINAPI glBindBufferRangeNV( GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld, %ld)\n", target, index, buffer, offset, size );
-  funcs->ext.p_glBindBufferRangeNV( target, index, buffer, offset, size );
-}
-
-static void WINAPI glBindBuffersBase( GLenum target, GLuint first, GLsizei count, const GLuint *buffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, first, count, buffers );
-  funcs->ext.p_glBindBuffersBase( target, first, count, buffers );
-}
-
-static void WINAPI glBindBuffersRange( GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p, %p)\n", target, first, count, buffers, offsets, sizes );
-  funcs->ext.p_glBindBuffersRange( target, first, count, buffers, offsets, sizes );
-}
-
-static void WINAPI glBindFragDataLocation( GLuint program, GLuint color, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, color, name );
-  funcs->ext.p_glBindFragDataLocation( program, color, name );
-}
-
-static void WINAPI glBindFragDataLocationEXT( GLuint program, GLuint color, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, color, name );
-  funcs->ext.p_glBindFragDataLocationEXT( program, color, name );
-}
-
-static void WINAPI glBindFragDataLocationIndexed( GLuint program, GLuint colorNumber, GLuint index, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, colorNumber, index, name );
-  funcs->ext.p_glBindFragDataLocationIndexed( program, colorNumber, index, name );
-}
-
-static void WINAPI glBindFragmentShaderATI( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  funcs->ext.p_glBindFragmentShaderATI( id );
-}
-
-static void WINAPI glBindFramebuffer( GLenum target, GLuint framebuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, framebuffer );
-  funcs->ext.p_glBindFramebuffer( target, framebuffer );
-}
-
-static void WINAPI glBindFramebufferEXT( GLenum target, GLuint framebuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, framebuffer );
-  funcs->ext.p_glBindFramebufferEXT( target, framebuffer );
-}
-
-static void WINAPI glBindImageTexture( GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", unit, texture, level, layered, layer, access, format );
-  funcs->ext.p_glBindImageTexture( unit, texture, level, layered, layer, access, format );
-}
-
-static void WINAPI glBindImageTextureEXT( GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", index, texture, level, layered, layer, access, format );
-  funcs->ext.p_glBindImageTextureEXT( index, texture, level, layered, layer, access, format );
-}
-
-static void WINAPI glBindImageTextures( GLuint first, GLsizei count, const GLuint *textures )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", first, count, textures );
-  funcs->ext.p_glBindImageTextures( first, count, textures );
-}
-
-static GLuint WINAPI glBindLightParameterEXT( GLenum light, GLenum value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", light, value );
-  return funcs->ext.p_glBindLightParameterEXT( light, value );
-}
-
-static GLuint WINAPI glBindMaterialParameterEXT( GLenum face, GLenum value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", face, value );
-  return funcs->ext.p_glBindMaterialParameterEXT( face, value );
-}
-
-static void WINAPI glBindMultiTextureEXT( GLenum texunit, GLenum target, GLuint texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", texunit, target, texture );
-  funcs->ext.p_glBindMultiTextureEXT( texunit, target, texture );
-}
-
-static GLuint WINAPI glBindParameterEXT( GLenum value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", value );
-  return funcs->ext.p_glBindParameterEXT( value );
-}
-
-static void WINAPI glBindProgramARB( GLenum target, GLuint program )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, program );
-  funcs->ext.p_glBindProgramARB( target, program );
-}
-
-static void WINAPI glBindProgramNV( GLenum target, GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, id );
-  funcs->ext.p_glBindProgramNV( target, id );
-}
-
-static void WINAPI glBindProgramPipeline( GLuint pipeline )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", pipeline );
-  funcs->ext.p_glBindProgramPipeline( pipeline );
-}
-
-static void WINAPI glBindRenderbuffer( GLenum target, GLuint renderbuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, renderbuffer );
-  funcs->ext.p_glBindRenderbuffer( target, renderbuffer );
-}
-
-static void WINAPI glBindRenderbufferEXT( GLenum target, GLuint renderbuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, renderbuffer );
-  funcs->ext.p_glBindRenderbufferEXT( target, renderbuffer );
-}
-
-static void WINAPI glBindSampler( GLuint unit, GLuint sampler )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", unit, sampler );
-  funcs->ext.p_glBindSampler( unit, sampler );
-}
-
-static void WINAPI glBindSamplers( GLuint first, GLsizei count, const GLuint *samplers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", first, count, samplers );
-  funcs->ext.p_glBindSamplers( first, count, samplers );
-}
-
-static void WINAPI glBindShadingRateImageNV( GLuint texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", texture );
-  funcs->ext.p_glBindShadingRateImageNV( texture );
-}
-
-static GLuint WINAPI glBindTexGenParameterEXT( GLenum unit, GLenum coord, GLenum value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", unit, coord, value );
-  return funcs->ext.p_glBindTexGenParameterEXT( unit, coord, value );
-}
-
-static void WINAPI glBindTextureEXT( GLenum target, GLuint texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, texture );
-  funcs->ext.p_glBindTextureEXT( target, texture );
-}
-
-static void WINAPI glBindTextureUnit( GLuint unit, GLuint texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", unit, texture );
-  funcs->ext.p_glBindTextureUnit( unit, texture );
-}
-
-static GLuint WINAPI glBindTextureUnitParameterEXT( GLenum unit, GLenum value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", unit, value );
-  return funcs->ext.p_glBindTextureUnitParameterEXT( unit, value );
-}
-
-static void WINAPI glBindTextures( GLuint first, GLsizei count, const GLuint *textures )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", first, count, textures );
-  funcs->ext.p_glBindTextures( first, count, textures );
-}
-
-static void WINAPI glBindTransformFeedback( GLenum target, GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, id );
-  funcs->ext.p_glBindTransformFeedback( target, id );
-}
-
-static void WINAPI glBindTransformFeedbackNV( GLenum target, GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, id );
-  funcs->ext.p_glBindTransformFeedbackNV( target, id );
-}
-
-static void WINAPI glBindVertexArray( GLuint array )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", array );
-  funcs->ext.p_glBindVertexArray( array );
-}
-
-static void WINAPI glBindVertexArrayAPPLE( GLuint array )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", array );
-  funcs->ext.p_glBindVertexArrayAPPLE( array );
-}
-
-static void WINAPI glBindVertexBuffer( GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %ld, %d)\n", bindingindex, buffer, offset, stride );
-  funcs->ext.p_glBindVertexBuffer( bindingindex, buffer, offset, stride );
-}
-
-static void WINAPI glBindVertexBuffers( GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p, %p)\n", first, count, buffers, offsets, strides );
-  funcs->ext.p_glBindVertexBuffers( first, count, buffers, offsets, strides );
-}
-
-static void WINAPI glBindVertexShaderEXT( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  funcs->ext.p_glBindVertexShaderEXT( id );
-}
-
-static void WINAPI glBindVideoCaptureStreamBufferNV( GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld)\n", video_capture_slot, stream, frame_region, offset );
-  funcs->ext.p_glBindVideoCaptureStreamBufferNV( video_capture_slot, stream, frame_region, offset );
-}
-
-static void WINAPI glBindVideoCaptureStreamTextureNV( GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", video_capture_slot, stream, frame_region, target, texture );
-  funcs->ext.p_glBindVideoCaptureStreamTextureNV( video_capture_slot, stream, frame_region, target, texture );
-}
-
-static void WINAPI glBinormal3bEXT( GLbyte bx, GLbyte by, GLbyte bz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", bx, by, bz );
-  funcs->ext.p_glBinormal3bEXT( bx, by, bz );
-}
-
-static void WINAPI glBinormal3bvEXT( const GLbyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glBinormal3bvEXT( v );
-}
-
-static void WINAPI glBinormal3dEXT( GLdouble bx, GLdouble by, GLdouble bz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", bx, by, bz );
-  funcs->ext.p_glBinormal3dEXT( bx, by, bz );
-}
-
-static void WINAPI glBinormal3dvEXT( const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glBinormal3dvEXT( v );
-}
-
-static void WINAPI glBinormal3fEXT( GLfloat bx, GLfloat by, GLfloat bz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", bx, by, bz );
-  funcs->ext.p_glBinormal3fEXT( bx, by, bz );
-}
-
-static void WINAPI glBinormal3fvEXT( const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glBinormal3fvEXT( v );
-}
-
-static void WINAPI glBinormal3iEXT( GLint bx, GLint by, GLint bz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", bx, by, bz );
-  funcs->ext.p_glBinormal3iEXT( bx, by, bz );
-}
-
-static void WINAPI glBinormal3ivEXT( const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glBinormal3ivEXT( v );
-}
-
-static void WINAPI glBinormal3sEXT( GLshort bx, GLshort by, GLshort bz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", bx, by, bz );
-  funcs->ext.p_glBinormal3sEXT( bx, by, bz );
-}
-
-static void WINAPI glBinormal3svEXT( const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glBinormal3svEXT( v );
-}
-
-static void WINAPI glBinormalPointerEXT( GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", type, stride, pointer );
-  funcs->ext.p_glBinormalPointerEXT( type, stride, pointer );
-}
-
-static void WINAPI glBitmapxOES( GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %p)\n", width, height, xorig, yorig, xmove, ymove, bitmap );
-  funcs->ext.p_glBitmapxOES( width, height, xorig, yorig, xmove, ymove, bitmap );
-}
-
-static void WINAPI glBlendBarrierKHR(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glBlendBarrierKHR();
-}
-
-static void WINAPI glBlendBarrierNV(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glBlendBarrierNV();
-}
-
-static void WINAPI glBlendColor( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f)\n", red, green, blue, alpha );
-  funcs->ext.p_glBlendColor( red, green, blue, alpha );
-}
-
-static void WINAPI glBlendColorEXT( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f)\n", red, green, blue, alpha );
-  funcs->ext.p_glBlendColorEXT( red, green, blue, alpha );
-}
-
-static void WINAPI glBlendColorxOES( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", red, green, blue, alpha );
-  funcs->ext.p_glBlendColorxOES( red, green, blue, alpha );
-}
-
-static void WINAPI glBlendEquation( GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mode );
-  funcs->ext.p_glBlendEquation( mode );
-}
-
-static void WINAPI glBlendEquationEXT( GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mode );
-  funcs->ext.p_glBlendEquationEXT( mode );
-}
-
-static void WINAPI glBlendEquationIndexedAMD( GLuint buf, GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", buf, mode );
-  funcs->ext.p_glBlendEquationIndexedAMD( buf, mode );
-}
-
-static void WINAPI glBlendEquationSeparate( GLenum modeRGB, GLenum modeAlpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", modeRGB, modeAlpha );
-  funcs->ext.p_glBlendEquationSeparate( modeRGB, modeAlpha );
-}
-
-static void WINAPI glBlendEquationSeparateEXT( GLenum modeRGB, GLenum modeAlpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", modeRGB, modeAlpha );
-  funcs->ext.p_glBlendEquationSeparateEXT( modeRGB, modeAlpha );
-}
-
-static void WINAPI glBlendEquationSeparateIndexedAMD( GLuint buf, GLenum modeRGB, GLenum modeAlpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", buf, modeRGB, modeAlpha );
-  funcs->ext.p_glBlendEquationSeparateIndexedAMD( buf, modeRGB, modeAlpha );
-}
-
-static void WINAPI glBlendEquationSeparatei( GLuint buf, GLenum modeRGB, GLenum modeAlpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", buf, modeRGB, modeAlpha );
-  funcs->ext.p_glBlendEquationSeparatei( buf, modeRGB, modeAlpha );
-}
-
-static void WINAPI glBlendEquationSeparateiARB( GLuint buf, GLenum modeRGB, GLenum modeAlpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", buf, modeRGB, modeAlpha );
-  funcs->ext.p_glBlendEquationSeparateiARB( buf, modeRGB, modeAlpha );
-}
-
-static void WINAPI glBlendEquationi( GLuint buf, GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", buf, mode );
-  funcs->ext.p_glBlendEquationi( buf, mode );
-}
-
-static void WINAPI glBlendEquationiARB( GLuint buf, GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", buf, mode );
-  funcs->ext.p_glBlendEquationiARB( buf, mode );
-}
-
-static void WINAPI glBlendFuncIndexedAMD( GLuint buf, GLenum src, GLenum dst )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", buf, src, dst );
-  funcs->ext.p_glBlendFuncIndexedAMD( buf, src, dst );
-}
-
-static void WINAPI glBlendFuncSeparate( GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha );
-  funcs->ext.p_glBlendFuncSeparate( sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha );
-}
-
-static void WINAPI glBlendFuncSeparateEXT( GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha );
-  funcs->ext.p_glBlendFuncSeparateEXT( sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha );
-}
-
-static void WINAPI glBlendFuncSeparateINGR( GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha );
-  funcs->ext.p_glBlendFuncSeparateINGR( sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha );
-}
-
-static void WINAPI glBlendFuncSeparateIndexedAMD( GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", buf, srcRGB, dstRGB, srcAlpha, dstAlpha );
-  funcs->ext.p_glBlendFuncSeparateIndexedAMD( buf, srcRGB, dstRGB, srcAlpha, dstAlpha );
-}
-
-static void WINAPI glBlendFuncSeparatei( GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", buf, srcRGB, dstRGB, srcAlpha, dstAlpha );
-  funcs->ext.p_glBlendFuncSeparatei( buf, srcRGB, dstRGB, srcAlpha, dstAlpha );
-}
-
-static void WINAPI glBlendFuncSeparateiARB( GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", buf, srcRGB, dstRGB, srcAlpha, dstAlpha );
-  funcs->ext.p_glBlendFuncSeparateiARB( buf, srcRGB, dstRGB, srcAlpha, dstAlpha );
-}
-
-static void WINAPI glBlendFunci( GLuint buf, GLenum src, GLenum dst )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", buf, src, dst );
-  funcs->ext.p_glBlendFunci( buf, src, dst );
-}
-
-static void WINAPI glBlendFunciARB( GLuint buf, GLenum src, GLenum dst )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", buf, src, dst );
-  funcs->ext.p_glBlendFunciARB( buf, src, dst );
-}
-
-static void WINAPI glBlendParameteriNV( GLenum pname, GLint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, value );
-  funcs->ext.p_glBlendParameteriNV( pname, value );
-}
-
-static void WINAPI glBlitFramebuffer( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter );
-  funcs->ext.p_glBlitFramebuffer( srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter );
-}
-
-static void WINAPI glBlitFramebufferEXT( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter );
-  funcs->ext.p_glBlitFramebufferEXT( srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter );
-}
-
-static void WINAPI glBlitNamedFramebuffer( GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter );
-  funcs->ext.p_glBlitNamedFramebuffer( readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter );
-}
-
-static void WINAPI glBufferAddressRangeNV( GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s, %ld)\n", pname, index, wine_dbgstr_longlong(address), length );
-  funcs->ext.p_glBufferAddressRangeNV( pname, index, address, length );
-}
-
-static void WINAPI glBufferAttachMemoryNV( GLenum target, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s)\n", target, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glBufferAttachMemoryNV( target, memory, offset );
-}
-
-static void WINAPI glBufferData( GLenum target, GLsizeiptr size, const void *data, GLenum usage )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %p, %d)\n", target, size, data, usage );
-  funcs->ext.p_glBufferData( target, size, data, usage );
-}
-
-static void WINAPI glBufferDataARB( GLenum target, GLsizeiptrARB size, const void *data, GLenum usage )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %p, %d)\n", target, size, data, usage );
-  funcs->ext.p_glBufferDataARB( target, size, data, usage );
-}
-
-static void WINAPI glBufferPageCommitmentARB( GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %d)\n", target, offset, size, commit );
-  funcs->ext.p_glBufferPageCommitmentARB( target, offset, size, commit );
-}
-
-static void WINAPI glBufferParameteriAPPLE( GLenum target, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, pname, param );
-  funcs->ext.p_glBufferParameteriAPPLE( target, pname, param );
-}
-
-static GLuint WINAPI glBufferRegionEnabled(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  return funcs->ext.p_glBufferRegionEnabled();
-}
-
-static void WINAPI glBufferStorage( GLenum target, GLsizeiptr size, const void *data, GLbitfield flags )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %p, %d)\n", target, size, data, flags );
-  funcs->ext.p_glBufferStorage( target, size, data, flags );
-}
-
-static void WINAPI glBufferStorageExternalEXT( GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %p, %d)\n", target, offset, size, clientBuffer, flags );
-  funcs->ext.p_glBufferStorageExternalEXT( target, offset, size, clientBuffer, flags );
-}
-
-static void WINAPI glBufferStorageMemEXT( GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %d, %s)\n", target, size, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glBufferStorageMemEXT( target, size, memory, offset );
-}
-
-static void WINAPI glBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %p)\n", target, offset, size, data );
-  funcs->ext.p_glBufferSubData( target, offset, size, data );
-}
-
-static void WINAPI glBufferSubDataARB( GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %p)\n", target, offset, size, data );
-  funcs->ext.p_glBufferSubDataARB( target, offset, size, data );
-}
-
-static void WINAPI glCallCommandListNV( GLuint list )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", list );
-  funcs->ext.p_glCallCommandListNV( list );
-}
-
-static GLenum WINAPI glCheckFramebufferStatus( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  return funcs->ext.p_glCheckFramebufferStatus( target );
-}
-
-static GLenum WINAPI glCheckFramebufferStatusEXT( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  return funcs->ext.p_glCheckFramebufferStatusEXT( target );
-}
-
-static GLenum WINAPI glCheckNamedFramebufferStatus( GLuint framebuffer, GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", framebuffer, target );
-  return funcs->ext.p_glCheckNamedFramebufferStatus( framebuffer, target );
-}
-
-static GLenum WINAPI glCheckNamedFramebufferStatusEXT( GLuint framebuffer, GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", framebuffer, target );
-  return funcs->ext.p_glCheckNamedFramebufferStatusEXT( framebuffer, target );
-}
-
-static void WINAPI glClampColor( GLenum target, GLenum clamp )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, clamp );
-  funcs->ext.p_glClampColor( target, clamp );
-}
-
-static void WINAPI glClampColorARB( GLenum target, GLenum clamp )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, clamp );
-  funcs->ext.p_glClampColorARB( target, clamp );
-}
-
-static void WINAPI glClearAccumxOES( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", red, green, blue, alpha );
-  funcs->ext.p_glClearAccumxOES( red, green, blue, alpha );
-}
-
-static void WINAPI glClearBufferData( GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, internalformat, format, type, data );
-  funcs->ext.p_glClearBufferData( target, internalformat, format, type, data );
-}
-
-static void WINAPI glClearBufferSubData( GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %ld, %ld, %d, %d, %p)\n", target, internalformat, offset, size, format, type, data );
-  funcs->ext.p_glClearBufferSubData( target, internalformat, offset, size, format, type, data );
-}
-
-static void WINAPI glClearBufferfi( GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %d)\n", buffer, drawbuffer, depth, stencil );
-  funcs->ext.p_glClearBufferfi( buffer, drawbuffer, depth, stencil );
-}
-
-static void WINAPI glClearBufferfv( GLenum buffer, GLint drawbuffer, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", buffer, drawbuffer, value );
-  funcs->ext.p_glClearBufferfv( buffer, drawbuffer, value );
-}
-
-static void WINAPI glClearBufferiv( GLenum buffer, GLint drawbuffer, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", buffer, drawbuffer, value );
-  funcs->ext.p_glClearBufferiv( buffer, drawbuffer, value );
-}
-
-static void WINAPI glClearBufferuiv( GLenum buffer, GLint drawbuffer, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", buffer, drawbuffer, value );
-  funcs->ext.p_glClearBufferuiv( buffer, drawbuffer, value );
-}
-
-static void WINAPI glClearColorIiEXT( GLint red, GLint green, GLint blue, GLint alpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", red, green, blue, alpha );
-  funcs->ext.p_glClearColorIiEXT( red, green, blue, alpha );
-}
-
-static void WINAPI glClearColorIuiEXT( GLuint red, GLuint green, GLuint blue, GLuint alpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", red, green, blue, alpha );
-  funcs->ext.p_glClearColorIuiEXT( red, green, blue, alpha );
-}
-
-static void WINAPI glClearColorxOES( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", red, green, blue, alpha );
-  funcs->ext.p_glClearColorxOES( red, green, blue, alpha );
-}
-
-static void WINAPI glClearDepthdNV( GLdouble depth )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f)\n", depth );
-  funcs->ext.p_glClearDepthdNV( depth );
-}
-
-static void WINAPI glClearDepthf( GLfloat d )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f)\n", d );
-  funcs->ext.p_glClearDepthf( d );
-}
-
-static void WINAPI glClearDepthfOES( GLclampf depth )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f)\n", depth );
-  funcs->ext.p_glClearDepthfOES( depth );
-}
-
-static void WINAPI glClearDepthxOES( GLfixed depth )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", depth );
-  funcs->ext.p_glClearDepthxOES( depth );
-}
-
-static void WINAPI glClearNamedBufferData( GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", buffer, internalformat, format, type, data );
-  funcs->ext.p_glClearNamedBufferData( buffer, internalformat, format, type, data );
-}
-
-static void WINAPI glClearNamedBufferDataEXT( GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", buffer, internalformat, format, type, data );
-  funcs->ext.p_glClearNamedBufferDataEXT( buffer, internalformat, format, type, data );
-}
-
-static void WINAPI glClearNamedBufferSubData( GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %ld, %ld, %d, %d, %p)\n", buffer, internalformat, offset, size, format, type, data );
-  funcs->ext.p_glClearNamedBufferSubData( buffer, internalformat, offset, size, format, type, data );
-}
-
-static void WINAPI glClearNamedBufferSubDataEXT( GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %ld, %ld, %d, %d, %p)\n", buffer, internalformat, offset, size, format, type, data );
-  funcs->ext.p_glClearNamedBufferSubDataEXT( buffer, internalformat, offset, size, format, type, data );
-}
-
-static void WINAPI glClearNamedFramebufferfi( GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %f, %d)\n", framebuffer, buffer, drawbuffer, depth, stencil );
-  funcs->ext.p_glClearNamedFramebufferfi( framebuffer, buffer, drawbuffer, depth, stencil );
-}
-
-static void WINAPI glClearNamedFramebufferfv( GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", framebuffer, buffer, drawbuffer, value );
-  funcs->ext.p_glClearNamedFramebufferfv( framebuffer, buffer, drawbuffer, value );
-}
-
-static void WINAPI glClearNamedFramebufferiv( GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", framebuffer, buffer, drawbuffer, value );
-  funcs->ext.p_glClearNamedFramebufferiv( framebuffer, buffer, drawbuffer, value );
-}
-
-static void WINAPI glClearNamedFramebufferuiv( GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", framebuffer, buffer, drawbuffer, value );
-  funcs->ext.p_glClearNamedFramebufferuiv( framebuffer, buffer, drawbuffer, value );
-}
-
-static void WINAPI glClearTexImage( GLuint texture, GLint level, GLenum format, GLenum type, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", texture, level, format, type, data );
-  funcs->ext.p_glClearTexImage( texture, level, format, type, data );
-}
-
-static void WINAPI glClearTexSubImage( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data );
-  funcs->ext.p_glClearTexSubImage( texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data );
-}
-
-static void WINAPI glClientActiveTexture( GLenum texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", texture );
-  funcs->ext.p_glClientActiveTexture( texture );
-}
-
-static void WINAPI glClientActiveTextureARB( GLenum texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", texture );
-  funcs->ext.p_glClientActiveTextureARB( texture );
-}
-
-static void WINAPI glClientActiveVertexStreamATI( GLenum stream )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", stream );
-  funcs->ext.p_glClientActiveVertexStreamATI( stream );
-}
-
-static void WINAPI glClientAttribDefaultEXT( GLbitfield mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mask );
-  funcs->ext.p_glClientAttribDefaultEXT( mask );
-}
-
-static void WINAPI glClientWaitSemaphoreui64NVX( GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p)\n", fenceObjectCount, semaphoreArray, fenceValueArray );
-  funcs->ext.p_glClientWaitSemaphoreui64NVX( fenceObjectCount, semaphoreArray, fenceValueArray );
-}
-
-static GLenum WINAPI glClientWaitSync( GLsync sync, GLbitfield flags, GLuint64 timeout )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %d, %s)\n", sync, flags, wine_dbgstr_longlong(timeout) );
-  return funcs->ext.p_glClientWaitSync( sync, flags, timeout );
-}
-
-static void WINAPI glClipControl( GLenum origin, GLenum depth )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", origin, depth );
-  funcs->ext.p_glClipControl( origin, depth );
-}
-
-static void WINAPI glClipPlanefOES( GLenum plane, const GLfloat *equation )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", plane, equation );
-  funcs->ext.p_glClipPlanefOES( plane, equation );
-}
-
-static void WINAPI glClipPlanexOES( GLenum plane, const GLfixed *equation )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", plane, equation );
-  funcs->ext.p_glClipPlanexOES( plane, equation );
-}
-
-static void WINAPI glColor3fVertex3fSUN( GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f, %f, %f)\n", r, g, b, x, y, z );
-  funcs->ext.p_glColor3fVertex3fSUN( r, g, b, x, y, z );
-}
-
-static void WINAPI glColor3fVertex3fvSUN( const GLfloat *c, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p)\n", c, v );
-  funcs->ext.p_glColor3fVertex3fvSUN( c, v );
-}
-
-static void WINAPI glColor3hNV( GLhalfNV red, GLhalfNV green, GLhalfNV blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glColor3hNV( red, green, blue );
-}
-
-static void WINAPI glColor3hvNV( const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glColor3hvNV( v );
-}
-
-static void WINAPI glColor3xOES( GLfixed red, GLfixed green, GLfixed blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glColor3xOES( red, green, blue );
-}
-
-static void WINAPI glColor3xvOES( const GLfixed *components )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", components );
-  funcs->ext.p_glColor3xvOES( components );
-}
-
-static void WINAPI glColor4fNormal3fVertex3fSUN( GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f, %f, %f, %f, %f, %f, %f)\n", r, g, b, a, nx, ny, nz, x, y, z );
-  funcs->ext.p_glColor4fNormal3fVertex3fSUN( r, g, b, a, nx, ny, nz, x, y, z );
-}
-
-static void WINAPI glColor4fNormal3fVertex3fvSUN( const GLfloat *c, const GLfloat *n, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p)\n", c, n, v );
-  funcs->ext.p_glColor4fNormal3fVertex3fvSUN( c, n, v );
-}
-
-static void WINAPI glColor4hNV( GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", red, green, blue, alpha );
-  funcs->ext.p_glColor4hNV( red, green, blue, alpha );
-}
-
-static void WINAPI glColor4hvNV( const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glColor4hvNV( v );
-}
-
-static void WINAPI glColor4ubVertex2fSUN( GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %f, %f)\n", r, g, b, a, x, y );
-  funcs->ext.p_glColor4ubVertex2fSUN( r, g, b, a, x, y );
-}
-
-static void WINAPI glColor4ubVertex2fvSUN( const GLubyte *c, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p)\n", c, v );
-  funcs->ext.p_glColor4ubVertex2fvSUN( c, v );
-}
-
-static void WINAPI glColor4ubVertex3fSUN( GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %f, %f, %f)\n", r, g, b, a, x, y, z );
-  funcs->ext.p_glColor4ubVertex3fSUN( r, g, b, a, x, y, z );
-}
-
-static void WINAPI glColor4ubVertex3fvSUN( const GLubyte *c, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p)\n", c, v );
-  funcs->ext.p_glColor4ubVertex3fvSUN( c, v );
-}
-
-static void WINAPI glColor4xOES( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", red, green, blue, alpha );
-  funcs->ext.p_glColor4xOES( red, green, blue, alpha );
-}
-
-static void WINAPI glColor4xvOES( const GLfixed *components )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", components );
-  funcs->ext.p_glColor4xvOES( components );
-}
-
-static void WINAPI glColorFormatNV( GLint size, GLenum type, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", size, type, stride );
-  funcs->ext.p_glColorFormatNV( size, type, stride );
-}
-
-static void WINAPI glColorFragmentOp1ATI( GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod );
-  funcs->ext.p_glColorFragmentOp1ATI( op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod );
-}
-
-static void WINAPI glColorFragmentOp2ATI( GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod );
-  funcs->ext.p_glColorFragmentOp2ATI( op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod );
-}
-
-static void WINAPI glColorFragmentOp3ATI( GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod );
-  funcs->ext.p_glColorFragmentOp3ATI( op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod );
-}
-
-static void WINAPI glColorMaskIndexedEXT( GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, r, g, b, a );
-  funcs->ext.p_glColorMaskIndexedEXT( index, r, g, b, a );
-}
-
-static void WINAPI glColorMaski( GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, r, g, b, a );
-  funcs->ext.p_glColorMaski( index, r, g, b, a );
-}
-
-static void WINAPI glColorP3ui( GLenum type, GLuint color )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, color );
-  funcs->ext.p_glColorP3ui( type, color );
-}
-
-static void WINAPI glColorP3uiv( GLenum type, const GLuint *color )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, color );
-  funcs->ext.p_glColorP3uiv( type, color );
-}
-
-static void WINAPI glColorP4ui( GLenum type, GLuint color )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, color );
-  funcs->ext.p_glColorP4ui( type, color );
-}
-
-static void WINAPI glColorP4uiv( GLenum type, const GLuint *color )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, color );
-  funcs->ext.p_glColorP4uiv( type, color );
-}
-
-static void WINAPI glColorPointerEXT( GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", size, type, stride, count, pointer );
-  funcs->ext.p_glColorPointerEXT( size, type, stride, count, pointer );
-}
-
-static void WINAPI glColorPointerListIBM( GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d)\n", size, type, stride, pointer, ptrstride );
-  funcs->ext.p_glColorPointerListIBM( size, type, stride, pointer, ptrstride );
-}
-
-static void WINAPI glColorPointervINTEL( GLint size, GLenum type, const void **pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", size, type, pointer );
-  funcs->ext.p_glColorPointervINTEL( size, type, pointer );
-}
-
-static void WINAPI glColorSubTable( GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, start, count, format, type, data );
-  funcs->ext.p_glColorSubTable( target, start, count, format, type, data );
-}
-
-static void WINAPI glColorSubTableEXT( GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, start, count, format, type, data );
-  funcs->ext.p_glColorSubTableEXT( target, start, count, format, type, data );
-}
-
-static void WINAPI glColorTable( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, internalformat, width, format, type, table );
-  funcs->ext.p_glColorTable( target, internalformat, width, format, type, table );
-}
-
-static void WINAPI glColorTableEXT( GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, internalFormat, width, format, type, table );
-  funcs->ext.p_glColorTableEXT( target, internalFormat, width, format, type, table );
-}
-
-static void WINAPI glColorTableParameterfv( GLenum target, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glColorTableParameterfv( target, pname, params );
-}
-
-static void WINAPI glColorTableParameterfvSGI( GLenum target, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glColorTableParameterfvSGI( target, pname, params );
-}
-
-static void WINAPI glColorTableParameteriv( GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glColorTableParameteriv( target, pname, params );
-}
-
-static void WINAPI glColorTableParameterivSGI( GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glColorTableParameterivSGI( target, pname, params );
-}
-
-static void WINAPI glColorTableSGI( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, internalformat, width, format, type, table );
-  funcs->ext.p_glColorTableSGI( target, internalformat, width, format, type, table );
-}
-
-static void WINAPI glCombinerInputNV( GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", stage, portion, variable, input, mapping, componentUsage );
-  funcs->ext.p_glCombinerInputNV( stage, portion, variable, input, mapping, componentUsage );
-}
-
-static void WINAPI glCombinerOutputNV( GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", stage, portion, abOutput, cdOutput, sumOutput, scale, bias, abDotProduct, cdDotProduct, muxSum );
-  funcs->ext.p_glCombinerOutputNV( stage, portion, abOutput, cdOutput, sumOutput, scale, bias, abDotProduct, cdDotProduct, muxSum );
-}
-
-static void WINAPI glCombinerParameterfNV( GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", pname, param );
-  funcs->ext.p_glCombinerParameterfNV( pname, param );
-}
-
-static void WINAPI glCombinerParameterfvNV( GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glCombinerParameterfvNV( pname, params );
-}
-
-static void WINAPI glCombinerParameteriNV( GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glCombinerParameteriNV( pname, param );
-}
-
-static void WINAPI glCombinerParameterivNV( GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glCombinerParameterivNV( pname, params );
-}
-
-static void WINAPI glCombinerStageParameterfvNV( GLenum stage, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", stage, pname, params );
-  funcs->ext.p_glCombinerStageParameterfvNV( stage, pname, params );
-}
-
-static void WINAPI glCommandListSegmentsNV( GLuint list, GLuint segments )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", list, segments );
-  funcs->ext.p_glCommandListSegmentsNV( list, segments );
-}
-
-static void WINAPI glCompileCommandListNV( GLuint list )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", list );
-  funcs->ext.p_glCompileCommandListNV( list );
-}
-
-static void WINAPI glCompileShader( GLuint shader )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", shader );
-  funcs->ext.p_glCompileShader( shader );
-}
-
-static void WINAPI glCompileShaderARB( GLhandleARB shaderObj )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", shaderObj );
-  funcs->ext.p_glCompileShaderARB( shaderObj );
-}
-
-static void WINAPI glCompileShaderIncludeARB( GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", shader, count, path, length );
-  funcs->ext.p_glCompileShaderIncludeARB( shader, count, path, length );
-}
-
-static void WINAPI glCompressedMultiTexImage1DEXT( GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %p)\n", texunit, target, level, internalformat, width, border, imageSize, bits );
-  funcs->ext.p_glCompressedMultiTexImage1DEXT( texunit, target, level, internalformat, width, border, imageSize, bits );
-}
-
-static void WINAPI glCompressedMultiTexImage2DEXT( GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texunit, target, level, internalformat, width, height, border, imageSize, bits );
-  funcs->ext.p_glCompressedMultiTexImage2DEXT( texunit, target, level, internalformat, width, height, border, imageSize, bits );
-}
-
-static void WINAPI glCompressedMultiTexImage3DEXT( GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texunit, target, level, internalformat, width, height, depth, border, imageSize, bits );
-  funcs->ext.p_glCompressedMultiTexImage3DEXT( texunit, target, level, internalformat, width, height, depth, border, imageSize, bits );
-}
-
-static void WINAPI glCompressedMultiTexSubImage1DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %p)\n", texunit, target, level, xoffset, width, format, imageSize, bits );
-  funcs->ext.p_glCompressedMultiTexSubImage1DEXT( texunit, target, level, xoffset, width, format, imageSize, bits );
-}
-
-static void WINAPI glCompressedMultiTexSubImage2DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texunit, target, level, xoffset, yoffset, width, height, format, imageSize, bits );
-  funcs->ext.p_glCompressedMultiTexSubImage2DEXT( texunit, target, level, xoffset, yoffset, width, height, format, imageSize, bits );
-}
-
-static void WINAPI glCompressedMultiTexSubImage3DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits );
-  funcs->ext.p_glCompressedMultiTexSubImage3DEXT( texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits );
-}
-
-static void WINAPI glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %p)\n", target, level, internalformat, width, border, imageSize, data );
-  funcs->ext.p_glCompressedTexImage1D( target, level, internalformat, width, border, imageSize, data );
-}
-
-static void WINAPI glCompressedTexImage1DARB( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %p)\n", target, level, internalformat, width, border, imageSize, data );
-  funcs->ext.p_glCompressedTexImage1DARB( target, level, internalformat, width, border, imageSize, data );
-}
-
-static void WINAPI glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, internalformat, width, height, border, imageSize, data );
-  funcs->ext.p_glCompressedTexImage2D( target, level, internalformat, width, height, border, imageSize, data );
-}
-
-static void WINAPI glCompressedTexImage2DARB( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, internalformat, width, height, border, imageSize, data );
-  funcs->ext.p_glCompressedTexImage2DARB( target, level, internalformat, width, height, border, imageSize, data );
-}
-
-static void WINAPI glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, internalformat, width, height, depth, border, imageSize, data );
-  funcs->ext.p_glCompressedTexImage3D( target, level, internalformat, width, height, depth, border, imageSize, data );
-}
-
-static void WINAPI glCompressedTexImage3DARB( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, internalformat, width, height, depth, border, imageSize, data );
-  funcs->ext.p_glCompressedTexImage3DARB( target, level, internalformat, width, height, depth, border, imageSize, data );
-}
-
-static void WINAPI glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %p)\n", target, level, xoffset, width, format, imageSize, data );
-  funcs->ext.p_glCompressedTexSubImage1D( target, level, xoffset, width, format, imageSize, data );
-}
-
-static void WINAPI glCompressedTexSubImage1DARB( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %p)\n", target, level, xoffset, width, format, imageSize, data );
-  funcs->ext.p_glCompressedTexSubImage1DARB( target, level, xoffset, width, format, imageSize, data );
-}
-
-static void WINAPI glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, xoffset, yoffset, width, height, format, imageSize, data );
-  funcs->ext.p_glCompressedTexSubImage2D( target, level, xoffset, yoffset, width, height, format, imageSize, data );
-}
-
-static void WINAPI glCompressedTexSubImage2DARB( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, xoffset, yoffset, width, height, format, imageSize, data );
-  funcs->ext.p_glCompressedTexSubImage2DARB( target, level, xoffset, yoffset, width, height, format, imageSize, data );
-}
-
-static void WINAPI glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data );
-  funcs->ext.p_glCompressedTexSubImage3D( target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data );
-}
-
-static void WINAPI glCompressedTexSubImage3DARB( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data );
-  funcs->ext.p_glCompressedTexSubImage3DARB( target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data );
-}
-
-static void WINAPI glCompressedTextureImage1DEXT( GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %p)\n", texture, target, level, internalformat, width, border, imageSize, bits );
-  funcs->ext.p_glCompressedTextureImage1DEXT( texture, target, level, internalformat, width, border, imageSize, bits );
-}
-
-static void WINAPI glCompressedTextureImage2DEXT( GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, target, level, internalformat, width, height, border, imageSize, bits );
-  funcs->ext.p_glCompressedTextureImage2DEXT( texture, target, level, internalformat, width, height, border, imageSize, bits );
-}
-
-static void WINAPI glCompressedTextureImage3DEXT( GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, target, level, internalformat, width, height, depth, border, imageSize, bits );
-  funcs->ext.p_glCompressedTextureImage3DEXT( texture, target, level, internalformat, width, height, depth, border, imageSize, bits );
-}
-
-static void WINAPI glCompressedTextureSubImage1D( GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %p)\n", texture, level, xoffset, width, format, imageSize, data );
-  funcs->ext.p_glCompressedTextureSubImage1D( texture, level, xoffset, width, format, imageSize, data );
-}
-
-static void WINAPI glCompressedTextureSubImage1DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %p)\n", texture, target, level, xoffset, width, format, imageSize, bits );
-  funcs->ext.p_glCompressedTextureSubImage1DEXT( texture, target, level, xoffset, width, format, imageSize, bits );
-}
-
-static void WINAPI glCompressedTextureSubImage2D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, level, xoffset, yoffset, width, height, format, imageSize, data );
-  funcs->ext.p_glCompressedTextureSubImage2D( texture, level, xoffset, yoffset, width, height, format, imageSize, data );
-}
-
-static void WINAPI glCompressedTextureSubImage2DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, target, level, xoffset, yoffset, width, height, format, imageSize, bits );
-  funcs->ext.p_glCompressedTextureSubImage2DEXT( texture, target, level, xoffset, yoffset, width, height, format, imageSize, bits );
-}
-
-static void WINAPI glCompressedTextureSubImage3D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data );
-  funcs->ext.p_glCompressedTextureSubImage3D( texture, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data );
-}
-
-static void WINAPI glCompressedTextureSubImage3DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits );
-  funcs->ext.p_glCompressedTextureSubImage3DEXT( texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits );
-}
-
-static void WINAPI glConservativeRasterParameterfNV( GLenum pname, GLfloat value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", pname, value );
-  funcs->ext.p_glConservativeRasterParameterfNV( pname, value );
-}
-
-static void WINAPI glConservativeRasterParameteriNV( GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glConservativeRasterParameteriNV( pname, param );
-}
-
-static void WINAPI glConvolutionFilter1D( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, internalformat, width, format, type, image );
-  funcs->ext.p_glConvolutionFilter1D( target, internalformat, width, format, type, image );
-}
-
-static void WINAPI glConvolutionFilter1DEXT( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, internalformat, width, format, type, image );
-  funcs->ext.p_glConvolutionFilter1DEXT( target, internalformat, width, format, type, image );
-}
-
-static void WINAPI glConvolutionFilter2D( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %p)\n", target, internalformat, width, height, format, type, image );
-  funcs->ext.p_glConvolutionFilter2D( target, internalformat, width, height, format, type, image );
-}
-
-static void WINAPI glConvolutionFilter2DEXT( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %p)\n", target, internalformat, width, height, format, type, image );
-  funcs->ext.p_glConvolutionFilter2DEXT( target, internalformat, width, height, format, type, image );
-}
-
-static void WINAPI glConvolutionParameterf( GLenum target, GLenum pname, GLfloat params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", target, pname, params );
-  funcs->ext.p_glConvolutionParameterf( target, pname, params );
-}
-
-static void WINAPI glConvolutionParameterfEXT( GLenum target, GLenum pname, GLfloat params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", target, pname, params );
-  funcs->ext.p_glConvolutionParameterfEXT( target, pname, params );
-}
-
-static void WINAPI glConvolutionParameterfv( GLenum target, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glConvolutionParameterfv( target, pname, params );
-}
-
-static void WINAPI glConvolutionParameterfvEXT( GLenum target, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glConvolutionParameterfvEXT( target, pname, params );
-}
-
-static void WINAPI glConvolutionParameteri( GLenum target, GLenum pname, GLint params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, pname, params );
-  funcs->ext.p_glConvolutionParameteri( target, pname, params );
-}
-
-static void WINAPI glConvolutionParameteriEXT( GLenum target, GLenum pname, GLint params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, pname, params );
-  funcs->ext.p_glConvolutionParameteriEXT( target, pname, params );
-}
-
-static void WINAPI glConvolutionParameteriv( GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glConvolutionParameteriv( target, pname, params );
-}
-
-static void WINAPI glConvolutionParameterivEXT( GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glConvolutionParameterivEXT( target, pname, params );
-}
-
-static void WINAPI glConvolutionParameterxOES( GLenum target, GLenum pname, GLfixed param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, pname, param );
-  funcs->ext.p_glConvolutionParameterxOES( target, pname, param );
-}
-
-static void WINAPI glConvolutionParameterxvOES( GLenum target, GLenum pname, const GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glConvolutionParameterxvOES( target, pname, params );
-}
-
-static void WINAPI glCopyBufferSubData( GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %ld, %ld, %ld)\n", readTarget, writeTarget, readOffset, writeOffset, size );
-  funcs->ext.p_glCopyBufferSubData( readTarget, writeTarget, readOffset, writeOffset, size );
-}
-
-static void WINAPI glCopyColorSubTable( GLenum target, GLsizei start, GLint x, GLint y, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, start, x, y, width );
-  funcs->ext.p_glCopyColorSubTable( target, start, x, y, width );
-}
-
-static void WINAPI glCopyColorSubTableEXT( GLenum target, GLsizei start, GLint x, GLint y, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, start, x, y, width );
-  funcs->ext.p_glCopyColorSubTableEXT( target, start, x, y, width );
-}
-
-static void WINAPI glCopyColorTable( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, internalformat, x, y, width );
-  funcs->ext.p_glCopyColorTable( target, internalformat, x, y, width );
-}
-
-static void WINAPI glCopyColorTableSGI( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, internalformat, x, y, width );
-  funcs->ext.p_glCopyColorTableSGI( target, internalformat, x, y, width );
-}
-
-static void WINAPI glCopyConvolutionFilter1D( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, internalformat, x, y, width );
-  funcs->ext.p_glCopyConvolutionFilter1D( target, internalformat, x, y, width );
-}
-
-static void WINAPI glCopyConvolutionFilter1DEXT( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, internalformat, x, y, width );
-  funcs->ext.p_glCopyConvolutionFilter1DEXT( target, internalformat, x, y, width );
-}
-
-static void WINAPI glCopyConvolutionFilter2D( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, internalformat, x, y, width, height );
-  funcs->ext.p_glCopyConvolutionFilter2D( target, internalformat, x, y, width, height );
-}
-
-static void WINAPI glCopyConvolutionFilter2DEXT( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, internalformat, x, y, width, height );
-  funcs->ext.p_glCopyConvolutionFilter2DEXT( target, internalformat, x, y, width, height );
-}
-
-static void WINAPI glCopyImageSubData( GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth );
-  funcs->ext.p_glCopyImageSubData( srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth );
-}
-
-static void WINAPI glCopyImageSubDataNV( GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth );
-  funcs->ext.p_glCopyImageSubDataNV( srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth );
-}
-
-static void WINAPI glCopyMultiTexImage1DEXT( GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d)\n", texunit, target, level, internalformat, x, y, width, border );
-  funcs->ext.p_glCopyMultiTexImage1DEXT( texunit, target, level, internalformat, x, y, width, border );
-}
-
-static void WINAPI glCopyMultiTexImage2DEXT( GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d)\n", texunit, target, level, internalformat, x, y, width, height, border );
-  funcs->ext.p_glCopyMultiTexImage2DEXT( texunit, target, level, internalformat, x, y, width, height, border );
-}
-
-static void WINAPI glCopyMultiTexSubImage1DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", texunit, target, level, xoffset, x, y, width );
-  funcs->ext.p_glCopyMultiTexSubImage1DEXT( texunit, target, level, xoffset, x, y, width );
-}
-
-static void WINAPI glCopyMultiTexSubImage2DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d)\n", texunit, target, level, xoffset, yoffset, x, y, width, height );
-  funcs->ext.p_glCopyMultiTexSubImage2DEXT( texunit, target, level, xoffset, yoffset, x, y, width, height );
-}
-
-static void WINAPI glCopyMultiTexSubImage3DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", texunit, target, level, xoffset, yoffset, zoffset, x, y, width, height );
-  funcs->ext.p_glCopyMultiTexSubImage3DEXT( texunit, target, level, xoffset, yoffset, zoffset, x, y, width, height );
-}
-
-static void WINAPI glCopyNamedBufferSubData( GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %ld, %ld, %ld)\n", readBuffer, writeBuffer, readOffset, writeOffset, size );
-  funcs->ext.p_glCopyNamedBufferSubData( readBuffer, writeBuffer, readOffset, writeOffset, size );
-}
-
-static void WINAPI glCopyPathNV( GLuint resultPath, GLuint srcPath )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", resultPath, srcPath );
-  funcs->ext.p_glCopyPathNV( resultPath, srcPath );
-}
-
-static void WINAPI glCopyTexImage1DEXT( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", target, level, internalformat, x, y, width, border );
-  funcs->ext.p_glCopyTexImage1DEXT( target, level, internalformat, x, y, width, border );
-}
-
-static void WINAPI glCopyTexImage2DEXT( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d)\n", target, level, internalformat, x, y, width, height, border );
-  funcs->ext.p_glCopyTexImage2DEXT( target, level, internalformat, x, y, width, height, border );
-}
-
-static void WINAPI glCopyTexSubImage1DEXT( GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, level, xoffset, x, y, width );
-  funcs->ext.p_glCopyTexSubImage1DEXT( target, level, xoffset, x, y, width );
-}
-
-static void WINAPI glCopyTexSubImage2DEXT( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d)\n", target, level, xoffset, yoffset, x, y, width, height );
-  funcs->ext.p_glCopyTexSubImage2DEXT( target, level, xoffset, yoffset, x, y, width, height );
-}
-
-static void WINAPI glCopyTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d)\n", target, level, xoffset, yoffset, zoffset, x, y, width, height );
-  funcs->ext.p_glCopyTexSubImage3D( target, level, xoffset, yoffset, zoffset, x, y, width, height );
-}
-
-static void WINAPI glCopyTexSubImage3DEXT( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d)\n", target, level, xoffset, yoffset, zoffset, x, y, width, height );
-  funcs->ext.p_glCopyTexSubImage3DEXT( target, level, xoffset, yoffset, zoffset, x, y, width, height );
-}
-
-static void WINAPI glCopyTextureImage1DEXT( GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d)\n", texture, target, level, internalformat, x, y, width, border );
-  funcs->ext.p_glCopyTextureImage1DEXT( texture, target, level, internalformat, x, y, width, border );
-}
-
-static void WINAPI glCopyTextureImage2DEXT( GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d)\n", texture, target, level, internalformat, x, y, width, height, border );
-  funcs->ext.p_glCopyTextureImage2DEXT( texture, target, level, internalformat, x, y, width, height, border );
-}
-
-static void WINAPI glCopyTextureSubImage1D( GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", texture, level, xoffset, x, y, width );
-  funcs->ext.p_glCopyTextureSubImage1D( texture, level, xoffset, x, y, width );
-}
-
-static void WINAPI glCopyTextureSubImage1DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", texture, target, level, xoffset, x, y, width );
-  funcs->ext.p_glCopyTextureSubImage1DEXT( texture, target, level, xoffset, x, y, width );
-}
-
-static void WINAPI glCopyTextureSubImage2D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d)\n", texture, level, xoffset, yoffset, x, y, width, height );
-  funcs->ext.p_glCopyTextureSubImage2D( texture, level, xoffset, yoffset, x, y, width, height );
-}
-
-static void WINAPI glCopyTextureSubImage2DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d)\n", texture, target, level, xoffset, yoffset, x, y, width, height );
-  funcs->ext.p_glCopyTextureSubImage2DEXT( texture, target, level, xoffset, yoffset, x, y, width, height );
-}
-
-static void WINAPI glCopyTextureSubImage3D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d)\n", texture, level, xoffset, yoffset, zoffset, x, y, width, height );
-  funcs->ext.p_glCopyTextureSubImage3D( texture, level, xoffset, yoffset, zoffset, x, y, width, height );
-}
-
-static void WINAPI glCopyTextureSubImage3DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", texture, target, level, xoffset, yoffset, zoffset, x, y, width, height );
-  funcs->ext.p_glCopyTextureSubImage3DEXT( texture, target, level, xoffset, yoffset, zoffset, x, y, width, height );
-}
-
-static void WINAPI glCoverFillPathInstancedNV( GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %d, %p)\n", numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues );
-  funcs->ext.p_glCoverFillPathInstancedNV( numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues );
-}
-
-static void WINAPI glCoverFillPathNV( GLuint path, GLenum coverMode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", path, coverMode );
-  funcs->ext.p_glCoverFillPathNV( path, coverMode );
-}
-
-static void WINAPI glCoverStrokePathInstancedNV( GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %d, %p)\n", numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues );
-  funcs->ext.p_glCoverStrokePathInstancedNV( numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues );
-}
-
-static void WINAPI glCoverStrokePathNV( GLuint path, GLenum coverMode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", path, coverMode );
-  funcs->ext.p_glCoverStrokePathNV( path, coverMode );
-}
-
-static void WINAPI glCoverageModulationNV( GLenum components )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", components );
-  funcs->ext.p_glCoverageModulationNV( components );
-}
-
-static void WINAPI glCoverageModulationTableNV( GLsizei n, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, v );
-  funcs->ext.p_glCoverageModulationTableNV( n, v );
-}
-
-static void WINAPI glCreateBuffers( GLsizei n, GLuint *buffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, buffers );
-  funcs->ext.p_glCreateBuffers( n, buffers );
-}
-
-static void WINAPI glCreateCommandListsNV( GLsizei n, GLuint *lists )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, lists );
-  funcs->ext.p_glCreateCommandListsNV( n, lists );
-}
-
-static void WINAPI glCreateFramebuffers( GLsizei n, GLuint *framebuffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, framebuffers );
-  funcs->ext.p_glCreateFramebuffers( n, framebuffers );
-}
-
-static void WINAPI glCreateMemoryObjectsEXT( GLsizei n, GLuint *memoryObjects )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, memoryObjects );
-  funcs->ext.p_glCreateMemoryObjectsEXT( n, memoryObjects );
-}
-
-static void WINAPI glCreatePerfQueryINTEL( GLuint queryId, GLuint *queryHandle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", queryId, queryHandle );
-  funcs->ext.p_glCreatePerfQueryINTEL( queryId, queryHandle );
-}
-
-static GLuint WINAPI glCreateProgram(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  return funcs->ext.p_glCreateProgram();
-}
-
-static GLhandleARB WINAPI glCreateProgramObjectARB(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  return funcs->ext.p_glCreateProgramObjectARB();
-}
-
-static void WINAPI glCreateProgramPipelines( GLsizei n, GLuint *pipelines )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, pipelines );
-  funcs->ext.p_glCreateProgramPipelines( n, pipelines );
-}
-
-static GLuint WINAPI glCreateProgressFenceNVX(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  return funcs->ext.p_glCreateProgressFenceNVX();
-}
-
-static void WINAPI glCreateQueries( GLenum target, GLsizei n, GLuint *ids )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, n, ids );
-  funcs->ext.p_glCreateQueries( target, n, ids );
-}
-
-static void WINAPI glCreateRenderbuffers( GLsizei n, GLuint *renderbuffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, renderbuffers );
-  funcs->ext.p_glCreateRenderbuffers( n, renderbuffers );
-}
-
-static void WINAPI glCreateSamplers( GLsizei n, GLuint *samplers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, samplers );
-  funcs->ext.p_glCreateSamplers( n, samplers );
-}
-
-static GLuint WINAPI glCreateShader( GLenum type )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", type );
-  return funcs->ext.p_glCreateShader( type );
-}
-
-static GLhandleARB WINAPI glCreateShaderObjectARB( GLenum shaderType )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", shaderType );
-  return funcs->ext.p_glCreateShaderObjectARB( shaderType );
-}
-
-static GLuint WINAPI glCreateShaderProgramEXT( GLenum type, const GLchar *string )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, string );
-  return funcs->ext.p_glCreateShaderProgramEXT( type, string );
-}
-
-static GLuint WINAPI glCreateShaderProgramv( GLenum type, GLsizei count, const GLchar *const*strings )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", type, count, strings );
-  return funcs->ext.p_glCreateShaderProgramv( type, count, strings );
-}
-
-static void WINAPI glCreateStatesNV( GLsizei n, GLuint *states )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, states );
-  funcs->ext.p_glCreateStatesNV( n, states );
-}
-
-static GLsync WINAPI glCreateSyncFromCLeventARB( struct _cl_context *context, struct _cl_event *event, GLbitfield flags )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %d)\n", context, event, flags );
-  return funcs->ext.p_glCreateSyncFromCLeventARB( context, event, flags );
-}
-
-static void WINAPI glCreateTextures( GLenum target, GLsizei n, GLuint *textures )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, n, textures );
-  funcs->ext.p_glCreateTextures( target, n, textures );
-}
-
-static void WINAPI glCreateTransformFeedbacks( GLsizei n, GLuint *ids )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, ids );
-  funcs->ext.p_glCreateTransformFeedbacks( n, ids );
-}
-
-static void WINAPI glCreateVertexArrays( GLsizei n, GLuint *arrays )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, arrays );
-  funcs->ext.p_glCreateVertexArrays( n, arrays );
-}
-
-static void WINAPI glCullParameterdvEXT( GLenum pname, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glCullParameterdvEXT( pname, params );
-}
-
-static void WINAPI glCullParameterfvEXT( GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glCullParameterfvEXT( pname, params );
-}
-
-static void WINAPI glCurrentPaletteMatrixARB( GLint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", index );
-  funcs->ext.p_glCurrentPaletteMatrixARB( index );
-}
-
-static void WINAPI glDebugMessageControl( GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p, %d)\n", source, type, severity, count, ids, enabled );
-  funcs->ext.p_glDebugMessageControl( source, type, severity, count, ids, enabled );
-}
-
-static void WINAPI glDebugMessageControlARB( GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p, %d)\n", source, type, severity, count, ids, enabled );
-  funcs->ext.p_glDebugMessageControlARB( source, type, severity, count, ids, enabled );
-}
-
-static void WINAPI glDebugMessageEnableAMD( GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d)\n", category, severity, count, ids, enabled );
-  funcs->ext.p_glDebugMessageEnableAMD( category, severity, count, ids, enabled );
-}
-
-static void WINAPI glDebugMessageInsert( GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", source, type, id, severity, length, buf );
-  funcs->ext.p_glDebugMessageInsert( source, type, id, severity, length, buf );
-}
-
-static void WINAPI glDebugMessageInsertAMD( GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", category, severity, id, length, buf );
-  funcs->ext.p_glDebugMessageInsertAMD( category, severity, id, length, buf );
-}
-
-static void WINAPI glDebugMessageInsertARB( GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", source, type, id, severity, length, buf );
-  funcs->ext.p_glDebugMessageInsertARB( source, type, id, severity, length, buf );
-}
-
-static void WINAPI glDeformSGIX( GLbitfield mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mask );
-  funcs->ext.p_glDeformSGIX( mask );
-}
-
-static void WINAPI glDeformationMap3dSGIX( GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %d, %d, %f, %f, %d, %d, %f, %f, %d, %d, %p)\n", target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points );
-  funcs->ext.p_glDeformationMap3dSGIX( target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points );
-}
-
-static void WINAPI glDeformationMap3fSGIX( GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %d, %d, %f, %f, %d, %d, %f, %f, %d, %d, %p)\n", target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points );
-  funcs->ext.p_glDeformationMap3fSGIX( target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points );
-}
-
-static void WINAPI glDeleteAsyncMarkersSGIX( GLuint marker, GLsizei range )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", marker, range );
-  funcs->ext.p_glDeleteAsyncMarkersSGIX( marker, range );
-}
-
-static void WINAPI glDeleteBufferRegion( GLenum region )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", region );
-  funcs->ext.p_glDeleteBufferRegion( region );
-}
-
-static void WINAPI glDeleteBuffers( GLsizei n, const GLuint *buffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, buffers );
-  funcs->ext.p_glDeleteBuffers( n, buffers );
-}
-
-static void WINAPI glDeleteBuffersARB( GLsizei n, const GLuint *buffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, buffers );
-  funcs->ext.p_glDeleteBuffersARB( n, buffers );
-}
-
-static void WINAPI glDeleteCommandListsNV( GLsizei n, const GLuint *lists )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, lists );
-  funcs->ext.p_glDeleteCommandListsNV( n, lists );
-}
-
-static void WINAPI glDeleteFencesAPPLE( GLsizei n, const GLuint *fences )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, fences );
-  funcs->ext.p_glDeleteFencesAPPLE( n, fences );
-}
-
-static void WINAPI glDeleteFencesNV( GLsizei n, const GLuint *fences )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, fences );
-  funcs->ext.p_glDeleteFencesNV( n, fences );
-}
-
-static void WINAPI glDeleteFragmentShaderATI( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  funcs->ext.p_glDeleteFragmentShaderATI( id );
-}
-
-static void WINAPI glDeleteFramebuffers( GLsizei n, const GLuint *framebuffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, framebuffers );
-  funcs->ext.p_glDeleteFramebuffers( n, framebuffers );
-}
-
-static void WINAPI glDeleteFramebuffersEXT( GLsizei n, const GLuint *framebuffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, framebuffers );
-  funcs->ext.p_glDeleteFramebuffersEXT( n, framebuffers );
-}
-
-static void WINAPI glDeleteMemoryObjectsEXT( GLsizei n, const GLuint *memoryObjects )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, memoryObjects );
-  funcs->ext.p_glDeleteMemoryObjectsEXT( n, memoryObjects );
-}
-
-static void WINAPI glDeleteNamedStringARB( GLint namelen, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", namelen, name );
-  funcs->ext.p_glDeleteNamedStringARB( namelen, name );
-}
-
-static void WINAPI glDeleteNamesAMD( GLenum identifier, GLuint num, const GLuint *names )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", identifier, num, names );
-  funcs->ext.p_glDeleteNamesAMD( identifier, num, names );
-}
-
-static void WINAPI glDeleteObjectARB( GLhandleARB obj )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", obj );
-  funcs->ext.p_glDeleteObjectARB( obj );
-}
-
-static void WINAPI glDeleteObjectBufferATI( GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", buffer );
-  funcs->ext.p_glDeleteObjectBufferATI( buffer );
-}
-
-static void WINAPI glDeleteOcclusionQueriesNV( GLsizei n, const GLuint *ids )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, ids );
-  funcs->ext.p_glDeleteOcclusionQueriesNV( n, ids );
-}
-
-static void WINAPI glDeletePathsNV( GLuint path, GLsizei range )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", path, range );
-  funcs->ext.p_glDeletePathsNV( path, range );
-}
-
-static void WINAPI glDeletePerfMonitorsAMD( GLsizei n, GLuint *monitors )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, monitors );
-  funcs->ext.p_glDeletePerfMonitorsAMD( n, monitors );
-}
-
-static void WINAPI glDeletePerfQueryINTEL( GLuint queryHandle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", queryHandle );
-  funcs->ext.p_glDeletePerfQueryINTEL( queryHandle );
-}
-
-static void WINAPI glDeleteProgram( GLuint program )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", program );
-  funcs->ext.p_glDeleteProgram( program );
-}
-
-static void WINAPI glDeleteProgramPipelines( GLsizei n, const GLuint *pipelines )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, pipelines );
-  funcs->ext.p_glDeleteProgramPipelines( n, pipelines );
-}
-
-static void WINAPI glDeleteProgramsARB( GLsizei n, const GLuint *programs )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, programs );
-  funcs->ext.p_glDeleteProgramsARB( n, programs );
-}
-
-static void WINAPI glDeleteProgramsNV( GLsizei n, const GLuint *programs )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, programs );
-  funcs->ext.p_glDeleteProgramsNV( n, programs );
-}
-
-static void WINAPI glDeleteQueries( GLsizei n, const GLuint *ids )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, ids );
-  funcs->ext.p_glDeleteQueries( n, ids );
-}
-
-static void WINAPI glDeleteQueriesARB( GLsizei n, const GLuint *ids )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, ids );
-  funcs->ext.p_glDeleteQueriesARB( n, ids );
-}
-
-static void WINAPI glDeleteQueryResourceTagNV( GLsizei n, const GLint *tagIds )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, tagIds );
-  funcs->ext.p_glDeleteQueryResourceTagNV( n, tagIds );
-}
-
-static void WINAPI glDeleteRenderbuffers( GLsizei n, const GLuint *renderbuffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, renderbuffers );
-  funcs->ext.p_glDeleteRenderbuffers( n, renderbuffers );
-}
-
-static void WINAPI glDeleteRenderbuffersEXT( GLsizei n, const GLuint *renderbuffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, renderbuffers );
-  funcs->ext.p_glDeleteRenderbuffersEXT( n, renderbuffers );
-}
-
-static void WINAPI glDeleteSamplers( GLsizei count, const GLuint *samplers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", count, samplers );
-  funcs->ext.p_glDeleteSamplers( count, samplers );
-}
-
-static void WINAPI glDeleteSemaphoresEXT( GLsizei n, const GLuint *semaphores )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, semaphores );
-  funcs->ext.p_glDeleteSemaphoresEXT( n, semaphores );
-}
-
-static void WINAPI glDeleteShader( GLuint shader )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", shader );
-  funcs->ext.p_glDeleteShader( shader );
-}
-
-static void WINAPI glDeleteStatesNV( GLsizei n, const GLuint *states )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, states );
-  funcs->ext.p_glDeleteStatesNV( n, states );
-}
-
-static void WINAPI glDeleteSync( GLsync sync )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", sync );
-  funcs->ext.p_glDeleteSync( sync );
-}
-
-static void WINAPI glDeleteTexturesEXT( GLsizei n, const GLuint *textures )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, textures );
-  funcs->ext.p_glDeleteTexturesEXT( n, textures );
-}
-
-static void WINAPI glDeleteTransformFeedbacks( GLsizei n, const GLuint *ids )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, ids );
-  funcs->ext.p_glDeleteTransformFeedbacks( n, ids );
-}
-
-static void WINAPI glDeleteTransformFeedbacksNV( GLsizei n, const GLuint *ids )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, ids );
-  funcs->ext.p_glDeleteTransformFeedbacksNV( n, ids );
-}
-
-static void WINAPI glDeleteVertexArrays( GLsizei n, const GLuint *arrays )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, arrays );
-  funcs->ext.p_glDeleteVertexArrays( n, arrays );
-}
-
-static void WINAPI glDeleteVertexArraysAPPLE( GLsizei n, const GLuint *arrays )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, arrays );
-  funcs->ext.p_glDeleteVertexArraysAPPLE( n, arrays );
-}
-
-static void WINAPI glDeleteVertexShaderEXT( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  funcs->ext.p_glDeleteVertexShaderEXT( id );
-}
-
-static void WINAPI glDepthBoundsEXT( GLclampd zmin, GLclampd zmax )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f)\n", zmin, zmax );
-  funcs->ext.p_glDepthBoundsEXT( zmin, zmax );
-}
-
-static void WINAPI glDepthBoundsdNV( GLdouble zmin, GLdouble zmax )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f)\n", zmin, zmax );
-  funcs->ext.p_glDepthBoundsdNV( zmin, zmax );
-}
-
-static void WINAPI glDepthRangeArraydvNV( GLuint first, GLsizei count, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", first, count, v );
-  funcs->ext.p_glDepthRangeArraydvNV( first, count, v );
-}
-
-static void WINAPI glDepthRangeArrayv( GLuint first, GLsizei count, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", first, count, v );
-  funcs->ext.p_glDepthRangeArrayv( first, count, v );
-}
-
-static void WINAPI glDepthRangeIndexed( GLuint index, GLdouble n, GLdouble f )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", index, n, f );
-  funcs->ext.p_glDepthRangeIndexed( index, n, f );
-}
-
-static void WINAPI glDepthRangeIndexeddNV( GLuint index, GLdouble n, GLdouble f )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", index, n, f );
-  funcs->ext.p_glDepthRangeIndexeddNV( index, n, f );
-}
-
-static void WINAPI glDepthRangedNV( GLdouble zNear, GLdouble zFar )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f)\n", zNear, zFar );
-  funcs->ext.p_glDepthRangedNV( zNear, zFar );
-}
-
-static void WINAPI glDepthRangef( GLfloat n, GLfloat f )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f)\n", n, f );
-  funcs->ext.p_glDepthRangef( n, f );
-}
-
-static void WINAPI glDepthRangefOES( GLclampf n, GLclampf f )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f)\n", n, f );
-  funcs->ext.p_glDepthRangefOES( n, f );
-}
-
-static void WINAPI glDepthRangexOES( GLfixed n, GLfixed f )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", n, f );
-  funcs->ext.p_glDepthRangexOES( n, f );
-}
-
-static void WINAPI glDetachObjectARB( GLhandleARB containerObj, GLhandleARB attachedObj )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", containerObj, attachedObj );
-  funcs->ext.p_glDetachObjectARB( containerObj, attachedObj );
-}
-
-static void WINAPI glDetachShader( GLuint program, GLuint shader )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", program, shader );
-  funcs->ext.p_glDetachShader( program, shader );
-}
-
-static void WINAPI glDetailTexFuncSGIS( GLenum target, GLsizei n, const GLfloat *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, n, points );
-  funcs->ext.p_glDetailTexFuncSGIS( target, n, points );
-}
-
-static void WINAPI glDisableClientStateIndexedEXT( GLenum array, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", array, index );
-  funcs->ext.p_glDisableClientStateIndexedEXT( array, index );
-}
-
-static void WINAPI glDisableClientStateiEXT( GLenum array, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", array, index );
-  funcs->ext.p_glDisableClientStateiEXT( array, index );
-}
-
-static void WINAPI glDisableIndexedEXT( GLenum target, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, index );
-  funcs->ext.p_glDisableIndexedEXT( target, index );
-}
-
-static void WINAPI glDisableVariantClientStateEXT( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  funcs->ext.p_glDisableVariantClientStateEXT( id );
-}
-
-static void WINAPI glDisableVertexArrayAttrib( GLuint vaobj, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", vaobj, index );
-  funcs->ext.p_glDisableVertexArrayAttrib( vaobj, index );
-}
-
-static void WINAPI glDisableVertexArrayAttribEXT( GLuint vaobj, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", vaobj, index );
-  funcs->ext.p_glDisableVertexArrayAttribEXT( vaobj, index );
-}
-
-static void WINAPI glDisableVertexArrayEXT( GLuint vaobj, GLenum array )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", vaobj, array );
-  funcs->ext.p_glDisableVertexArrayEXT( vaobj, array );
-}
-
-static void WINAPI glDisableVertexAttribAPPLE( GLuint index, GLenum pname )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, pname );
-  funcs->ext.p_glDisableVertexAttribAPPLE( index, pname );
-}
-
-static void WINAPI glDisableVertexAttribArray( GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", index );
-  funcs->ext.p_glDisableVertexAttribArray( index );
-}
-
-static void WINAPI glDisableVertexAttribArrayARB( GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", index );
-  funcs->ext.p_glDisableVertexAttribArrayARB( index );
-}
-
-static void WINAPI glDisablei( GLenum target, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, index );
-  funcs->ext.p_glDisablei( target, index );
-}
-
-static void WINAPI glDispatchCompute( GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", num_groups_x, num_groups_y, num_groups_z );
-  funcs->ext.p_glDispatchCompute( num_groups_x, num_groups_y, num_groups_z );
-}
-
-static void WINAPI glDispatchComputeGroupSizeARB( GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", num_groups_x, num_groups_y, num_groups_z, group_size_x, group_size_y, group_size_z );
-  funcs->ext.p_glDispatchComputeGroupSizeARB( num_groups_x, num_groups_y, num_groups_z, group_size_x, group_size_y, group_size_z );
-}
-
-static void WINAPI glDispatchComputeIndirect( GLintptr indirect )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%ld)\n", indirect );
-  funcs->ext.p_glDispatchComputeIndirect( indirect );
-}
-
-static void WINAPI glDrawArraysEXT( GLenum mode, GLint first, GLsizei count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", mode, first, count );
-  funcs->ext.p_glDrawArraysEXT( mode, first, count );
-}
-
-static void WINAPI glDrawArraysIndirect( GLenum mode, const void *indirect )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", mode, indirect );
-  funcs->ext.p_glDrawArraysIndirect( mode, indirect );
-}
-
-static void WINAPI glDrawArraysInstanced( GLenum mode, GLint first, GLsizei count, GLsizei instancecount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", mode, first, count, instancecount );
-  funcs->ext.p_glDrawArraysInstanced( mode, first, count, instancecount );
-}
-
-static void WINAPI glDrawArraysInstancedARB( GLenum mode, GLint first, GLsizei count, GLsizei primcount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", mode, first, count, primcount );
-  funcs->ext.p_glDrawArraysInstancedARB( mode, first, count, primcount );
-}
-
-static void WINAPI glDrawArraysInstancedBaseInstance( GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", mode, first, count, instancecount, baseinstance );
-  funcs->ext.p_glDrawArraysInstancedBaseInstance( mode, first, count, instancecount, baseinstance );
-}
-
-static void WINAPI glDrawArraysInstancedEXT( GLenum mode, GLint start, GLsizei count, GLsizei primcount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", mode, start, count, primcount );
-  funcs->ext.p_glDrawArraysInstancedEXT( mode, start, count, primcount );
-}
-
-static void WINAPI glDrawBufferRegion( GLenum region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", region, x, y, width, height, xDest, yDest );
-  funcs->ext.p_glDrawBufferRegion( region, x, y, width, height, xDest, yDest );
-}
-
-static void WINAPI glDrawBuffers( GLsizei n, const GLenum *bufs )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, bufs );
-  funcs->ext.p_glDrawBuffers( n, bufs );
-}
-
-static void WINAPI glDrawBuffersARB( GLsizei n, const GLenum *bufs )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, bufs );
-  funcs->ext.p_glDrawBuffersARB( n, bufs );
-}
-
-static void WINAPI glDrawBuffersATI( GLsizei n, const GLenum *bufs )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, bufs );
-  funcs->ext.p_glDrawBuffersATI( n, bufs );
-}
-
-static void WINAPI glDrawCommandsAddressNV( GLenum primitiveMode, const GLuint64 *indirects, const GLsizei *sizes, GLuint count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p, %d)\n", primitiveMode, indirects, sizes, count );
-  funcs->ext.p_glDrawCommandsAddressNV( primitiveMode, indirects, sizes, count );
-}
-
-static void WINAPI glDrawCommandsNV( GLenum primitiveMode, GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, GLuint count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p, %d)\n", primitiveMode, buffer, indirects, sizes, count );
-  funcs->ext.p_glDrawCommandsNV( primitiveMode, buffer, indirects, sizes, count );
-}
-
-static void WINAPI glDrawCommandsStatesAddressNV( const GLuint64 *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p, %p, %d)\n", indirects, sizes, states, fbos, count );
-  funcs->ext.p_glDrawCommandsStatesAddressNV( indirects, sizes, states, fbos, count );
-}
-
-static void WINAPI glDrawCommandsStatesNV( GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p, %p, %p, %d)\n", buffer, indirects, sizes, states, fbos, count );
-  funcs->ext.p_glDrawCommandsStatesNV( buffer, indirects, sizes, states, fbos, count );
-}
-
-static void WINAPI glDrawElementArrayAPPLE( GLenum mode, GLint first, GLsizei count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", mode, first, count );
-  funcs->ext.p_glDrawElementArrayAPPLE( mode, first, count );
-}
-
-static void WINAPI glDrawElementArrayATI( GLenum mode, GLsizei count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", mode, count );
-  funcs->ext.p_glDrawElementArrayATI( mode, count );
-}
-
-static void WINAPI glDrawElementsBaseVertex( GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d)\n", mode, count, type, indices, basevertex );
-  funcs->ext.p_glDrawElementsBaseVertex( mode, count, type, indices, basevertex );
-}
-
-static void WINAPI glDrawElementsIndirect( GLenum mode, GLenum type, const void *indirect )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", mode, type, indirect );
-  funcs->ext.p_glDrawElementsIndirect( mode, type, indirect );
-}
-
-static void WINAPI glDrawElementsInstanced( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d)\n", mode, count, type, indices, instancecount );
-  funcs->ext.p_glDrawElementsInstanced( mode, count, type, indices, instancecount );
-}
-
-static void WINAPI glDrawElementsInstancedARB( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d)\n", mode, count, type, indices, primcount );
-  funcs->ext.p_glDrawElementsInstancedARB( mode, count, type, indices, primcount );
-}
-
-static void WINAPI glDrawElementsInstancedBaseInstance( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d, %d)\n", mode, count, type, indices, instancecount, baseinstance );
-  funcs->ext.p_glDrawElementsInstancedBaseInstance( mode, count, type, indices, instancecount, baseinstance );
-}
-
-static void WINAPI glDrawElementsInstancedBaseVertex( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d, %d)\n", mode, count, type, indices, instancecount, basevertex );
-  funcs->ext.p_glDrawElementsInstancedBaseVertex( mode, count, type, indices, instancecount, basevertex );
-}
-
-static void WINAPI glDrawElementsInstancedBaseVertexBaseInstance( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d, %d, %d)\n", mode, count, type, indices, instancecount, basevertex, baseinstance );
-  funcs->ext.p_glDrawElementsInstancedBaseVertexBaseInstance( mode, count, type, indices, instancecount, basevertex, baseinstance );
-}
-
-static void WINAPI glDrawElementsInstancedEXT( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d)\n", mode, count, type, indices, primcount );
-  funcs->ext.p_glDrawElementsInstancedEXT( mode, count, type, indices, primcount );
-}
-
-static void WINAPI glDrawMeshArraysSUN( GLenum mode, GLint first, GLsizei count, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", mode, first, count, width );
-  funcs->ext.p_glDrawMeshArraysSUN( mode, first, count, width );
-}
-
-static void WINAPI glDrawMeshTasksIndirectNV( GLintptr indirect )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%ld)\n", indirect );
-  funcs->ext.p_glDrawMeshTasksIndirectNV( indirect );
-}
-
-static void WINAPI glDrawMeshTasksNV( GLuint first, GLuint count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", first, count );
-  funcs->ext.p_glDrawMeshTasksNV( first, count );
-}
-
-static void WINAPI glDrawRangeElementArrayAPPLE( GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", mode, start, end, first, count );
-  funcs->ext.p_glDrawRangeElementArrayAPPLE( mode, start, end, first, count );
-}
-
-static void WINAPI glDrawRangeElementArrayATI( GLenum mode, GLuint start, GLuint end, GLsizei count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", mode, start, end, count );
-  funcs->ext.p_glDrawRangeElementArrayATI( mode, start, end, count );
-}
-
-static void WINAPI glDrawRangeElements( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", mode, start, end, count, type, indices );
-  funcs->ext.p_glDrawRangeElements( mode, start, end, count, type, indices );
-}
-
-static void WINAPI glDrawRangeElementsBaseVertex( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p, %d)\n", mode, start, end, count, type, indices, basevertex );
-  funcs->ext.p_glDrawRangeElementsBaseVertex( mode, start, end, count, type, indices, basevertex );
-}
-
-static void WINAPI glDrawRangeElementsEXT( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", mode, start, end, count, type, indices );
-  funcs->ext.p_glDrawRangeElementsEXT( mode, start, end, count, type, indices );
-}
-
-static void WINAPI glDrawTextureNV( GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f, %f, %f, %f, %f, %f, %f)\n", texture, sampler, x0, y0, x1, y1, z, s0, t0, s1, t1 );
-  funcs->ext.p_glDrawTextureNV( texture, sampler, x0, y0, x1, y1, z, s0, t0, s1, t1 );
-}
-
-static void WINAPI glDrawTransformFeedback( GLenum mode, GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", mode, id );
-  funcs->ext.p_glDrawTransformFeedback( mode, id );
-}
-
-static void WINAPI glDrawTransformFeedbackInstanced( GLenum mode, GLuint id, GLsizei instancecount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", mode, id, instancecount );
-  funcs->ext.p_glDrawTransformFeedbackInstanced( mode, id, instancecount );
-}
-
-static void WINAPI glDrawTransformFeedbackNV( GLenum mode, GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", mode, id );
-  funcs->ext.p_glDrawTransformFeedbackNV( mode, id );
-}
-
-static void WINAPI glDrawTransformFeedbackStream( GLenum mode, GLuint id, GLuint stream )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", mode, id, stream );
-  funcs->ext.p_glDrawTransformFeedbackStream( mode, id, stream );
-}
-
-static void WINAPI glDrawTransformFeedbackStreamInstanced( GLenum mode, GLuint id, GLuint stream, GLsizei instancecount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", mode, id, stream, instancecount );
-  funcs->ext.p_glDrawTransformFeedbackStreamInstanced( mode, id, stream, instancecount );
-}
-
-static void WINAPI glDrawVkImageNV( GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s, %d, %f, %f, %f, %f, %f, %f, %f, %f, %f)\n", wine_dbgstr_longlong(vkImage), sampler, x0, y0, x1, y1, z, s0, t0, s1, t1 );
-  funcs->ext.p_glDrawVkImageNV( vkImage, sampler, x0, y0, x1, y1, z, s0, t0, s1, t1 );
-}
-
-static void WINAPI glEGLImageTargetTexStorageEXT( GLenum target, GLeglImageOES image, const GLint* attrib_list )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p)\n", target, image, attrib_list );
-  funcs->ext.p_glEGLImageTargetTexStorageEXT( target, image, attrib_list );
-}
-
-static void WINAPI glEGLImageTargetTextureStorageEXT( GLuint texture, GLeglImageOES image, const GLint* attrib_list )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p)\n", texture, image, attrib_list );
-  funcs->ext.p_glEGLImageTargetTextureStorageEXT( texture, image, attrib_list );
-}
-
-static void WINAPI glEdgeFlagFormatNV( GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", stride );
-  funcs->ext.p_glEdgeFlagFormatNV( stride );
-}
-
-static void WINAPI glEdgeFlagPointerEXT( GLsizei stride, GLsizei count, const GLboolean *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", stride, count, pointer );
-  funcs->ext.p_glEdgeFlagPointerEXT( stride, count, pointer );
-}
-
-static void WINAPI glEdgeFlagPointerListIBM( GLint stride, const GLboolean **pointer, GLint ptrstride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d)\n", stride, pointer, ptrstride );
-  funcs->ext.p_glEdgeFlagPointerListIBM( stride, pointer, ptrstride );
-}
-
-static void WINAPI glElementPointerAPPLE( GLenum type, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, pointer );
-  funcs->ext.p_glElementPointerAPPLE( type, pointer );
-}
-
-static void WINAPI glElementPointerATI( GLenum type, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, pointer );
-  funcs->ext.p_glElementPointerATI( type, pointer );
-}
-
-static void WINAPI glEnableClientStateIndexedEXT( GLenum array, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", array, index );
-  funcs->ext.p_glEnableClientStateIndexedEXT( array, index );
-}
-
-static void WINAPI glEnableClientStateiEXT( GLenum array, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", array, index );
-  funcs->ext.p_glEnableClientStateiEXT( array, index );
-}
-
-static void WINAPI glEnableIndexedEXT( GLenum target, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, index );
-  funcs->ext.p_glEnableIndexedEXT( target, index );
-}
-
-static void WINAPI glEnableVariantClientStateEXT( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  funcs->ext.p_glEnableVariantClientStateEXT( id );
-}
-
-static void WINAPI glEnableVertexArrayAttrib( GLuint vaobj, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", vaobj, index );
-  funcs->ext.p_glEnableVertexArrayAttrib( vaobj, index );
-}
-
-static void WINAPI glEnableVertexArrayAttribEXT( GLuint vaobj, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", vaobj, index );
-  funcs->ext.p_glEnableVertexArrayAttribEXT( vaobj, index );
-}
-
-static void WINAPI glEnableVertexArrayEXT( GLuint vaobj, GLenum array )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", vaobj, array );
-  funcs->ext.p_glEnableVertexArrayEXT( vaobj, array );
-}
-
-static void WINAPI glEnableVertexAttribAPPLE( GLuint index, GLenum pname )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, pname );
-  funcs->ext.p_glEnableVertexAttribAPPLE( index, pname );
-}
-
-static void WINAPI glEnableVertexAttribArray( GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", index );
-  funcs->ext.p_glEnableVertexAttribArray( index );
-}
-
-static void WINAPI glEnableVertexAttribArrayARB( GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", index );
-  funcs->ext.p_glEnableVertexAttribArrayARB( index );
-}
-
-static void WINAPI glEnablei( GLenum target, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, index );
-  funcs->ext.p_glEnablei( target, index );
-}
-
-static void WINAPI glEndConditionalRender(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glEndConditionalRender();
-}
-
-static void WINAPI glEndConditionalRenderNV(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glEndConditionalRenderNV();
-}
-
-static void WINAPI glEndConditionalRenderNVX(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glEndConditionalRenderNVX();
-}
-
-static void WINAPI glEndFragmentShaderATI(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glEndFragmentShaderATI();
-}
-
-static void WINAPI glEndOcclusionQueryNV(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glEndOcclusionQueryNV();
-}
-
-static void WINAPI glEndPerfMonitorAMD( GLuint monitor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", monitor );
-  funcs->ext.p_glEndPerfMonitorAMD( monitor );
-}
-
-static void WINAPI glEndPerfQueryINTEL( GLuint queryHandle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", queryHandle );
-  funcs->ext.p_glEndPerfQueryINTEL( queryHandle );
-}
-
-static void WINAPI glEndQuery( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  funcs->ext.p_glEndQuery( target );
-}
-
-static void WINAPI glEndQueryARB( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  funcs->ext.p_glEndQueryARB( target );
-}
-
-static void WINAPI glEndQueryIndexed( GLenum target, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, index );
-  funcs->ext.p_glEndQueryIndexed( target, index );
-}
-
-static void WINAPI glEndTransformFeedback(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glEndTransformFeedback();
-}
-
-static void WINAPI glEndTransformFeedbackEXT(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glEndTransformFeedbackEXT();
-}
-
-static void WINAPI glEndTransformFeedbackNV(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glEndTransformFeedbackNV();
-}
-
-static void WINAPI glEndVertexShaderEXT(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glEndVertexShaderEXT();
-}
-
-static void WINAPI glEndVideoCaptureNV( GLuint video_capture_slot )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", video_capture_slot );
-  funcs->ext.p_glEndVideoCaptureNV( video_capture_slot );
-}
-
-static void WINAPI glEvalCoord1xOES( GLfixed u )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", u );
-  funcs->ext.p_glEvalCoord1xOES( u );
-}
-
-static void WINAPI glEvalCoord1xvOES( const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glEvalCoord1xvOES( coords );
-}
-
-static void WINAPI glEvalCoord2xOES( GLfixed u, GLfixed v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", u, v );
-  funcs->ext.p_glEvalCoord2xOES( u, v );
-}
-
-static void WINAPI glEvalCoord2xvOES( const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glEvalCoord2xvOES( coords );
-}
-
-static void WINAPI glEvalMapsNV( GLenum target, GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, mode );
-  funcs->ext.p_glEvalMapsNV( target, mode );
-}
-
-static void WINAPI glEvaluateDepthValuesARB(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glEvaluateDepthValuesARB();
-}
-
-static void WINAPI glExecuteProgramNV( GLenum target, GLuint id, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, id, params );
-  funcs->ext.p_glExecuteProgramNV( target, id, params );
-}
-
-static void WINAPI glExtractComponentEXT( GLuint res, GLuint src, GLuint num )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", res, src, num );
-  funcs->ext.p_glExtractComponentEXT( res, src, num );
-}
-
-static void WINAPI glFeedbackBufferxOES( GLsizei n, GLenum type, const GLfixed *buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", n, type, buffer );
-  funcs->ext.p_glFeedbackBufferxOES( n, type, buffer );
-}
-
-static GLsync WINAPI glFenceSync( GLenum condition, GLbitfield flags )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", condition, flags );
-  return funcs->ext.p_glFenceSync( condition, flags );
-}
-
-static void WINAPI glFinalCombinerInputNV( GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", variable, input, mapping, componentUsage );
-  funcs->ext.p_glFinalCombinerInputNV( variable, input, mapping, componentUsage );
-}
-
-static GLint WINAPI glFinishAsyncSGIX( GLuint *markerp )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", markerp );
-  return funcs->ext.p_glFinishAsyncSGIX( markerp );
-}
-
-static void WINAPI glFinishFenceAPPLE( GLuint fence )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", fence );
-  funcs->ext.p_glFinishFenceAPPLE( fence );
-}
-
-static void WINAPI glFinishFenceNV( GLuint fence )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", fence );
-  funcs->ext.p_glFinishFenceNV( fence );
-}
-
-static void WINAPI glFinishObjectAPPLE( GLenum object, GLint name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", object, name );
-  funcs->ext.p_glFinishObjectAPPLE( object, name );
-}
-
-static void WINAPI glFinishTextureSUNX(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glFinishTextureSUNX();
-}
-
-static void WINAPI glFlushMappedBufferRange( GLenum target, GLintptr offset, GLsizeiptr length )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld)\n", target, offset, length );
-  funcs->ext.p_glFlushMappedBufferRange( target, offset, length );
-}
-
-static void WINAPI glFlushMappedBufferRangeAPPLE( GLenum target, GLintptr offset, GLsizeiptr size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld)\n", target, offset, size );
-  funcs->ext.p_glFlushMappedBufferRangeAPPLE( target, offset, size );
-}
-
-static void WINAPI glFlushMappedNamedBufferRange( GLuint buffer, GLintptr offset, GLsizeiptr length )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld)\n", buffer, offset, length );
-  funcs->ext.p_glFlushMappedNamedBufferRange( buffer, offset, length );
-}
-
-static void WINAPI glFlushMappedNamedBufferRangeEXT( GLuint buffer, GLintptr offset, GLsizeiptr length )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld)\n", buffer, offset, length );
-  funcs->ext.p_glFlushMappedNamedBufferRangeEXT( buffer, offset, length );
-}
-
-static void WINAPI glFlushPixelDataRangeNV( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  funcs->ext.p_glFlushPixelDataRangeNV( target );
-}
-
-static void WINAPI glFlushRasterSGIX(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glFlushRasterSGIX();
-}
-
-static void WINAPI glFlushStaticDataIBM( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  funcs->ext.p_glFlushStaticDataIBM( target );
-}
-
-static void WINAPI glFlushVertexArrayRangeAPPLE( GLsizei length, void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", length, pointer );
-  funcs->ext.p_glFlushVertexArrayRangeAPPLE( length, pointer );
-}
-
-static void WINAPI glFlushVertexArrayRangeNV(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glFlushVertexArrayRangeNV();
-}
-
-static void WINAPI glFogCoordFormatNV( GLenum type, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, stride );
-  funcs->ext.p_glFogCoordFormatNV( type, stride );
-}
-
-static void WINAPI glFogCoordPointer( GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", type, stride, pointer );
-  funcs->ext.p_glFogCoordPointer( type, stride, pointer );
-}
-
-static void WINAPI glFogCoordPointerEXT( GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", type, stride, pointer );
-  funcs->ext.p_glFogCoordPointerEXT( type, stride, pointer );
-}
-
-static void WINAPI glFogCoordPointerListIBM( GLenum type, GLint stride, const void **pointer, GLint ptrstride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d)\n", type, stride, pointer, ptrstride );
-  funcs->ext.p_glFogCoordPointerListIBM( type, stride, pointer, ptrstride );
-}
-
-static void WINAPI glFogCoordd( GLdouble coord )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f)\n", coord );
-  funcs->ext.p_glFogCoordd( coord );
-}
-
-static void WINAPI glFogCoorddEXT( GLdouble coord )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f)\n", coord );
-  funcs->ext.p_glFogCoorddEXT( coord );
-}
-
-static void WINAPI glFogCoorddv( const GLdouble *coord )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coord );
-  funcs->ext.p_glFogCoorddv( coord );
-}
-
-static void WINAPI glFogCoorddvEXT( const GLdouble *coord )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coord );
-  funcs->ext.p_glFogCoorddvEXT( coord );
-}
-
-static void WINAPI glFogCoordf( GLfloat coord )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f)\n", coord );
-  funcs->ext.p_glFogCoordf( coord );
-}
-
-static void WINAPI glFogCoordfEXT( GLfloat coord )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f)\n", coord );
-  funcs->ext.p_glFogCoordfEXT( coord );
-}
-
-static void WINAPI glFogCoordfv( const GLfloat *coord )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coord );
-  funcs->ext.p_glFogCoordfv( coord );
-}
-
-static void WINAPI glFogCoordfvEXT( const GLfloat *coord )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coord );
-  funcs->ext.p_glFogCoordfvEXT( coord );
-}
-
-static void WINAPI glFogCoordhNV( GLhalfNV fog )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", fog );
-  funcs->ext.p_glFogCoordhNV( fog );
-}
-
-static void WINAPI glFogCoordhvNV( const GLhalfNV *fog )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", fog );
-  funcs->ext.p_glFogCoordhvNV( fog );
-}
-
-static void WINAPI glFogFuncSGIS( GLsizei n, const GLfloat *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, points );
-  funcs->ext.p_glFogFuncSGIS( n, points );
-}
-
-static void WINAPI glFogxOES( GLenum pname, GLfixed param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glFogxOES( pname, param );
-}
-
-static void WINAPI glFogxvOES( GLenum pname, const GLfixed *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, param );
-  funcs->ext.p_glFogxvOES( pname, param );
-}
-
-static void WINAPI glFragmentColorMaterialSGIX( GLenum face, GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", face, mode );
-  funcs->ext.p_glFragmentColorMaterialSGIX( face, mode );
-}
-
-static void WINAPI glFragmentCoverageColorNV( GLuint color )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", color );
-  funcs->ext.p_glFragmentCoverageColorNV( color );
-}
-
-static void WINAPI glFragmentLightModelfSGIX( GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", pname, param );
-  funcs->ext.p_glFragmentLightModelfSGIX( pname, param );
-}
-
-static void WINAPI glFragmentLightModelfvSGIX( GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glFragmentLightModelfvSGIX( pname, params );
-}
-
-static void WINAPI glFragmentLightModeliSGIX( GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glFragmentLightModeliSGIX( pname, param );
-}
-
-static void WINAPI glFragmentLightModelivSGIX( GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glFragmentLightModelivSGIX( pname, params );
-}
-
-static void WINAPI glFragmentLightfSGIX( GLenum light, GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", light, pname, param );
-  funcs->ext.p_glFragmentLightfSGIX( light, pname, param );
-}
-
-static void WINAPI glFragmentLightfvSGIX( GLenum light, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", light, pname, params );
-  funcs->ext.p_glFragmentLightfvSGIX( light, pname, params );
-}
-
-static void WINAPI glFragmentLightiSGIX( GLenum light, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", light, pname, param );
-  funcs->ext.p_glFragmentLightiSGIX( light, pname, param );
-}
-
-static void WINAPI glFragmentLightivSGIX( GLenum light, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", light, pname, params );
-  funcs->ext.p_glFragmentLightivSGIX( light, pname, params );
-}
-
-static void WINAPI glFragmentMaterialfSGIX( GLenum face, GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", face, pname, param );
-  funcs->ext.p_glFragmentMaterialfSGIX( face, pname, param );
-}
-
-static void WINAPI glFragmentMaterialfvSGIX( GLenum face, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", face, pname, params );
-  funcs->ext.p_glFragmentMaterialfvSGIX( face, pname, params );
-}
-
-static void WINAPI glFragmentMaterialiSGIX( GLenum face, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", face, pname, param );
-  funcs->ext.p_glFragmentMaterialiSGIX( face, pname, param );
-}
-
-static void WINAPI glFragmentMaterialivSGIX( GLenum face, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", face, pname, params );
-  funcs->ext.p_glFragmentMaterialivSGIX( face, pname, params );
-}
-
-static void WINAPI glFrameTerminatorGREMEDY(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glFrameTerminatorGREMEDY();
-}
-
-static void WINAPI glFrameZoomSGIX( GLint factor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", factor );
-  funcs->ext.p_glFrameZoomSGIX( factor );
-}
-
-static void WINAPI glFramebufferDrawBufferEXT( GLuint framebuffer, GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", framebuffer, mode );
-  funcs->ext.p_glFramebufferDrawBufferEXT( framebuffer, mode );
-}
-
-static void WINAPI glFramebufferDrawBuffersEXT( GLuint framebuffer, GLsizei n, const GLenum *bufs )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", framebuffer, n, bufs );
-  funcs->ext.p_glFramebufferDrawBuffersEXT( framebuffer, n, bufs );
-}
-
-static void WINAPI glFramebufferFetchBarrierEXT(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glFramebufferFetchBarrierEXT();
-}
-
-static void WINAPI glFramebufferParameteri( GLenum target, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, pname, param );
-  funcs->ext.p_glFramebufferParameteri( target, pname, param );
-}
-
-static void WINAPI glFramebufferParameteriMESA( GLenum target, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, pname, param );
-  funcs->ext.p_glFramebufferParameteriMESA( target, pname, param );
-}
-
-static void WINAPI glFramebufferReadBufferEXT( GLuint framebuffer, GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", framebuffer, mode );
-  funcs->ext.p_glFramebufferReadBufferEXT( framebuffer, mode );
-}
-
-static void WINAPI glFramebufferRenderbuffer( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, attachment, renderbuffertarget, renderbuffer );
-  funcs->ext.p_glFramebufferRenderbuffer( target, attachment, renderbuffertarget, renderbuffer );
-}
-
-static void WINAPI glFramebufferRenderbufferEXT( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, attachment, renderbuffertarget, renderbuffer );
-  funcs->ext.p_glFramebufferRenderbufferEXT( target, attachment, renderbuffertarget, renderbuffer );
-}
-
-static void WINAPI glFramebufferSampleLocationsfvARB( GLenum target, GLuint start, GLsizei count, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, start, count, v );
-  funcs->ext.p_glFramebufferSampleLocationsfvARB( target, start, count, v );
-}
-
-static void WINAPI glFramebufferSampleLocationsfvNV( GLenum target, GLuint start, GLsizei count, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, start, count, v );
-  funcs->ext.p_glFramebufferSampleLocationsfvNV( target, start, count, v );
-}
-
-static void WINAPI glFramebufferSamplePositionsfvAMD( GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, numsamples, pixelindex, values );
-  funcs->ext.p_glFramebufferSamplePositionsfvAMD( target, numsamples, pixelindex, values );
-}
-
-static void WINAPI glFramebufferTexture( GLenum target, GLenum attachment, GLuint texture, GLint level )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, attachment, texture, level );
-  funcs->ext.p_glFramebufferTexture( target, attachment, texture, level );
-}
-
-static void WINAPI glFramebufferTexture1D( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, attachment, textarget, texture, level );
-  funcs->ext.p_glFramebufferTexture1D( target, attachment, textarget, texture, level );
-}
-
-static void WINAPI glFramebufferTexture1DEXT( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, attachment, textarget, texture, level );
-  funcs->ext.p_glFramebufferTexture1DEXT( target, attachment, textarget, texture, level );
-}
-
-static void WINAPI glFramebufferTexture2D( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, attachment, textarget, texture, level );
-  funcs->ext.p_glFramebufferTexture2D( target, attachment, textarget, texture, level );
-}
-
-static void WINAPI glFramebufferTexture2DEXT( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, attachment, textarget, texture, level );
-  funcs->ext.p_glFramebufferTexture2DEXT( target, attachment, textarget, texture, level );
-}
-
-static void WINAPI glFramebufferTexture3D( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, attachment, textarget, texture, level, zoffset );
-  funcs->ext.p_glFramebufferTexture3D( target, attachment, textarget, texture, level, zoffset );
-}
-
-static void WINAPI glFramebufferTexture3DEXT( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, attachment, textarget, texture, level, zoffset );
-  funcs->ext.p_glFramebufferTexture3DEXT( target, attachment, textarget, texture, level, zoffset );
-}
-
-static void WINAPI glFramebufferTextureARB( GLenum target, GLenum attachment, GLuint texture, GLint level )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, attachment, texture, level );
-  funcs->ext.p_glFramebufferTextureARB( target, attachment, texture, level );
-}
-
-static void WINAPI glFramebufferTextureEXT( GLenum target, GLenum attachment, GLuint texture, GLint level )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, attachment, texture, level );
-  funcs->ext.p_glFramebufferTextureEXT( target, attachment, texture, level );
-}
-
-static void WINAPI glFramebufferTextureFaceARB( GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, attachment, texture, level, face );
-  funcs->ext.p_glFramebufferTextureFaceARB( target, attachment, texture, level, face );
-}
-
-static void WINAPI glFramebufferTextureFaceEXT( GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, attachment, texture, level, face );
-  funcs->ext.p_glFramebufferTextureFaceEXT( target, attachment, texture, level, face );
-}
-
-static void WINAPI glFramebufferTextureLayer( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, attachment, texture, level, layer );
-  funcs->ext.p_glFramebufferTextureLayer( target, attachment, texture, level, layer );
-}
-
-static void WINAPI glFramebufferTextureLayerARB( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, attachment, texture, level, layer );
-  funcs->ext.p_glFramebufferTextureLayerARB( target, attachment, texture, level, layer );
-}
-
-static void WINAPI glFramebufferTextureLayerEXT( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, attachment, texture, level, layer );
-  funcs->ext.p_glFramebufferTextureLayerEXT( target, attachment, texture, level, layer );
-}
-
-static void WINAPI glFramebufferTextureMultiviewOVR( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, attachment, texture, level, baseViewIndex, numViews );
-  funcs->ext.p_glFramebufferTextureMultiviewOVR( target, attachment, texture, level, baseViewIndex, numViews );
-}
-
-static void WINAPI glFreeObjectBufferATI( GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", buffer );
-  funcs->ext.p_glFreeObjectBufferATI( buffer );
-}
-
-static void WINAPI glFrustumfOES( GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f, %f, %f)\n", l, r, b, t, n, f );
-  funcs->ext.p_glFrustumfOES( l, r, b, t, n, f );
-}
-
-static void WINAPI glFrustumxOES( GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", l, r, b, t, n, f );
-  funcs->ext.p_glFrustumxOES( l, r, b, t, n, f );
-}
-
-static GLuint WINAPI glGenAsyncMarkersSGIX( GLsizei range )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", range );
-  return funcs->ext.p_glGenAsyncMarkersSGIX( range );
-}
-
-static void WINAPI glGenBuffers( GLsizei n, GLuint *buffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, buffers );
-  funcs->ext.p_glGenBuffers( n, buffers );
-}
-
-static void WINAPI glGenBuffersARB( GLsizei n, GLuint *buffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, buffers );
-  funcs->ext.p_glGenBuffersARB( n, buffers );
-}
-
-static void WINAPI glGenFencesAPPLE( GLsizei n, GLuint *fences )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, fences );
-  funcs->ext.p_glGenFencesAPPLE( n, fences );
-}
-
-static void WINAPI glGenFencesNV( GLsizei n, GLuint *fences )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, fences );
-  funcs->ext.p_glGenFencesNV( n, fences );
-}
-
-static GLuint WINAPI glGenFragmentShadersATI( GLuint range )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", range );
-  return funcs->ext.p_glGenFragmentShadersATI( range );
-}
-
-static void WINAPI glGenFramebuffers( GLsizei n, GLuint *framebuffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, framebuffers );
-  funcs->ext.p_glGenFramebuffers( n, framebuffers );
-}
-
-static void WINAPI glGenFramebuffersEXT( GLsizei n, GLuint *framebuffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, framebuffers );
-  funcs->ext.p_glGenFramebuffersEXT( n, framebuffers );
-}
-
-static void WINAPI glGenNamesAMD( GLenum identifier, GLuint num, GLuint *names )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", identifier, num, names );
-  funcs->ext.p_glGenNamesAMD( identifier, num, names );
-}
-
-static void WINAPI glGenOcclusionQueriesNV( GLsizei n, GLuint *ids )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, ids );
-  funcs->ext.p_glGenOcclusionQueriesNV( n, ids );
-}
-
-static GLuint WINAPI glGenPathsNV( GLsizei range )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", range );
-  return funcs->ext.p_glGenPathsNV( range );
-}
-
-static void WINAPI glGenPerfMonitorsAMD( GLsizei n, GLuint *monitors )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, monitors );
-  funcs->ext.p_glGenPerfMonitorsAMD( n, monitors );
-}
-
-static void WINAPI glGenProgramPipelines( GLsizei n, GLuint *pipelines )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, pipelines );
-  funcs->ext.p_glGenProgramPipelines( n, pipelines );
-}
-
-static void WINAPI glGenProgramsARB( GLsizei n, GLuint *programs )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, programs );
-  funcs->ext.p_glGenProgramsARB( n, programs );
-}
-
-static void WINAPI glGenProgramsNV( GLsizei n, GLuint *programs )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, programs );
-  funcs->ext.p_glGenProgramsNV( n, programs );
-}
-
-static void WINAPI glGenQueries( GLsizei n, GLuint *ids )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, ids );
-  funcs->ext.p_glGenQueries( n, ids );
-}
-
-static void WINAPI glGenQueriesARB( GLsizei n, GLuint *ids )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, ids );
-  funcs->ext.p_glGenQueriesARB( n, ids );
-}
-
-static void WINAPI glGenQueryResourceTagNV( GLsizei n, GLint *tagIds )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, tagIds );
-  funcs->ext.p_glGenQueryResourceTagNV( n, tagIds );
-}
-
-static void WINAPI glGenRenderbuffers( GLsizei n, GLuint *renderbuffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, renderbuffers );
-  funcs->ext.p_glGenRenderbuffers( n, renderbuffers );
-}
-
-static void WINAPI glGenRenderbuffersEXT( GLsizei n, GLuint *renderbuffers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, renderbuffers );
-  funcs->ext.p_glGenRenderbuffersEXT( n, renderbuffers );
-}
-
-static void WINAPI glGenSamplers( GLsizei count, GLuint *samplers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", count, samplers );
-  funcs->ext.p_glGenSamplers( count, samplers );
-}
-
-static void WINAPI glGenSemaphoresEXT( GLsizei n, GLuint *semaphores )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, semaphores );
-  funcs->ext.p_glGenSemaphoresEXT( n, semaphores );
-}
-
-static GLuint WINAPI glGenSymbolsEXT( GLenum datatype, GLenum storagetype, GLenum range, GLuint components )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", datatype, storagetype, range, components );
-  return funcs->ext.p_glGenSymbolsEXT( datatype, storagetype, range, components );
-}
-
-static void WINAPI glGenTexturesEXT( GLsizei n, GLuint *textures )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, textures );
-  funcs->ext.p_glGenTexturesEXT( n, textures );
-}
-
-static void WINAPI glGenTransformFeedbacks( GLsizei n, GLuint *ids )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, ids );
-  funcs->ext.p_glGenTransformFeedbacks( n, ids );
-}
-
-static void WINAPI glGenTransformFeedbacksNV( GLsizei n, GLuint *ids )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, ids );
-  funcs->ext.p_glGenTransformFeedbacksNV( n, ids );
-}
-
-static void WINAPI glGenVertexArrays( GLsizei n, GLuint *arrays )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, arrays );
-  funcs->ext.p_glGenVertexArrays( n, arrays );
-}
-
-static void WINAPI glGenVertexArraysAPPLE( GLsizei n, GLuint *arrays )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, arrays );
-  funcs->ext.p_glGenVertexArraysAPPLE( n, arrays );
-}
-
-static GLuint WINAPI glGenVertexShadersEXT( GLuint range )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", range );
-  return funcs->ext.p_glGenVertexShadersEXT( range );
-}
-
-static void WINAPI glGenerateMipmap( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  funcs->ext.p_glGenerateMipmap( target );
-}
-
-static void WINAPI glGenerateMipmapEXT( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  funcs->ext.p_glGenerateMipmapEXT( target );
-}
-
-static void WINAPI glGenerateMultiTexMipmapEXT( GLenum texunit, GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", texunit, target );
-  funcs->ext.p_glGenerateMultiTexMipmapEXT( texunit, target );
-}
-
-static void WINAPI glGenerateTextureMipmap( GLuint texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", texture );
-  funcs->ext.p_glGenerateTextureMipmap( texture );
-}
-
-static void WINAPI glGenerateTextureMipmapEXT( GLuint texture, GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", texture, target );
-  funcs->ext.p_glGenerateTextureMipmapEXT( texture, target );
-}
-
-static void WINAPI glGetActiveAtomicCounterBufferiv( GLuint program, GLuint bufferIndex, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, bufferIndex, pname, params );
-  funcs->ext.p_glGetActiveAtomicCounterBufferiv( program, bufferIndex, pname, params );
-}
-
-static void WINAPI glGetActiveAttrib( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p, %p, %p)\n", program, index, bufSize, length, size, type, name );
-  funcs->ext.p_glGetActiveAttrib( program, index, bufSize, length, size, type, name );
-}
-
-static void WINAPI glGetActiveAttribARB( GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p, %p, %p)\n", programObj, index, maxLength, length, size, type, name );
-  funcs->ext.p_glGetActiveAttribARB( programObj, index, maxLength, length, size, type, name );
-}
-
-static void WINAPI glGetActiveSubroutineName( GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p, %p)\n", program, shadertype, index, bufSize, length, name );
-  funcs->ext.p_glGetActiveSubroutineName( program, shadertype, index, bufSize, length, name );
-}
-
-static void WINAPI glGetActiveSubroutineUniformName( GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p, %p)\n", program, shadertype, index, bufSize, length, name );
-  funcs->ext.p_glGetActiveSubroutineUniformName( program, shadertype, index, bufSize, length, name );
-}
-
-static void WINAPI glGetActiveSubroutineUniformiv( GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, shadertype, index, pname, values );
-  funcs->ext.p_glGetActiveSubroutineUniformiv( program, shadertype, index, pname, values );
-}
-
-static void WINAPI glGetActiveUniform( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p, %p, %p)\n", program, index, bufSize, length, size, type, name );
-  funcs->ext.p_glGetActiveUniform( program, index, bufSize, length, size, type, name );
-}
-
-static void WINAPI glGetActiveUniformARB( GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p, %p, %p)\n", programObj, index, maxLength, length, size, type, name );
-  funcs->ext.p_glGetActiveUniformARB( programObj, index, maxLength, length, size, type, name );
-}
-
-static void WINAPI glGetActiveUniformBlockName( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p)\n", program, uniformBlockIndex, bufSize, length, uniformBlockName );
-  funcs->ext.p_glGetActiveUniformBlockName( program, uniformBlockIndex, bufSize, length, uniformBlockName );
-}
-
-static void WINAPI glGetActiveUniformBlockiv( GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, uniformBlockIndex, pname, params );
-  funcs->ext.p_glGetActiveUniformBlockiv( program, uniformBlockIndex, pname, params );
-}
-
-static void WINAPI glGetActiveUniformName( GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p)\n", program, uniformIndex, bufSize, length, uniformName );
-  funcs->ext.p_glGetActiveUniformName( program, uniformIndex, bufSize, length, uniformName );
-}
-
-static void WINAPI glGetActiveUniformsiv( GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %p)\n", program, uniformCount, uniformIndices, pname, params );
-  funcs->ext.p_glGetActiveUniformsiv( program, uniformCount, uniformIndices, pname, params );
-}
-
-static void WINAPI glGetActiveVaryingNV( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p, %p, %p)\n", program, index, bufSize, length, size, type, name );
-  funcs->ext.p_glGetActiveVaryingNV( program, index, bufSize, length, size, type, name );
-}
-
-static void WINAPI glGetArrayObjectfvATI( GLenum array, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", array, pname, params );
-  funcs->ext.p_glGetArrayObjectfvATI( array, pname, params );
-}
-
-static void WINAPI glGetArrayObjectivATI( GLenum array, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", array, pname, params );
-  funcs->ext.p_glGetArrayObjectivATI( array, pname, params );
-}
-
-static void WINAPI glGetAttachedObjectsARB( GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", containerObj, maxCount, count, obj );
-  funcs->ext.p_glGetAttachedObjectsARB( containerObj, maxCount, count, obj );
-}
-
-static void WINAPI glGetAttachedShaders( GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", program, maxCount, count, shaders );
-  funcs->ext.p_glGetAttachedShaders( program, maxCount, count, shaders );
-}
-
-static GLint WINAPI glGetAttribLocation( GLuint program, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", program, name );
-  return funcs->ext.p_glGetAttribLocation( program, name );
-}
-
-static GLint WINAPI glGetAttribLocationARB( GLhandleARB programObj, const GLcharARB *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", programObj, name );
-  return funcs->ext.p_glGetAttribLocationARB( programObj, name );
-}
-
-static void WINAPI glGetBooleanIndexedvEXT( GLenum target, GLuint index, GLboolean *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, data );
-  funcs->ext.p_glGetBooleanIndexedvEXT( target, index, data );
-}
-
-static void WINAPI glGetBooleani_v( GLenum target, GLuint index, GLboolean *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, data );
-  funcs->ext.p_glGetBooleani_v( target, index, data );
-}
-
-static void WINAPI glGetBufferParameteri64v( GLenum target, GLenum pname, GLint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetBufferParameteri64v( target, pname, params );
-}
-
-static void WINAPI glGetBufferParameteriv( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetBufferParameteriv( target, pname, params );
-}
-
-static void WINAPI glGetBufferParameterivARB( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetBufferParameterivARB( target, pname, params );
-}
-
-static void WINAPI glGetBufferParameterui64vNV( GLenum target, GLenum pname, GLuint64EXT *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetBufferParameterui64vNV( target, pname, params );
-}
-
-static void WINAPI glGetBufferPointerv( GLenum target, GLenum pname, void **params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetBufferPointerv( target, pname, params );
-}
-
-static void WINAPI glGetBufferPointervARB( GLenum target, GLenum pname, void **params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetBufferPointervARB( target, pname, params );
-}
-
-static void WINAPI glGetBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %p)\n", target, offset, size, data );
-  funcs->ext.p_glGetBufferSubData( target, offset, size, data );
-}
-
-static void WINAPI glGetBufferSubDataARB( GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %p)\n", target, offset, size, data );
-  funcs->ext.p_glGetBufferSubDataARB( target, offset, size, data );
-}
-
-static void WINAPI glGetClipPlanefOES( GLenum plane, GLfloat *equation )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", plane, equation );
-  funcs->ext.p_glGetClipPlanefOES( plane, equation );
-}
-
-static void WINAPI glGetClipPlanexOES( GLenum plane, GLfixed *equation )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", plane, equation );
-  funcs->ext.p_glGetClipPlanexOES( plane, equation );
-}
-
-static void WINAPI glGetColorTable( GLenum target, GLenum format, GLenum type, void *table )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, format, type, table );
-  funcs->ext.p_glGetColorTable( target, format, type, table );
-}
-
-static void WINAPI glGetColorTableEXT( GLenum target, GLenum format, GLenum type, void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, format, type, data );
-  funcs->ext.p_glGetColorTableEXT( target, format, type, data );
-}
-
-static void WINAPI glGetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetColorTableParameterfv( target, pname, params );
-}
-
-static void WINAPI glGetColorTableParameterfvEXT( GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetColorTableParameterfvEXT( target, pname, params );
-}
-
-static void WINAPI glGetColorTableParameterfvSGI( GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetColorTableParameterfvSGI( target, pname, params );
-}
-
-static void WINAPI glGetColorTableParameteriv( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetColorTableParameteriv( target, pname, params );
-}
-
-static void WINAPI glGetColorTableParameterivEXT( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetColorTableParameterivEXT( target, pname, params );
-}
-
-static void WINAPI glGetColorTableParameterivSGI( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetColorTableParameterivSGI( target, pname, params );
-}
-
-static void WINAPI glGetColorTableSGI( GLenum target, GLenum format, GLenum type, void *table )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, format, type, table );
-  funcs->ext.p_glGetColorTableSGI( target, format, type, table );
-}
-
-static void WINAPI glGetCombinerInputParameterfvNV( GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", stage, portion, variable, pname, params );
-  funcs->ext.p_glGetCombinerInputParameterfvNV( stage, portion, variable, pname, params );
-}
-
-static void WINAPI glGetCombinerInputParameterivNV( GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", stage, portion, variable, pname, params );
-  funcs->ext.p_glGetCombinerInputParameterivNV( stage, portion, variable, pname, params );
-}
-
-static void WINAPI glGetCombinerOutputParameterfvNV( GLenum stage, GLenum portion, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", stage, portion, pname, params );
-  funcs->ext.p_glGetCombinerOutputParameterfvNV( stage, portion, pname, params );
-}
-
-static void WINAPI glGetCombinerOutputParameterivNV( GLenum stage, GLenum portion, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", stage, portion, pname, params );
-  funcs->ext.p_glGetCombinerOutputParameterivNV( stage, portion, pname, params );
-}
-
-static void WINAPI glGetCombinerStageParameterfvNV( GLenum stage, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", stage, pname, params );
-  funcs->ext.p_glGetCombinerStageParameterfvNV( stage, pname, params );
-}
-
-static GLuint WINAPI glGetCommandHeaderNV( GLenum tokenID, GLuint size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", tokenID, size );
-  return funcs->ext.p_glGetCommandHeaderNV( tokenID, size );
-}
-
-static void WINAPI glGetCompressedMultiTexImageEXT( GLenum texunit, GLenum target, GLint lod, void *img )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, target, lod, img );
-  funcs->ext.p_glGetCompressedMultiTexImageEXT( texunit, target, lod, img );
-}
-
-static void WINAPI glGetCompressedTexImage( GLenum target, GLint level, void *img )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, level, img );
-  funcs->ext.p_glGetCompressedTexImage( target, level, img );
-}
-
-static void WINAPI glGetCompressedTexImageARB( GLenum target, GLint level, void *img )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, level, img );
-  funcs->ext.p_glGetCompressedTexImageARB( target, level, img );
-}
-
-static void WINAPI glGetCompressedTextureImage( GLuint texture, GLint level, GLsizei bufSize, void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texture, level, bufSize, pixels );
-  funcs->ext.p_glGetCompressedTextureImage( texture, level, bufSize, pixels );
-}
-
-static void WINAPI glGetCompressedTextureImageEXT( GLuint texture, GLenum target, GLint lod, void *img )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texture, target, lod, img );
-  funcs->ext.p_glGetCompressedTextureImageEXT( texture, target, lod, img );
-}
-
-static void WINAPI glGetCompressedTextureSubImage( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, level, xoffset, yoffset, zoffset, width, height, depth, bufSize, pixels );
-  funcs->ext.p_glGetCompressedTextureSubImage( texture, level, xoffset, yoffset, zoffset, width, height, depth, bufSize, pixels );
-}
-
-static void WINAPI glGetConvolutionFilter( GLenum target, GLenum format, GLenum type, void *image )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, format, type, image );
-  funcs->ext.p_glGetConvolutionFilter( target, format, type, image );
-}
-
-static void WINAPI glGetConvolutionFilterEXT( GLenum target, GLenum format, GLenum type, void *image )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, format, type, image );
-  funcs->ext.p_glGetConvolutionFilterEXT( target, format, type, image );
-}
-
-static void WINAPI glGetConvolutionParameterfv( GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetConvolutionParameterfv( target, pname, params );
-}
-
-static void WINAPI glGetConvolutionParameterfvEXT( GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetConvolutionParameterfvEXT( target, pname, params );
-}
-
-static void WINAPI glGetConvolutionParameteriv( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetConvolutionParameteriv( target, pname, params );
-}
-
-static void WINAPI glGetConvolutionParameterivEXT( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetConvolutionParameterivEXT( target, pname, params );
-}
-
-static void WINAPI glGetConvolutionParameterxvOES( GLenum target, GLenum pname, GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetConvolutionParameterxvOES( target, pname, params );
-}
-
-static void WINAPI glGetCoverageModulationTableNV( GLsizei bufSize, GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", bufSize, v );
-  funcs->ext.p_glGetCoverageModulationTableNV( bufSize, v );
-}
-
-static GLuint WINAPI glGetDebugMessageLog( GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p, %p, %p, %p, %p)\n", count, bufSize, sources, types, ids, severities, lengths, messageLog );
-  return funcs->ext.p_glGetDebugMessageLog( count, bufSize, sources, types, ids, severities, lengths, messageLog );
-}
-
-static GLuint WINAPI glGetDebugMessageLogAMD( GLuint count, GLsizei bufSize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p, %p, %p, %p)\n", count, bufSize, categories, severities, ids, lengths, message );
-  return funcs->ext.p_glGetDebugMessageLogAMD( count, bufSize, categories, severities, ids, lengths, message );
-}
-
-static GLuint WINAPI glGetDebugMessageLogARB( GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p, %p, %p, %p, %p)\n", count, bufSize, sources, types, ids, severities, lengths, messageLog );
-  return funcs->ext.p_glGetDebugMessageLogARB( count, bufSize, sources, types, ids, severities, lengths, messageLog );
-}
-
-static void WINAPI glGetDetailTexFuncSGIS( GLenum target, GLfloat *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, points );
-  funcs->ext.p_glGetDetailTexFuncSGIS( target, points );
-}
-
-static void WINAPI glGetDoubleIndexedvEXT( GLenum target, GLuint index, GLdouble *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, data );
-  funcs->ext.p_glGetDoubleIndexedvEXT( target, index, data );
-}
-
-static void WINAPI glGetDoublei_v( GLenum target, GLuint index, GLdouble *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, data );
-  funcs->ext.p_glGetDoublei_v( target, index, data );
-}
-
-static void WINAPI glGetDoublei_vEXT( GLenum pname, GLuint index, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", pname, index, params );
-  funcs->ext.p_glGetDoublei_vEXT( pname, index, params );
-}
-
-static void WINAPI glGetFenceivNV( GLuint fence, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", fence, pname, params );
-  funcs->ext.p_glGetFenceivNV( fence, pname, params );
-}
-
-static void WINAPI glGetFinalCombinerInputParameterfvNV( GLenum variable, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", variable, pname, params );
-  funcs->ext.p_glGetFinalCombinerInputParameterfvNV( variable, pname, params );
-}
-
-static void WINAPI glGetFinalCombinerInputParameterivNV( GLenum variable, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", variable, pname, params );
-  funcs->ext.p_glGetFinalCombinerInputParameterivNV( variable, pname, params );
-}
-
-static void WINAPI glGetFirstPerfQueryIdINTEL( GLuint *queryId )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", queryId );
-  funcs->ext.p_glGetFirstPerfQueryIdINTEL( queryId );
-}
-
-static void WINAPI glGetFixedvOES( GLenum pname, GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glGetFixedvOES( pname, params );
-}
-
-static void WINAPI glGetFloatIndexedvEXT( GLenum target, GLuint index, GLfloat *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, data );
-  funcs->ext.p_glGetFloatIndexedvEXT( target, index, data );
-}
-
-static void WINAPI glGetFloati_v( GLenum target, GLuint index, GLfloat *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, data );
-  funcs->ext.p_glGetFloati_v( target, index, data );
-}
-
-static void WINAPI glGetFloati_vEXT( GLenum pname, GLuint index, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", pname, index, params );
-  funcs->ext.p_glGetFloati_vEXT( pname, index, params );
-}
-
-static void WINAPI glGetFogFuncSGIS( GLfloat *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", points );
-  funcs->ext.p_glGetFogFuncSGIS( points );
-}
-
-static GLint WINAPI glGetFragDataIndex( GLuint program, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", program, name );
-  return funcs->ext.p_glGetFragDataIndex( program, name );
-}
-
-static GLint WINAPI glGetFragDataLocation( GLuint program, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", program, name );
-  return funcs->ext.p_glGetFragDataLocation( program, name );
-}
-
-static GLint WINAPI glGetFragDataLocationEXT( GLuint program, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", program, name );
-  return funcs->ext.p_glGetFragDataLocationEXT( program, name );
-}
-
-static void WINAPI glGetFragmentLightfvSGIX( GLenum light, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", light, pname, params );
-  funcs->ext.p_glGetFragmentLightfvSGIX( light, pname, params );
-}
-
-static void WINAPI glGetFragmentLightivSGIX( GLenum light, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", light, pname, params );
-  funcs->ext.p_glGetFragmentLightivSGIX( light, pname, params );
-}
-
-static void WINAPI glGetFragmentMaterialfvSGIX( GLenum face, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", face, pname, params );
-  funcs->ext.p_glGetFragmentMaterialfvSGIX( face, pname, params );
-}
-
-static void WINAPI glGetFragmentMaterialivSGIX( GLenum face, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", face, pname, params );
-  funcs->ext.p_glGetFragmentMaterialivSGIX( face, pname, params );
-}
-
-static void WINAPI glGetFramebufferAttachmentParameteriv( GLenum target, GLenum attachment, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, attachment, pname, params );
-  funcs->ext.p_glGetFramebufferAttachmentParameteriv( target, attachment, pname, params );
-}
-
-static void WINAPI glGetFramebufferAttachmentParameterivEXT( GLenum target, GLenum attachment, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, attachment, pname, params );
-  funcs->ext.p_glGetFramebufferAttachmentParameterivEXT( target, attachment, pname, params );
-}
-
-static void WINAPI glGetFramebufferParameterfvAMD( GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, pname, numsamples, pixelindex, size, values );
-  funcs->ext.p_glGetFramebufferParameterfvAMD( target, pname, numsamples, pixelindex, size, values );
-}
-
-static void WINAPI glGetFramebufferParameteriv( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetFramebufferParameteriv( target, pname, params );
-}
-
-static void WINAPI glGetFramebufferParameterivEXT( GLuint framebuffer, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", framebuffer, pname, params );
-  funcs->ext.p_glGetFramebufferParameterivEXT( framebuffer, pname, params );
-}
-
-static void WINAPI glGetFramebufferParameterivMESA( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetFramebufferParameterivMESA( target, pname, params );
-}
-
-static GLenum WINAPI glGetGraphicsResetStatus(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  return funcs->ext.p_glGetGraphicsResetStatus();
-}
-
-static GLenum WINAPI glGetGraphicsResetStatusARB(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  return funcs->ext.p_glGetGraphicsResetStatusARB();
-}
-
-static GLhandleARB WINAPI glGetHandleARB( GLenum pname )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", pname );
-  return funcs->ext.p_glGetHandleARB( pname );
-}
-
-static void WINAPI glGetHistogram( GLenum target, GLboolean reset, GLenum format, GLenum type, void *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, reset, format, type, values );
-  funcs->ext.p_glGetHistogram( target, reset, format, type, values );
-}
-
-static void WINAPI glGetHistogramEXT( GLenum target, GLboolean reset, GLenum format, GLenum type, void *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, reset, format, type, values );
-  funcs->ext.p_glGetHistogramEXT( target, reset, format, type, values );
-}
-
-static void WINAPI glGetHistogramParameterfv( GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetHistogramParameterfv( target, pname, params );
-}
-
-static void WINAPI glGetHistogramParameterfvEXT( GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetHistogramParameterfvEXT( target, pname, params );
-}
-
-static void WINAPI glGetHistogramParameteriv( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetHistogramParameteriv( target, pname, params );
-}
-
-static void WINAPI glGetHistogramParameterivEXT( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetHistogramParameterivEXT( target, pname, params );
-}
-
-static void WINAPI glGetHistogramParameterxvOES( GLenum target, GLenum pname, GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetHistogramParameterxvOES( target, pname, params );
-}
-
-static GLuint64 WINAPI glGetImageHandleARB( GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", texture, level, layered, layer, format );
-  return funcs->ext.p_glGetImageHandleARB( texture, level, layered, layer, format );
-}
-
-static GLuint64 WINAPI glGetImageHandleNV( GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", texture, level, layered, layer, format );
-  return funcs->ext.p_glGetImageHandleNV( texture, level, layered, layer, format );
-}
-
-static void WINAPI glGetImageTransformParameterfvHP( GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetImageTransformParameterfvHP( target, pname, params );
-}
-
-static void WINAPI glGetImageTransformParameterivHP( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetImageTransformParameterivHP( target, pname, params );
-}
-
-static void WINAPI glGetInfoLogARB( GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", obj, maxLength, length, infoLog );
-  funcs->ext.p_glGetInfoLogARB( obj, maxLength, length, infoLog );
-}
-
-static GLint WINAPI glGetInstrumentsSGIX(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  return funcs->ext.p_glGetInstrumentsSGIX();
-}
-
-static void WINAPI glGetInteger64i_v( GLenum target, GLuint index, GLint64 *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, data );
-  funcs->ext.p_glGetInteger64i_v( target, index, data );
-}
-
-static void WINAPI glGetInteger64v( GLenum pname, GLint64 *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, data );
-  funcs->ext.p_glGetInteger64v( pname, data );
-}
-
-static void WINAPI glGetIntegerIndexedvEXT( GLenum target, GLuint index, GLint *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, data );
-  funcs->ext.p_glGetIntegerIndexedvEXT( target, index, data );
-}
-
-static void WINAPI glGetIntegeri_v( GLenum target, GLuint index, GLint *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, data );
-  funcs->ext.p_glGetIntegeri_v( target, index, data );
-}
-
-static void WINAPI glGetIntegerui64i_vNV( GLenum value, GLuint index, GLuint64EXT *result )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", value, index, result );
-  funcs->ext.p_glGetIntegerui64i_vNV( value, index, result );
-}
-
-static void WINAPI glGetIntegerui64vNV( GLenum value, GLuint64EXT *result )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", value, result );
-  funcs->ext.p_glGetIntegerui64vNV( value, result );
-}
-
-static void WINAPI glGetInternalformatSampleivNV( GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, internalformat, samples, pname, count, params );
-  funcs->ext.p_glGetInternalformatSampleivNV( target, internalformat, samples, pname, count, params );
-}
-
-static void WINAPI glGetInternalformati64v( GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, internalformat, pname, count, params );
-  funcs->ext.p_glGetInternalformati64v( target, internalformat, pname, count, params );
-}
-
-static void WINAPI glGetInternalformativ( GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, internalformat, pname, count, params );
-  funcs->ext.p_glGetInternalformativ( target, internalformat, pname, count, params );
-}
-
-static void WINAPI glGetInvariantBooleanvEXT( GLuint id, GLenum value, GLboolean *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, value, data );
-  funcs->ext.p_glGetInvariantBooleanvEXT( id, value, data );
-}
-
-static void WINAPI glGetInvariantFloatvEXT( GLuint id, GLenum value, GLfloat *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, value, data );
-  funcs->ext.p_glGetInvariantFloatvEXT( id, value, data );
-}
-
-static void WINAPI glGetInvariantIntegervEXT( GLuint id, GLenum value, GLint *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, value, data );
-  funcs->ext.p_glGetInvariantIntegervEXT( id, value, data );
-}
-
-static void WINAPI glGetLightxOES( GLenum light, GLenum pname, GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", light, pname, params );
-  funcs->ext.p_glGetLightxOES( light, pname, params );
-}
-
-static void WINAPI glGetListParameterfvSGIX( GLuint list, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", list, pname, params );
-  funcs->ext.p_glGetListParameterfvSGIX( list, pname, params );
-}
-
-static void WINAPI glGetListParameterivSGIX( GLuint list, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", list, pname, params );
-  funcs->ext.p_glGetListParameterivSGIX( list, pname, params );
-}
-
-static void WINAPI glGetLocalConstantBooleanvEXT( GLuint id, GLenum value, GLboolean *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, value, data );
-  funcs->ext.p_glGetLocalConstantBooleanvEXT( id, value, data );
-}
-
-static void WINAPI glGetLocalConstantFloatvEXT( GLuint id, GLenum value, GLfloat *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, value, data );
-  funcs->ext.p_glGetLocalConstantFloatvEXT( id, value, data );
-}
-
-static void WINAPI glGetLocalConstantIntegervEXT( GLuint id, GLenum value, GLint *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, value, data );
-  funcs->ext.p_glGetLocalConstantIntegervEXT( id, value, data );
-}
-
-static void WINAPI glGetMapAttribParameterfvNV( GLenum target, GLuint index, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, index, pname, params );
-  funcs->ext.p_glGetMapAttribParameterfvNV( target, index, pname, params );
-}
-
-static void WINAPI glGetMapAttribParameterivNV( GLenum target, GLuint index, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, index, pname, params );
-  funcs->ext.p_glGetMapAttribParameterivNV( target, index, pname, params );
-}
-
-static void WINAPI glGetMapControlPointsNV( GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %p)\n", target, index, type, ustride, vstride, packed, points );
-  funcs->ext.p_glGetMapControlPointsNV( target, index, type, ustride, vstride, packed, points );
-}
-
-static void WINAPI glGetMapParameterfvNV( GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetMapParameterfvNV( target, pname, params );
-}
-
-static void WINAPI glGetMapParameterivNV( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetMapParameterivNV( target, pname, params );
-}
-
-static void WINAPI glGetMapxvOES( GLenum target, GLenum query, GLfixed *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, query, v );
-  funcs->ext.p_glGetMapxvOES( target, query, v );
-}
-
-static void WINAPI glGetMaterialxOES( GLenum face, GLenum pname, GLfixed param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", face, pname, param );
-  funcs->ext.p_glGetMaterialxOES( face, pname, param );
-}
-
-static void WINAPI glGetMemoryObjectDetachedResourcesuivNV( GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", memory, pname, first, count, params );
-  funcs->ext.p_glGetMemoryObjectDetachedResourcesuivNV( memory, pname, first, count, params );
-}
-
-static void WINAPI glGetMemoryObjectParameterivEXT( GLuint memoryObject, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", memoryObject, pname, params );
-  funcs->ext.p_glGetMemoryObjectParameterivEXT( memoryObject, pname, params );
-}
-
-static void WINAPI glGetMinmax( GLenum target, GLboolean reset, GLenum format, GLenum type, void *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, reset, format, type, values );
-  funcs->ext.p_glGetMinmax( target, reset, format, type, values );
-}
-
-static void WINAPI glGetMinmaxEXT( GLenum target, GLboolean reset, GLenum format, GLenum type, void *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, reset, format, type, values );
-  funcs->ext.p_glGetMinmaxEXT( target, reset, format, type, values );
-}
-
-static void WINAPI glGetMinmaxParameterfv( GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetMinmaxParameterfv( target, pname, params );
-}
-
-static void WINAPI glGetMinmaxParameterfvEXT( GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetMinmaxParameterfvEXT( target, pname, params );
-}
-
-static void WINAPI glGetMinmaxParameteriv( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetMinmaxParameteriv( target, pname, params );
-}
-
-static void WINAPI glGetMinmaxParameterivEXT( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetMinmaxParameterivEXT( target, pname, params );
-}
-
-static void WINAPI glGetMultiTexEnvfvEXT( GLenum texunit, GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, target, pname, params );
-  funcs->ext.p_glGetMultiTexEnvfvEXT( texunit, target, pname, params );
-}
-
-static void WINAPI glGetMultiTexEnvivEXT( GLenum texunit, GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, target, pname, params );
-  funcs->ext.p_glGetMultiTexEnvivEXT( texunit, target, pname, params );
-}
-
-static void WINAPI glGetMultiTexGendvEXT( GLenum texunit, GLenum coord, GLenum pname, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, coord, pname, params );
-  funcs->ext.p_glGetMultiTexGendvEXT( texunit, coord, pname, params );
-}
-
-static void WINAPI glGetMultiTexGenfvEXT( GLenum texunit, GLenum coord, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, coord, pname, params );
-  funcs->ext.p_glGetMultiTexGenfvEXT( texunit, coord, pname, params );
-}
-
-static void WINAPI glGetMultiTexGenivEXT( GLenum texunit, GLenum coord, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, coord, pname, params );
-  funcs->ext.p_glGetMultiTexGenivEXT( texunit, coord, pname, params );
-}
-
-static void WINAPI glGetMultiTexImageEXT( GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", texunit, target, level, format, type, pixels );
-  funcs->ext.p_glGetMultiTexImageEXT( texunit, target, level, format, type, pixels );
-}
-
-static void WINAPI glGetMultiTexLevelParameterfvEXT( GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", texunit, target, level, pname, params );
-  funcs->ext.p_glGetMultiTexLevelParameterfvEXT( texunit, target, level, pname, params );
-}
-
-static void WINAPI glGetMultiTexLevelParameterivEXT( GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", texunit, target, level, pname, params );
-  funcs->ext.p_glGetMultiTexLevelParameterivEXT( texunit, target, level, pname, params );
-}
-
-static void WINAPI glGetMultiTexParameterIivEXT( GLenum texunit, GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, target, pname, params );
-  funcs->ext.p_glGetMultiTexParameterIivEXT( texunit, target, pname, params );
-}
-
-static void WINAPI glGetMultiTexParameterIuivEXT( GLenum texunit, GLenum target, GLenum pname, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, target, pname, params );
-  funcs->ext.p_glGetMultiTexParameterIuivEXT( texunit, target, pname, params );
-}
-
-static void WINAPI glGetMultiTexParameterfvEXT( GLenum texunit, GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, target, pname, params );
-  funcs->ext.p_glGetMultiTexParameterfvEXT( texunit, target, pname, params );
-}
-
-static void WINAPI glGetMultiTexParameterivEXT( GLenum texunit, GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, target, pname, params );
-  funcs->ext.p_glGetMultiTexParameterivEXT( texunit, target, pname, params );
-}
-
-static void WINAPI glGetMultisamplefv( GLenum pname, GLuint index, GLfloat *val )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", pname, index, val );
-  funcs->ext.p_glGetMultisamplefv( pname, index, val );
-}
-
-static void WINAPI glGetMultisamplefvNV( GLenum pname, GLuint index, GLfloat *val )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", pname, index, val );
-  funcs->ext.p_glGetMultisamplefvNV( pname, index, val );
-}
-
-static void WINAPI glGetNamedBufferParameteri64v( GLuint buffer, GLenum pname, GLint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", buffer, pname, params );
-  funcs->ext.p_glGetNamedBufferParameteri64v( buffer, pname, params );
-}
-
-static void WINAPI glGetNamedBufferParameteriv( GLuint buffer, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", buffer, pname, params );
-  funcs->ext.p_glGetNamedBufferParameteriv( buffer, pname, params );
-}
-
-static void WINAPI glGetNamedBufferParameterivEXT( GLuint buffer, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", buffer, pname, params );
-  funcs->ext.p_glGetNamedBufferParameterivEXT( buffer, pname, params );
-}
-
-static void WINAPI glGetNamedBufferParameterui64vNV( GLuint buffer, GLenum pname, GLuint64EXT *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", buffer, pname, params );
-  funcs->ext.p_glGetNamedBufferParameterui64vNV( buffer, pname, params );
-}
-
-static void WINAPI glGetNamedBufferPointerv( GLuint buffer, GLenum pname, void **params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", buffer, pname, params );
-  funcs->ext.p_glGetNamedBufferPointerv( buffer, pname, params );
-}
-
-static void WINAPI glGetNamedBufferPointervEXT( GLuint buffer, GLenum pname, void **params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", buffer, pname, params );
-  funcs->ext.p_glGetNamedBufferPointervEXT( buffer, pname, params );
-}
-
-static void WINAPI glGetNamedBufferSubData( GLuint buffer, GLintptr offset, GLsizeiptr size, void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %p)\n", buffer, offset, size, data );
-  funcs->ext.p_glGetNamedBufferSubData( buffer, offset, size, data );
-}
-
-static void WINAPI glGetNamedBufferSubDataEXT( GLuint buffer, GLintptr offset, GLsizeiptr size, void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %p)\n", buffer, offset, size, data );
-  funcs->ext.p_glGetNamedBufferSubDataEXT( buffer, offset, size, data );
-}
-
-static void WINAPI glGetNamedFramebufferAttachmentParameteriv( GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", framebuffer, attachment, pname, params );
-  funcs->ext.p_glGetNamedFramebufferAttachmentParameteriv( framebuffer, attachment, pname, params );
-}
-
-static void WINAPI glGetNamedFramebufferAttachmentParameterivEXT( GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", framebuffer, attachment, pname, params );
-  funcs->ext.p_glGetNamedFramebufferAttachmentParameterivEXT( framebuffer, attachment, pname, params );
-}
-
-static void WINAPI glGetNamedFramebufferParameterfvAMD( GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", framebuffer, pname, numsamples, pixelindex, size, values );
-  funcs->ext.p_glGetNamedFramebufferParameterfvAMD( framebuffer, pname, numsamples, pixelindex, size, values );
-}
-
-static void WINAPI glGetNamedFramebufferParameteriv( GLuint framebuffer, GLenum pname, GLint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", framebuffer, pname, param );
-  funcs->ext.p_glGetNamedFramebufferParameteriv( framebuffer, pname, param );
-}
-
-static void WINAPI glGetNamedFramebufferParameterivEXT( GLuint framebuffer, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", framebuffer, pname, params );
-  funcs->ext.p_glGetNamedFramebufferParameterivEXT( framebuffer, pname, params );
-}
-
-static void WINAPI glGetNamedProgramLocalParameterIivEXT( GLuint program, GLenum target, GLuint index, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, target, index, params );
-  funcs->ext.p_glGetNamedProgramLocalParameterIivEXT( program, target, index, params );
-}
-
-static void WINAPI glGetNamedProgramLocalParameterIuivEXT( GLuint program, GLenum target, GLuint index, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, target, index, params );
-  funcs->ext.p_glGetNamedProgramLocalParameterIuivEXT( program, target, index, params );
-}
-
-static void WINAPI glGetNamedProgramLocalParameterdvEXT( GLuint program, GLenum target, GLuint index, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, target, index, params );
-  funcs->ext.p_glGetNamedProgramLocalParameterdvEXT( program, target, index, params );
-}
-
-static void WINAPI glGetNamedProgramLocalParameterfvEXT( GLuint program, GLenum target, GLuint index, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, target, index, params );
-  funcs->ext.p_glGetNamedProgramLocalParameterfvEXT( program, target, index, params );
-}
-
-static void WINAPI glGetNamedProgramStringEXT( GLuint program, GLenum target, GLenum pname, void *string )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, target, pname, string );
-  funcs->ext.p_glGetNamedProgramStringEXT( program, target, pname, string );
-}
-
-static void WINAPI glGetNamedProgramivEXT( GLuint program, GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, target, pname, params );
-  funcs->ext.p_glGetNamedProgramivEXT( program, target, pname, params );
-}
-
-static void WINAPI glGetNamedRenderbufferParameteriv( GLuint renderbuffer, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", renderbuffer, pname, params );
-  funcs->ext.p_glGetNamedRenderbufferParameteriv( renderbuffer, pname, params );
-}
-
-static void WINAPI glGetNamedRenderbufferParameterivEXT( GLuint renderbuffer, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", renderbuffer, pname, params );
-  funcs->ext.p_glGetNamedRenderbufferParameterivEXT( renderbuffer, pname, params );
-}
-
-static void WINAPI glGetNamedStringARB( GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %p, %p)\n", namelen, name, bufSize, stringlen, string );
-  funcs->ext.p_glGetNamedStringARB( namelen, name, bufSize, stringlen, string );
-}
-
-static void WINAPI glGetNamedStringivARB( GLint namelen, const GLchar *name, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %p)\n", namelen, name, pname, params );
-  funcs->ext.p_glGetNamedStringivARB( namelen, name, pname, params );
-}
-
-static void WINAPI glGetNextPerfQueryIdINTEL( GLuint queryId, GLuint *nextQueryId )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", queryId, nextQueryId );
-  funcs->ext.p_glGetNextPerfQueryIdINTEL( queryId, nextQueryId );
-}
-
-static void WINAPI glGetObjectBufferfvATI( GLuint buffer, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", buffer, pname, params );
-  funcs->ext.p_glGetObjectBufferfvATI( buffer, pname, params );
-}
-
-static void WINAPI glGetObjectBufferivATI( GLuint buffer, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", buffer, pname, params );
-  funcs->ext.p_glGetObjectBufferivATI( buffer, pname, params );
-}
-
-static void WINAPI glGetObjectLabel( GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p)\n", identifier, name, bufSize, length, label );
-  funcs->ext.p_glGetObjectLabel( identifier, name, bufSize, length, label );
-}
-
-static void WINAPI glGetObjectLabelEXT( GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p)\n", type, object, bufSize, length, label );
-  funcs->ext.p_glGetObjectLabelEXT( type, object, bufSize, length, label );
-}
-
-static void WINAPI glGetObjectParameterfvARB( GLhandleARB obj, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", obj, pname, params );
-  funcs->ext.p_glGetObjectParameterfvARB( obj, pname, params );
-}
-
-static void WINAPI glGetObjectParameterivAPPLE( GLenum objectType, GLuint name, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", objectType, name, pname, params );
-  funcs->ext.p_glGetObjectParameterivAPPLE( objectType, name, pname, params );
-}
-
-static void WINAPI glGetObjectParameterivARB( GLhandleARB obj, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", obj, pname, params );
-  funcs->ext.p_glGetObjectParameterivARB( obj, pname, params );
-}
-
-static void WINAPI glGetObjectPtrLabel( const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %d, %p, %p)\n", ptr, bufSize, length, label );
-  funcs->ext.p_glGetObjectPtrLabel( ptr, bufSize, length, label );
-}
-
-static void WINAPI glGetOcclusionQueryivNV( GLuint id, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, params );
-  funcs->ext.p_glGetOcclusionQueryivNV( id, pname, params );
-}
-
-static void WINAPI glGetOcclusionQueryuivNV( GLuint id, GLenum pname, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, params );
-  funcs->ext.p_glGetOcclusionQueryuivNV( id, pname, params );
-}
-
-static void WINAPI glGetPathColorGenfvNV( GLenum color, GLenum pname, GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", color, pname, value );
-  funcs->ext.p_glGetPathColorGenfvNV( color, pname, value );
-}
-
-static void WINAPI glGetPathColorGenivNV( GLenum color, GLenum pname, GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", color, pname, value );
-  funcs->ext.p_glGetPathColorGenivNV( color, pname, value );
-}
-
-static void WINAPI glGetPathCommandsNV( GLuint path, GLubyte *commands )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", path, commands );
-  funcs->ext.p_glGetPathCommandsNV( path, commands );
-}
-
-static void WINAPI glGetPathCoordsNV( GLuint path, GLfloat *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", path, coords );
-  funcs->ext.p_glGetPathCoordsNV( path, coords );
-}
-
-static void WINAPI glGetPathDashArrayNV( GLuint path, GLfloat *dashArray )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", path, dashArray );
-  funcs->ext.p_glGetPathDashArrayNV( path, dashArray );
-}
-
-static GLfloat WINAPI glGetPathLengthNV( GLuint path, GLsizei startSegment, GLsizei numSegments )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", path, startSegment, numSegments );
-  return funcs->ext.p_glGetPathLengthNV( path, startSegment, numSegments );
-}
-
-static void WINAPI glGetPathMetricRangeNV( GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", metricQueryMask, firstPathName, numPaths, stride, metrics );
-  funcs->ext.p_glGetPathMetricRangeNV( metricQueryMask, firstPathName, numPaths, stride, metrics );
-}
-
-static void WINAPI glGetPathMetricsNV( GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d, %d, %p)\n", metricQueryMask, numPaths, pathNameType, paths, pathBase, stride, metrics );
-  funcs->ext.p_glGetPathMetricsNV( metricQueryMask, numPaths, pathNameType, paths, pathBase, stride, metrics );
-}
-
-static void WINAPI glGetPathParameterfvNV( GLuint path, GLenum pname, GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", path, pname, value );
-  funcs->ext.p_glGetPathParameterfvNV( path, pname, value );
-}
-
-static void WINAPI glGetPathParameterivNV( GLuint path, GLenum pname, GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", path, pname, value );
-  funcs->ext.p_glGetPathParameterivNV( path, pname, value );
-}
-
-static void WINAPI glGetPathSpacingNV( GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d, %f, %f, %d, %p)\n", pathListMode, numPaths, pathNameType, paths, pathBase, advanceScale, kerningScale, transformType, returnedSpacing );
-  funcs->ext.p_glGetPathSpacingNV( pathListMode, numPaths, pathNameType, paths, pathBase, advanceScale, kerningScale, transformType, returnedSpacing );
-}
-
-static void WINAPI glGetPathTexGenfvNV( GLenum texCoordSet, GLenum pname, GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texCoordSet, pname, value );
-  funcs->ext.p_glGetPathTexGenfvNV( texCoordSet, pname, value );
-}
-
-static void WINAPI glGetPathTexGenivNV( GLenum texCoordSet, GLenum pname, GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texCoordSet, pname, value );
-  funcs->ext.p_glGetPathTexGenivNV( texCoordSet, pname, value );
-}
-
-static void WINAPI glGetPerfCounterInfoINTEL( GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d, %p, %p, %p, %p, %p, %p)\n", queryId, counterId, counterNameLength, counterName, counterDescLength, counterDesc, counterOffset, counterDataSize, counterTypeEnum, counterDataTypeEnum, rawCounterMaxValue );
-  funcs->ext.p_glGetPerfCounterInfoINTEL( queryId, counterId, counterNameLength, counterName, counterDescLength, counterDesc, counterOffset, counterDataSize, counterTypeEnum, counterDataTypeEnum, rawCounterMaxValue );
-}
-
-static void WINAPI glGetPerfMonitorCounterDataAMD( GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p)\n", monitor, pname, dataSize, data, bytesWritten );
-  funcs->ext.p_glGetPerfMonitorCounterDataAMD( monitor, pname, dataSize, data, bytesWritten );
-}
-
-static void WINAPI glGetPerfMonitorCounterInfoAMD( GLuint group, GLuint counter, GLenum pname, void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", group, counter, pname, data );
-  funcs->ext.p_glGetPerfMonitorCounterInfoAMD( group, counter, pname, data );
-}
-
-static void WINAPI glGetPerfMonitorCounterStringAMD( GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p)\n", group, counter, bufSize, length, counterString );
-  funcs->ext.p_glGetPerfMonitorCounterStringAMD( group, counter, bufSize, length, counterString );
-}
-
-static void WINAPI glGetPerfMonitorCountersAMD( GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p, %d, %p)\n", group, numCounters, maxActiveCounters, counterSize, counters );
-  funcs->ext.p_glGetPerfMonitorCountersAMD( group, numCounters, maxActiveCounters, counterSize, counters );
-}
-
-static void WINAPI glGetPerfMonitorGroupStringAMD( GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", group, bufSize, length, groupString );
-  funcs->ext.p_glGetPerfMonitorGroupStringAMD( group, bufSize, length, groupString );
-}
-
-static void WINAPI glGetPerfMonitorGroupsAMD( GLint *numGroups, GLsizei groupsSize, GLuint *groups )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %d, %p)\n", numGroups, groupsSize, groups );
-  funcs->ext.p_glGetPerfMonitorGroupsAMD( numGroups, groupsSize, groups );
-}
-
-static void WINAPI glGetPerfQueryDataINTEL( GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p)\n", queryHandle, flags, dataSize, data, bytesWritten );
-  funcs->ext.p_glGetPerfQueryDataINTEL( queryHandle, flags, dataSize, data, bytesWritten );
-}
-
-static void WINAPI glGetPerfQueryIdByNameINTEL( GLchar *queryName, GLuint *queryId )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p)\n", queryName, queryId );
-  funcs->ext.p_glGetPerfQueryIdByNameINTEL( queryName, queryId );
-}
-
-static void WINAPI glGetPerfQueryInfoINTEL( GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p, %p, %p, %p)\n", queryId, queryNameLength, queryName, dataSize, noCounters, noInstances, capsMask );
-  funcs->ext.p_glGetPerfQueryInfoINTEL( queryId, queryNameLength, queryName, dataSize, noCounters, noInstances, capsMask );
-}
-
-static void WINAPI glGetPixelMapxv( GLenum map, GLint size, GLfixed *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", map, size, values );
-  funcs->ext.p_glGetPixelMapxv( map, size, values );
-}
-
-static void WINAPI glGetPixelTexGenParameterfvSGIS( GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glGetPixelTexGenParameterfvSGIS( pname, params );
-}
-
-static void WINAPI glGetPixelTexGenParameterivSGIS( GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glGetPixelTexGenParameterivSGIS( pname, params );
-}
-
-static void WINAPI glGetPixelTransformParameterfvEXT( GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetPixelTransformParameterfvEXT( target, pname, params );
-}
-
-static void WINAPI glGetPixelTransformParameterivEXT( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetPixelTransformParameterivEXT( target, pname, params );
-}
-
-static void WINAPI glGetPointerIndexedvEXT( GLenum target, GLuint index, void **data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, data );
-  funcs->ext.p_glGetPointerIndexedvEXT( target, index, data );
-}
-
-static void WINAPI glGetPointeri_vEXT( GLenum pname, GLuint index, void **params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", pname, index, params );
-  funcs->ext.p_glGetPointeri_vEXT( pname, index, params );
-}
-
-static void WINAPI glGetPointervEXT( GLenum pname, void **params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glGetPointervEXT( pname, params );
-}
-
-static void WINAPI glGetProgramBinary( GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p, %p)\n", program, bufSize, length, binaryFormat, binary );
-  funcs->ext.p_glGetProgramBinary( program, bufSize, length, binaryFormat, binary );
-}
-
-static void WINAPI glGetProgramEnvParameterIivNV( GLenum target, GLuint index, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glGetProgramEnvParameterIivNV( target, index, params );
-}
-
-static void WINAPI glGetProgramEnvParameterIuivNV( GLenum target, GLuint index, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glGetProgramEnvParameterIuivNV( target, index, params );
-}
-
-static void WINAPI glGetProgramEnvParameterdvARB( GLenum target, GLuint index, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glGetProgramEnvParameterdvARB( target, index, params );
-}
-
-static void WINAPI glGetProgramEnvParameterfvARB( GLenum target, GLuint index, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glGetProgramEnvParameterfvARB( target, index, params );
-}
-
-static void WINAPI glGetProgramInfoLog( GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", program, bufSize, length, infoLog );
-  funcs->ext.p_glGetProgramInfoLog( program, bufSize, length, infoLog );
-}
-
-static void WINAPI glGetProgramInterfaceiv( GLuint program, GLenum programInterface, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, programInterface, pname, params );
-  funcs->ext.p_glGetProgramInterfaceiv( program, programInterface, pname, params );
-}
-
-static void WINAPI glGetProgramLocalParameterIivNV( GLenum target, GLuint index, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glGetProgramLocalParameterIivNV( target, index, params );
-}
-
-static void WINAPI glGetProgramLocalParameterIuivNV( GLenum target, GLuint index, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glGetProgramLocalParameterIuivNV( target, index, params );
-}
-
-static void WINAPI glGetProgramLocalParameterdvARB( GLenum target, GLuint index, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glGetProgramLocalParameterdvARB( target, index, params );
-}
-
-static void WINAPI glGetProgramLocalParameterfvARB( GLenum target, GLuint index, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glGetProgramLocalParameterfvARB( target, index, params );
-}
-
-static void WINAPI glGetProgramNamedParameterdvNV( GLuint id, GLsizei len, const GLubyte *name, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", id, len, name, params );
-  funcs->ext.p_glGetProgramNamedParameterdvNV( id, len, name, params );
-}
-
-static void WINAPI glGetProgramNamedParameterfvNV( GLuint id, GLsizei len, const GLubyte *name, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", id, len, name, params );
-  funcs->ext.p_glGetProgramNamedParameterfvNV( id, len, name, params );
-}
-
-static void WINAPI glGetProgramParameterdvNV( GLenum target, GLuint index, GLenum pname, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, index, pname, params );
-  funcs->ext.p_glGetProgramParameterdvNV( target, index, pname, params );
-}
-
-static void WINAPI glGetProgramParameterfvNV( GLenum target, GLuint index, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, index, pname, params );
-  funcs->ext.p_glGetProgramParameterfvNV( target, index, pname, params );
-}
-
-static void WINAPI glGetProgramPipelineInfoLog( GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", pipeline, bufSize, length, infoLog );
-  funcs->ext.p_glGetProgramPipelineInfoLog( pipeline, bufSize, length, infoLog );
-}
-
-static void WINAPI glGetProgramPipelineiv( GLuint pipeline, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", pipeline, pname, params );
-  funcs->ext.p_glGetProgramPipelineiv( pipeline, pname, params );
-}
-
-static GLuint WINAPI glGetProgramResourceIndex( GLuint program, GLenum programInterface, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, programInterface, name );
-  return funcs->ext.p_glGetProgramResourceIndex( program, programInterface, name );
-}
-
-static GLint WINAPI glGetProgramResourceLocation( GLuint program, GLenum programInterface, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, programInterface, name );
-  return funcs->ext.p_glGetProgramResourceLocation( program, programInterface, name );
-}
-
-static GLint WINAPI glGetProgramResourceLocationIndex( GLuint program, GLenum programInterface, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, programInterface, name );
-  return funcs->ext.p_glGetProgramResourceLocationIndex( program, programInterface, name );
-}
-
-static void WINAPI glGetProgramResourceName( GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p, %p)\n", program, programInterface, index, bufSize, length, name );
-  funcs->ext.p_glGetProgramResourceName( program, programInterface, index, bufSize, length, name );
-}
-
-static void WINAPI glGetProgramResourcefvNV( GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p, %d, %p, %p)\n", program, programInterface, index, propCount, props, count, length, params );
-  funcs->ext.p_glGetProgramResourcefvNV( program, programInterface, index, propCount, props, count, length, params );
-}
-
-static void WINAPI glGetProgramResourceiv( GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p, %d, %p, %p)\n", program, programInterface, index, propCount, props, count, length, params );
-  funcs->ext.p_glGetProgramResourceiv( program, programInterface, index, propCount, props, count, length, params );
-}
-
-static void WINAPI glGetProgramStageiv( GLuint program, GLenum shadertype, GLenum pname, GLint *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, shadertype, pname, values );
-  funcs->ext.p_glGetProgramStageiv( program, shadertype, pname, values );
-}
-
-static void WINAPI glGetProgramStringARB( GLenum target, GLenum pname, void *string )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, string );
-  funcs->ext.p_glGetProgramStringARB( target, pname, string );
-}
-
-static void WINAPI glGetProgramStringNV( GLuint id, GLenum pname, GLubyte *program )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, program );
-  funcs->ext.p_glGetProgramStringNV( id, pname, program );
-}
-
-static void WINAPI glGetProgramSubroutineParameteruivNV( GLenum target, GLuint index, GLuint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, param );
-  funcs->ext.p_glGetProgramSubroutineParameteruivNV( target, index, param );
-}
-
-static void WINAPI glGetProgramiv( GLuint program, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, pname, params );
-  funcs->ext.p_glGetProgramiv( program, pname, params );
-}
-
-static void WINAPI glGetProgramivARB( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetProgramivARB( target, pname, params );
-}
-
-static void WINAPI glGetProgramivNV( GLuint id, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, params );
-  funcs->ext.p_glGetProgramivNV( id, pname, params );
-}
-
-static void WINAPI glGetQueryBufferObjecti64v( GLuint id, GLuint buffer, GLenum pname, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld)\n", id, buffer, pname, offset );
-  funcs->ext.p_glGetQueryBufferObjecti64v( id, buffer, pname, offset );
-}
-
-static void WINAPI glGetQueryBufferObjectiv( GLuint id, GLuint buffer, GLenum pname, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld)\n", id, buffer, pname, offset );
-  funcs->ext.p_glGetQueryBufferObjectiv( id, buffer, pname, offset );
-}
-
-static void WINAPI glGetQueryBufferObjectui64v( GLuint id, GLuint buffer, GLenum pname, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld)\n", id, buffer, pname, offset );
-  funcs->ext.p_glGetQueryBufferObjectui64v( id, buffer, pname, offset );
-}
-
-static void WINAPI glGetQueryBufferObjectuiv( GLuint id, GLuint buffer, GLenum pname, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld)\n", id, buffer, pname, offset );
-  funcs->ext.p_glGetQueryBufferObjectuiv( id, buffer, pname, offset );
-}
-
-static void WINAPI glGetQueryIndexediv( GLenum target, GLuint index, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, index, pname, params );
-  funcs->ext.p_glGetQueryIndexediv( target, index, pname, params );
-}
-
-static void WINAPI glGetQueryObjecti64v( GLuint id, GLenum pname, GLint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, params );
-  funcs->ext.p_glGetQueryObjecti64v( id, pname, params );
-}
-
-static void WINAPI glGetQueryObjecti64vEXT( GLuint id, GLenum pname, GLint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, params );
-  funcs->ext.p_glGetQueryObjecti64vEXT( id, pname, params );
-}
-
-static void WINAPI glGetQueryObjectiv( GLuint id, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, params );
-  funcs->ext.p_glGetQueryObjectiv( id, pname, params );
-}
-
-static void WINAPI glGetQueryObjectivARB( GLuint id, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, params );
-  funcs->ext.p_glGetQueryObjectivARB( id, pname, params );
-}
-
-static void WINAPI glGetQueryObjectui64v( GLuint id, GLenum pname, GLuint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, params );
-  funcs->ext.p_glGetQueryObjectui64v( id, pname, params );
-}
-
-static void WINAPI glGetQueryObjectui64vEXT( GLuint id, GLenum pname, GLuint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, params );
-  funcs->ext.p_glGetQueryObjectui64vEXT( id, pname, params );
-}
-
-static void WINAPI glGetQueryObjectuiv( GLuint id, GLenum pname, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, params );
-  funcs->ext.p_glGetQueryObjectuiv( id, pname, params );
-}
-
-static void WINAPI glGetQueryObjectuivARB( GLuint id, GLenum pname, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, params );
-  funcs->ext.p_glGetQueryObjectuivARB( id, pname, params );
-}
-
-static void WINAPI glGetQueryiv( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetQueryiv( target, pname, params );
-}
-
-static void WINAPI glGetQueryivARB( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetQueryivARB( target, pname, params );
-}
-
-static void WINAPI glGetRenderbufferParameteriv( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetRenderbufferParameteriv( target, pname, params );
-}
-
-static void WINAPI glGetRenderbufferParameterivEXT( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetRenderbufferParameterivEXT( target, pname, params );
-}
-
-static void WINAPI glGetSamplerParameterIiv( GLuint sampler, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", sampler, pname, params );
-  funcs->ext.p_glGetSamplerParameterIiv( sampler, pname, params );
-}
-
-static void WINAPI glGetSamplerParameterIuiv( GLuint sampler, GLenum pname, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", sampler, pname, params );
-  funcs->ext.p_glGetSamplerParameterIuiv( sampler, pname, params );
-}
-
-static void WINAPI glGetSamplerParameterfv( GLuint sampler, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", sampler, pname, params );
-  funcs->ext.p_glGetSamplerParameterfv( sampler, pname, params );
-}
-
-static void WINAPI glGetSamplerParameteriv( GLuint sampler, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", sampler, pname, params );
-  funcs->ext.p_glGetSamplerParameteriv( sampler, pname, params );
-}
-
-static void WINAPI glGetSemaphoreParameterui64vEXT( GLuint semaphore, GLenum pname, GLuint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", semaphore, pname, params );
-  funcs->ext.p_glGetSemaphoreParameterui64vEXT( semaphore, pname, params );
-}
-
-static void WINAPI glGetSeparableFilter( GLenum target, GLenum format, GLenum type, void *row, void *column, void *span )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p, %p)\n", target, format, type, row, column, span );
-  funcs->ext.p_glGetSeparableFilter( target, format, type, row, column, span );
-}
-
-static void WINAPI glGetSeparableFilterEXT( GLenum target, GLenum format, GLenum type, void *row, void *column, void *span )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p, %p)\n", target, format, type, row, column, span );
-  funcs->ext.p_glGetSeparableFilterEXT( target, format, type, row, column, span );
-}
-
-static void WINAPI glGetShaderInfoLog( GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", shader, bufSize, length, infoLog );
-  funcs->ext.p_glGetShaderInfoLog( shader, bufSize, length, infoLog );
-}
-
-static void WINAPI glGetShaderPrecisionFormat( GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", shadertype, precisiontype, range, precision );
-  funcs->ext.p_glGetShaderPrecisionFormat( shadertype, precisiontype, range, precision );
-}
-
-static void WINAPI glGetShaderSource( GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", shader, bufSize, length, source );
-  funcs->ext.p_glGetShaderSource( shader, bufSize, length, source );
-}
-
-static void WINAPI glGetShaderSourceARB( GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", obj, maxLength, length, source );
-  funcs->ext.p_glGetShaderSourceARB( obj, maxLength, length, source );
-}
-
-static void WINAPI glGetShaderiv( GLuint shader, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", shader, pname, params );
-  funcs->ext.p_glGetShaderiv( shader, pname, params );
-}
-
-static void WINAPI glGetShadingRateImagePaletteNV( GLuint viewport, GLuint entry, GLenum *rate )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", viewport, entry, rate );
-  funcs->ext.p_glGetShadingRateImagePaletteNV( viewport, entry, rate );
-}
-
-static void WINAPI glGetShadingRateSampleLocationivNV( GLenum rate, GLuint samples, GLuint index, GLint *location )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", rate, samples, index, location );
-  funcs->ext.p_glGetShadingRateSampleLocationivNV( rate, samples, index, location );
-}
-
-static void WINAPI glGetSharpenTexFuncSGIS( GLenum target, GLfloat *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, points );
-  funcs->ext.p_glGetSharpenTexFuncSGIS( target, points );
-}
-
-static GLushort WINAPI glGetStageIndexNV( GLenum shadertype )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", shadertype );
-  return funcs->ext.p_glGetStageIndexNV( shadertype );
-}
-
-static GLuint WINAPI glGetSubroutineIndex( GLuint program, GLenum shadertype, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, shadertype, name );
-  return funcs->ext.p_glGetSubroutineIndex( program, shadertype, name );
-}
-
-static GLint WINAPI glGetSubroutineUniformLocation( GLuint program, GLenum shadertype, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, shadertype, name );
-  return funcs->ext.p_glGetSubroutineUniformLocation( program, shadertype, name );
-}
-
-static void WINAPI glGetSynciv( GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %d, %d, %p, %p)\n", sync, pname, count, length, values );
-  funcs->ext.p_glGetSynciv( sync, pname, count, length, values );
-}
-
-static void WINAPI glGetTexBumpParameterfvATI( GLenum pname, GLfloat *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, param );
-  funcs->ext.p_glGetTexBumpParameterfvATI( pname, param );
-}
-
-static void WINAPI glGetTexBumpParameterivATI( GLenum pname, GLint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, param );
-  funcs->ext.p_glGetTexBumpParameterivATI( pname, param );
-}
-
-static void WINAPI glGetTexEnvxvOES( GLenum target, GLenum pname, GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetTexEnvxvOES( target, pname, params );
-}
-
-static void WINAPI glGetTexFilterFuncSGIS( GLenum target, GLenum filter, GLfloat *weights )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, filter, weights );
-  funcs->ext.p_glGetTexFilterFuncSGIS( target, filter, weights );
-}
-
-static void WINAPI glGetTexGenxvOES( GLenum coord, GLenum pname, GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", coord, pname, params );
-  funcs->ext.p_glGetTexGenxvOES( coord, pname, params );
-}
-
-static void WINAPI glGetTexLevelParameterxvOES( GLenum target, GLint level, GLenum pname, GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, level, pname, params );
-  funcs->ext.p_glGetTexLevelParameterxvOES( target, level, pname, params );
-}
-
-static void WINAPI glGetTexParameterIiv( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetTexParameterIiv( target, pname, params );
-}
-
-static void WINAPI glGetTexParameterIivEXT( GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetTexParameterIivEXT( target, pname, params );
-}
-
-static void WINAPI glGetTexParameterIuiv( GLenum target, GLenum pname, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetTexParameterIuiv( target, pname, params );
-}
-
-static void WINAPI glGetTexParameterIuivEXT( GLenum target, GLenum pname, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetTexParameterIuivEXT( target, pname, params );
-}
-
-static void WINAPI glGetTexParameterPointervAPPLE( GLenum target, GLenum pname, void **params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetTexParameterPointervAPPLE( target, pname, params );
-}
-
-static void WINAPI glGetTexParameterxvOES( GLenum target, GLenum pname, GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glGetTexParameterxvOES( target, pname, params );
-}
-
-static GLuint64 WINAPI glGetTextureHandleARB( GLuint texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", texture );
-  return funcs->ext.p_glGetTextureHandleARB( texture );
-}
-
-static GLuint64 WINAPI glGetTextureHandleNV( GLuint texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", texture );
-  return funcs->ext.p_glGetTextureHandleNV( texture );
-}
-
-static void WINAPI glGetTextureImage( GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", texture, level, format, type, bufSize, pixels );
-  funcs->ext.p_glGetTextureImage( texture, level, format, type, bufSize, pixels );
-}
-
-static void WINAPI glGetTextureImageEXT( GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", texture, target, level, format, type, pixels );
-  funcs->ext.p_glGetTextureImageEXT( texture, target, level, format, type, pixels );
-}
-
-static void WINAPI glGetTextureLevelParameterfv( GLuint texture, GLint level, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texture, level, pname, params );
-  funcs->ext.p_glGetTextureLevelParameterfv( texture, level, pname, params );
-}
-
-static void WINAPI glGetTextureLevelParameterfvEXT( GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", texture, target, level, pname, params );
-  funcs->ext.p_glGetTextureLevelParameterfvEXT( texture, target, level, pname, params );
-}
-
-static void WINAPI glGetTextureLevelParameteriv( GLuint texture, GLint level, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texture, level, pname, params );
-  funcs->ext.p_glGetTextureLevelParameteriv( texture, level, pname, params );
-}
-
-static void WINAPI glGetTextureLevelParameterivEXT( GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", texture, target, level, pname, params );
-  funcs->ext.p_glGetTextureLevelParameterivEXT( texture, target, level, pname, params );
-}
-
-static void WINAPI glGetTextureParameterIiv( GLuint texture, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texture, pname, params );
-  funcs->ext.p_glGetTextureParameterIiv( texture, pname, params );
-}
-
-static void WINAPI glGetTextureParameterIivEXT( GLuint texture, GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texture, target, pname, params );
-  funcs->ext.p_glGetTextureParameterIivEXT( texture, target, pname, params );
-}
-
-static void WINAPI glGetTextureParameterIuiv( GLuint texture, GLenum pname, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texture, pname, params );
-  funcs->ext.p_glGetTextureParameterIuiv( texture, pname, params );
-}
-
-static void WINAPI glGetTextureParameterIuivEXT( GLuint texture, GLenum target, GLenum pname, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texture, target, pname, params );
-  funcs->ext.p_glGetTextureParameterIuivEXT( texture, target, pname, params );
-}
-
-static void WINAPI glGetTextureParameterfv( GLuint texture, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texture, pname, params );
-  funcs->ext.p_glGetTextureParameterfv( texture, pname, params );
-}
-
-static void WINAPI glGetTextureParameterfvEXT( GLuint texture, GLenum target, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texture, target, pname, params );
-  funcs->ext.p_glGetTextureParameterfvEXT( texture, target, pname, params );
-}
-
-static void WINAPI glGetTextureParameteriv( GLuint texture, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texture, pname, params );
-  funcs->ext.p_glGetTextureParameteriv( texture, pname, params );
-}
-
-static void WINAPI glGetTextureParameterivEXT( GLuint texture, GLenum target, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texture, target, pname, params );
-  funcs->ext.p_glGetTextureParameterivEXT( texture, target, pname, params );
-}
-
-static GLuint64 WINAPI glGetTextureSamplerHandleARB( GLuint texture, GLuint sampler )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", texture, sampler );
-  return funcs->ext.p_glGetTextureSamplerHandleARB( texture, sampler );
-}
-
-static GLuint64 WINAPI glGetTextureSamplerHandleNV( GLuint texture, GLuint sampler )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", texture, sampler );
-  return funcs->ext.p_glGetTextureSamplerHandleNV( texture, sampler );
-}
-
-static void WINAPI glGetTextureSubImage( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bufSize, pixels );
-  funcs->ext.p_glGetTextureSubImage( texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bufSize, pixels );
-}
-
-static void WINAPI glGetTrackMatrixivNV( GLenum target, GLuint address, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, address, pname, params );
-  funcs->ext.p_glGetTrackMatrixivNV( target, address, pname, params );
-}
-
-static void WINAPI glGetTransformFeedbackVarying( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p, %p, %p)\n", program, index, bufSize, length, size, type, name );
-  funcs->ext.p_glGetTransformFeedbackVarying( program, index, bufSize, length, size, type, name );
-}
-
-static void WINAPI glGetTransformFeedbackVaryingEXT( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p, %p, %p)\n", program, index, bufSize, length, size, type, name );
-  funcs->ext.p_glGetTransformFeedbackVaryingEXT( program, index, bufSize, length, size, type, name );
-}
-
-static void WINAPI glGetTransformFeedbackVaryingNV( GLuint program, GLuint index, GLint *location )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, index, location );
-  funcs->ext.p_glGetTransformFeedbackVaryingNV( program, index, location );
-}
-
-static void WINAPI glGetTransformFeedbacki64_v( GLuint xfb, GLenum pname, GLuint index, GLint64 *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", xfb, pname, index, param );
-  funcs->ext.p_glGetTransformFeedbacki64_v( xfb, pname, index, param );
-}
-
-static void WINAPI glGetTransformFeedbacki_v( GLuint xfb, GLenum pname, GLuint index, GLint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", xfb, pname, index, param );
-  funcs->ext.p_glGetTransformFeedbacki_v( xfb, pname, index, param );
-}
-
-static void WINAPI glGetTransformFeedbackiv( GLuint xfb, GLenum pname, GLint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", xfb, pname, param );
-  funcs->ext.p_glGetTransformFeedbackiv( xfb, pname, param );
-}
-
-static GLuint WINAPI glGetUniformBlockIndex( GLuint program, const GLchar *uniformBlockName )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", program, uniformBlockName );
-  return funcs->ext.p_glGetUniformBlockIndex( program, uniformBlockName );
-}
-
-static GLint WINAPI glGetUniformBufferSizeEXT( GLuint program, GLint location )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", program, location );
-  return funcs->ext.p_glGetUniformBufferSizeEXT( program, location );
-}
-
-static void WINAPI glGetUniformIndices( GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", program, uniformCount, uniformNames, uniformIndices );
-  funcs->ext.p_glGetUniformIndices( program, uniformCount, uniformNames, uniformIndices );
-}
-
-static GLint WINAPI glGetUniformLocation( GLuint program, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", program, name );
-  return funcs->ext.p_glGetUniformLocation( program, name );
-}
-
-static GLint WINAPI glGetUniformLocationARB( GLhandleARB programObj, const GLcharARB *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", programObj, name );
-  return funcs->ext.p_glGetUniformLocationARB( programObj, name );
-}
-
-static GLintptr WINAPI glGetUniformOffsetEXT( GLuint program, GLint location )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", program, location );
-  return funcs->ext.p_glGetUniformOffsetEXT( program, location );
-}
-
-static void WINAPI glGetUniformSubroutineuiv( GLenum shadertype, GLint location, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", shadertype, location, params );
-  funcs->ext.p_glGetUniformSubroutineuiv( shadertype, location, params );
-}
-
-static void WINAPI glGetUniformdv( GLuint program, GLint location, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, location, params );
-  funcs->ext.p_glGetUniformdv( program, location, params );
-}
-
-static void WINAPI glGetUniformfv( GLuint program, GLint location, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, location, params );
-  funcs->ext.p_glGetUniformfv( program, location, params );
-}
-
-static void WINAPI glGetUniformfvARB( GLhandleARB programObj, GLint location, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", programObj, location, params );
-  funcs->ext.p_glGetUniformfvARB( programObj, location, params );
-}
-
-static void WINAPI glGetUniformi64vARB( GLuint program, GLint location, GLint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, location, params );
-  funcs->ext.p_glGetUniformi64vARB( program, location, params );
-}
-
-static void WINAPI glGetUniformi64vNV( GLuint program, GLint location, GLint64EXT *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, location, params );
-  funcs->ext.p_glGetUniformi64vNV( program, location, params );
-}
-
-static void WINAPI glGetUniformiv( GLuint program, GLint location, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, location, params );
-  funcs->ext.p_glGetUniformiv( program, location, params );
-}
-
-static void WINAPI glGetUniformivARB( GLhandleARB programObj, GLint location, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", programObj, location, params );
-  funcs->ext.p_glGetUniformivARB( programObj, location, params );
-}
-
-static void WINAPI glGetUniformui64vARB( GLuint program, GLint location, GLuint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, location, params );
-  funcs->ext.p_glGetUniformui64vARB( program, location, params );
-}
-
-static void WINAPI glGetUniformui64vNV( GLuint program, GLint location, GLuint64EXT *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, location, params );
-  funcs->ext.p_glGetUniformui64vNV( program, location, params );
-}
-
-static void WINAPI glGetUniformuiv( GLuint program, GLint location, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, location, params );
-  funcs->ext.p_glGetUniformuiv( program, location, params );
-}
-
-static void WINAPI glGetUniformuivEXT( GLuint program, GLint location, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", program, location, params );
-  funcs->ext.p_glGetUniformuivEXT( program, location, params );
-}
-
-static void WINAPI glGetUnsignedBytei_vEXT( GLenum target, GLuint index, GLubyte *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, data );
-  funcs->ext.p_glGetUnsignedBytei_vEXT( target, index, data );
-}
-
-static void WINAPI glGetUnsignedBytevEXT( GLenum pname, GLubyte *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, data );
-  funcs->ext.p_glGetUnsignedBytevEXT( pname, data );
-}
-
-static void WINAPI glGetVariantArrayObjectfvATI( GLuint id, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, params );
-  funcs->ext.p_glGetVariantArrayObjectfvATI( id, pname, params );
-}
-
-static void WINAPI glGetVariantArrayObjectivATI( GLuint id, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, pname, params );
-  funcs->ext.p_glGetVariantArrayObjectivATI( id, pname, params );
-}
-
-static void WINAPI glGetVariantBooleanvEXT( GLuint id, GLenum value, GLboolean *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, value, data );
-  funcs->ext.p_glGetVariantBooleanvEXT( id, value, data );
-}
-
-static void WINAPI glGetVariantFloatvEXT( GLuint id, GLenum value, GLfloat *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, value, data );
-  funcs->ext.p_glGetVariantFloatvEXT( id, value, data );
-}
-
-static void WINAPI glGetVariantIntegervEXT( GLuint id, GLenum value, GLint *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, value, data );
-  funcs->ext.p_glGetVariantIntegervEXT( id, value, data );
-}
-
-static void WINAPI glGetVariantPointervEXT( GLuint id, GLenum value, void **data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, value, data );
-  funcs->ext.p_glGetVariantPointervEXT( id, value, data );
-}
-
-static GLint WINAPI glGetVaryingLocationNV( GLuint program, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", program, name );
-  return funcs->ext.p_glGetVaryingLocationNV( program, name );
-}
-
-static void WINAPI glGetVertexArrayIndexed64iv( GLuint vaobj, GLuint index, GLenum pname, GLint64 *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", vaobj, index, pname, param );
-  funcs->ext.p_glGetVertexArrayIndexed64iv( vaobj, index, pname, param );
-}
-
-static void WINAPI glGetVertexArrayIndexediv( GLuint vaobj, GLuint index, GLenum pname, GLint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", vaobj, index, pname, param );
-  funcs->ext.p_glGetVertexArrayIndexediv( vaobj, index, pname, param );
-}
-
-static void WINAPI glGetVertexArrayIntegeri_vEXT( GLuint vaobj, GLuint index, GLenum pname, GLint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", vaobj, index, pname, param );
-  funcs->ext.p_glGetVertexArrayIntegeri_vEXT( vaobj, index, pname, param );
-}
-
-static void WINAPI glGetVertexArrayIntegervEXT( GLuint vaobj, GLenum pname, GLint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", vaobj, pname, param );
-  funcs->ext.p_glGetVertexArrayIntegervEXT( vaobj, pname, param );
-}
-
-static void WINAPI glGetVertexArrayPointeri_vEXT( GLuint vaobj, GLuint index, GLenum pname, void **param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", vaobj, index, pname, param );
-  funcs->ext.p_glGetVertexArrayPointeri_vEXT( vaobj, index, pname, param );
-}
-
-static void WINAPI glGetVertexArrayPointervEXT( GLuint vaobj, GLenum pname, void **param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", vaobj, pname, param );
-  funcs->ext.p_glGetVertexArrayPointervEXT( vaobj, pname, param );
-}
-
-static void WINAPI glGetVertexArrayiv( GLuint vaobj, GLenum pname, GLint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", vaobj, pname, param );
-  funcs->ext.p_glGetVertexArrayiv( vaobj, pname, param );
-}
-
-static void WINAPI glGetVertexAttribArrayObjectfvATI( GLuint index, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribArrayObjectfvATI( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribArrayObjectivATI( GLuint index, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribArrayObjectivATI( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribIiv( GLuint index, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribIiv( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribIivEXT( GLuint index, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribIivEXT( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribIuiv( GLuint index, GLenum pname, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribIuiv( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribIuivEXT( GLuint index, GLenum pname, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribIuivEXT( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribLdv( GLuint index, GLenum pname, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribLdv( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribLdvEXT( GLuint index, GLenum pname, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribLdvEXT( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribLi64vNV( GLuint index, GLenum pname, GLint64EXT *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribLi64vNV( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribLui64vARB( GLuint index, GLenum pname, GLuint64EXT *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribLui64vARB( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribLui64vNV( GLuint index, GLenum pname, GLuint64EXT *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribLui64vNV( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribPointerv( GLuint index, GLenum pname, void **pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, pointer );
-  funcs->ext.p_glGetVertexAttribPointerv( index, pname, pointer );
-}
-
-static void WINAPI glGetVertexAttribPointervARB( GLuint index, GLenum pname, void **pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, pointer );
-  funcs->ext.p_glGetVertexAttribPointervARB( index, pname, pointer );
-}
-
-static void WINAPI glGetVertexAttribPointervNV( GLuint index, GLenum pname, void **pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, pointer );
-  funcs->ext.p_glGetVertexAttribPointervNV( index, pname, pointer );
-}
-
-static void WINAPI glGetVertexAttribdv( GLuint index, GLenum pname, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribdv( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribdvARB( GLuint index, GLenum pname, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribdvARB( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribdvNV( GLuint index, GLenum pname, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribdvNV( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribfv( GLuint index, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribfv( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribfvARB( GLuint index, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribfvARB( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribfvNV( GLuint index, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribfvNV( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribiv( GLuint index, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribiv( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribivARB( GLuint index, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribivARB( index, pname, params );
-}
-
-static void WINAPI glGetVertexAttribivNV( GLuint index, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, pname, params );
-  funcs->ext.p_glGetVertexAttribivNV( index, pname, params );
-}
-
-static void WINAPI glGetVideoCaptureStreamdvNV( GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", video_capture_slot, stream, pname, params );
-  funcs->ext.p_glGetVideoCaptureStreamdvNV( video_capture_slot, stream, pname, params );
-}
-
-static void WINAPI glGetVideoCaptureStreamfvNV( GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", video_capture_slot, stream, pname, params );
-  funcs->ext.p_glGetVideoCaptureStreamfvNV( video_capture_slot, stream, pname, params );
-}
-
-static void WINAPI glGetVideoCaptureStreamivNV( GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", video_capture_slot, stream, pname, params );
-  funcs->ext.p_glGetVideoCaptureStreamivNV( video_capture_slot, stream, pname, params );
-}
-
-static void WINAPI glGetVideoCaptureivNV( GLuint video_capture_slot, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", video_capture_slot, pname, params );
-  funcs->ext.p_glGetVideoCaptureivNV( video_capture_slot, pname, params );
-}
-
-static void WINAPI glGetVideoi64vNV( GLuint video_slot, GLenum pname, GLint64EXT *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", video_slot, pname, params );
-  funcs->ext.p_glGetVideoi64vNV( video_slot, pname, params );
-}
-
-static void WINAPI glGetVideoivNV( GLuint video_slot, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", video_slot, pname, params );
-  funcs->ext.p_glGetVideoivNV( video_slot, pname, params );
-}
-
-static void WINAPI glGetVideoui64vNV( GLuint video_slot, GLenum pname, GLuint64EXT *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", video_slot, pname, params );
-  funcs->ext.p_glGetVideoui64vNV( video_slot, pname, params );
-}
-
-static void WINAPI glGetVideouivNV( GLuint video_slot, GLenum pname, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", video_slot, pname, params );
-  funcs->ext.p_glGetVideouivNV( video_slot, pname, params );
-}
-
-static GLVULKANPROCNV WINAPI glGetVkProcAddrNV( const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", name );
-  return funcs->ext.p_glGetVkProcAddrNV( name );
-}
-
-static void WINAPI glGetnColorTable( GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, format, type, bufSize, table );
-  funcs->ext.p_glGetnColorTable( target, format, type, bufSize, table );
-}
-
-static void WINAPI glGetnColorTableARB( GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, format, type, bufSize, table );
-  funcs->ext.p_glGetnColorTableARB( target, format, type, bufSize, table );
-}
-
-static void WINAPI glGetnCompressedTexImage( GLenum target, GLint lod, GLsizei bufSize, void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, lod, bufSize, pixels );
-  funcs->ext.p_glGetnCompressedTexImage( target, lod, bufSize, pixels );
-}
-
-static void WINAPI glGetnCompressedTexImageARB( GLenum target, GLint lod, GLsizei bufSize, void *img )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, lod, bufSize, img );
-  funcs->ext.p_glGetnCompressedTexImageARB( target, lod, bufSize, img );
-}
-
-static void WINAPI glGetnConvolutionFilter( GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, format, type, bufSize, image );
-  funcs->ext.p_glGetnConvolutionFilter( target, format, type, bufSize, image );
-}
-
-static void WINAPI glGetnConvolutionFilterARB( GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, format, type, bufSize, image );
-  funcs->ext.p_glGetnConvolutionFilterARB( target, format, type, bufSize, image );
-}
-
-static void WINAPI glGetnHistogram( GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, reset, format, type, bufSize, values );
-  funcs->ext.p_glGetnHistogram( target, reset, format, type, bufSize, values );
-}
-
-static void WINAPI glGetnHistogramARB( GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, reset, format, type, bufSize, values );
-  funcs->ext.p_glGetnHistogramARB( target, reset, format, type, bufSize, values );
-}
-
-static void WINAPI glGetnMapdv( GLenum target, GLenum query, GLsizei bufSize, GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, query, bufSize, v );
-  funcs->ext.p_glGetnMapdv( target, query, bufSize, v );
-}
-
-static void WINAPI glGetnMapdvARB( GLenum target, GLenum query, GLsizei bufSize, GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, query, bufSize, v );
-  funcs->ext.p_glGetnMapdvARB( target, query, bufSize, v );
-}
-
-static void WINAPI glGetnMapfv( GLenum target, GLenum query, GLsizei bufSize, GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, query, bufSize, v );
-  funcs->ext.p_glGetnMapfv( target, query, bufSize, v );
-}
-
-static void WINAPI glGetnMapfvARB( GLenum target, GLenum query, GLsizei bufSize, GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, query, bufSize, v );
-  funcs->ext.p_glGetnMapfvARB( target, query, bufSize, v );
-}
-
-static void WINAPI glGetnMapiv( GLenum target, GLenum query, GLsizei bufSize, GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, query, bufSize, v );
-  funcs->ext.p_glGetnMapiv( target, query, bufSize, v );
-}
-
-static void WINAPI glGetnMapivARB( GLenum target, GLenum query, GLsizei bufSize, GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, query, bufSize, v );
-  funcs->ext.p_glGetnMapivARB( target, query, bufSize, v );
-}
-
-static void WINAPI glGetnMinmax( GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, reset, format, type, bufSize, values );
-  funcs->ext.p_glGetnMinmax( target, reset, format, type, bufSize, values );
-}
-
-static void WINAPI glGetnMinmaxARB( GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, reset, format, type, bufSize, values );
-  funcs->ext.p_glGetnMinmaxARB( target, reset, format, type, bufSize, values );
-}
-
-static void WINAPI glGetnPixelMapfv( GLenum map, GLsizei bufSize, GLfloat *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", map, bufSize, values );
-  funcs->ext.p_glGetnPixelMapfv( map, bufSize, values );
-}
-
-static void WINAPI glGetnPixelMapfvARB( GLenum map, GLsizei bufSize, GLfloat *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", map, bufSize, values );
-  funcs->ext.p_glGetnPixelMapfvARB( map, bufSize, values );
-}
-
-static void WINAPI glGetnPixelMapuiv( GLenum map, GLsizei bufSize, GLuint *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", map, bufSize, values );
-  funcs->ext.p_glGetnPixelMapuiv( map, bufSize, values );
-}
-
-static void WINAPI glGetnPixelMapuivARB( GLenum map, GLsizei bufSize, GLuint *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", map, bufSize, values );
-  funcs->ext.p_glGetnPixelMapuivARB( map, bufSize, values );
-}
-
-static void WINAPI glGetnPixelMapusv( GLenum map, GLsizei bufSize, GLushort *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", map, bufSize, values );
-  funcs->ext.p_glGetnPixelMapusv( map, bufSize, values );
-}
-
-static void WINAPI glGetnPixelMapusvARB( GLenum map, GLsizei bufSize, GLushort *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", map, bufSize, values );
-  funcs->ext.p_glGetnPixelMapusvARB( map, bufSize, values );
-}
-
-static void WINAPI glGetnPolygonStipple( GLsizei bufSize, GLubyte *pattern )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", bufSize, pattern );
-  funcs->ext.p_glGetnPolygonStipple( bufSize, pattern );
-}
-
-static void WINAPI glGetnPolygonStippleARB( GLsizei bufSize, GLubyte *pattern )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", bufSize, pattern );
-  funcs->ext.p_glGetnPolygonStippleARB( bufSize, pattern );
-}
-
-static void WINAPI glGetnSeparableFilter( GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p, %d, %p, %p)\n", target, format, type, rowBufSize, row, columnBufSize, column, span );
-  funcs->ext.p_glGetnSeparableFilter( target, format, type, rowBufSize, row, columnBufSize, column, span );
-}
-
-static void WINAPI glGetnSeparableFilterARB( GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p, %d, %p, %p)\n", target, format, type, rowBufSize, row, columnBufSize, column, span );
-  funcs->ext.p_glGetnSeparableFilterARB( target, format, type, rowBufSize, row, columnBufSize, column, span );
-}
-
-static void WINAPI glGetnTexImage( GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, level, format, type, bufSize, pixels );
-  funcs->ext.p_glGetnTexImage( target, level, format, type, bufSize, pixels );
-}
-
-static void WINAPI glGetnTexImageARB( GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", target, level, format, type, bufSize, img );
-  funcs->ext.p_glGetnTexImageARB( target, level, format, type, bufSize, img );
-}
-
-static void WINAPI glGetnUniformdv( GLuint program, GLint location, GLsizei bufSize, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, bufSize, params );
-  funcs->ext.p_glGetnUniformdv( program, location, bufSize, params );
-}
-
-static void WINAPI glGetnUniformdvARB( GLuint program, GLint location, GLsizei bufSize, GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, bufSize, params );
-  funcs->ext.p_glGetnUniformdvARB( program, location, bufSize, params );
-}
-
-static void WINAPI glGetnUniformfv( GLuint program, GLint location, GLsizei bufSize, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, bufSize, params );
-  funcs->ext.p_glGetnUniformfv( program, location, bufSize, params );
-}
-
-static void WINAPI glGetnUniformfvARB( GLuint program, GLint location, GLsizei bufSize, GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, bufSize, params );
-  funcs->ext.p_glGetnUniformfvARB( program, location, bufSize, params );
-}
-
-static void WINAPI glGetnUniformi64vARB( GLuint program, GLint location, GLsizei bufSize, GLint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, bufSize, params );
-  funcs->ext.p_glGetnUniformi64vARB( program, location, bufSize, params );
-}
-
-static void WINAPI glGetnUniformiv( GLuint program, GLint location, GLsizei bufSize, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, bufSize, params );
-  funcs->ext.p_glGetnUniformiv( program, location, bufSize, params );
-}
-
-static void WINAPI glGetnUniformivARB( GLuint program, GLint location, GLsizei bufSize, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, bufSize, params );
-  funcs->ext.p_glGetnUniformivARB( program, location, bufSize, params );
-}
-
-static void WINAPI glGetnUniformui64vARB( GLuint program, GLint location, GLsizei bufSize, GLuint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, bufSize, params );
-  funcs->ext.p_glGetnUniformui64vARB( program, location, bufSize, params );
-}
-
-static void WINAPI glGetnUniformuiv( GLuint program, GLint location, GLsizei bufSize, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, bufSize, params );
-  funcs->ext.p_glGetnUniformuiv( program, location, bufSize, params );
-}
-
-static void WINAPI glGetnUniformuivARB( GLuint program, GLint location, GLsizei bufSize, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, bufSize, params );
-  funcs->ext.p_glGetnUniformuivARB( program, location, bufSize, params );
-}
-
-static void WINAPI glGlobalAlphaFactorbSUN( GLbyte factor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", factor );
-  funcs->ext.p_glGlobalAlphaFactorbSUN( factor );
-}
-
-static void WINAPI glGlobalAlphaFactordSUN( GLdouble factor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f)\n", factor );
-  funcs->ext.p_glGlobalAlphaFactordSUN( factor );
-}
-
-static void WINAPI glGlobalAlphaFactorfSUN( GLfloat factor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f)\n", factor );
-  funcs->ext.p_glGlobalAlphaFactorfSUN( factor );
-}
-
-static void WINAPI glGlobalAlphaFactoriSUN( GLint factor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", factor );
-  funcs->ext.p_glGlobalAlphaFactoriSUN( factor );
-}
-
-static void WINAPI glGlobalAlphaFactorsSUN( GLshort factor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", factor );
-  funcs->ext.p_glGlobalAlphaFactorsSUN( factor );
-}
-
-static void WINAPI glGlobalAlphaFactorubSUN( GLubyte factor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", factor );
-  funcs->ext.p_glGlobalAlphaFactorubSUN( factor );
-}
-
-static void WINAPI glGlobalAlphaFactoruiSUN( GLuint factor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", factor );
-  funcs->ext.p_glGlobalAlphaFactoruiSUN( factor );
-}
-
-static void WINAPI glGlobalAlphaFactorusSUN( GLushort factor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", factor );
-  funcs->ext.p_glGlobalAlphaFactorusSUN( factor );
-}
-
-static void WINAPI glHintPGI( GLenum target, GLint mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, mode );
-  funcs->ext.p_glHintPGI( target, mode );
-}
-
-static void WINAPI glHistogram( GLenum target, GLsizei width, GLenum internalformat, GLboolean sink )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, width, internalformat, sink );
-  funcs->ext.p_glHistogram( target, width, internalformat, sink );
-}
-
-static void WINAPI glHistogramEXT( GLenum target, GLsizei width, GLenum internalformat, GLboolean sink )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, width, internalformat, sink );
-  funcs->ext.p_glHistogramEXT( target, width, internalformat, sink );
-}
-
-static void WINAPI glIglooInterfaceSGIX( GLenum pname, const void *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glIglooInterfaceSGIX( pname, params );
-}
-
-static void WINAPI glImageTransformParameterfHP( GLenum target, GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", target, pname, param );
-  funcs->ext.p_glImageTransformParameterfHP( target, pname, param );
-}
-
-static void WINAPI glImageTransformParameterfvHP( GLenum target, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glImageTransformParameterfvHP( target, pname, params );
-}
-
-static void WINAPI glImageTransformParameteriHP( GLenum target, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, pname, param );
-  funcs->ext.p_glImageTransformParameteriHP( target, pname, param );
-}
-
-static void WINAPI glImageTransformParameterivHP( GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glImageTransformParameterivHP( target, pname, params );
-}
-
-static void WINAPI glImportMemoryFdEXT( GLuint memory, GLuint64 size, GLenum handleType, GLint fd )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %d, %d)\n", memory, wine_dbgstr_longlong(size), handleType, fd );
-  funcs->ext.p_glImportMemoryFdEXT( memory, size, handleType, fd );
-}
-
-static void WINAPI glImportMemoryWin32HandleEXT( GLuint memory, GLuint64 size, GLenum handleType, void *handle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %d, %p)\n", memory, wine_dbgstr_longlong(size), handleType, handle );
-  funcs->ext.p_glImportMemoryWin32HandleEXT( memory, size, handleType, handle );
-}
-
-static void WINAPI glImportMemoryWin32NameEXT( GLuint memory, GLuint64 size, GLenum handleType, const void *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %d, %p)\n", memory, wine_dbgstr_longlong(size), handleType, name );
-  funcs->ext.p_glImportMemoryWin32NameEXT( memory, size, handleType, name );
-}
-
-static void WINAPI glImportSemaphoreFdEXT( GLuint semaphore, GLenum handleType, GLint fd )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", semaphore, handleType, fd );
-  funcs->ext.p_glImportSemaphoreFdEXT( semaphore, handleType, fd );
-}
-
-static void WINAPI glImportSemaphoreWin32HandleEXT( GLuint semaphore, GLenum handleType, void *handle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", semaphore, handleType, handle );
-  funcs->ext.p_glImportSemaphoreWin32HandleEXT( semaphore, handleType, handle );
-}
-
-static void WINAPI glImportSemaphoreWin32NameEXT( GLuint semaphore, GLenum handleType, const void *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", semaphore, handleType, name );
-  funcs->ext.p_glImportSemaphoreWin32NameEXT( semaphore, handleType, name );
-}
-
-static GLsync WINAPI glImportSyncEXT( GLenum external_sync_type, GLintptr external_sync, GLbitfield flags )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %d)\n", external_sync_type, external_sync, flags );
-  return funcs->ext.p_glImportSyncEXT( external_sync_type, external_sync, flags );
-}
-
-static void WINAPI glIndexFormatNV( GLenum type, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, stride );
-  funcs->ext.p_glIndexFormatNV( type, stride );
-}
-
-static void WINAPI glIndexFuncEXT( GLenum func, GLclampf ref )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", func, ref );
-  funcs->ext.p_glIndexFuncEXT( func, ref );
-}
-
-static void WINAPI glIndexMaterialEXT( GLenum face, GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", face, mode );
-  funcs->ext.p_glIndexMaterialEXT( face, mode );
-}
-
-static void WINAPI glIndexPointerEXT( GLenum type, GLsizei stride, GLsizei count, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", type, stride, count, pointer );
-  funcs->ext.p_glIndexPointerEXT( type, stride, count, pointer );
-}
-
-static void WINAPI glIndexPointerListIBM( GLenum type, GLint stride, const void **pointer, GLint ptrstride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d)\n", type, stride, pointer, ptrstride );
-  funcs->ext.p_glIndexPointerListIBM( type, stride, pointer, ptrstride );
-}
-
-static void WINAPI glIndexxOES( GLfixed component )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", component );
-  funcs->ext.p_glIndexxOES( component );
-}
-
-static void WINAPI glIndexxvOES( const GLfixed *component )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", component );
-  funcs->ext.p_glIndexxvOES( component );
-}
-
-static void WINAPI glInsertComponentEXT( GLuint res, GLuint src, GLuint num )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", res, src, num );
-  funcs->ext.p_glInsertComponentEXT( res, src, num );
-}
-
-static void WINAPI glInsertEventMarkerEXT( GLsizei length, const GLchar *marker )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", length, marker );
-  funcs->ext.p_glInsertEventMarkerEXT( length, marker );
-}
-
-static void WINAPI glInstrumentsBufferSGIX( GLsizei size, GLint *buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", size, buffer );
-  funcs->ext.p_glInstrumentsBufferSGIX( size, buffer );
-}
-
-static void WINAPI glInterpolatePathsNV( GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %f)\n", resultPath, pathA, pathB, weight );
-  funcs->ext.p_glInterpolatePathsNV( resultPath, pathA, pathB, weight );
-}
-
-static void WINAPI glInvalidateBufferData( GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", buffer );
-  funcs->ext.p_glInvalidateBufferData( buffer );
-}
-
-static void WINAPI glInvalidateBufferSubData( GLuint buffer, GLintptr offset, GLsizeiptr length )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld)\n", buffer, offset, length );
-  funcs->ext.p_glInvalidateBufferSubData( buffer, offset, length );
-}
-
-static void WINAPI glInvalidateFramebuffer( GLenum target, GLsizei numAttachments, const GLenum *attachments )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, numAttachments, attachments );
-  funcs->ext.p_glInvalidateFramebuffer( target, numAttachments, attachments );
-}
-
-static void WINAPI glInvalidateNamedFramebufferData( GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", framebuffer, numAttachments, attachments );
-  funcs->ext.p_glInvalidateNamedFramebufferData( framebuffer, numAttachments, attachments );
-}
-
-static void WINAPI glInvalidateNamedFramebufferSubData( GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %d, %d)\n", framebuffer, numAttachments, attachments, x, y, width, height );
-  funcs->ext.p_glInvalidateNamedFramebufferSubData( framebuffer, numAttachments, attachments, x, y, width, height );
-}
-
-static void WINAPI glInvalidateSubFramebuffer( GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %d, %d)\n", target, numAttachments, attachments, x, y, width, height );
-  funcs->ext.p_glInvalidateSubFramebuffer( target, numAttachments, attachments, x, y, width, height );
-}
-
-static void WINAPI glInvalidateTexImage( GLuint texture, GLint level )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", texture, level );
-  funcs->ext.p_glInvalidateTexImage( texture, level );
-}
-
-static void WINAPI glInvalidateTexSubImage( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d)\n", texture, level, xoffset, yoffset, zoffset, width, height, depth );
-  funcs->ext.p_glInvalidateTexSubImage( texture, level, xoffset, yoffset, zoffset, width, height, depth );
-}
-
-static GLboolean WINAPI glIsAsyncMarkerSGIX( GLuint marker )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", marker );
-  return funcs->ext.p_glIsAsyncMarkerSGIX( marker );
-}
-
-static GLboolean WINAPI glIsBuffer( GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", buffer );
-  return funcs->ext.p_glIsBuffer( buffer );
-}
-
-static GLboolean WINAPI glIsBufferARB( GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", buffer );
-  return funcs->ext.p_glIsBufferARB( buffer );
-}
-
-static GLboolean WINAPI glIsBufferResidentNV( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  return funcs->ext.p_glIsBufferResidentNV( target );
-}
-
-static GLboolean WINAPI glIsCommandListNV( GLuint list )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", list );
-  return funcs->ext.p_glIsCommandListNV( list );
-}
-
-static GLboolean WINAPI glIsEnabledIndexedEXT( GLenum target, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, index );
-  return funcs->ext.p_glIsEnabledIndexedEXT( target, index );
-}
-
-static GLboolean WINAPI glIsEnabledi( GLenum target, GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, index );
-  return funcs->ext.p_glIsEnabledi( target, index );
-}
-
-static GLboolean WINAPI glIsFenceAPPLE( GLuint fence )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", fence );
-  return funcs->ext.p_glIsFenceAPPLE( fence );
-}
-
-static GLboolean WINAPI glIsFenceNV( GLuint fence )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", fence );
-  return funcs->ext.p_glIsFenceNV( fence );
-}
-
-static GLboolean WINAPI glIsFramebuffer( GLuint framebuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", framebuffer );
-  return funcs->ext.p_glIsFramebuffer( framebuffer );
-}
-
-static GLboolean WINAPI glIsFramebufferEXT( GLuint framebuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", framebuffer );
-  return funcs->ext.p_glIsFramebufferEXT( framebuffer );
-}
-
-static GLboolean WINAPI glIsImageHandleResidentARB( GLuint64 handle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s)\n", wine_dbgstr_longlong(handle) );
-  return funcs->ext.p_glIsImageHandleResidentARB( handle );
-}
-
-static GLboolean WINAPI glIsImageHandleResidentNV( GLuint64 handle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s)\n", wine_dbgstr_longlong(handle) );
-  return funcs->ext.p_glIsImageHandleResidentNV( handle );
-}
-
-static GLboolean WINAPI glIsMemoryObjectEXT( GLuint memoryObject )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", memoryObject );
-  return funcs->ext.p_glIsMemoryObjectEXT( memoryObject );
-}
-
-static GLboolean WINAPI glIsNameAMD( GLenum identifier, GLuint name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", identifier, name );
-  return funcs->ext.p_glIsNameAMD( identifier, name );
-}
-
-static GLboolean WINAPI glIsNamedBufferResidentNV( GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", buffer );
-  return funcs->ext.p_glIsNamedBufferResidentNV( buffer );
-}
-
-static GLboolean WINAPI glIsNamedStringARB( GLint namelen, const GLchar *name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", namelen, name );
-  return funcs->ext.p_glIsNamedStringARB( namelen, name );
-}
-
-static GLboolean WINAPI glIsObjectBufferATI( GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", buffer );
-  return funcs->ext.p_glIsObjectBufferATI( buffer );
-}
-
-static GLboolean WINAPI glIsOcclusionQueryNV( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  return funcs->ext.p_glIsOcclusionQueryNV( id );
-}
-
-static GLboolean WINAPI glIsPathNV( GLuint path )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", path );
-  return funcs->ext.p_glIsPathNV( path );
-}
-
-static GLboolean WINAPI glIsPointInFillPathNV( GLuint path, GLuint mask, GLfloat x, GLfloat y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f)\n", path, mask, x, y );
-  return funcs->ext.p_glIsPointInFillPathNV( path, mask, x, y );
-}
-
-static GLboolean WINAPI glIsPointInStrokePathNV( GLuint path, GLfloat x, GLfloat y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", path, x, y );
-  return funcs->ext.p_glIsPointInStrokePathNV( path, x, y );
-}
-
-static GLboolean WINAPI glIsProgram( GLuint program )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", program );
-  return funcs->ext.p_glIsProgram( program );
-}
-
-static GLboolean WINAPI glIsProgramARB( GLuint program )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", program );
-  return funcs->ext.p_glIsProgramARB( program );
-}
-
-static GLboolean WINAPI glIsProgramNV( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  return funcs->ext.p_glIsProgramNV( id );
-}
-
-static GLboolean WINAPI glIsProgramPipeline( GLuint pipeline )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", pipeline );
-  return funcs->ext.p_glIsProgramPipeline( pipeline );
-}
-
-static GLboolean WINAPI glIsQuery( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  return funcs->ext.p_glIsQuery( id );
-}
-
-static GLboolean WINAPI glIsQueryARB( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  return funcs->ext.p_glIsQueryARB( id );
-}
-
-static GLboolean WINAPI glIsRenderbuffer( GLuint renderbuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", renderbuffer );
-  return funcs->ext.p_glIsRenderbuffer( renderbuffer );
-}
-
-static GLboolean WINAPI glIsRenderbufferEXT( GLuint renderbuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", renderbuffer );
-  return funcs->ext.p_glIsRenderbufferEXT( renderbuffer );
-}
-
-static GLboolean WINAPI glIsSampler( GLuint sampler )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", sampler );
-  return funcs->ext.p_glIsSampler( sampler );
-}
-
-static GLboolean WINAPI glIsSemaphoreEXT( GLuint semaphore )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", semaphore );
-  return funcs->ext.p_glIsSemaphoreEXT( semaphore );
-}
-
-static GLboolean WINAPI glIsShader( GLuint shader )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", shader );
-  return funcs->ext.p_glIsShader( shader );
-}
-
-static GLboolean WINAPI glIsStateNV( GLuint state )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", state );
-  return funcs->ext.p_glIsStateNV( state );
-}
-
-static GLboolean WINAPI glIsSync( GLsync sync )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", sync );
-  return funcs->ext.p_glIsSync( sync );
-}
-
-static GLboolean WINAPI glIsTextureEXT( GLuint texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", texture );
-  return funcs->ext.p_glIsTextureEXT( texture );
-}
-
-static GLboolean WINAPI glIsTextureHandleResidentARB( GLuint64 handle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s)\n", wine_dbgstr_longlong(handle) );
-  return funcs->ext.p_glIsTextureHandleResidentARB( handle );
-}
-
-static GLboolean WINAPI glIsTextureHandleResidentNV( GLuint64 handle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s)\n", wine_dbgstr_longlong(handle) );
-  return funcs->ext.p_glIsTextureHandleResidentNV( handle );
-}
-
-static GLboolean WINAPI glIsTransformFeedback( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  return funcs->ext.p_glIsTransformFeedback( id );
-}
-
-static GLboolean WINAPI glIsTransformFeedbackNV( GLuint id )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", id );
-  return funcs->ext.p_glIsTransformFeedbackNV( id );
-}
-
-static GLboolean WINAPI glIsVariantEnabledEXT( GLuint id, GLenum cap )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", id, cap );
-  return funcs->ext.p_glIsVariantEnabledEXT( id, cap );
-}
-
-static GLboolean WINAPI glIsVertexArray( GLuint array )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", array );
-  return funcs->ext.p_glIsVertexArray( array );
-}
-
-static GLboolean WINAPI glIsVertexArrayAPPLE( GLuint array )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", array );
-  return funcs->ext.p_glIsVertexArrayAPPLE( array );
-}
-
-static GLboolean WINAPI glIsVertexAttribEnabledAPPLE( GLuint index, GLenum pname )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, pname );
-  return funcs->ext.p_glIsVertexAttribEnabledAPPLE( index, pname );
-}
-
-static void WINAPI glLGPUCopyImageSubDataNVX( GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", sourceGpu, destinationGpuMask, srcName, srcTarget, srcLevel, srcX, srxY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth );
-  funcs->ext.p_glLGPUCopyImageSubDataNVX( sourceGpu, destinationGpuMask, srcName, srcTarget, srcLevel, srcX, srxY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth );
-}
-
-static void WINAPI glLGPUInterlockNVX(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glLGPUInterlockNVX();
-}
-
-static void WINAPI glLGPUNamedBufferSubDataNVX( GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %ld, %ld, %p)\n", gpuMask, buffer, offset, size, data );
-  funcs->ext.p_glLGPUNamedBufferSubDataNVX( gpuMask, buffer, offset, size, data );
-}
-
-static void WINAPI glLabelObjectEXT( GLenum type, GLuint object, GLsizei length, const GLchar *label )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", type, object, length, label );
-  funcs->ext.p_glLabelObjectEXT( type, object, length, label );
-}
-
-static void WINAPI glLightEnviSGIX( GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glLightEnviSGIX( pname, param );
-}
-
-static void WINAPI glLightModelxOES( GLenum pname, GLfixed param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glLightModelxOES( pname, param );
-}
-
-static void WINAPI glLightModelxvOES( GLenum pname, const GLfixed *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, param );
-  funcs->ext.p_glLightModelxvOES( pname, param );
-}
-
-static void WINAPI glLightxOES( GLenum light, GLenum pname, GLfixed param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", light, pname, param );
-  funcs->ext.p_glLightxOES( light, pname, param );
-}
-
-static void WINAPI glLightxvOES( GLenum light, GLenum pname, const GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", light, pname, params );
-  funcs->ext.p_glLightxvOES( light, pname, params );
-}
-
-static void WINAPI glLineWidthxOES( GLfixed width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", width );
-  funcs->ext.p_glLineWidthxOES( width );
-}
-
-static void WINAPI glLinkProgram( GLuint program )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", program );
-  funcs->ext.p_glLinkProgram( program );
-}
-
-static void WINAPI glLinkProgramARB( GLhandleARB programObj )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", programObj );
-  funcs->ext.p_glLinkProgramARB( programObj );
-}
-
-static void WINAPI glListDrawCommandsStatesClientNV( GLuint list, GLuint segment, const void **indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p, %p, %p, %d)\n", list, segment, indirects, sizes, states, fbos, count );
-  funcs->ext.p_glListDrawCommandsStatesClientNV( list, segment, indirects, sizes, states, fbos, count );
-}
-
-static void WINAPI glListParameterfSGIX( GLuint list, GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", list, pname, param );
-  funcs->ext.p_glListParameterfSGIX( list, pname, param );
-}
-
-static void WINAPI glListParameterfvSGIX( GLuint list, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", list, pname, params );
-  funcs->ext.p_glListParameterfvSGIX( list, pname, params );
-}
-
-static void WINAPI glListParameteriSGIX( GLuint list, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", list, pname, param );
-  funcs->ext.p_glListParameteriSGIX( list, pname, param );
-}
-
-static void WINAPI glListParameterivSGIX( GLuint list, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", list, pname, params );
-  funcs->ext.p_glListParameterivSGIX( list, pname, params );
-}
-
-static void WINAPI glLoadIdentityDeformationMapSGIX( GLbitfield mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mask );
-  funcs->ext.p_glLoadIdentityDeformationMapSGIX( mask );
-}
-
-static void WINAPI glLoadMatrixxOES( const GLfixed *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", m );
-  funcs->ext.p_glLoadMatrixxOES( m );
-}
-
-static void WINAPI glLoadProgramNV( GLenum target, GLuint id, GLsizei len, const GLubyte *program )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, id, len, program );
-  funcs->ext.p_glLoadProgramNV( target, id, len, program );
-}
-
-static void WINAPI glLoadTransposeMatrixd( const GLdouble *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", m );
-  funcs->ext.p_glLoadTransposeMatrixd( m );
-}
-
-static void WINAPI glLoadTransposeMatrixdARB( const GLdouble *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", m );
-  funcs->ext.p_glLoadTransposeMatrixdARB( m );
-}
-
-static void WINAPI glLoadTransposeMatrixf( const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", m );
-  funcs->ext.p_glLoadTransposeMatrixf( m );
-}
-
-static void WINAPI glLoadTransposeMatrixfARB( const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", m );
-  funcs->ext.p_glLoadTransposeMatrixfARB( m );
-}
-
-static void WINAPI glLoadTransposeMatrixxOES( const GLfixed *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", m );
-  funcs->ext.p_glLoadTransposeMatrixxOES( m );
-}
-
-static void WINAPI glLockArraysEXT( GLint first, GLsizei count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", first, count );
-  funcs->ext.p_glLockArraysEXT( first, count );
-}
-
-static void WINAPI glMTexCoord2fSGIS( GLenum target, GLfloat s, GLfloat t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", target, s, t );
-  funcs->ext.p_glMTexCoord2fSGIS( target, s, t );
-}
-
-static void WINAPI glMTexCoord2fvSGIS( GLenum target, GLfloat * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMTexCoord2fvSGIS( target, v );
-}
-
-static void WINAPI glMakeBufferNonResidentNV( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  funcs->ext.p_glMakeBufferNonResidentNV( target );
-}
-
-static void WINAPI glMakeBufferResidentNV( GLenum target, GLenum access )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, access );
-  funcs->ext.p_glMakeBufferResidentNV( target, access );
-}
-
-static void WINAPI glMakeImageHandleNonResidentARB( GLuint64 handle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s)\n", wine_dbgstr_longlong(handle) );
-  funcs->ext.p_glMakeImageHandleNonResidentARB( handle );
-}
-
-static void WINAPI glMakeImageHandleNonResidentNV( GLuint64 handle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s)\n", wine_dbgstr_longlong(handle) );
-  funcs->ext.p_glMakeImageHandleNonResidentNV( handle );
-}
-
-static void WINAPI glMakeImageHandleResidentARB( GLuint64 handle, GLenum access )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s, %d)\n", wine_dbgstr_longlong(handle), access );
-  funcs->ext.p_glMakeImageHandleResidentARB( handle, access );
-}
-
-static void WINAPI glMakeImageHandleResidentNV( GLuint64 handle, GLenum access )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s, %d)\n", wine_dbgstr_longlong(handle), access );
-  funcs->ext.p_glMakeImageHandleResidentNV( handle, access );
-}
-
-static void WINAPI glMakeNamedBufferNonResidentNV( GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", buffer );
-  funcs->ext.p_glMakeNamedBufferNonResidentNV( buffer );
-}
-
-static void WINAPI glMakeNamedBufferResidentNV( GLuint buffer, GLenum access )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", buffer, access );
-  funcs->ext.p_glMakeNamedBufferResidentNV( buffer, access );
-}
-
-static void WINAPI glMakeTextureHandleNonResidentARB( GLuint64 handle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s)\n", wine_dbgstr_longlong(handle) );
-  funcs->ext.p_glMakeTextureHandleNonResidentARB( handle );
-}
-
-static void WINAPI glMakeTextureHandleNonResidentNV( GLuint64 handle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s)\n", wine_dbgstr_longlong(handle) );
-  funcs->ext.p_glMakeTextureHandleNonResidentNV( handle );
-}
-
-static void WINAPI glMakeTextureHandleResidentARB( GLuint64 handle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s)\n", wine_dbgstr_longlong(handle) );
-  funcs->ext.p_glMakeTextureHandleResidentARB( handle );
-}
-
-static void WINAPI glMakeTextureHandleResidentNV( GLuint64 handle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s)\n", wine_dbgstr_longlong(handle) );
-  funcs->ext.p_glMakeTextureHandleResidentNV( handle );
-}
-
-static void WINAPI glMap1xOES( GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, u1, u2, stride, order, points );
-  funcs->ext.p_glMap1xOES( target, u1, u2, stride, order, points );
-}
-
-static void WINAPI glMap2xOES( GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points );
-  funcs->ext.p_glMap2xOES( target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points );
-}
-
-static void * WINAPI glMapBuffer( GLenum target, GLenum access )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, access );
-  return funcs->ext.p_glMapBuffer( target, access );
-}
-
-static void * WINAPI glMapBufferARB( GLenum target, GLenum access )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, access );
-  return funcs->ext.p_glMapBufferARB( target, access );
-}
-
-static void * WINAPI glMapBufferRange( GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %d)\n", target, offset, length, access );
-  return funcs->ext.p_glMapBufferRange( target, offset, length, access );
-}
-
-static void WINAPI glMapControlPointsNV( GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, index, type, ustride, vstride, uorder, vorder, packed, points );
-  funcs->ext.p_glMapControlPointsNV( target, index, type, ustride, vstride, uorder, vorder, packed, points );
-}
-
-static void WINAPI glMapGrid1xOES( GLint n, GLfixed u1, GLfixed u2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", n, u1, u2 );
-  funcs->ext.p_glMapGrid1xOES( n, u1, u2 );
-}
-
-static void WINAPI glMapGrid2xOES( GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", n, u1, u2, v1, v2 );
-  funcs->ext.p_glMapGrid2xOES( n, u1, u2, v1, v2 );
-}
-
-static void * WINAPI glMapNamedBuffer( GLuint buffer, GLenum access )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", buffer, access );
-  return funcs->ext.p_glMapNamedBuffer( buffer, access );
-}
-
-static void * WINAPI glMapNamedBufferEXT( GLuint buffer, GLenum access )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", buffer, access );
-  return funcs->ext.p_glMapNamedBufferEXT( buffer, access );
-}
-
-static void * WINAPI glMapNamedBufferRange( GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %d)\n", buffer, offset, length, access );
-  return funcs->ext.p_glMapNamedBufferRange( buffer, offset, length, access );
-}
-
-static void * WINAPI glMapNamedBufferRangeEXT( GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %d)\n", buffer, offset, length, access );
-  return funcs->ext.p_glMapNamedBufferRangeEXT( buffer, offset, length, access );
-}
-
-static void * WINAPI glMapObjectBufferATI( GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", buffer );
-  return funcs->ext.p_glMapObjectBufferATI( buffer );
-}
-
-static void WINAPI glMapParameterfvNV( GLenum target, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glMapParameterfvNV( target, pname, params );
-}
-
-static void WINAPI glMapParameterivNV( GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glMapParameterivNV( target, pname, params );
-}
-
-static void * WINAPI glMapTexture2DINTEL( GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p)\n", texture, level, access, stride, layout );
-  return funcs->ext.p_glMapTexture2DINTEL( texture, level, access, stride, layout );
-}
-
-static void WINAPI glMapVertexAttrib1dAPPLE( GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %d, %d, %p)\n", index, size, u1, u2, stride, order, points );
-  funcs->ext.p_glMapVertexAttrib1dAPPLE( index, size, u1, u2, stride, order, points );
-}
-
-static void WINAPI glMapVertexAttrib1fAPPLE( GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %d, %d, %p)\n", index, size, u1, u2, stride, order, points );
-  funcs->ext.p_glMapVertexAttrib1fAPPLE( index, size, u1, u2, stride, order, points );
-}
-
-static void WINAPI glMapVertexAttrib2dAPPLE( GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %d, %d, %f, %f, %d, %d, %p)\n", index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points );
-  funcs->ext.p_glMapVertexAttrib2dAPPLE( index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points );
-}
-
-static void WINAPI glMapVertexAttrib2fAPPLE( GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %d, %d, %f, %f, %d, %d, %p)\n", index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points );
-  funcs->ext.p_glMapVertexAttrib2fAPPLE( index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points );
-}
-
-static void WINAPI glMaterialxOES( GLenum face, GLenum pname, GLfixed param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", face, pname, param );
-  funcs->ext.p_glMaterialxOES( face, pname, param );
-}
-
-static void WINAPI glMaterialxvOES( GLenum face, GLenum pname, const GLfixed *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", face, pname, param );
-  funcs->ext.p_glMaterialxvOES( face, pname, param );
-}
-
-static void WINAPI glMatrixFrustumEXT( GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f, %f, %f)\n", mode, left, right, bottom, top, zNear, zFar );
-  funcs->ext.p_glMatrixFrustumEXT( mode, left, right, bottom, top, zNear, zFar );
-}
-
-static void WINAPI glMatrixIndexPointerARB( GLint size, GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", size, type, stride, pointer );
-  funcs->ext.p_glMatrixIndexPointerARB( size, type, stride, pointer );
-}
-
-static void WINAPI glMatrixIndexubvARB( GLint size, const GLubyte *indices )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", size, indices );
-  funcs->ext.p_glMatrixIndexubvARB( size, indices );
-}
-
-static void WINAPI glMatrixIndexuivARB( GLint size, const GLuint *indices )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", size, indices );
-  funcs->ext.p_glMatrixIndexuivARB( size, indices );
-}
-
-static void WINAPI glMatrixIndexusvARB( GLint size, const GLushort *indices )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", size, indices );
-  funcs->ext.p_glMatrixIndexusvARB( size, indices );
-}
-
-static void WINAPI glMatrixLoad3x2fNV( GLenum matrixMode, const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", matrixMode, m );
-  funcs->ext.p_glMatrixLoad3x2fNV( matrixMode, m );
-}
-
-static void WINAPI glMatrixLoad3x3fNV( GLenum matrixMode, const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", matrixMode, m );
-  funcs->ext.p_glMatrixLoad3x3fNV( matrixMode, m );
-}
-
-static void WINAPI glMatrixLoadIdentityEXT( GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mode );
-  funcs->ext.p_glMatrixLoadIdentityEXT( mode );
-}
-
-static void WINAPI glMatrixLoadTranspose3x3fNV( GLenum matrixMode, const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", matrixMode, m );
-  funcs->ext.p_glMatrixLoadTranspose3x3fNV( matrixMode, m );
-}
-
-static void WINAPI glMatrixLoadTransposedEXT( GLenum mode, const GLdouble *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", mode, m );
-  funcs->ext.p_glMatrixLoadTransposedEXT( mode, m );
-}
-
-static void WINAPI glMatrixLoadTransposefEXT( GLenum mode, const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", mode, m );
-  funcs->ext.p_glMatrixLoadTransposefEXT( mode, m );
-}
-
-static void WINAPI glMatrixLoaddEXT( GLenum mode, const GLdouble *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", mode, m );
-  funcs->ext.p_glMatrixLoaddEXT( mode, m );
-}
-
-static void WINAPI glMatrixLoadfEXT( GLenum mode, const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", mode, m );
-  funcs->ext.p_glMatrixLoadfEXT( mode, m );
-}
-
-static void WINAPI glMatrixMult3x2fNV( GLenum matrixMode, const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", matrixMode, m );
-  funcs->ext.p_glMatrixMult3x2fNV( matrixMode, m );
-}
-
-static void WINAPI glMatrixMult3x3fNV( GLenum matrixMode, const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", matrixMode, m );
-  funcs->ext.p_glMatrixMult3x3fNV( matrixMode, m );
-}
-
-static void WINAPI glMatrixMultTranspose3x3fNV( GLenum matrixMode, const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", matrixMode, m );
-  funcs->ext.p_glMatrixMultTranspose3x3fNV( matrixMode, m );
-}
-
-static void WINAPI glMatrixMultTransposedEXT( GLenum mode, const GLdouble *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", mode, m );
-  funcs->ext.p_glMatrixMultTransposedEXT( mode, m );
-}
-
-static void WINAPI glMatrixMultTransposefEXT( GLenum mode, const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", mode, m );
-  funcs->ext.p_glMatrixMultTransposefEXT( mode, m );
-}
-
-static void WINAPI glMatrixMultdEXT( GLenum mode, const GLdouble *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", mode, m );
-  funcs->ext.p_glMatrixMultdEXT( mode, m );
-}
-
-static void WINAPI glMatrixMultfEXT( GLenum mode, const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", mode, m );
-  funcs->ext.p_glMatrixMultfEXT( mode, m );
-}
-
-static void WINAPI glMatrixOrthoEXT( GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f, %f, %f)\n", mode, left, right, bottom, top, zNear, zFar );
-  funcs->ext.p_glMatrixOrthoEXT( mode, left, right, bottom, top, zNear, zFar );
-}
-
-static void WINAPI glMatrixPopEXT( GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mode );
-  funcs->ext.p_glMatrixPopEXT( mode );
-}
-
-static void WINAPI glMatrixPushEXT( GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mode );
-  funcs->ext.p_glMatrixPushEXT( mode );
-}
-
-static void WINAPI glMatrixRotatedEXT( GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", mode, angle, x, y, z );
-  funcs->ext.p_glMatrixRotatedEXT( mode, angle, x, y, z );
-}
-
-static void WINAPI glMatrixRotatefEXT( GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", mode, angle, x, y, z );
-  funcs->ext.p_glMatrixRotatefEXT( mode, angle, x, y, z );
-}
-
-static void WINAPI glMatrixScaledEXT( GLenum mode, GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", mode, x, y, z );
-  funcs->ext.p_glMatrixScaledEXT( mode, x, y, z );
-}
-
-static void WINAPI glMatrixScalefEXT( GLenum mode, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", mode, x, y, z );
-  funcs->ext.p_glMatrixScalefEXT( mode, x, y, z );
-}
-
-static void WINAPI glMatrixTranslatedEXT( GLenum mode, GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", mode, x, y, z );
-  funcs->ext.p_glMatrixTranslatedEXT( mode, x, y, z );
-}
-
-static void WINAPI glMatrixTranslatefEXT( GLenum mode, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", mode, x, y, z );
-  funcs->ext.p_glMatrixTranslatefEXT( mode, x, y, z );
-}
-
-static void WINAPI glMaxShaderCompilerThreadsARB( GLuint count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", count );
-  funcs->ext.p_glMaxShaderCompilerThreadsARB( count );
-}
-
-static void WINAPI glMaxShaderCompilerThreadsKHR( GLuint count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", count );
-  funcs->ext.p_glMaxShaderCompilerThreadsKHR( count );
-}
-
-static void WINAPI glMemoryBarrier( GLbitfield barriers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", barriers );
-  funcs->ext.p_glMemoryBarrier( barriers );
-}
-
-static void WINAPI glMemoryBarrierByRegion( GLbitfield barriers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", barriers );
-  funcs->ext.p_glMemoryBarrierByRegion( barriers );
-}
-
-static void WINAPI glMemoryBarrierEXT( GLbitfield barriers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", barriers );
-  funcs->ext.p_glMemoryBarrierEXT( barriers );
-}
-
-static void WINAPI glMemoryObjectParameterivEXT( GLuint memoryObject, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", memoryObject, pname, params );
-  funcs->ext.p_glMemoryObjectParameterivEXT( memoryObject, pname, params );
-}
-
-static void WINAPI glMinSampleShading( GLfloat value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f)\n", value );
-  funcs->ext.p_glMinSampleShading( value );
-}
-
-static void WINAPI glMinSampleShadingARB( GLfloat value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f)\n", value );
-  funcs->ext.p_glMinSampleShadingARB( value );
-}
-
-static void WINAPI glMinmax( GLenum target, GLenum internalformat, GLboolean sink )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, internalformat, sink );
-  funcs->ext.p_glMinmax( target, internalformat, sink );
-}
-
-static void WINAPI glMinmaxEXT( GLenum target, GLenum internalformat, GLboolean sink )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, internalformat, sink );
-  funcs->ext.p_glMinmaxEXT( target, internalformat, sink );
-}
-
-static void WINAPI glMultMatrixxOES( const GLfixed *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", m );
-  funcs->ext.p_glMultMatrixxOES( m );
-}
-
-static void WINAPI glMultTransposeMatrixd( const GLdouble *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", m );
-  funcs->ext.p_glMultTransposeMatrixd( m );
-}
-
-static void WINAPI glMultTransposeMatrixdARB( const GLdouble *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", m );
-  funcs->ext.p_glMultTransposeMatrixdARB( m );
-}
-
-static void WINAPI glMultTransposeMatrixf( const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", m );
-  funcs->ext.p_glMultTransposeMatrixf( m );
-}
-
-static void WINAPI glMultTransposeMatrixfARB( const GLfloat *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", m );
-  funcs->ext.p_glMultTransposeMatrixfARB( m );
-}
-
-static void WINAPI glMultTransposeMatrixxOES( const GLfixed *m )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", m );
-  funcs->ext.p_glMultTransposeMatrixxOES( m );
-}
-
-static void WINAPI glMultiDrawArrays( GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p, %d)\n", mode, first, count, drawcount );
-  funcs->ext.p_glMultiDrawArrays( mode, first, count, drawcount );
-}
-
-static void WINAPI glMultiDrawArraysEXT( GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p, %d)\n", mode, first, count, primcount );
-  funcs->ext.p_glMultiDrawArraysEXT( mode, first, count, primcount );
-}
-
-static void WINAPI glMultiDrawArraysIndirect( GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %d)\n", mode, indirect, drawcount, stride );
-  funcs->ext.p_glMultiDrawArraysIndirect( mode, indirect, drawcount, stride );
-}
-
-static void WINAPI glMultiDrawArraysIndirectAMD( GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %d)\n", mode, indirect, primcount, stride );
-  funcs->ext.p_glMultiDrawArraysIndirectAMD( mode, indirect, primcount, stride );
-}
-
-static void WINAPI glMultiDrawArraysIndirectBindlessCountNV( GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %d, %d, %d)\n", mode, indirect, drawCount, maxDrawCount, stride, vertexBufferCount );
-  funcs->ext.p_glMultiDrawArraysIndirectBindlessCountNV( mode, indirect, drawCount, maxDrawCount, stride, vertexBufferCount );
-}
-
-static void WINAPI glMultiDrawArraysIndirectBindlessNV( GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %d, %d)\n", mode, indirect, drawCount, stride, vertexBufferCount );
-  funcs->ext.p_glMultiDrawArraysIndirectBindlessNV( mode, indirect, drawCount, stride, vertexBufferCount );
-}
-
-static void WINAPI glMultiDrawArraysIndirectCount( GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %ld, %d, %d)\n", mode, indirect, drawcount, maxdrawcount, stride );
-  funcs->ext.p_glMultiDrawArraysIndirectCount( mode, indirect, drawcount, maxdrawcount, stride );
-}
-
-static void WINAPI glMultiDrawArraysIndirectCountARB( GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %ld, %d, %d)\n", mode, indirect, drawcount, maxdrawcount, stride );
-  funcs->ext.p_glMultiDrawArraysIndirectCountARB( mode, indirect, drawcount, maxdrawcount, stride );
-}
-
-static void WINAPI glMultiDrawElementArrayAPPLE( GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p, %d)\n", mode, first, count, primcount );
-  funcs->ext.p_glMultiDrawElementArrayAPPLE( mode, first, count, primcount );
-}
-
-static void WINAPI glMultiDrawElements( GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %p, %d)\n", mode, count, type, indices, drawcount );
-  funcs->ext.p_glMultiDrawElements( mode, count, type, indices, drawcount );
-}
-
-static void WINAPI glMultiDrawElementsBaseVertex( GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %p, %d, %p)\n", mode, count, type, indices, drawcount, basevertex );
-  funcs->ext.p_glMultiDrawElementsBaseVertex( mode, count, type, indices, drawcount, basevertex );
-}
-
-static void WINAPI glMultiDrawElementsEXT( GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %p, %d)\n", mode, count, type, indices, primcount );
-  funcs->ext.p_glMultiDrawElementsEXT( mode, count, type, indices, primcount );
-}
-
-static void WINAPI glMultiDrawElementsIndirect( GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d)\n", mode, type, indirect, drawcount, stride );
-  funcs->ext.p_glMultiDrawElementsIndirect( mode, type, indirect, drawcount, stride );
-}
-
-static void WINAPI glMultiDrawElementsIndirectAMD( GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d)\n", mode, type, indirect, primcount, stride );
-  funcs->ext.p_glMultiDrawElementsIndirectAMD( mode, type, indirect, primcount, stride );
-}
-
-static void WINAPI glMultiDrawElementsIndirectBindlessCountNV( GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %d, %d)\n", mode, type, indirect, drawCount, maxDrawCount, stride, vertexBufferCount );
-  funcs->ext.p_glMultiDrawElementsIndirectBindlessCountNV( mode, type, indirect, drawCount, maxDrawCount, stride, vertexBufferCount );
-}
-
-static void WINAPI glMultiDrawElementsIndirectBindlessNV( GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %d)\n", mode, type, indirect, drawCount, stride, vertexBufferCount );
-  funcs->ext.p_glMultiDrawElementsIndirectBindlessNV( mode, type, indirect, drawCount, stride, vertexBufferCount );
-}
-
-static void WINAPI glMultiDrawElementsIndirectCount( GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %ld, %d, %d)\n", mode, type, indirect, drawcount, maxdrawcount, stride );
-  funcs->ext.p_glMultiDrawElementsIndirectCount( mode, type, indirect, drawcount, maxdrawcount, stride );
-}
-
-static void WINAPI glMultiDrawElementsIndirectCountARB( GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %ld, %d, %d)\n", mode, type, indirect, drawcount, maxdrawcount, stride );
-  funcs->ext.p_glMultiDrawElementsIndirectCountARB( mode, type, indirect, drawcount, maxdrawcount, stride );
-}
-
-static void WINAPI glMultiDrawMeshTasksIndirectCountNV( GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%ld, %ld, %d, %d)\n", indirect, drawcount, maxdrawcount, stride );
-  funcs->ext.p_glMultiDrawMeshTasksIndirectCountNV( indirect, drawcount, maxdrawcount, stride );
-}
-
-static void WINAPI glMultiDrawMeshTasksIndirectNV( GLintptr indirect, GLsizei drawcount, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%ld, %d, %d)\n", indirect, drawcount, stride );
-  funcs->ext.p_glMultiDrawMeshTasksIndirectNV( indirect, drawcount, stride );
-}
-
-static void WINAPI glMultiDrawRangeElementArrayAPPLE( GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p, %d)\n", mode, start, end, first, count, primcount );
-  funcs->ext.p_glMultiDrawRangeElementArrayAPPLE( mode, start, end, first, count, primcount );
-}
-
-static void WINAPI glMultiModeDrawArraysIBM( const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p, %d, %d)\n", mode, first, count, primcount, modestride );
-  funcs->ext.p_glMultiModeDrawArraysIBM( mode, first, count, primcount, modestride );
-}
-
-static void WINAPI glMultiModeDrawElementsIBM( const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %d, %p, %d, %d)\n", mode, count, type, indices, primcount, modestride );
-  funcs->ext.p_glMultiModeDrawElementsIBM( mode, count, type, indices, primcount, modestride );
-}
-
-static void WINAPI glMultiTexBufferEXT( GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", texunit, target, internalformat, buffer );
-  funcs->ext.p_glMultiTexBufferEXT( texunit, target, internalformat, buffer );
-}
-
-static void WINAPI glMultiTexCoord1bOES( GLenum texture, GLbyte s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", texture, s );
-  funcs->ext.p_glMultiTexCoord1bOES( texture, s );
-}
-
-static void WINAPI glMultiTexCoord1bvOES( GLenum texture, const GLbyte *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", texture, coords );
-  funcs->ext.p_glMultiTexCoord1bvOES( texture, coords );
-}
-
-static void WINAPI glMultiTexCoord1d( GLenum target, GLdouble s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", target, s );
-  funcs->ext.p_glMultiTexCoord1d( target, s );
-}
-
-static void WINAPI glMultiTexCoord1dARB( GLenum target, GLdouble s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", target, s );
-  funcs->ext.p_glMultiTexCoord1dARB( target, s );
-}
-
-static void WINAPI glMultiTexCoord1dSGIS( GLenum target, GLdouble s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", target, s );
-  funcs->ext.p_glMultiTexCoord1dSGIS( target, s );
-}
-
-static void WINAPI glMultiTexCoord1dv( GLenum target, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord1dv( target, v );
-}
-
-static void WINAPI glMultiTexCoord1dvARB( GLenum target, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord1dvARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord1dvSGIS( GLenum target, GLdouble * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord1dvSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord1f( GLenum target, GLfloat s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", target, s );
-  funcs->ext.p_glMultiTexCoord1f( target, s );
-}
-
-static void WINAPI glMultiTexCoord1fARB( GLenum target, GLfloat s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", target, s );
-  funcs->ext.p_glMultiTexCoord1fARB( target, s );
-}
-
-static void WINAPI glMultiTexCoord1fSGIS( GLenum target, GLfloat s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", target, s );
-  funcs->ext.p_glMultiTexCoord1fSGIS( target, s );
-}
-
-static void WINAPI glMultiTexCoord1fv( GLenum target, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord1fv( target, v );
-}
-
-static void WINAPI glMultiTexCoord1fvARB( GLenum target, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord1fvARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord1fvSGIS( GLenum target, const GLfloat * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord1fvSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord1hNV( GLenum target, GLhalfNV s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, s );
-  funcs->ext.p_glMultiTexCoord1hNV( target, s );
-}
-
-static void WINAPI glMultiTexCoord1hvNV( GLenum target, const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord1hvNV( target, v );
-}
-
-static void WINAPI glMultiTexCoord1i( GLenum target, GLint s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, s );
-  funcs->ext.p_glMultiTexCoord1i( target, s );
-}
-
-static void WINAPI glMultiTexCoord1iARB( GLenum target, GLint s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, s );
-  funcs->ext.p_glMultiTexCoord1iARB( target, s );
-}
-
-static void WINAPI glMultiTexCoord1iSGIS( GLenum target, GLint s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, s );
-  funcs->ext.p_glMultiTexCoord1iSGIS( target, s );
-}
-
-static void WINAPI glMultiTexCoord1iv( GLenum target, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord1iv( target, v );
-}
-
-static void WINAPI glMultiTexCoord1ivARB( GLenum target, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord1ivARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord1ivSGIS( GLenum target, GLint * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord1ivSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord1s( GLenum target, GLshort s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, s );
-  funcs->ext.p_glMultiTexCoord1s( target, s );
-}
-
-static void WINAPI glMultiTexCoord1sARB( GLenum target, GLshort s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, s );
-  funcs->ext.p_glMultiTexCoord1sARB( target, s );
-}
-
-static void WINAPI glMultiTexCoord1sSGIS( GLenum target, GLshort s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, s );
-  funcs->ext.p_glMultiTexCoord1sSGIS( target, s );
-}
-
-static void WINAPI glMultiTexCoord1sv( GLenum target, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord1sv( target, v );
-}
-
-static void WINAPI glMultiTexCoord1svARB( GLenum target, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord1svARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord1svSGIS( GLenum target, GLshort * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord1svSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord1xOES( GLenum texture, GLfixed s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", texture, s );
-  funcs->ext.p_glMultiTexCoord1xOES( texture, s );
-}
-
-static void WINAPI glMultiTexCoord1xvOES( GLenum texture, const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", texture, coords );
-  funcs->ext.p_glMultiTexCoord1xvOES( texture, coords );
-}
-
-static void WINAPI glMultiTexCoord2bOES( GLenum texture, GLbyte s, GLbyte t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", texture, s, t );
-  funcs->ext.p_glMultiTexCoord2bOES( texture, s, t );
-}
-
-static void WINAPI glMultiTexCoord2bvOES( GLenum texture, const GLbyte *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", texture, coords );
-  funcs->ext.p_glMultiTexCoord2bvOES( texture, coords );
-}
-
-static void WINAPI glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", target, s, t );
-  funcs->ext.p_glMultiTexCoord2d( target, s, t );
-}
-
-static void WINAPI glMultiTexCoord2dARB( GLenum target, GLdouble s, GLdouble t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", target, s, t );
-  funcs->ext.p_glMultiTexCoord2dARB( target, s, t );
-}
-
-static void WINAPI glMultiTexCoord2dSGIS( GLenum target, GLdouble s, GLdouble t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", target, s, t );
-  funcs->ext.p_glMultiTexCoord2dSGIS( target, s, t );
-}
-
-static void WINAPI glMultiTexCoord2dv( GLenum target, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord2dv( target, v );
-}
-
-static void WINAPI glMultiTexCoord2dvARB( GLenum target, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord2dvARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord2dvSGIS( GLenum target, GLdouble * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord2dvSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", target, s, t );
-  funcs->ext.p_glMultiTexCoord2f( target, s, t );
-}
-
-static void WINAPI glMultiTexCoord2fARB( GLenum target, GLfloat s, GLfloat t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", target, s, t );
-  funcs->ext.p_glMultiTexCoord2fARB( target, s, t );
-}
-
-static void WINAPI glMultiTexCoord2fSGIS( GLenum target, GLfloat s, GLfloat t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", target, s, t );
-  funcs->ext.p_glMultiTexCoord2fSGIS( target, s, t );
-}
-
-static void WINAPI glMultiTexCoord2fv( GLenum target, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord2fv( target, v );
-}
-
-static void WINAPI glMultiTexCoord2fvARB( GLenum target, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord2fvARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord2fvSGIS( GLenum target, GLfloat * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord2fvSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord2hNV( GLenum target, GLhalfNV s, GLhalfNV t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, s, t );
-  funcs->ext.p_glMultiTexCoord2hNV( target, s, t );
-}
-
-static void WINAPI glMultiTexCoord2hvNV( GLenum target, const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord2hvNV( target, v );
-}
-
-static void WINAPI glMultiTexCoord2i( GLenum target, GLint s, GLint t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, s, t );
-  funcs->ext.p_glMultiTexCoord2i( target, s, t );
-}
-
-static void WINAPI glMultiTexCoord2iARB( GLenum target, GLint s, GLint t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, s, t );
-  funcs->ext.p_glMultiTexCoord2iARB( target, s, t );
-}
-
-static void WINAPI glMultiTexCoord2iSGIS( GLenum target, GLint s, GLint t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, s, t );
-  funcs->ext.p_glMultiTexCoord2iSGIS( target, s, t );
-}
-
-static void WINAPI glMultiTexCoord2iv( GLenum target, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord2iv( target, v );
-}
-
-static void WINAPI glMultiTexCoord2ivARB( GLenum target, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord2ivARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord2ivSGIS( GLenum target, GLint * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord2ivSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord2s( GLenum target, GLshort s, GLshort t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, s, t );
-  funcs->ext.p_glMultiTexCoord2s( target, s, t );
-}
-
-static void WINAPI glMultiTexCoord2sARB( GLenum target, GLshort s, GLshort t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, s, t );
-  funcs->ext.p_glMultiTexCoord2sARB( target, s, t );
-}
-
-static void WINAPI glMultiTexCoord2sSGIS( GLenum target, GLshort s, GLshort t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, s, t );
-  funcs->ext.p_glMultiTexCoord2sSGIS( target, s, t );
-}
-
-static void WINAPI glMultiTexCoord2sv( GLenum target, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord2sv( target, v );
-}
-
-static void WINAPI glMultiTexCoord2svARB( GLenum target, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord2svARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord2svSGIS( GLenum target, GLshort * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord2svSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord2xOES( GLenum texture, GLfixed s, GLfixed t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", texture, s, t );
-  funcs->ext.p_glMultiTexCoord2xOES( texture, s, t );
-}
-
-static void WINAPI glMultiTexCoord2xvOES( GLenum texture, const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", texture, coords );
-  funcs->ext.p_glMultiTexCoord2xvOES( texture, coords );
-}
-
-static void WINAPI glMultiTexCoord3bOES( GLenum texture, GLbyte s, GLbyte t, GLbyte r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", texture, s, t, r );
-  funcs->ext.p_glMultiTexCoord3bOES( texture, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3bvOES( GLenum texture, const GLbyte *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", texture, coords );
-  funcs->ext.p_glMultiTexCoord3bvOES( texture, coords );
-}
-
-static void WINAPI glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", target, s, t, r );
-  funcs->ext.p_glMultiTexCoord3d( target, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3dARB( GLenum target, GLdouble s, GLdouble t, GLdouble r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", target, s, t, r );
-  funcs->ext.p_glMultiTexCoord3dARB( target, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3dSGIS( GLenum target, GLdouble s, GLdouble t, GLdouble r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", target, s, t, r );
-  funcs->ext.p_glMultiTexCoord3dSGIS( target, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3dv( GLenum target, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord3dv( target, v );
-}
-
-static void WINAPI glMultiTexCoord3dvARB( GLenum target, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord3dvARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord3dvSGIS( GLenum target, GLdouble * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord3dvSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", target, s, t, r );
-  funcs->ext.p_glMultiTexCoord3f( target, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3fARB( GLenum target, GLfloat s, GLfloat t, GLfloat r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", target, s, t, r );
-  funcs->ext.p_glMultiTexCoord3fARB( target, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3fSGIS( GLenum target, GLfloat s, GLfloat t, GLfloat r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", target, s, t, r );
-  funcs->ext.p_glMultiTexCoord3fSGIS( target, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3fv( GLenum target, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord3fv( target, v );
-}
-
-static void WINAPI glMultiTexCoord3fvARB( GLenum target, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord3fvARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord3fvSGIS( GLenum target, GLfloat * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord3fvSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord3hNV( GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, s, t, r );
-  funcs->ext.p_glMultiTexCoord3hNV( target, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3hvNV( GLenum target, const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord3hvNV( target, v );
-}
-
-static void WINAPI glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, s, t, r );
-  funcs->ext.p_glMultiTexCoord3i( target, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3iARB( GLenum target, GLint s, GLint t, GLint r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, s, t, r );
-  funcs->ext.p_glMultiTexCoord3iARB( target, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3iSGIS( GLenum target, GLint s, GLint t, GLint r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, s, t, r );
-  funcs->ext.p_glMultiTexCoord3iSGIS( target, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3iv( GLenum target, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord3iv( target, v );
-}
-
-static void WINAPI glMultiTexCoord3ivARB( GLenum target, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord3ivARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord3ivSGIS( GLenum target, GLint * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord3ivSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, s, t, r );
-  funcs->ext.p_glMultiTexCoord3s( target, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3sARB( GLenum target, GLshort s, GLshort t, GLshort r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, s, t, r );
-  funcs->ext.p_glMultiTexCoord3sARB( target, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3sSGIS( GLenum target, GLshort s, GLshort t, GLshort r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, s, t, r );
-  funcs->ext.p_glMultiTexCoord3sSGIS( target, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3sv( GLenum target, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord3sv( target, v );
-}
-
-static void WINAPI glMultiTexCoord3svARB( GLenum target, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord3svARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord3svSGIS( GLenum target, GLshort * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord3svSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord3xOES( GLenum texture, GLfixed s, GLfixed t, GLfixed r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", texture, s, t, r );
-  funcs->ext.p_glMultiTexCoord3xOES( texture, s, t, r );
-}
-
-static void WINAPI glMultiTexCoord3xvOES( GLenum texture, const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", texture, coords );
-  funcs->ext.p_glMultiTexCoord3xvOES( texture, coords );
-}
-
-static void WINAPI glMultiTexCoord4bOES( GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", texture, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4bOES( texture, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4bvOES( GLenum texture, const GLbyte *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", texture, coords );
-  funcs->ext.p_glMultiTexCoord4bvOES( texture, coords );
-}
-
-static void WINAPI glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", target, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4d( target, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4dARB( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", target, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4dARB( target, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4dSGIS( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", target, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4dSGIS( target, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4dv( GLenum target, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord4dv( target, v );
-}
-
-static void WINAPI glMultiTexCoord4dvARB( GLenum target, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord4dvARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord4dvSGIS( GLenum target, GLdouble * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord4dvSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", target, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4f( target, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4fARB( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", target, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4fARB( target, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4fSGIS( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", target, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4fSGIS( target, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4fv( GLenum target, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord4fv( target, v );
-}
-
-static void WINAPI glMultiTexCoord4fvARB( GLenum target, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord4fvARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord4fvSGIS( GLenum target, GLfloat * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord4fvSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord4hNV( GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4hNV( target, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4hvNV( GLenum target, const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord4hvNV( target, v );
-}
-
-static void WINAPI glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4i( target, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4iARB( GLenum target, GLint s, GLint t, GLint r, GLint q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4iARB( target, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4iSGIS( GLenum target, GLint s, GLint t, GLint r, GLint q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4iSGIS( target, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4iv( GLenum target, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord4iv( target, v );
-}
-
-static void WINAPI glMultiTexCoord4ivARB( GLenum target, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord4ivARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord4ivSGIS( GLenum target, GLint * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord4ivSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4s( target, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4sARB( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4sARB( target, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4sSGIS( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4sSGIS( target, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4sv( GLenum target, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord4sv( target, v );
-}
-
-static void WINAPI glMultiTexCoord4svARB( GLenum target, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord4svARB( target, v );
-}
-
-static void WINAPI glMultiTexCoord4svSGIS( GLenum target, GLshort * v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", target, v );
-  funcs->ext.p_glMultiTexCoord4svSGIS( target, v );
-}
-
-static void WINAPI glMultiTexCoord4xOES( GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", texture, s, t, r, q );
-  funcs->ext.p_glMultiTexCoord4xOES( texture, s, t, r, q );
-}
-
-static void WINAPI glMultiTexCoord4xvOES( GLenum texture, const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", texture, coords );
-  funcs->ext.p_glMultiTexCoord4xvOES( texture, coords );
-}
-
-static void WINAPI glMultiTexCoordP1ui( GLenum texture, GLenum type, GLuint coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", texture, type, coords );
-  funcs->ext.p_glMultiTexCoordP1ui( texture, type, coords );
-}
-
-static void WINAPI glMultiTexCoordP1uiv( GLenum texture, GLenum type, const GLuint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texture, type, coords );
-  funcs->ext.p_glMultiTexCoordP1uiv( texture, type, coords );
-}
-
-static void WINAPI glMultiTexCoordP2ui( GLenum texture, GLenum type, GLuint coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", texture, type, coords );
-  funcs->ext.p_glMultiTexCoordP2ui( texture, type, coords );
-}
-
-static void WINAPI glMultiTexCoordP2uiv( GLenum texture, GLenum type, const GLuint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texture, type, coords );
-  funcs->ext.p_glMultiTexCoordP2uiv( texture, type, coords );
-}
-
-static void WINAPI glMultiTexCoordP3ui( GLenum texture, GLenum type, GLuint coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", texture, type, coords );
-  funcs->ext.p_glMultiTexCoordP3ui( texture, type, coords );
-}
-
-static void WINAPI glMultiTexCoordP3uiv( GLenum texture, GLenum type, const GLuint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texture, type, coords );
-  funcs->ext.p_glMultiTexCoordP3uiv( texture, type, coords );
-}
-
-static void WINAPI glMultiTexCoordP4ui( GLenum texture, GLenum type, GLuint coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", texture, type, coords );
-  funcs->ext.p_glMultiTexCoordP4ui( texture, type, coords );
-}
-
-static void WINAPI glMultiTexCoordP4uiv( GLenum texture, GLenum type, const GLuint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texture, type, coords );
-  funcs->ext.p_glMultiTexCoordP4uiv( texture, type, coords );
-}
-
-static void WINAPI glMultiTexCoordPointerEXT( GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", texunit, size, type, stride, pointer );
-  funcs->ext.p_glMultiTexCoordPointerEXT( texunit, size, type, stride, pointer );
-}
-
-static void WINAPI glMultiTexCoordPointerSGIS( GLenum target, GLint size, GLenum type, GLsizei stride, GLvoid * pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, size, type, stride, pointer );
-  funcs->ext.p_glMultiTexCoordPointerSGIS( target, size, type, stride, pointer );
-}
-
-static void WINAPI glMultiTexEnvfEXT( GLenum texunit, GLenum target, GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %f)\n", texunit, target, pname, param );
-  funcs->ext.p_glMultiTexEnvfEXT( texunit, target, pname, param );
-}
-
-static void WINAPI glMultiTexEnvfvEXT( GLenum texunit, GLenum target, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, target, pname, params );
-  funcs->ext.p_glMultiTexEnvfvEXT( texunit, target, pname, params );
-}
-
-static void WINAPI glMultiTexEnviEXT( GLenum texunit, GLenum target, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", texunit, target, pname, param );
-  funcs->ext.p_glMultiTexEnviEXT( texunit, target, pname, param );
-}
-
-static void WINAPI glMultiTexEnvivEXT( GLenum texunit, GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, target, pname, params );
-  funcs->ext.p_glMultiTexEnvivEXT( texunit, target, pname, params );
-}
-
-static void WINAPI glMultiTexGendEXT( GLenum texunit, GLenum coord, GLenum pname, GLdouble param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %f)\n", texunit, coord, pname, param );
-  funcs->ext.p_glMultiTexGendEXT( texunit, coord, pname, param );
-}
-
-static void WINAPI glMultiTexGendvEXT( GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, coord, pname, params );
-  funcs->ext.p_glMultiTexGendvEXT( texunit, coord, pname, params );
-}
-
-static void WINAPI glMultiTexGenfEXT( GLenum texunit, GLenum coord, GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %f)\n", texunit, coord, pname, param );
-  funcs->ext.p_glMultiTexGenfEXT( texunit, coord, pname, param );
-}
-
-static void WINAPI glMultiTexGenfvEXT( GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, coord, pname, params );
-  funcs->ext.p_glMultiTexGenfvEXT( texunit, coord, pname, params );
-}
-
-static void WINAPI glMultiTexGeniEXT( GLenum texunit, GLenum coord, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", texunit, coord, pname, param );
-  funcs->ext.p_glMultiTexGeniEXT( texunit, coord, pname, param );
-}
-
-static void WINAPI glMultiTexGenivEXT( GLenum texunit, GLenum coord, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, coord, pname, params );
-  funcs->ext.p_glMultiTexGenivEXT( texunit, coord, pname, params );
-}
-
-static void WINAPI glMultiTexImage1DEXT( GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texunit, target, level, internalformat, width, border, format, type, pixels );
-  funcs->ext.p_glMultiTexImage1DEXT( texunit, target, level, internalformat, width, border, format, type, pixels );
-}
-
-static void WINAPI glMultiTexImage2DEXT( GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texunit, target, level, internalformat, width, height, border, format, type, pixels );
-  funcs->ext.p_glMultiTexImage2DEXT( texunit, target, level, internalformat, width, height, border, format, type, pixels );
-}
-
-static void WINAPI glMultiTexImage3DEXT( GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texunit, target, level, internalformat, width, height, depth, border, format, type, pixels );
-  funcs->ext.p_glMultiTexImage3DEXT( texunit, target, level, internalformat, width, height, depth, border, format, type, pixels );
-}
-
-static void WINAPI glMultiTexParameterIivEXT( GLenum texunit, GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, target, pname, params );
-  funcs->ext.p_glMultiTexParameterIivEXT( texunit, target, pname, params );
-}
-
-static void WINAPI glMultiTexParameterIuivEXT( GLenum texunit, GLenum target, GLenum pname, const GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, target, pname, params );
-  funcs->ext.p_glMultiTexParameterIuivEXT( texunit, target, pname, params );
-}
-
-static void WINAPI glMultiTexParameterfEXT( GLenum texunit, GLenum target, GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %f)\n", texunit, target, pname, param );
-  funcs->ext.p_glMultiTexParameterfEXT( texunit, target, pname, param );
-}
-
-static void WINAPI glMultiTexParameterfvEXT( GLenum texunit, GLenum target, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, target, pname, params );
-  funcs->ext.p_glMultiTexParameterfvEXT( texunit, target, pname, params );
-}
-
-static void WINAPI glMultiTexParameteriEXT( GLenum texunit, GLenum target, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", texunit, target, pname, param );
-  funcs->ext.p_glMultiTexParameteriEXT( texunit, target, pname, param );
-}
-
-static void WINAPI glMultiTexParameterivEXT( GLenum texunit, GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texunit, target, pname, params );
-  funcs->ext.p_glMultiTexParameterivEXT( texunit, target, pname, params );
-}
-
-static void WINAPI glMultiTexRenderbufferEXT( GLenum texunit, GLenum target, GLuint renderbuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", texunit, target, renderbuffer );
-  funcs->ext.p_glMultiTexRenderbufferEXT( texunit, target, renderbuffer );
-}
-
-static void WINAPI glMultiTexSubImage1DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %p)\n", texunit, target, level, xoffset, width, format, type, pixels );
-  funcs->ext.p_glMultiTexSubImage1DEXT( texunit, target, level, xoffset, width, format, type, pixels );
-}
-
-static void WINAPI glMultiTexSubImage2DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texunit, target, level, xoffset, yoffset, width, height, format, type, pixels );
-  funcs->ext.p_glMultiTexSubImage2DEXT( texunit, target, level, xoffset, yoffset, width, height, format, type, pixels );
-}
-
-static void WINAPI glMultiTexSubImage3DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
-  funcs->ext.p_glMultiTexSubImage3DEXT( texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
-}
-
-static void WINAPI glMulticastBarrierNV(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glMulticastBarrierNV();
-}
-
-static void WINAPI glMulticastBlitFramebufferNV( GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", srcGpu, dstGpu, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter );
-  funcs->ext.p_glMulticastBlitFramebufferNV( srcGpu, dstGpu, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter );
-}
-
-static void WINAPI glMulticastBufferSubDataNV( GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %ld, %ld, %p)\n", gpuMask, buffer, offset, size, data );
-  funcs->ext.p_glMulticastBufferSubDataNV( gpuMask, buffer, offset, size, data );
-}
-
-static void WINAPI glMulticastCopyBufferSubDataNV( GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %ld, %ld, %ld)\n", readGpu, writeGpuMask, readBuffer, writeBuffer, readOffset, writeOffset, size );
-  funcs->ext.p_glMulticastCopyBufferSubDataNV( readGpu, writeGpuMask, readBuffer, writeBuffer, readOffset, writeOffset, size );
-}
-
-static void WINAPI glMulticastCopyImageSubDataNV( GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", srcGpu, dstGpuMask, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth );
-  funcs->ext.p_glMulticastCopyImageSubDataNV( srcGpu, dstGpuMask, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth );
-}
-
-static void WINAPI glMulticastFramebufferSampleLocationsfvNV( GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", gpu, framebuffer, start, count, v );
-  funcs->ext.p_glMulticastFramebufferSampleLocationsfvNV( gpu, framebuffer, start, count, v );
-}
-
-static void WINAPI glMulticastGetQueryObjecti64vNV( GLuint gpu, GLuint id, GLenum pname, GLint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", gpu, id, pname, params );
-  funcs->ext.p_glMulticastGetQueryObjecti64vNV( gpu, id, pname, params );
-}
-
-static void WINAPI glMulticastGetQueryObjectivNV( GLuint gpu, GLuint id, GLenum pname, GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", gpu, id, pname, params );
-  funcs->ext.p_glMulticastGetQueryObjectivNV( gpu, id, pname, params );
-}
-
-static void WINAPI glMulticastGetQueryObjectui64vNV( GLuint gpu, GLuint id, GLenum pname, GLuint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", gpu, id, pname, params );
-  funcs->ext.p_glMulticastGetQueryObjectui64vNV( gpu, id, pname, params );
-}
-
-static void WINAPI glMulticastGetQueryObjectuivNV( GLuint gpu, GLuint id, GLenum pname, GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", gpu, id, pname, params );
-  funcs->ext.p_glMulticastGetQueryObjectuivNV( gpu, id, pname, params );
-}
-
-static void WINAPI glMulticastScissorArrayvNVX( GLuint gpu, GLuint first, GLsizei count, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", gpu, first, count, v );
-  funcs->ext.p_glMulticastScissorArrayvNVX( gpu, first, count, v );
-}
-
-static void WINAPI glMulticastViewportArrayvNVX( GLuint gpu, GLuint first, GLsizei count, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", gpu, first, count, v );
-  funcs->ext.p_glMulticastViewportArrayvNVX( gpu, first, count, v );
-}
-
-static void WINAPI glMulticastViewportPositionWScaleNVX( GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f)\n", gpu, index, xcoeff, ycoeff );
-  funcs->ext.p_glMulticastViewportPositionWScaleNVX( gpu, index, xcoeff, ycoeff );
-}
-
-static void WINAPI glMulticastWaitSyncNV( GLuint signalGpu, GLbitfield waitGpuMask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", signalGpu, waitGpuMask );
-  funcs->ext.p_glMulticastWaitSyncNV( signalGpu, waitGpuMask );
-}
-
-static void WINAPI glNamedBufferAttachMemoryNV( GLuint buffer, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s)\n", buffer, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glNamedBufferAttachMemoryNV( buffer, memory, offset );
-}
-
-static void WINAPI glNamedBufferData( GLuint buffer, GLsizeiptr size, const void *data, GLenum usage )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %p, %d)\n", buffer, size, data, usage );
-  funcs->ext.p_glNamedBufferData( buffer, size, data, usage );
-}
-
-static void WINAPI glNamedBufferDataEXT( GLuint buffer, GLsizeiptr size, const void *data, GLenum usage )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %p, %d)\n", buffer, size, data, usage );
-  funcs->ext.p_glNamedBufferDataEXT( buffer, size, data, usage );
-}
-
-static void WINAPI glNamedBufferPageCommitmentARB( GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %d)\n", buffer, offset, size, commit );
-  funcs->ext.p_glNamedBufferPageCommitmentARB( buffer, offset, size, commit );
-}
-
-static void WINAPI glNamedBufferPageCommitmentEXT( GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %d)\n", buffer, offset, size, commit );
-  funcs->ext.p_glNamedBufferPageCommitmentEXT( buffer, offset, size, commit );
-}
-
-static void WINAPI glNamedBufferStorage( GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %p, %d)\n", buffer, size, data, flags );
-  funcs->ext.p_glNamedBufferStorage( buffer, size, data, flags );
-}
-
-static void WINAPI glNamedBufferStorageEXT( GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %p, %d)\n", buffer, size, data, flags );
-  funcs->ext.p_glNamedBufferStorageEXT( buffer, size, data, flags );
-}
-
-static void WINAPI glNamedBufferStorageExternalEXT( GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %p, %d)\n", buffer, offset, size, clientBuffer, flags );
-  funcs->ext.p_glNamedBufferStorageExternalEXT( buffer, offset, size, clientBuffer, flags );
-}
-
-static void WINAPI glNamedBufferStorageMemEXT( GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %d, %s)\n", buffer, size, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glNamedBufferStorageMemEXT( buffer, size, memory, offset );
-}
-
-static void WINAPI glNamedBufferSubData( GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %p)\n", buffer, offset, size, data );
-  funcs->ext.p_glNamedBufferSubData( buffer, offset, size, data );
-}
-
-static void WINAPI glNamedBufferSubDataEXT( GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %ld, %ld, %p)\n", buffer, offset, size, data );
-  funcs->ext.p_glNamedBufferSubDataEXT( buffer, offset, size, data );
-}
-
-static void WINAPI glNamedCopyBufferSubDataEXT( GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %ld, %ld, %ld)\n", readBuffer, writeBuffer, readOffset, writeOffset, size );
-  funcs->ext.p_glNamedCopyBufferSubDataEXT( readBuffer, writeBuffer, readOffset, writeOffset, size );
-}
-
-static void WINAPI glNamedFramebufferDrawBuffer( GLuint framebuffer, GLenum buf )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", framebuffer, buf );
-  funcs->ext.p_glNamedFramebufferDrawBuffer( framebuffer, buf );
-}
-
-static void WINAPI glNamedFramebufferDrawBuffers( GLuint framebuffer, GLsizei n, const GLenum *bufs )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", framebuffer, n, bufs );
-  funcs->ext.p_glNamedFramebufferDrawBuffers( framebuffer, n, bufs );
-}
-
-static void WINAPI glNamedFramebufferParameteri( GLuint framebuffer, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", framebuffer, pname, param );
-  funcs->ext.p_glNamedFramebufferParameteri( framebuffer, pname, param );
-}
-
-static void WINAPI glNamedFramebufferParameteriEXT( GLuint framebuffer, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", framebuffer, pname, param );
-  funcs->ext.p_glNamedFramebufferParameteriEXT( framebuffer, pname, param );
-}
-
-static void WINAPI glNamedFramebufferReadBuffer( GLuint framebuffer, GLenum src )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", framebuffer, src );
-  funcs->ext.p_glNamedFramebufferReadBuffer( framebuffer, src );
-}
-
-static void WINAPI glNamedFramebufferRenderbuffer( GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", framebuffer, attachment, renderbuffertarget, renderbuffer );
-  funcs->ext.p_glNamedFramebufferRenderbuffer( framebuffer, attachment, renderbuffertarget, renderbuffer );
-}
-
-static void WINAPI glNamedFramebufferRenderbufferEXT( GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", framebuffer, attachment, renderbuffertarget, renderbuffer );
-  funcs->ext.p_glNamedFramebufferRenderbufferEXT( framebuffer, attachment, renderbuffertarget, renderbuffer );
-}
-
-static void WINAPI glNamedFramebufferSampleLocationsfvARB( GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", framebuffer, start, count, v );
-  funcs->ext.p_glNamedFramebufferSampleLocationsfvARB( framebuffer, start, count, v );
-}
-
-static void WINAPI glNamedFramebufferSampleLocationsfvNV( GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", framebuffer, start, count, v );
-  funcs->ext.p_glNamedFramebufferSampleLocationsfvNV( framebuffer, start, count, v );
-}
-
-static void WINAPI glNamedFramebufferSamplePositionsfvAMD( GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", framebuffer, numsamples, pixelindex, values );
-  funcs->ext.p_glNamedFramebufferSamplePositionsfvAMD( framebuffer, numsamples, pixelindex, values );
-}
-
-static void WINAPI glNamedFramebufferTexture( GLuint framebuffer, GLenum attachment, GLuint texture, GLint level )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", framebuffer, attachment, texture, level );
-  funcs->ext.p_glNamedFramebufferTexture( framebuffer, attachment, texture, level );
-}
-
-static void WINAPI glNamedFramebufferTexture1DEXT( GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", framebuffer, attachment, textarget, texture, level );
-  funcs->ext.p_glNamedFramebufferTexture1DEXT( framebuffer, attachment, textarget, texture, level );
-}
-
-static void WINAPI glNamedFramebufferTexture2DEXT( GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", framebuffer, attachment, textarget, texture, level );
-  funcs->ext.p_glNamedFramebufferTexture2DEXT( framebuffer, attachment, textarget, texture, level );
-}
-
-static void WINAPI glNamedFramebufferTexture3DEXT( GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", framebuffer, attachment, textarget, texture, level, zoffset );
-  funcs->ext.p_glNamedFramebufferTexture3DEXT( framebuffer, attachment, textarget, texture, level, zoffset );
-}
-
-static void WINAPI glNamedFramebufferTextureEXT( GLuint framebuffer, GLenum attachment, GLuint texture, GLint level )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", framebuffer, attachment, texture, level );
-  funcs->ext.p_glNamedFramebufferTextureEXT( framebuffer, attachment, texture, level );
-}
-
-static void WINAPI glNamedFramebufferTextureFaceEXT( GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", framebuffer, attachment, texture, level, face );
-  funcs->ext.p_glNamedFramebufferTextureFaceEXT( framebuffer, attachment, texture, level, face );
-}
-
-static void WINAPI glNamedFramebufferTextureLayer( GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", framebuffer, attachment, texture, level, layer );
-  funcs->ext.p_glNamedFramebufferTextureLayer( framebuffer, attachment, texture, level, layer );
-}
-
-static void WINAPI glNamedFramebufferTextureLayerEXT( GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", framebuffer, attachment, texture, level, layer );
-  funcs->ext.p_glNamedFramebufferTextureLayerEXT( framebuffer, attachment, texture, level, layer );
-}
-
-static void WINAPI glNamedProgramLocalParameter4dEXT( GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %f, %f, %f, %f)\n", program, target, index, x, y, z, w );
-  funcs->ext.p_glNamedProgramLocalParameter4dEXT( program, target, index, x, y, z, w );
-}
-
-static void WINAPI glNamedProgramLocalParameter4dvEXT( GLuint program, GLenum target, GLuint index, const GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, target, index, params );
-  funcs->ext.p_glNamedProgramLocalParameter4dvEXT( program, target, index, params );
-}
-
-static void WINAPI glNamedProgramLocalParameter4fEXT( GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %f, %f, %f, %f)\n", program, target, index, x, y, z, w );
-  funcs->ext.p_glNamedProgramLocalParameter4fEXT( program, target, index, x, y, z, w );
-}
-
-static void WINAPI glNamedProgramLocalParameter4fvEXT( GLuint program, GLenum target, GLuint index, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, target, index, params );
-  funcs->ext.p_glNamedProgramLocalParameter4fvEXT( program, target, index, params );
-}
-
-static void WINAPI glNamedProgramLocalParameterI4iEXT( GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", program, target, index, x, y, z, w );
-  funcs->ext.p_glNamedProgramLocalParameterI4iEXT( program, target, index, x, y, z, w );
-}
-
-static void WINAPI glNamedProgramLocalParameterI4ivEXT( GLuint program, GLenum target, GLuint index, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, target, index, params );
-  funcs->ext.p_glNamedProgramLocalParameterI4ivEXT( program, target, index, params );
-}
-
-static void WINAPI glNamedProgramLocalParameterI4uiEXT( GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", program, target, index, x, y, z, w );
-  funcs->ext.p_glNamedProgramLocalParameterI4uiEXT( program, target, index, x, y, z, w );
-}
-
-static void WINAPI glNamedProgramLocalParameterI4uivEXT( GLuint program, GLenum target, GLuint index, const GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, target, index, params );
-  funcs->ext.p_glNamedProgramLocalParameterI4uivEXT( program, target, index, params );
-}
-
-static void WINAPI glNamedProgramLocalParameters4fvEXT( GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, target, index, count, params );
-  funcs->ext.p_glNamedProgramLocalParameters4fvEXT( program, target, index, count, params );
-}
-
-static void WINAPI glNamedProgramLocalParametersI4ivEXT( GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, target, index, count, params );
-  funcs->ext.p_glNamedProgramLocalParametersI4ivEXT( program, target, index, count, params );
-}
-
-static void WINAPI glNamedProgramLocalParametersI4uivEXT( GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, target, index, count, params );
-  funcs->ext.p_glNamedProgramLocalParametersI4uivEXT( program, target, index, count, params );
-}
-
-static void WINAPI glNamedProgramStringEXT( GLuint program, GLenum target, GLenum format, GLsizei len, const void *string )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, target, format, len, string );
-  funcs->ext.p_glNamedProgramStringEXT( program, target, format, len, string );
-}
-
-static void WINAPI glNamedRenderbufferStorage( GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", renderbuffer, internalformat, width, height );
-  funcs->ext.p_glNamedRenderbufferStorage( renderbuffer, internalformat, width, height );
-}
-
-static void WINAPI glNamedRenderbufferStorageEXT( GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", renderbuffer, internalformat, width, height );
-  funcs->ext.p_glNamedRenderbufferStorageEXT( renderbuffer, internalformat, width, height );
-}
-
-static void WINAPI glNamedRenderbufferStorageMultisample( GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", renderbuffer, samples, internalformat, width, height );
-  funcs->ext.p_glNamedRenderbufferStorageMultisample( renderbuffer, samples, internalformat, width, height );
-}
-
-static void WINAPI glNamedRenderbufferStorageMultisampleAdvancedAMD( GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", renderbuffer, samples, storageSamples, internalformat, width, height );
-  funcs->ext.p_glNamedRenderbufferStorageMultisampleAdvancedAMD( renderbuffer, samples, storageSamples, internalformat, width, height );
-}
-
-static void WINAPI glNamedRenderbufferStorageMultisampleCoverageEXT( GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", renderbuffer, coverageSamples, colorSamples, internalformat, width, height );
-  funcs->ext.p_glNamedRenderbufferStorageMultisampleCoverageEXT( renderbuffer, coverageSamples, colorSamples, internalformat, width, height );
-}
-
-static void WINAPI glNamedRenderbufferStorageMultisampleEXT( GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", renderbuffer, samples, internalformat, width, height );
-  funcs->ext.p_glNamedRenderbufferStorageMultisampleEXT( renderbuffer, samples, internalformat, width, height );
-}
-
-static void WINAPI glNamedStringARB( GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %p)\n", type, namelen, name, stringlen, string );
-  funcs->ext.p_glNamedStringARB( type, namelen, name, stringlen, string );
-}
-
-static GLuint WINAPI glNewBufferRegion( GLenum type )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", type );
-  return funcs->ext.p_glNewBufferRegion( type );
-}
-
-static GLuint WINAPI glNewObjectBufferATI( GLsizei size, const void *pointer, GLenum usage )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d)\n", size, pointer, usage );
-  return funcs->ext.p_glNewObjectBufferATI( size, pointer, usage );
-}
-
-static void WINAPI glNormal3fVertex3fSUN( GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f, %f, %f)\n", nx, ny, nz, x, y, z );
-  funcs->ext.p_glNormal3fVertex3fSUN( nx, ny, nz, x, y, z );
-}
-
-static void WINAPI glNormal3fVertex3fvSUN( const GLfloat *n, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p)\n", n, v );
-  funcs->ext.p_glNormal3fVertex3fvSUN( n, v );
-}
-
-static void WINAPI glNormal3hNV( GLhalfNV nx, GLhalfNV ny, GLhalfNV nz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", nx, ny, nz );
-  funcs->ext.p_glNormal3hNV( nx, ny, nz );
-}
-
-static void WINAPI glNormal3hvNV( const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glNormal3hvNV( v );
-}
-
-static void WINAPI glNormal3xOES( GLfixed nx, GLfixed ny, GLfixed nz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", nx, ny, nz );
-  funcs->ext.p_glNormal3xOES( nx, ny, nz );
-}
-
-static void WINAPI glNormal3xvOES( const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glNormal3xvOES( coords );
-}
-
-static void WINAPI glNormalFormatNV( GLenum type, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, stride );
-  funcs->ext.p_glNormalFormatNV( type, stride );
-}
-
-static void WINAPI glNormalP3ui( GLenum type, GLuint coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, coords );
-  funcs->ext.p_glNormalP3ui( type, coords );
-}
-
-static void WINAPI glNormalP3uiv( GLenum type, const GLuint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, coords );
-  funcs->ext.p_glNormalP3uiv( type, coords );
-}
-
-static void WINAPI glNormalPointerEXT( GLenum type, GLsizei stride, GLsizei count, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", type, stride, count, pointer );
-  funcs->ext.p_glNormalPointerEXT( type, stride, count, pointer );
-}
-
-static void WINAPI glNormalPointerListIBM( GLenum type, GLint stride, const void **pointer, GLint ptrstride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d)\n", type, stride, pointer, ptrstride );
-  funcs->ext.p_glNormalPointerListIBM( type, stride, pointer, ptrstride );
-}
-
-static void WINAPI glNormalPointervINTEL( GLenum type, const void **pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, pointer );
-  funcs->ext.p_glNormalPointervINTEL( type, pointer );
-}
-
-static void WINAPI glNormalStream3bATI( GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", stream, nx, ny, nz );
-  funcs->ext.p_glNormalStream3bATI( stream, nx, ny, nz );
-}
-
-static void WINAPI glNormalStream3bvATI( GLenum stream, const GLbyte *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glNormalStream3bvATI( stream, coords );
-}
-
-static void WINAPI glNormalStream3dATI( GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", stream, nx, ny, nz );
-  funcs->ext.p_glNormalStream3dATI( stream, nx, ny, nz );
-}
-
-static void WINAPI glNormalStream3dvATI( GLenum stream, const GLdouble *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glNormalStream3dvATI( stream, coords );
-}
-
-static void WINAPI glNormalStream3fATI( GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", stream, nx, ny, nz );
-  funcs->ext.p_glNormalStream3fATI( stream, nx, ny, nz );
-}
-
-static void WINAPI glNormalStream3fvATI( GLenum stream, const GLfloat *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glNormalStream3fvATI( stream, coords );
-}
-
-static void WINAPI glNormalStream3iATI( GLenum stream, GLint nx, GLint ny, GLint nz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", stream, nx, ny, nz );
-  funcs->ext.p_glNormalStream3iATI( stream, nx, ny, nz );
-}
-
-static void WINAPI glNormalStream3ivATI( GLenum stream, const GLint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glNormalStream3ivATI( stream, coords );
-}
-
-static void WINAPI glNormalStream3sATI( GLenum stream, GLshort nx, GLshort ny, GLshort nz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", stream, nx, ny, nz );
-  funcs->ext.p_glNormalStream3sATI( stream, nx, ny, nz );
-}
-
-static void WINAPI glNormalStream3svATI( GLenum stream, const GLshort *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glNormalStream3svATI( stream, coords );
-}
-
-static void WINAPI glObjectLabel( GLenum identifier, GLuint name, GLsizei length, const GLchar *label )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", identifier, name, length, label );
-  funcs->ext.p_glObjectLabel( identifier, name, length, label );
-}
-
-static void WINAPI glObjectPtrLabel( const void *ptr, GLsizei length, const GLchar *label )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %d, %p)\n", ptr, length, label );
-  funcs->ext.p_glObjectPtrLabel( ptr, length, label );
-}
-
-static GLenum WINAPI glObjectPurgeableAPPLE( GLenum objectType, GLuint name, GLenum option )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", objectType, name, option );
-  return funcs->ext.p_glObjectPurgeableAPPLE( objectType, name, option );
-}
-
-static GLenum WINAPI glObjectUnpurgeableAPPLE( GLenum objectType, GLuint name, GLenum option )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", objectType, name, option );
-  return funcs->ext.p_glObjectUnpurgeableAPPLE( objectType, name, option );
-}
-
-static void WINAPI glOrthofOES( GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f, %f, %f)\n", l, r, b, t, n, f );
-  funcs->ext.p_glOrthofOES( l, r, b, t, n, f );
-}
-
-static void WINAPI glOrthoxOES( GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", l, r, b, t, n, f );
-  funcs->ext.p_glOrthoxOES( l, r, b, t, n, f );
-}
-
-static void WINAPI glPNTrianglesfATI( GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", pname, param );
-  funcs->ext.p_glPNTrianglesfATI( pname, param );
-}
-
-static void WINAPI glPNTrianglesiATI( GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glPNTrianglesiATI( pname, param );
-}
-
-static void WINAPI glPassTexCoordATI( GLuint dst, GLuint coord, GLenum swizzle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", dst, coord, swizzle );
-  funcs->ext.p_glPassTexCoordATI( dst, coord, swizzle );
-}
-
-static void WINAPI glPassThroughxOES( GLfixed token )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", token );
-  funcs->ext.p_glPassThroughxOES( token );
-}
-
-static void WINAPI glPatchParameterfv( GLenum pname, const GLfloat *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, values );
-  funcs->ext.p_glPatchParameterfv( pname, values );
-}
-
-static void WINAPI glPatchParameteri( GLenum pname, GLint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, value );
-  funcs->ext.p_glPatchParameteri( pname, value );
-}
-
-static void WINAPI glPathColorGenNV( GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", color, genMode, colorFormat, coeffs );
-  funcs->ext.p_glPathColorGenNV( color, genMode, colorFormat, coeffs );
-}
-
-static void WINAPI glPathCommandsNV( GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %p)\n", path, numCommands, commands, numCoords, coordType, coords );
-  funcs->ext.p_glPathCommandsNV( path, numCommands, commands, numCoords, coordType, coords );
-}
-
-static void WINAPI glPathCoordsNV( GLuint path, GLsizei numCoords, GLenum coordType, const void *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", path, numCoords, coordType, coords );
-  funcs->ext.p_glPathCoordsNV( path, numCoords, coordType, coords );
-}
-
-static void WINAPI glPathCoverDepthFuncNV( GLenum func )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", func );
-  funcs->ext.p_glPathCoverDepthFuncNV( func );
-}
-
-static void WINAPI glPathDashArrayNV( GLuint path, GLsizei dashCount, const GLfloat *dashArray )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", path, dashCount, dashArray );
-  funcs->ext.p_glPathDashArrayNV( path, dashCount, dashArray );
-}
-
-static void WINAPI glPathFogGenNV( GLenum genMode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", genMode );
-  funcs->ext.p_glPathFogGenNV( genMode );
-}
-
-static GLenum WINAPI glPathGlyphIndexArrayNV( GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %d, %d, %f)\n", firstPathName, fontTarget, fontName, fontStyle, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale );
-  return funcs->ext.p_glPathGlyphIndexArrayNV( firstPathName, fontTarget, fontName, fontStyle, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale );
-}
-
-static GLenum WINAPI glPathGlyphIndexRangeNV( GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2] )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %d, %f, %p)\n", fontTarget, fontName, fontStyle, pathParameterTemplate, emScale, baseAndCount );
-  return funcs->ext.p_glPathGlyphIndexRangeNV( fontTarget, fontName, fontStyle, pathParameterTemplate, emScale, baseAndCount );
-}
-
-static void WINAPI glPathGlyphRangeNV( GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %d, %d, %d, %f)\n", firstPathName, fontTarget, fontName, fontStyle, firstGlyph, numGlyphs, handleMissingGlyphs, pathParameterTemplate, emScale );
-  funcs->ext.p_glPathGlyphRangeNV( firstPathName, fontTarget, fontName, fontStyle, firstGlyph, numGlyphs, handleMissingGlyphs, pathParameterTemplate, emScale );
-}
-
-static void WINAPI glPathGlyphsNV( GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %d, %p, %d, %d, %f)\n", firstPathName, fontTarget, fontName, fontStyle, numGlyphs, type, charcodes, handleMissingGlyphs, pathParameterTemplate, emScale );
-  funcs->ext.p_glPathGlyphsNV( firstPathName, fontTarget, fontName, fontStyle, numGlyphs, type, charcodes, handleMissingGlyphs, pathParameterTemplate, emScale );
-}
-
-static GLenum WINAPI glPathMemoryGlyphIndexArrayNV( GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %ld, %p, %d, %d, %d, %d, %f)\n", firstPathName, fontTarget, fontSize, fontData, faceIndex, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale );
-  return funcs->ext.p_glPathMemoryGlyphIndexArrayNV( firstPathName, fontTarget, fontSize, fontData, faceIndex, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale );
-}
-
-static void WINAPI glPathParameterfNV( GLuint path, GLenum pname, GLfloat value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", path, pname, value );
-  funcs->ext.p_glPathParameterfNV( path, pname, value );
-}
-
-static void WINAPI glPathParameterfvNV( GLuint path, GLenum pname, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", path, pname, value );
-  funcs->ext.p_glPathParameterfvNV( path, pname, value );
-}
-
-static void WINAPI glPathParameteriNV( GLuint path, GLenum pname, GLint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", path, pname, value );
-  funcs->ext.p_glPathParameteriNV( path, pname, value );
-}
-
-static void WINAPI glPathParameterivNV( GLuint path, GLenum pname, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", path, pname, value );
-  funcs->ext.p_glPathParameterivNV( path, pname, value );
-}
-
-static void WINAPI glPathStencilDepthOffsetNV( GLfloat factor, GLfloat units )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f)\n", factor, units );
-  funcs->ext.p_glPathStencilDepthOffsetNV( factor, units );
-}
-
-static void WINAPI glPathStencilFuncNV( GLenum func, GLint ref, GLuint mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", func, ref, mask );
-  funcs->ext.p_glPathStencilFuncNV( func, ref, mask );
-}
-
-static void WINAPI glPathStringNV( GLuint path, GLenum format, GLsizei length, const void *pathString )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", path, format, length, pathString );
-  funcs->ext.p_glPathStringNV( path, format, length, pathString );
-}
-
-static void WINAPI glPathSubCommandsNV( GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p, %d, %d, %p)\n", path, commandStart, commandsToDelete, numCommands, commands, numCoords, coordType, coords );
-  funcs->ext.p_glPathSubCommandsNV( path, commandStart, commandsToDelete, numCommands, commands, numCoords, coordType, coords );
-}
-
-static void WINAPI glPathSubCoordsNV( GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", path, coordStart, numCoords, coordType, coords );
-  funcs->ext.p_glPathSubCoordsNV( path, coordStart, numCoords, coordType, coords );
-}
-
-static void WINAPI glPathTexGenNV( GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texCoordSet, genMode, components, coeffs );
-  funcs->ext.p_glPathTexGenNV( texCoordSet, genMode, components, coeffs );
-}
-
-static void WINAPI glPauseTransformFeedback(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glPauseTransformFeedback();
-}
-
-static void WINAPI glPauseTransformFeedbackNV(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glPauseTransformFeedbackNV();
-}
-
-static void WINAPI glPixelDataRangeNV( GLenum target, GLsizei length, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, length, pointer );
-  funcs->ext.p_glPixelDataRangeNV( target, length, pointer );
-}
-
-static void WINAPI glPixelMapx( GLenum map, GLint size, const GLfixed *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", map, size, values );
-  funcs->ext.p_glPixelMapx( map, size, values );
-}
-
-static void WINAPI glPixelStorex( GLenum pname, GLfixed param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glPixelStorex( pname, param );
-}
-
-static void WINAPI glPixelTexGenParameterfSGIS( GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", pname, param );
-  funcs->ext.p_glPixelTexGenParameterfSGIS( pname, param );
-}
-
-static void WINAPI glPixelTexGenParameterfvSGIS( GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glPixelTexGenParameterfvSGIS( pname, params );
-}
-
-static void WINAPI glPixelTexGenParameteriSGIS( GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glPixelTexGenParameteriSGIS( pname, param );
-}
-
-static void WINAPI glPixelTexGenParameterivSGIS( GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glPixelTexGenParameterivSGIS( pname, params );
-}
-
-static void WINAPI glPixelTexGenSGIX( GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mode );
-  funcs->ext.p_glPixelTexGenSGIX( mode );
-}
-
-static void WINAPI glPixelTransferxOES( GLenum pname, GLfixed param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glPixelTransferxOES( pname, param );
-}
-
-static void WINAPI glPixelTransformParameterfEXT( GLenum target, GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", target, pname, param );
-  funcs->ext.p_glPixelTransformParameterfEXT( target, pname, param );
-}
-
-static void WINAPI glPixelTransformParameterfvEXT( GLenum target, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glPixelTransformParameterfvEXT( target, pname, params );
-}
-
-static void WINAPI glPixelTransformParameteriEXT( GLenum target, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, pname, param );
-  funcs->ext.p_glPixelTransformParameteriEXT( target, pname, param );
-}
-
-static void WINAPI glPixelTransformParameterivEXT( GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glPixelTransformParameterivEXT( target, pname, params );
-}
-
-static void WINAPI glPixelZoomxOES( GLfixed xfactor, GLfixed yfactor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", xfactor, yfactor );
-  funcs->ext.p_glPixelZoomxOES( xfactor, yfactor );
-}
-
-static GLboolean WINAPI glPointAlongPathNV( GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %f, %p, %p, %p, %p)\n", path, startSegment, numSegments, distance, x, y, tangentX, tangentY );
-  return funcs->ext.p_glPointAlongPathNV( path, startSegment, numSegments, distance, x, y, tangentX, tangentY );
-}
-
-static void WINAPI glPointParameterf( GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", pname, param );
-  funcs->ext.p_glPointParameterf( pname, param );
-}
-
-static void WINAPI glPointParameterfARB( GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", pname, param );
-  funcs->ext.p_glPointParameterfARB( pname, param );
-}
-
-static void WINAPI glPointParameterfEXT( GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", pname, param );
-  funcs->ext.p_glPointParameterfEXT( pname, param );
-}
-
-static void WINAPI glPointParameterfSGIS( GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", pname, param );
-  funcs->ext.p_glPointParameterfSGIS( pname, param );
-}
-
-static void WINAPI glPointParameterfv( GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glPointParameterfv( pname, params );
-}
-
-static void WINAPI glPointParameterfvARB( GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glPointParameterfvARB( pname, params );
-}
-
-static void WINAPI glPointParameterfvEXT( GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glPointParameterfvEXT( pname, params );
-}
-
-static void WINAPI glPointParameterfvSGIS( GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glPointParameterfvSGIS( pname, params );
-}
-
-static void WINAPI glPointParameteri( GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glPointParameteri( pname, param );
-}
-
-static void WINAPI glPointParameteriNV( GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glPointParameteriNV( pname, param );
-}
-
-static void WINAPI glPointParameteriv( GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glPointParameteriv( pname, params );
-}
-
-static void WINAPI glPointParameterivNV( GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glPointParameterivNV( pname, params );
-}
-
-static void WINAPI glPointParameterxvOES( GLenum pname, const GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glPointParameterxvOES( pname, params );
-}
-
-static void WINAPI glPointSizexOES( GLfixed size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", size );
-  funcs->ext.p_glPointSizexOES( size );
-}
-
-static GLint WINAPI glPollAsyncSGIX( GLuint *markerp )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", markerp );
-  return funcs->ext.p_glPollAsyncSGIX( markerp );
-}
-
-static GLint WINAPI glPollInstrumentsSGIX( GLint *marker_p )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", marker_p );
-  return funcs->ext.p_glPollInstrumentsSGIX( marker_p );
-}
-
-static void WINAPI glPolygonOffsetClamp( GLfloat factor, GLfloat units, GLfloat clamp )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", factor, units, clamp );
-  funcs->ext.p_glPolygonOffsetClamp( factor, units, clamp );
-}
-
-static void WINAPI glPolygonOffsetClampEXT( GLfloat factor, GLfloat units, GLfloat clamp )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", factor, units, clamp );
-  funcs->ext.p_glPolygonOffsetClampEXT( factor, units, clamp );
-}
-
-static void WINAPI glPolygonOffsetEXT( GLfloat factor, GLfloat bias )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f)\n", factor, bias );
-  funcs->ext.p_glPolygonOffsetEXT( factor, bias );
-}
-
-static void WINAPI glPolygonOffsetxOES( GLfixed factor, GLfixed units )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", factor, units );
-  funcs->ext.p_glPolygonOffsetxOES( factor, units );
-}
-
-static void WINAPI glPopDebugGroup(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glPopDebugGroup();
-}
-
-static void WINAPI glPopGroupMarkerEXT(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glPopGroupMarkerEXT();
-}
-
-static void WINAPI glPresentFrameDualFillNV( GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", video_slot, wine_dbgstr_longlong(minPresentTime), beginPresentTimeId, presentDurationId, type, target0, fill0, target1, fill1, target2, fill2, target3, fill3 );
-  funcs->ext.p_glPresentFrameDualFillNV( video_slot, minPresentTime, beginPresentTimeId, presentDurationId, type, target0, fill0, target1, fill1, target2, fill2, target3, fill3 );
-}
-
-static void WINAPI glPresentFrameKeyedNV( GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %d, %d, %d, %d, %d, %d, %d, %d, %d)\n", video_slot, wine_dbgstr_longlong(minPresentTime), beginPresentTimeId, presentDurationId, type, target0, fill0, key0, target1, fill1, key1 );
-  funcs->ext.p_glPresentFrameKeyedNV( video_slot, minPresentTime, beginPresentTimeId, presentDurationId, type, target0, fill0, key0, target1, fill1, key1 );
-}
-
-static void WINAPI glPrimitiveBoundingBoxARB( GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f, %f, %f, %f, %f)\n", minX, minY, minZ, minW, maxX, maxY, maxZ, maxW );
-  funcs->ext.p_glPrimitiveBoundingBoxARB( minX, minY, minZ, minW, maxX, maxY, maxZ, maxW );
-}
-
-static void WINAPI glPrimitiveRestartIndex( GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", index );
-  funcs->ext.p_glPrimitiveRestartIndex( index );
-}
-
-static void WINAPI glPrimitiveRestartIndexNV( GLuint index )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", index );
-  funcs->ext.p_glPrimitiveRestartIndexNV( index );
-}
-
-static void WINAPI glPrimitiveRestartNV(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glPrimitiveRestartNV();
-}
-
-static void WINAPI glPrioritizeTexturesEXT( GLsizei n, const GLuint *textures, const GLclampf *priorities )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p)\n", n, textures, priorities );
-  funcs->ext.p_glPrioritizeTexturesEXT( n, textures, priorities );
-}
-
-static void WINAPI glPrioritizeTexturesxOES( GLsizei n, const GLuint *textures, const GLfixed *priorities )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p)\n", n, textures, priorities );
-  funcs->ext.p_glPrioritizeTexturesxOES( n, textures, priorities );
-}
-
-static void WINAPI glProgramBinary( GLuint program, GLenum binaryFormat, const void *binary, GLsizei length )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d)\n", program, binaryFormat, binary, length );
-  funcs->ext.p_glProgramBinary( program, binaryFormat, binary, length );
-}
-
-static void WINAPI glProgramBufferParametersIivNV( GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, bindingIndex, wordIndex, count, params );
-  funcs->ext.p_glProgramBufferParametersIivNV( target, bindingIndex, wordIndex, count, params );
-}
-
-static void WINAPI glProgramBufferParametersIuivNV( GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, bindingIndex, wordIndex, count, params );
-  funcs->ext.p_glProgramBufferParametersIuivNV( target, bindingIndex, wordIndex, count, params );
-}
-
-static void WINAPI glProgramBufferParametersfvNV( GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", target, bindingIndex, wordIndex, count, params );
-  funcs->ext.p_glProgramBufferParametersfvNV( target, bindingIndex, wordIndex, count, params );
-}
-
-static void WINAPI glProgramEnvParameter4dARB( GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f, %f)\n", target, index, x, y, z, w );
-  funcs->ext.p_glProgramEnvParameter4dARB( target, index, x, y, z, w );
-}
-
-static void WINAPI glProgramEnvParameter4dvARB( GLenum target, GLuint index, const GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glProgramEnvParameter4dvARB( target, index, params );
-}
-
-static void WINAPI glProgramEnvParameter4fARB( GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f, %f)\n", target, index, x, y, z, w );
-  funcs->ext.p_glProgramEnvParameter4fARB( target, index, x, y, z, w );
-}
-
-static void WINAPI glProgramEnvParameter4fvARB( GLenum target, GLuint index, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glProgramEnvParameter4fvARB( target, index, params );
-}
-
-static void WINAPI glProgramEnvParameterI4iNV( GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, index, x, y, z, w );
-  funcs->ext.p_glProgramEnvParameterI4iNV( target, index, x, y, z, w );
-}
-
-static void WINAPI glProgramEnvParameterI4ivNV( GLenum target, GLuint index, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glProgramEnvParameterI4ivNV( target, index, params );
-}
-
-static void WINAPI glProgramEnvParameterI4uiNV( GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, index, x, y, z, w );
-  funcs->ext.p_glProgramEnvParameterI4uiNV( target, index, x, y, z, w );
-}
-
-static void WINAPI glProgramEnvParameterI4uivNV( GLenum target, GLuint index, const GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glProgramEnvParameterI4uivNV( target, index, params );
-}
-
-static void WINAPI glProgramEnvParameters4fvEXT( GLenum target, GLuint index, GLsizei count, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, index, count, params );
-  funcs->ext.p_glProgramEnvParameters4fvEXT( target, index, count, params );
-}
-
-static void WINAPI glProgramEnvParametersI4ivNV( GLenum target, GLuint index, GLsizei count, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, index, count, params );
-  funcs->ext.p_glProgramEnvParametersI4ivNV( target, index, count, params );
-}
-
-static void WINAPI glProgramEnvParametersI4uivNV( GLenum target, GLuint index, GLsizei count, const GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, index, count, params );
-  funcs->ext.p_glProgramEnvParametersI4uivNV( target, index, count, params );
-}
-
-static void WINAPI glProgramLocalParameter4dARB( GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f, %f)\n", target, index, x, y, z, w );
-  funcs->ext.p_glProgramLocalParameter4dARB( target, index, x, y, z, w );
-}
-
-static void WINAPI glProgramLocalParameter4dvARB( GLenum target, GLuint index, const GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glProgramLocalParameter4dvARB( target, index, params );
-}
-
-static void WINAPI glProgramLocalParameter4fARB( GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f, %f)\n", target, index, x, y, z, w );
-  funcs->ext.p_glProgramLocalParameter4fARB( target, index, x, y, z, w );
-}
-
-static void WINAPI glProgramLocalParameter4fvARB( GLenum target, GLuint index, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glProgramLocalParameter4fvARB( target, index, params );
-}
-
-static void WINAPI glProgramLocalParameterI4iNV( GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, index, x, y, z, w );
-  funcs->ext.p_glProgramLocalParameterI4iNV( target, index, x, y, z, w );
-}
-
-static void WINAPI glProgramLocalParameterI4ivNV( GLenum target, GLuint index, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glProgramLocalParameterI4ivNV( target, index, params );
-}
-
-static void WINAPI glProgramLocalParameterI4uiNV( GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, index, x, y, z, w );
-  funcs->ext.p_glProgramLocalParameterI4uiNV( target, index, x, y, z, w );
-}
-
-static void WINAPI glProgramLocalParameterI4uivNV( GLenum target, GLuint index, const GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, params );
-  funcs->ext.p_glProgramLocalParameterI4uivNV( target, index, params );
-}
-
-static void WINAPI glProgramLocalParameters4fvEXT( GLenum target, GLuint index, GLsizei count, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, index, count, params );
-  funcs->ext.p_glProgramLocalParameters4fvEXT( target, index, count, params );
-}
-
-static void WINAPI glProgramLocalParametersI4ivNV( GLenum target, GLuint index, GLsizei count, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, index, count, params );
-  funcs->ext.p_glProgramLocalParametersI4ivNV( target, index, count, params );
-}
-
-static void WINAPI glProgramLocalParametersI4uivNV( GLenum target, GLuint index, GLsizei count, const GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, index, count, params );
-  funcs->ext.p_glProgramLocalParametersI4uivNV( target, index, count, params );
-}
-
-static void WINAPI glProgramNamedParameter4dNV( GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %f, %f, %f, %f)\n", id, len, name, x, y, z, w );
-  funcs->ext.p_glProgramNamedParameter4dNV( id, len, name, x, y, z, w );
-}
-
-static void WINAPI glProgramNamedParameter4dvNV( GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", id, len, name, v );
-  funcs->ext.p_glProgramNamedParameter4dvNV( id, len, name, v );
-}
-
-static void WINAPI glProgramNamedParameter4fNV( GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %f, %f, %f, %f)\n", id, len, name, x, y, z, w );
-  funcs->ext.p_glProgramNamedParameter4fNV( id, len, name, x, y, z, w );
-}
-
-static void WINAPI glProgramNamedParameter4fvNV( GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", id, len, name, v );
-  funcs->ext.p_glProgramNamedParameter4fvNV( id, len, name, v );
-}
-
-static void WINAPI glProgramParameter4dNV( GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f, %f)\n", target, index, x, y, z, w );
-  funcs->ext.p_glProgramParameter4dNV( target, index, x, y, z, w );
-}
-
-static void WINAPI glProgramParameter4dvNV( GLenum target, GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, v );
-  funcs->ext.p_glProgramParameter4dvNV( target, index, v );
-}
-
-static void WINAPI glProgramParameter4fNV( GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f, %f)\n", target, index, x, y, z, w );
-  funcs->ext.p_glProgramParameter4fNV( target, index, x, y, z, w );
-}
-
-static void WINAPI glProgramParameter4fvNV( GLenum target, GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, index, v );
-  funcs->ext.p_glProgramParameter4fvNV( target, index, v );
-}
-
-static void WINAPI glProgramParameteri( GLuint program, GLenum pname, GLint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", program, pname, value );
-  funcs->ext.p_glProgramParameteri( program, pname, value );
-}
-
-static void WINAPI glProgramParameteriARB( GLuint program, GLenum pname, GLint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", program, pname, value );
-  funcs->ext.p_glProgramParameteriARB( program, pname, value );
-}
-
-static void WINAPI glProgramParameteriEXT( GLuint program, GLenum pname, GLint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", program, pname, value );
-  funcs->ext.p_glProgramParameteriEXT( program, pname, value );
-}
-
-static void WINAPI glProgramParameters4dvNV( GLenum target, GLuint index, GLsizei count, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, index, count, v );
-  funcs->ext.p_glProgramParameters4dvNV( target, index, count, v );
-}
-
-static void WINAPI glProgramParameters4fvNV( GLenum target, GLuint index, GLsizei count, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, index, count, v );
-  funcs->ext.p_glProgramParameters4fvNV( target, index, count, v );
-}
-
-static void WINAPI glProgramPathFragmentInputGenNV( GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, genMode, components, coeffs );
-  funcs->ext.p_glProgramPathFragmentInputGenNV( program, location, genMode, components, coeffs );
-}
-
-static void WINAPI glProgramStringARB( GLenum target, GLenum format, GLsizei len, const void *string )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, format, len, string );
-  funcs->ext.p_glProgramStringARB( target, format, len, string );
-}
-
-static void WINAPI glProgramSubroutineParametersuivNV( GLenum target, GLsizei count, const GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, count, params );
-  funcs->ext.p_glProgramSubroutineParametersuivNV( target, count, params );
-}
-
-static void WINAPI glProgramUniform1d( GLuint program, GLint location, GLdouble v0 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", program, location, v0 );
-  funcs->ext.p_glProgramUniform1d( program, location, v0 );
-}
-
-static void WINAPI glProgramUniform1dEXT( GLuint program, GLint location, GLdouble x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", program, location, x );
-  funcs->ext.p_glProgramUniform1dEXT( program, location, x );
-}
-
-static void WINAPI glProgramUniform1dv( GLuint program, GLint location, GLsizei count, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform1dv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform1dvEXT( GLuint program, GLint location, GLsizei count, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform1dvEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform1f( GLuint program, GLint location, GLfloat v0 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", program, location, v0 );
-  funcs->ext.p_glProgramUniform1f( program, location, v0 );
-}
-
-static void WINAPI glProgramUniform1fEXT( GLuint program, GLint location, GLfloat v0 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", program, location, v0 );
-  funcs->ext.p_glProgramUniform1fEXT( program, location, v0 );
-}
-
-static void WINAPI glProgramUniform1fv( GLuint program, GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform1fv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform1fvEXT( GLuint program, GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform1fvEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform1i( GLuint program, GLint location, GLint v0 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", program, location, v0 );
-  funcs->ext.p_glProgramUniform1i( program, location, v0 );
-}
-
-static void WINAPI glProgramUniform1i64ARB( GLuint program, GLint location, GLint64 x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s)\n", program, location, wine_dbgstr_longlong(x) );
-  funcs->ext.p_glProgramUniform1i64ARB( program, location, x );
-}
-
-static void WINAPI glProgramUniform1i64NV( GLuint program, GLint location, GLint64EXT x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s)\n", program, location, wine_dbgstr_longlong(x) );
-  funcs->ext.p_glProgramUniform1i64NV( program, location, x );
-}
-
-static void WINAPI glProgramUniform1i64vARB( GLuint program, GLint location, GLsizei count, const GLint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform1i64vARB( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform1i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform1i64vNV( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform1iEXT( GLuint program, GLint location, GLint v0 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", program, location, v0 );
-  funcs->ext.p_glProgramUniform1iEXT( program, location, v0 );
-}
-
-static void WINAPI glProgramUniform1iv( GLuint program, GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform1iv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform1ivEXT( GLuint program, GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform1ivEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform1ui( GLuint program, GLint location, GLuint v0 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", program, location, v0 );
-  funcs->ext.p_glProgramUniform1ui( program, location, v0 );
-}
-
-static void WINAPI glProgramUniform1ui64ARB( GLuint program, GLint location, GLuint64 x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s)\n", program, location, wine_dbgstr_longlong(x) );
-  funcs->ext.p_glProgramUniform1ui64ARB( program, location, x );
-}
-
-static void WINAPI glProgramUniform1ui64NV( GLuint program, GLint location, GLuint64EXT x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s)\n", program, location, wine_dbgstr_longlong(x) );
-  funcs->ext.p_glProgramUniform1ui64NV( program, location, x );
-}
-
-static void WINAPI glProgramUniform1ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform1ui64vARB( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform1ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform1ui64vNV( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform1uiEXT( GLuint program, GLint location, GLuint v0 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", program, location, v0 );
-  funcs->ext.p_glProgramUniform1uiEXT( program, location, v0 );
-}
-
-static void WINAPI glProgramUniform1uiv( GLuint program, GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform1uiv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform1uivEXT( GLuint program, GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform1uivEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform2d( GLuint program, GLint location, GLdouble v0, GLdouble v1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f)\n", program, location, v0, v1 );
-  funcs->ext.p_glProgramUniform2d( program, location, v0, v1 );
-}
-
-static void WINAPI glProgramUniform2dEXT( GLuint program, GLint location, GLdouble x, GLdouble y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f)\n", program, location, x, y );
-  funcs->ext.p_glProgramUniform2dEXT( program, location, x, y );
-}
-
-static void WINAPI glProgramUniform2dv( GLuint program, GLint location, GLsizei count, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform2dv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform2dvEXT( GLuint program, GLint location, GLsizei count, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform2dvEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform2f( GLuint program, GLint location, GLfloat v0, GLfloat v1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f)\n", program, location, v0, v1 );
-  funcs->ext.p_glProgramUniform2f( program, location, v0, v1 );
-}
-
-static void WINAPI glProgramUniform2fEXT( GLuint program, GLint location, GLfloat v0, GLfloat v1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f)\n", program, location, v0, v1 );
-  funcs->ext.p_glProgramUniform2fEXT( program, location, v0, v1 );
-}
-
-static void WINAPI glProgramUniform2fv( GLuint program, GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform2fv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform2fvEXT( GLuint program, GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform2fvEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform2i( GLuint program, GLint location, GLint v0, GLint v1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", program, location, v0, v1 );
-  funcs->ext.p_glProgramUniform2i( program, location, v0, v1 );
-}
-
-static void WINAPI glProgramUniform2i64ARB( GLuint program, GLint location, GLint64 x, GLint64 y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
-  funcs->ext.p_glProgramUniform2i64ARB( program, location, x, y );
-}
-
-static void WINAPI glProgramUniform2i64NV( GLuint program, GLint location, GLint64EXT x, GLint64EXT y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
-  funcs->ext.p_glProgramUniform2i64NV( program, location, x, y );
-}
-
-static void WINAPI glProgramUniform2i64vARB( GLuint program, GLint location, GLsizei count, const GLint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform2i64vARB( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform2i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform2i64vNV( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform2iEXT( GLuint program, GLint location, GLint v0, GLint v1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", program, location, v0, v1 );
-  funcs->ext.p_glProgramUniform2iEXT( program, location, v0, v1 );
-}
-
-static void WINAPI glProgramUniform2iv( GLuint program, GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform2iv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform2ivEXT( GLuint program, GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform2ivEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform2ui( GLuint program, GLint location, GLuint v0, GLuint v1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", program, location, v0, v1 );
-  funcs->ext.p_glProgramUniform2ui( program, location, v0, v1 );
-}
-
-static void WINAPI glProgramUniform2ui64ARB( GLuint program, GLint location, GLuint64 x, GLuint64 y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
-  funcs->ext.p_glProgramUniform2ui64ARB( program, location, x, y );
-}
-
-static void WINAPI glProgramUniform2ui64NV( GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
-  funcs->ext.p_glProgramUniform2ui64NV( program, location, x, y );
-}
-
-static void WINAPI glProgramUniform2ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform2ui64vARB( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform2ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform2ui64vNV( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform2uiEXT( GLuint program, GLint location, GLuint v0, GLuint v1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", program, location, v0, v1 );
-  funcs->ext.p_glProgramUniform2uiEXT( program, location, v0, v1 );
-}
-
-static void WINAPI glProgramUniform2uiv( GLuint program, GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform2uiv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform2uivEXT( GLuint program, GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform2uivEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform3d( GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f)\n", program, location, v0, v1, v2 );
-  funcs->ext.p_glProgramUniform3d( program, location, v0, v1, v2 );
-}
-
-static void WINAPI glProgramUniform3dEXT( GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f)\n", program, location, x, y, z );
-  funcs->ext.p_glProgramUniform3dEXT( program, location, x, y, z );
-}
-
-static void WINAPI glProgramUniform3dv( GLuint program, GLint location, GLsizei count, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform3dv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform3dvEXT( GLuint program, GLint location, GLsizei count, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform3dvEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform3f( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f)\n", program, location, v0, v1, v2 );
-  funcs->ext.p_glProgramUniform3f( program, location, v0, v1, v2 );
-}
-
-static void WINAPI glProgramUniform3fEXT( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f)\n", program, location, v0, v1, v2 );
-  funcs->ext.p_glProgramUniform3fEXT( program, location, v0, v1, v2 );
-}
-
-static void WINAPI glProgramUniform3fv( GLuint program, GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform3fv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform3fvEXT( GLuint program, GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform3fvEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform3i( GLuint program, GLint location, GLint v0, GLint v1, GLint v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", program, location, v0, v1, v2 );
-  funcs->ext.p_glProgramUniform3i( program, location, v0, v1, v2 );
-}
-
-static void WINAPI glProgramUniform3i64ARB( GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
-  funcs->ext.p_glProgramUniform3i64ARB( program, location, x, y, z );
-}
-
-static void WINAPI glProgramUniform3i64NV( GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
-  funcs->ext.p_glProgramUniform3i64NV( program, location, x, y, z );
-}
-
-static void WINAPI glProgramUniform3i64vARB( GLuint program, GLint location, GLsizei count, const GLint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform3i64vARB( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform3i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform3i64vNV( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform3iEXT( GLuint program, GLint location, GLint v0, GLint v1, GLint v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", program, location, v0, v1, v2 );
-  funcs->ext.p_glProgramUniform3iEXT( program, location, v0, v1, v2 );
-}
-
-static void WINAPI glProgramUniform3iv( GLuint program, GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform3iv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform3ivEXT( GLuint program, GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform3ivEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform3ui( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", program, location, v0, v1, v2 );
-  funcs->ext.p_glProgramUniform3ui( program, location, v0, v1, v2 );
-}
-
-static void WINAPI glProgramUniform3ui64ARB( GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
-  funcs->ext.p_glProgramUniform3ui64ARB( program, location, x, y, z );
-}
-
-static void WINAPI glProgramUniform3ui64NV( GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
-  funcs->ext.p_glProgramUniform3ui64NV( program, location, x, y, z );
-}
-
-static void WINAPI glProgramUniform3ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform3ui64vARB( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform3ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform3ui64vNV( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform3uiEXT( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", program, location, v0, v1, v2 );
-  funcs->ext.p_glProgramUniform3uiEXT( program, location, v0, v1, v2 );
-}
-
-static void WINAPI glProgramUniform3uiv( GLuint program, GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform3uiv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform3uivEXT( GLuint program, GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform3uivEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform4d( GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f, %f)\n", program, location, v0, v1, v2, v3 );
-  funcs->ext.p_glProgramUniform4d( program, location, v0, v1, v2, v3 );
-}
-
-static void WINAPI glProgramUniform4dEXT( GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f, %f)\n", program, location, x, y, z, w );
-  funcs->ext.p_glProgramUniform4dEXT( program, location, x, y, z, w );
-}
-
-static void WINAPI glProgramUniform4dv( GLuint program, GLint location, GLsizei count, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform4dv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform4dvEXT( GLuint program, GLint location, GLsizei count, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform4dvEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform4f( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f, %f)\n", program, location, v0, v1, v2, v3 );
-  funcs->ext.p_glProgramUniform4f( program, location, v0, v1, v2, v3 );
-}
-
-static void WINAPI glProgramUniform4fEXT( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f, %f, %f, %f)\n", program, location, v0, v1, v2, v3 );
-  funcs->ext.p_glProgramUniform4fEXT( program, location, v0, v1, v2, v3 );
-}
-
-static void WINAPI glProgramUniform4fv( GLuint program, GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform4fv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform4fvEXT( GLuint program, GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform4fvEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform4i( GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", program, location, v0, v1, v2, v3 );
-  funcs->ext.p_glProgramUniform4i( program, location, v0, v1, v2, v3 );
-}
-
-static void WINAPI glProgramUniform4i64ARB( GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
-  funcs->ext.p_glProgramUniform4i64ARB( program, location, x, y, z, w );
-}
-
-static void WINAPI glProgramUniform4i64NV( GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
-  funcs->ext.p_glProgramUniform4i64NV( program, location, x, y, z, w );
-}
-
-static void WINAPI glProgramUniform4i64vARB( GLuint program, GLint location, GLsizei count, const GLint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform4i64vARB( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform4i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform4i64vNV( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform4iEXT( GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", program, location, v0, v1, v2, v3 );
-  funcs->ext.p_glProgramUniform4iEXT( program, location, v0, v1, v2, v3 );
-}
-
-static void WINAPI glProgramUniform4iv( GLuint program, GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform4iv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform4ivEXT( GLuint program, GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform4ivEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform4ui( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", program, location, v0, v1, v2, v3 );
-  funcs->ext.p_glProgramUniform4ui( program, location, v0, v1, v2, v3 );
-}
-
-static void WINAPI glProgramUniform4ui64ARB( GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
-  funcs->ext.p_glProgramUniform4ui64ARB( program, location, x, y, z, w );
-}
-
-static void WINAPI glProgramUniform4ui64NV( GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s, %s, %s, %s)\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
-  funcs->ext.p_glProgramUniform4ui64NV( program, location, x, y, z, w );
-}
-
-static void WINAPI glProgramUniform4ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform4ui64vARB( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform4ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform4ui64vNV( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform4uiEXT( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", program, location, v0, v1, v2, v3 );
-  funcs->ext.p_glProgramUniform4uiEXT( program, location, v0, v1, v2, v3 );
-}
-
-static void WINAPI glProgramUniform4uiv( GLuint program, GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform4uiv( program, location, count, value );
-}
-
-static void WINAPI glProgramUniform4uivEXT( GLuint program, GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniform4uivEXT( program, location, count, value );
-}
-
-static void WINAPI glProgramUniformHandleui64ARB( GLuint program, GLint location, GLuint64 value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s)\n", program, location, wine_dbgstr_longlong(value) );
-  funcs->ext.p_glProgramUniformHandleui64ARB( program, location, value );
-}
-
-static void WINAPI glProgramUniformHandleui64NV( GLuint program, GLint location, GLuint64 value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s)\n", program, location, wine_dbgstr_longlong(value) );
-  funcs->ext.p_glProgramUniformHandleui64NV( program, location, value );
-}
-
-static void WINAPI glProgramUniformHandleui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64 *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, values );
-  funcs->ext.p_glProgramUniformHandleui64vARB( program, location, count, values );
-}
-
-static void WINAPI glProgramUniformHandleui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64 *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, values );
-  funcs->ext.p_glProgramUniformHandleui64vNV( program, location, count, values );
-}
-
-static void WINAPI glProgramUniformMatrix2dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix2dv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix2dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix2dvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix2fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix2fv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix2fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix2fvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix2x3dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix2x3dv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix2x3dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix2x3dvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix2x3fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix2x3fv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix2x3fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix2x3fvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix2x4dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix2x4dv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix2x4dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix2x4dvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix2x4fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix2x4fv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix2x4fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix2x4fvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix3dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix3dv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix3dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix3dvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix3fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix3fv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix3fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix3fvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix3x2dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix3x2dv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix3x2dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix3x2dvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix3x2fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix3x2fv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix3x2fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix3x2fvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix3x4dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix3x4dv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix3x4dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix3x4dvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix3x4fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix3x4fv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix3x4fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix3x4fvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix4dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix4dv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix4dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix4dvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix4fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix4fv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix4fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix4fvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix4x2dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix4x2dv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix4x2dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix4x2dvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix4x2fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix4x2fv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix4x2fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix4x2fvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix4x3dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix4x3dv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix4x3dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix4x3dvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix4x3fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix4x3fv( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformMatrix4x3fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", program, location, count, transpose, value );
-  funcs->ext.p_glProgramUniformMatrix4x3fvEXT( program, location, count, transpose, value );
-}
-
-static void WINAPI glProgramUniformui64NV( GLuint program, GLint location, GLuint64EXT value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s)\n", program, location, wine_dbgstr_longlong(value) );
-  funcs->ext.p_glProgramUniformui64NV( program, location, value );
-}
-
-static void WINAPI glProgramUniformui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", program, location, count, value );
-  funcs->ext.p_glProgramUniformui64vNV( program, location, count, value );
-}
-
-static void WINAPI glProgramVertexLimitNV( GLenum target, GLint limit )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, limit );
-  funcs->ext.p_glProgramVertexLimitNV( target, limit );
-}
-
-static void WINAPI glProvokingVertex( GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mode );
-  funcs->ext.p_glProvokingVertex( mode );
-}
-
-static void WINAPI glProvokingVertexEXT( GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mode );
-  funcs->ext.p_glProvokingVertexEXT( mode );
-}
-
-static void WINAPI glPushClientAttribDefaultEXT( GLbitfield mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mask );
-  funcs->ext.p_glPushClientAttribDefaultEXT( mask );
-}
-
-static void WINAPI glPushDebugGroup( GLenum source, GLuint id, GLsizei length, const GLchar *message )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", source, id, length, message );
-  funcs->ext.p_glPushDebugGroup( source, id, length, message );
-}
-
-static void WINAPI glPushGroupMarkerEXT( GLsizei length, const GLchar *marker )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", length, marker );
-  funcs->ext.p_glPushGroupMarkerEXT( length, marker );
-}
-
-static void WINAPI glQueryCounter( GLuint id, GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", id, target );
-  funcs->ext.p_glQueryCounter( id, target );
-}
-
-static GLbitfield WINAPI glQueryMatrixxOES( GLfixed *mantissa, GLint *exponent )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p)\n", mantissa, exponent );
-  return funcs->ext.p_glQueryMatrixxOES( mantissa, exponent );
-}
-
-static void WINAPI glQueryObjectParameteruiAMD( GLenum target, GLuint id, GLenum pname, GLuint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, id, pname, param );
-  funcs->ext.p_glQueryObjectParameteruiAMD( target, id, pname, param );
-}
-
-static GLint WINAPI glQueryResourceNV( GLenum queryType, GLint tagId, GLuint count, GLint *buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", queryType, tagId, count, buffer );
-  return funcs->ext.p_glQueryResourceNV( queryType, tagId, count, buffer );
-}
-
-static void WINAPI glQueryResourceTagNV( GLint tagId, const GLchar *tagString )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", tagId, tagString );
-  funcs->ext.p_glQueryResourceTagNV( tagId, tagString );
-}
-
-static void WINAPI glRasterPos2xOES( GLfixed x, GLfixed y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", x, y );
-  funcs->ext.p_glRasterPos2xOES( x, y );
-}
-
-static void WINAPI glRasterPos2xvOES( const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glRasterPos2xvOES( coords );
-}
-
-static void WINAPI glRasterPos3xOES( GLfixed x, GLfixed y, GLfixed z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", x, y, z );
-  funcs->ext.p_glRasterPos3xOES( x, y, z );
-}
-
-static void WINAPI glRasterPos3xvOES( const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glRasterPos3xvOES( coords );
-}
-
-static void WINAPI glRasterPos4xOES( GLfixed x, GLfixed y, GLfixed z, GLfixed w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", x, y, z, w );
-  funcs->ext.p_glRasterPos4xOES( x, y, z, w );
-}
-
-static void WINAPI glRasterPos4xvOES( const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glRasterPos4xvOES( coords );
-}
-
-static void WINAPI glRasterSamplesEXT( GLuint samples, GLboolean fixedsamplelocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", samples, fixedsamplelocations );
-  funcs->ext.p_glRasterSamplesEXT( samples, fixedsamplelocations );
-}
-
-static void WINAPI glReadBufferRegion( GLenum region, GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", region, x, y, width, height );
-  funcs->ext.p_glReadBufferRegion( region, x, y, width, height );
-}
-
-static void WINAPI glReadInstrumentsSGIX( GLint marker )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", marker );
-  funcs->ext.p_glReadInstrumentsSGIX( marker );
-}
-
-static void WINAPI glReadnPixels( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %p)\n", x, y, width, height, format, type, bufSize, data );
-  funcs->ext.p_glReadnPixels( x, y, width, height, format, type, bufSize, data );
-}
-
-static void WINAPI glReadnPixelsARB( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %p)\n", x, y, width, height, format, type, bufSize, data );
-  funcs->ext.p_glReadnPixelsARB( x, y, width, height, format, type, bufSize, data );
-}
-
-static void WINAPI glRectxOES( GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", x1, y1, x2, y2 );
-  funcs->ext.p_glRectxOES( x1, y1, x2, y2 );
-}
-
-static void WINAPI glRectxvOES( const GLfixed *v1, const GLfixed *v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p)\n", v1, v2 );
-  funcs->ext.p_glRectxvOES( v1, v2 );
-}
-
-static void WINAPI glReferencePlaneSGIX( const GLdouble *equation )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", equation );
-  funcs->ext.p_glReferencePlaneSGIX( equation );
-}
-
-static GLboolean WINAPI glReleaseKeyedMutexWin32EXT( GLuint memory, GLuint64 key )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s)\n", memory, wine_dbgstr_longlong(key) );
-  return funcs->ext.p_glReleaseKeyedMutexWin32EXT( memory, key );
-}
-
-static void WINAPI glReleaseShaderCompiler(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glReleaseShaderCompiler();
-}
-
-static void WINAPI glRenderGpuMaskNV( GLbitfield mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mask );
-  funcs->ext.p_glRenderGpuMaskNV( mask );
-}
-
-static void WINAPI glRenderbufferStorage( GLenum target, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, internalformat, width, height );
-  funcs->ext.p_glRenderbufferStorage( target, internalformat, width, height );
-}
-
-static void WINAPI glRenderbufferStorageEXT( GLenum target, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, internalformat, width, height );
-  funcs->ext.p_glRenderbufferStorageEXT( target, internalformat, width, height );
-}
-
-static void WINAPI glRenderbufferStorageMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, samples, internalformat, width, height );
-  funcs->ext.p_glRenderbufferStorageMultisample( target, samples, internalformat, width, height );
-}
-
-static void WINAPI glRenderbufferStorageMultisampleAdvancedAMD( GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, samples, storageSamples, internalformat, width, height );
-  funcs->ext.p_glRenderbufferStorageMultisampleAdvancedAMD( target, samples, storageSamples, internalformat, width, height );
-}
-
-static void WINAPI glRenderbufferStorageMultisampleCoverageNV( GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, coverageSamples, colorSamples, internalformat, width, height );
-  funcs->ext.p_glRenderbufferStorageMultisampleCoverageNV( target, coverageSamples, colorSamples, internalformat, width, height );
-}
-
-static void WINAPI glRenderbufferStorageMultisampleEXT( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, samples, internalformat, width, height );
-  funcs->ext.p_glRenderbufferStorageMultisampleEXT( target, samples, internalformat, width, height );
-}
-
-static void WINAPI glReplacementCodePointerSUN( GLenum type, GLsizei stride, const void **pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", type, stride, pointer );
-  funcs->ext.p_glReplacementCodePointerSUN( type, stride, pointer );
-}
-
-static void WINAPI glReplacementCodeubSUN( GLubyte code )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", code );
-  funcs->ext.p_glReplacementCodeubSUN( code );
-}
-
-static void WINAPI glReplacementCodeubvSUN( const GLubyte *code )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", code );
-  funcs->ext.p_glReplacementCodeubvSUN( code );
-}
-
-static void WINAPI glReplacementCodeuiColor3fVertex3fSUN( GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f, %f, %f)\n", rc, r, g, b, x, y, z );
-  funcs->ext.p_glReplacementCodeuiColor3fVertex3fSUN( rc, r, g, b, x, y, z );
-}
-
-static void WINAPI glReplacementCodeuiColor3fVertex3fvSUN( const GLuint *rc, const GLfloat *c, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p)\n", rc, c, v );
-  funcs->ext.p_glReplacementCodeuiColor3fVertex3fvSUN( rc, c, v );
-}
-
-static void WINAPI glReplacementCodeuiColor4fNormal3fVertex3fSUN( GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f)\n", rc, r, g, b, a, nx, ny, nz, x, y, z );
-  funcs->ext.p_glReplacementCodeuiColor4fNormal3fVertex3fSUN( rc, r, g, b, a, nx, ny, nz, x, y, z );
-}
-
-static void WINAPI glReplacementCodeuiColor4fNormal3fVertex3fvSUN( const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p, %p)\n", rc, c, n, v );
-  funcs->ext.p_glReplacementCodeuiColor4fNormal3fVertex3fvSUN( rc, c, n, v );
-}
-
-static void WINAPI glReplacementCodeuiColor4ubVertex3fSUN( GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %f, %f, %f)\n", rc, r, g, b, a, x, y, z );
-  funcs->ext.p_glReplacementCodeuiColor4ubVertex3fSUN( rc, r, g, b, a, x, y, z );
-}
-
-static void WINAPI glReplacementCodeuiColor4ubVertex3fvSUN( const GLuint *rc, const GLubyte *c, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p)\n", rc, c, v );
-  funcs->ext.p_glReplacementCodeuiColor4ubVertex3fvSUN( rc, c, v );
-}
-
-static void WINAPI glReplacementCodeuiNormal3fVertex3fSUN( GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f, %f, %f)\n", rc, nx, ny, nz, x, y, z );
-  funcs->ext.p_glReplacementCodeuiNormal3fVertex3fSUN( rc, nx, ny, nz, x, y, z );
-}
-
-static void WINAPI glReplacementCodeuiNormal3fVertex3fvSUN( const GLuint *rc, const GLfloat *n, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p)\n", rc, n, v );
-  funcs->ext.p_glReplacementCodeuiNormal3fVertex3fvSUN( rc, n, v );
-}
-
-static void WINAPI glReplacementCodeuiSUN( GLuint code )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", code );
-  funcs->ext.p_glReplacementCodeuiSUN( code );
-}
-
-static void WINAPI glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN( GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f)\n", rc, s, t, r, g, b, a, nx, ny, nz, x, y, z );
-  funcs->ext.p_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN( rc, s, t, r, g, b, a, nx, ny, nz, x, y, z );
-}
-
-static void WINAPI glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN( const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p, %p, %p)\n", rc, tc, c, n, v );
-  funcs->ext.p_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN( rc, tc, c, n, v );
-}
-
-static void WINAPI glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN( GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f, %f, %f, %f, %f)\n", rc, s, t, nx, ny, nz, x, y, z );
-  funcs->ext.p_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN( rc, s, t, nx, ny, nz, x, y, z );
-}
-
-static void WINAPI glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN( const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p, %p)\n", rc, tc, n, v );
-  funcs->ext.p_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN( rc, tc, n, v );
-}
-
-static void WINAPI glReplacementCodeuiTexCoord2fVertex3fSUN( GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f, %f)\n", rc, s, t, x, y, z );
-  funcs->ext.p_glReplacementCodeuiTexCoord2fVertex3fSUN( rc, s, t, x, y, z );
-}
-
-static void WINAPI glReplacementCodeuiTexCoord2fVertex3fvSUN( const GLuint *rc, const GLfloat *tc, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p)\n", rc, tc, v );
-  funcs->ext.p_glReplacementCodeuiTexCoord2fVertex3fvSUN( rc, tc, v );
-}
-
-static void WINAPI glReplacementCodeuiVertex3fSUN( GLuint rc, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", rc, x, y, z );
-  funcs->ext.p_glReplacementCodeuiVertex3fSUN( rc, x, y, z );
-}
-
-static void WINAPI glReplacementCodeuiVertex3fvSUN( const GLuint *rc, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p)\n", rc, v );
-  funcs->ext.p_glReplacementCodeuiVertex3fvSUN( rc, v );
-}
-
-static void WINAPI glReplacementCodeuivSUN( const GLuint *code )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", code );
-  funcs->ext.p_glReplacementCodeuivSUN( code );
-}
-
-static void WINAPI glReplacementCodeusSUN( GLushort code )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", code );
-  funcs->ext.p_glReplacementCodeusSUN( code );
-}
-
-static void WINAPI glReplacementCodeusvSUN( const GLushort *code )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", code );
-  funcs->ext.p_glReplacementCodeusvSUN( code );
-}
-
-static void WINAPI glRequestResidentProgramsNV( GLsizei n, const GLuint *programs )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", n, programs );
-  funcs->ext.p_glRequestResidentProgramsNV( n, programs );
-}
-
-static void WINAPI glResetHistogram( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  funcs->ext.p_glResetHistogram( target );
-}
-
-static void WINAPI glResetHistogramEXT( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  funcs->ext.p_glResetHistogramEXT( target );
-}
-
-static void WINAPI glResetMemoryObjectParameterNV( GLuint memory, GLenum pname )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", memory, pname );
-  funcs->ext.p_glResetMemoryObjectParameterNV( memory, pname );
-}
-
-static void WINAPI glResetMinmax( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  funcs->ext.p_glResetMinmax( target );
-}
-
-static void WINAPI glResetMinmaxEXT( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  funcs->ext.p_glResetMinmaxEXT( target );
-}
-
-static void WINAPI glResizeBuffersMESA(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glResizeBuffersMESA();
-}
-
-static void WINAPI glResolveDepthValuesNV(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glResolveDepthValuesNV();
-}
-
-static void WINAPI glResumeTransformFeedback(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glResumeTransformFeedback();
-}
-
-static void WINAPI glResumeTransformFeedbackNV(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glResumeTransformFeedbackNV();
-}
-
-static void WINAPI glRotatexOES( GLfixed angle, GLfixed x, GLfixed y, GLfixed z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", angle, x, y, z );
-  funcs->ext.p_glRotatexOES( angle, x, y, z );
-}
-
-static void WINAPI glSampleCoverage( GLfloat value, GLboolean invert )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %d)\n", value, invert );
-  funcs->ext.p_glSampleCoverage( value, invert );
-}
-
-static void WINAPI glSampleCoverageARB( GLfloat value, GLboolean invert )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %d)\n", value, invert );
-  funcs->ext.p_glSampleCoverageARB( value, invert );
-}
-
-static void WINAPI glSampleMapATI( GLuint dst, GLuint interp, GLenum swizzle )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", dst, interp, swizzle );
-  funcs->ext.p_glSampleMapATI( dst, interp, swizzle );
-}
-
-static void WINAPI glSampleMaskEXT( GLclampf value, GLboolean invert )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %d)\n", value, invert );
-  funcs->ext.p_glSampleMaskEXT( value, invert );
-}
-
-static void WINAPI glSampleMaskIndexedNV( GLuint index, GLbitfield mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, mask );
-  funcs->ext.p_glSampleMaskIndexedNV( index, mask );
-}
-
-static void WINAPI glSampleMaskSGIS( GLclampf value, GLboolean invert )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %d)\n", value, invert );
-  funcs->ext.p_glSampleMaskSGIS( value, invert );
-}
-
-static void WINAPI glSampleMaski( GLuint maskNumber, GLbitfield mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", maskNumber, mask );
-  funcs->ext.p_glSampleMaski( maskNumber, mask );
-}
-
-static void WINAPI glSamplePatternEXT( GLenum pattern )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", pattern );
-  funcs->ext.p_glSamplePatternEXT( pattern );
-}
-
-static void WINAPI glSamplePatternSGIS( GLenum pattern )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", pattern );
-  funcs->ext.p_glSamplePatternSGIS( pattern );
-}
-
-static void WINAPI glSamplerParameterIiv( GLuint sampler, GLenum pname, const GLint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", sampler, pname, param );
-  funcs->ext.p_glSamplerParameterIiv( sampler, pname, param );
-}
-
-static void WINAPI glSamplerParameterIuiv( GLuint sampler, GLenum pname, const GLuint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", sampler, pname, param );
-  funcs->ext.p_glSamplerParameterIuiv( sampler, pname, param );
-}
-
-static void WINAPI glSamplerParameterf( GLuint sampler, GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", sampler, pname, param );
-  funcs->ext.p_glSamplerParameterf( sampler, pname, param );
-}
-
-static void WINAPI glSamplerParameterfv( GLuint sampler, GLenum pname, const GLfloat *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", sampler, pname, param );
-  funcs->ext.p_glSamplerParameterfv( sampler, pname, param );
-}
-
-static void WINAPI glSamplerParameteri( GLuint sampler, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", sampler, pname, param );
-  funcs->ext.p_glSamplerParameteri( sampler, pname, param );
-}
-
-static void WINAPI glSamplerParameteriv( GLuint sampler, GLenum pname, const GLint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", sampler, pname, param );
-  funcs->ext.p_glSamplerParameteriv( sampler, pname, param );
-}
-
-static void WINAPI glScalexOES( GLfixed x, GLfixed y, GLfixed z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", x, y, z );
-  funcs->ext.p_glScalexOES( x, y, z );
-}
-
-static void WINAPI glScissorArrayv( GLuint first, GLsizei count, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", first, count, v );
-  funcs->ext.p_glScissorArrayv( first, count, v );
-}
-
-static void WINAPI glScissorExclusiveArrayvNV( GLuint first, GLsizei count, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", first, count, v );
-  funcs->ext.p_glScissorExclusiveArrayvNV( first, count, v );
-}
-
-static void WINAPI glScissorExclusiveNV( GLint x, GLint y, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", x, y, width, height );
-  funcs->ext.p_glScissorExclusiveNV( x, y, width, height );
-}
-
-static void WINAPI glScissorIndexed( GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, left, bottom, width, height );
-  funcs->ext.p_glScissorIndexed( index, left, bottom, width, height );
-}
-
-static void WINAPI glScissorIndexedv( GLuint index, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glScissorIndexedv( index, v );
-}
-
-static void WINAPI glSecondaryColor3b( GLbyte red, GLbyte green, GLbyte blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3b( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3bEXT( GLbyte red, GLbyte green, GLbyte blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3bEXT( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3bv( const GLbyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3bv( v );
-}
-
-static void WINAPI glSecondaryColor3bvEXT( const GLbyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3bvEXT( v );
-}
-
-static void WINAPI glSecondaryColor3d( GLdouble red, GLdouble green, GLdouble blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3d( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3dEXT( GLdouble red, GLdouble green, GLdouble blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3dEXT( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3dv( const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3dv( v );
-}
-
-static void WINAPI glSecondaryColor3dvEXT( const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3dvEXT( v );
-}
-
-static void WINAPI glSecondaryColor3f( GLfloat red, GLfloat green, GLfloat blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3f( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3fEXT( GLfloat red, GLfloat green, GLfloat blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3fEXT( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3fv( const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3fv( v );
-}
-
-static void WINAPI glSecondaryColor3fvEXT( const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3fvEXT( v );
-}
-
-static void WINAPI glSecondaryColor3hNV( GLhalfNV red, GLhalfNV green, GLhalfNV blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3hNV( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3hvNV( const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3hvNV( v );
-}
-
-static void WINAPI glSecondaryColor3i( GLint red, GLint green, GLint blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3i( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3iEXT( GLint red, GLint green, GLint blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3iEXT( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3iv( const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3iv( v );
-}
-
-static void WINAPI glSecondaryColor3ivEXT( const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3ivEXT( v );
-}
-
-static void WINAPI glSecondaryColor3s( GLshort red, GLshort green, GLshort blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3s( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3sEXT( GLshort red, GLshort green, GLshort blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3sEXT( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3sv( const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3sv( v );
-}
-
-static void WINAPI glSecondaryColor3svEXT( const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3svEXT( v );
-}
-
-static void WINAPI glSecondaryColor3ub( GLubyte red, GLubyte green, GLubyte blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3ub( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3ubEXT( GLubyte red, GLubyte green, GLubyte blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3ubEXT( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3ubv( const GLubyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3ubv( v );
-}
-
-static void WINAPI glSecondaryColor3ubvEXT( const GLubyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3ubvEXT( v );
-}
-
-static void WINAPI glSecondaryColor3ui( GLuint red, GLuint green, GLuint blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3ui( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3uiEXT( GLuint red, GLuint green, GLuint blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3uiEXT( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3uiv( const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3uiv( v );
-}
-
-static void WINAPI glSecondaryColor3uivEXT( const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3uivEXT( v );
-}
-
-static void WINAPI glSecondaryColor3us( GLushort red, GLushort green, GLushort blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3us( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3usEXT( GLushort red, GLushort green, GLushort blue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", red, green, blue );
-  funcs->ext.p_glSecondaryColor3usEXT( red, green, blue );
-}
-
-static void WINAPI glSecondaryColor3usv( const GLushort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3usv( v );
-}
-
-static void WINAPI glSecondaryColor3usvEXT( const GLushort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glSecondaryColor3usvEXT( v );
-}
-
-static void WINAPI glSecondaryColorFormatNV( GLint size, GLenum type, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", size, type, stride );
-  funcs->ext.p_glSecondaryColorFormatNV( size, type, stride );
-}
-
-static void WINAPI glSecondaryColorP3ui( GLenum type, GLuint color )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, color );
-  funcs->ext.p_glSecondaryColorP3ui( type, color );
-}
-
-static void WINAPI glSecondaryColorP3uiv( GLenum type, const GLuint *color )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, color );
-  funcs->ext.p_glSecondaryColorP3uiv( type, color );
-}
-
-static void WINAPI glSecondaryColorPointer( GLint size, GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", size, type, stride, pointer );
-  funcs->ext.p_glSecondaryColorPointer( size, type, stride, pointer );
-}
-
-static void WINAPI glSecondaryColorPointerEXT( GLint size, GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", size, type, stride, pointer );
-  funcs->ext.p_glSecondaryColorPointerEXT( size, type, stride, pointer );
-}
-
-static void WINAPI glSecondaryColorPointerListIBM( GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d)\n", size, type, stride, pointer, ptrstride );
-  funcs->ext.p_glSecondaryColorPointerListIBM( size, type, stride, pointer, ptrstride );
-}
-
-static void WINAPI glSelectPerfMonitorCountersAMD( GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", monitor, enable, group, numCounters, counterList );
-  funcs->ext.p_glSelectPerfMonitorCountersAMD( monitor, enable, group, numCounters, counterList );
-}
-
-static void WINAPI glSelectTextureCoordSetSGIS( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  funcs->ext.p_glSelectTextureCoordSetSGIS( target );
-}
-
-static void WINAPI glSelectTextureSGIS( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  funcs->ext.p_glSelectTextureSGIS( target );
-}
-
-static void WINAPI glSemaphoreParameterui64vEXT( GLuint semaphore, GLenum pname, const GLuint64 *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", semaphore, pname, params );
-  funcs->ext.p_glSemaphoreParameterui64vEXT( semaphore, pname, params );
-}
-
-static void WINAPI glSeparableFilter2D( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %p, %p)\n", target, internalformat, width, height, format, type, row, column );
-  funcs->ext.p_glSeparableFilter2D( target, internalformat, width, height, format, type, row, column );
-}
-
-static void WINAPI glSeparableFilter2DEXT( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %p, %p)\n", target, internalformat, width, height, format, type, row, column );
-  funcs->ext.p_glSeparableFilter2DEXT( target, internalformat, width, height, format, type, row, column );
-}
-
-static void WINAPI glSetFenceAPPLE( GLuint fence )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", fence );
-  funcs->ext.p_glSetFenceAPPLE( fence );
-}
-
-static void WINAPI glSetFenceNV( GLuint fence, GLenum condition )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", fence, condition );
-  funcs->ext.p_glSetFenceNV( fence, condition );
-}
-
-static void WINAPI glSetFragmentShaderConstantATI( GLuint dst, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", dst, value );
-  funcs->ext.p_glSetFragmentShaderConstantATI( dst, value );
-}
-
-static void WINAPI glSetInvariantEXT( GLuint id, GLenum type, const void *addr )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, type, addr );
-  funcs->ext.p_glSetInvariantEXT( id, type, addr );
-}
-
-static void WINAPI glSetLocalConstantEXT( GLuint id, GLenum type, const void *addr )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", id, type, addr );
-  funcs->ext.p_glSetLocalConstantEXT( id, type, addr );
-}
-
-static void WINAPI glSetMultisamplefvAMD( GLenum pname, GLuint index, const GLfloat *val )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", pname, index, val );
-  funcs->ext.p_glSetMultisamplefvAMD( pname, index, val );
-}
-
-static void WINAPI glShaderBinary( GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %p, %d)\n", count, shaders, binaryformat, binary, length );
-  funcs->ext.p_glShaderBinary( count, shaders, binaryformat, binary, length );
-}
-
-static void WINAPI glShaderOp1EXT( GLenum op, GLuint res, GLuint arg1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", op, res, arg1 );
-  funcs->ext.p_glShaderOp1EXT( op, res, arg1 );
-}
-
-static void WINAPI glShaderOp2EXT( GLenum op, GLuint res, GLuint arg1, GLuint arg2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", op, res, arg1, arg2 );
-  funcs->ext.p_glShaderOp2EXT( op, res, arg1, arg2 );
-}
-
-static void WINAPI glShaderOp3EXT( GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", op, res, arg1, arg2, arg3 );
-  funcs->ext.p_glShaderOp3EXT( op, res, arg1, arg2, arg3 );
-}
-
-static void WINAPI glShaderSource( GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", shader, count, string, length );
-  funcs->ext.p_glShaderSource( shader, count, string, length );
-}
-
-static void WINAPI glShaderSourceARB( GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", shaderObj, count, string, length );
-  funcs->ext.p_glShaderSourceARB( shaderObj, count, string, length );
-}
-
-static void WINAPI glShaderStorageBlockBinding( GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", program, storageBlockIndex, storageBlockBinding );
-  funcs->ext.p_glShaderStorageBlockBinding( program, storageBlockIndex, storageBlockBinding );
-}
-
-static void WINAPI glShadingRateImageBarrierNV( GLboolean synchronize )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", synchronize );
-  funcs->ext.p_glShadingRateImageBarrierNV( synchronize );
-}
-
-static void WINAPI glShadingRateImagePaletteNV( GLuint viewport, GLuint first, GLsizei count, const GLenum *rates )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", viewport, first, count, rates );
-  funcs->ext.p_glShadingRateImagePaletteNV( viewport, first, count, rates );
-}
-
-static void WINAPI glShadingRateSampleOrderCustomNV( GLenum rate, GLuint samples, const GLint *locations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", rate, samples, locations );
-  funcs->ext.p_glShadingRateSampleOrderCustomNV( rate, samples, locations );
-}
-
-static void WINAPI glShadingRateSampleOrderNV( GLenum order )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", order );
-  funcs->ext.p_glShadingRateSampleOrderNV( order );
-}
-
-static void WINAPI glSharpenTexFuncSGIS( GLenum target, GLsizei n, const GLfloat *points )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, n, points );
-  funcs->ext.p_glSharpenTexFuncSGIS( target, n, points );
-}
-
-static void WINAPI glSignalSemaphoreEXT( GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %p, %p)\n", semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, dstLayouts );
-  funcs->ext.p_glSignalSemaphoreEXT( semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, dstLayouts );
-}
-
-static void WINAPI glSignalSemaphoreui64NVX( GLuint signalGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", signalGpu, fenceObjectCount, semaphoreArray, fenceValueArray );
-  funcs->ext.p_glSignalSemaphoreui64NVX( signalGpu, fenceObjectCount, semaphoreArray, fenceValueArray );
-}
-
-static void WINAPI glSignalVkFenceNV( GLuint64 vkFence )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s)\n", wine_dbgstr_longlong(vkFence) );
-  funcs->ext.p_glSignalVkFenceNV( vkFence );
-}
-
-static void WINAPI glSignalVkSemaphoreNV( GLuint64 vkSemaphore )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s)\n", wine_dbgstr_longlong(vkSemaphore) );
-  funcs->ext.p_glSignalVkSemaphoreNV( vkSemaphore );
-}
-
-static void WINAPI glSpecializeShader( GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %p, %p)\n", shader, pEntryPoint, numSpecializationConstants, pConstantIndex, pConstantValue );
-  funcs->ext.p_glSpecializeShader( shader, pEntryPoint, numSpecializationConstants, pConstantIndex, pConstantValue );
-}
-
-static void WINAPI glSpecializeShaderARB( GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %p, %p)\n", shader, pEntryPoint, numSpecializationConstants, pConstantIndex, pConstantValue );
-  funcs->ext.p_glSpecializeShaderARB( shader, pEntryPoint, numSpecializationConstants, pConstantIndex, pConstantValue );
-}
-
-static void WINAPI glSpriteParameterfSGIX( GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", pname, param );
-  funcs->ext.p_glSpriteParameterfSGIX( pname, param );
-}
-
-static void WINAPI glSpriteParameterfvSGIX( GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glSpriteParameterfvSGIX( pname, params );
-}
-
-static void WINAPI glSpriteParameteriSGIX( GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glSpriteParameteriSGIX( pname, param );
-}
-
-static void WINAPI glSpriteParameterivSGIX( GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, params );
-  funcs->ext.p_glSpriteParameterivSGIX( pname, params );
-}
-
-static void WINAPI glStartInstrumentsSGIX(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glStartInstrumentsSGIX();
-}
-
-static void WINAPI glStateCaptureNV( GLuint state, GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", state, mode );
-  funcs->ext.p_glStateCaptureNV( state, mode );
-}
-
-static void WINAPI glStencilClearTagEXT( GLsizei stencilTagBits, GLuint stencilClearTag )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", stencilTagBits, stencilClearTag );
-  funcs->ext.p_glStencilClearTagEXT( stencilTagBits, stencilClearTag );
-}
-
-static void WINAPI glStencilFillPathInstancedNV( GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %d, %d, %p)\n", numPaths, pathNameType, paths, pathBase, fillMode, mask, transformType, transformValues );
-  funcs->ext.p_glStencilFillPathInstancedNV( numPaths, pathNameType, paths, pathBase, fillMode, mask, transformType, transformValues );
-}
-
-static void WINAPI glStencilFillPathNV( GLuint path, GLenum fillMode, GLuint mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", path, fillMode, mask );
-  funcs->ext.p_glStencilFillPathNV( path, fillMode, mask );
-}
-
-static void WINAPI glStencilFuncSeparate( GLenum face, GLenum func, GLint ref, GLuint mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", face, func, ref, mask );
-  funcs->ext.p_glStencilFuncSeparate( face, func, ref, mask );
-}
-
-static void WINAPI glStencilFuncSeparateATI( GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", frontfunc, backfunc, ref, mask );
-  funcs->ext.p_glStencilFuncSeparateATI( frontfunc, backfunc, ref, mask );
-}
-
-static void WINAPI glStencilMaskSeparate( GLenum face, GLuint mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", face, mask );
-  funcs->ext.p_glStencilMaskSeparate( face, mask );
-}
-
-static void WINAPI glStencilOpSeparate( GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", face, sfail, dpfail, dppass );
-  funcs->ext.p_glStencilOpSeparate( face, sfail, dpfail, dppass );
-}
-
-static void WINAPI glStencilOpSeparateATI( GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", face, sfail, dpfail, dppass );
-  funcs->ext.p_glStencilOpSeparateATI( face, sfail, dpfail, dppass );
-}
-
-static void WINAPI glStencilOpValueAMD( GLenum face, GLuint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", face, value );
-  funcs->ext.p_glStencilOpValueAMD( face, value );
-}
-
-static void WINAPI glStencilStrokePathInstancedNV( GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %d, %d, %p)\n", numPaths, pathNameType, paths, pathBase, reference, mask, transformType, transformValues );
-  funcs->ext.p_glStencilStrokePathInstancedNV( numPaths, pathNameType, paths, pathBase, reference, mask, transformType, transformValues );
-}
-
-static void WINAPI glStencilStrokePathNV( GLuint path, GLint reference, GLuint mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", path, reference, mask );
-  funcs->ext.p_glStencilStrokePathNV( path, reference, mask );
-}
-
-static void WINAPI glStencilThenCoverFillPathInstancedNV( GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %d, %d, %d, %p)\n", numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode, transformType, transformValues );
-  funcs->ext.p_glStencilThenCoverFillPathInstancedNV( numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode, transformType, transformValues );
-}
-
-static void WINAPI glStencilThenCoverFillPathNV( GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", path, fillMode, mask, coverMode );
-  funcs->ext.p_glStencilThenCoverFillPathNV( path, fillMode, mask, coverMode );
-}
-
-static void WINAPI glStencilThenCoverStrokePathInstancedNV( GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %d, %d, %d, %d, %p)\n", numPaths, pathNameType, paths, pathBase, reference, mask, coverMode, transformType, transformValues );
-  funcs->ext.p_glStencilThenCoverStrokePathInstancedNV( numPaths, pathNameType, paths, pathBase, reference, mask, coverMode, transformType, transformValues );
-}
-
-static void WINAPI glStencilThenCoverStrokePathNV( GLuint path, GLint reference, GLuint mask, GLenum coverMode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", path, reference, mask, coverMode );
-  funcs->ext.p_glStencilThenCoverStrokePathNV( path, reference, mask, coverMode );
-}
-
-static void WINAPI glStopInstrumentsSGIX( GLint marker )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", marker );
-  funcs->ext.p_glStopInstrumentsSGIX( marker );
-}
-
-static void WINAPI glStringMarkerGREMEDY( GLsizei len, const void *string )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", len, string );
-  funcs->ext.p_glStringMarkerGREMEDY( len, string );
-}
-
-static void WINAPI glSubpixelPrecisionBiasNV( GLuint xbits, GLuint ybits )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", xbits, ybits );
-  funcs->ext.p_glSubpixelPrecisionBiasNV( xbits, ybits );
-}
-
-static void WINAPI glSwizzleEXT( GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", res, in, outX, outY, outZ, outW );
-  funcs->ext.p_glSwizzleEXT( res, in, outX, outY, outZ, outW );
-}
-
-static void WINAPI glSyncTextureINTEL( GLuint texture )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", texture );
-  funcs->ext.p_glSyncTextureINTEL( texture );
-}
-
-static void WINAPI glTagSampleBufferSGIX(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glTagSampleBufferSGIX();
-}
-
-static void WINAPI glTangent3bEXT( GLbyte tx, GLbyte ty, GLbyte tz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", tx, ty, tz );
-  funcs->ext.p_glTangent3bEXT( tx, ty, tz );
-}
-
-static void WINAPI glTangent3bvEXT( const GLbyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glTangent3bvEXT( v );
-}
-
-static void WINAPI glTangent3dEXT( GLdouble tx, GLdouble ty, GLdouble tz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", tx, ty, tz );
-  funcs->ext.p_glTangent3dEXT( tx, ty, tz );
-}
-
-static void WINAPI glTangent3dvEXT( const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glTangent3dvEXT( v );
-}
-
-static void WINAPI glTangent3fEXT( GLfloat tx, GLfloat ty, GLfloat tz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", tx, ty, tz );
-  funcs->ext.p_glTangent3fEXT( tx, ty, tz );
-}
-
-static void WINAPI glTangent3fvEXT( const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glTangent3fvEXT( v );
-}
-
-static void WINAPI glTangent3iEXT( GLint tx, GLint ty, GLint tz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", tx, ty, tz );
-  funcs->ext.p_glTangent3iEXT( tx, ty, tz );
-}
-
-static void WINAPI glTangent3ivEXT( const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glTangent3ivEXT( v );
-}
-
-static void WINAPI glTangent3sEXT( GLshort tx, GLshort ty, GLshort tz )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", tx, ty, tz );
-  funcs->ext.p_glTangent3sEXT( tx, ty, tz );
-}
-
-static void WINAPI glTangent3svEXT( const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glTangent3svEXT( v );
-}
-
-static void WINAPI glTangentPointerEXT( GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", type, stride, pointer );
-  funcs->ext.p_glTangentPointerEXT( type, stride, pointer );
-}
-
-static void WINAPI glTbufferMask3DFX( GLuint mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mask );
-  funcs->ext.p_glTbufferMask3DFX( mask );
-}
-
-static void WINAPI glTessellationFactorAMD( GLfloat factor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f)\n", factor );
-  funcs->ext.p_glTessellationFactorAMD( factor );
-}
-
-static void WINAPI glTessellationModeAMD( GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mode );
-  funcs->ext.p_glTessellationModeAMD( mode );
-}
-
-static GLboolean WINAPI glTestFenceAPPLE( GLuint fence )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", fence );
-  return funcs->ext.p_glTestFenceAPPLE( fence );
-}
-
-static GLboolean WINAPI glTestFenceNV( GLuint fence )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", fence );
-  return funcs->ext.p_glTestFenceNV( fence );
-}
-
-static GLboolean WINAPI glTestObjectAPPLE( GLenum object, GLuint name )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", object, name );
-  return funcs->ext.p_glTestObjectAPPLE( object, name );
-}
-
-static void WINAPI glTexAttachMemoryNV( GLenum target, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s)\n", target, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glTexAttachMemoryNV( target, memory, offset );
-}
-
-static void WINAPI glTexBuffer( GLenum target, GLenum internalformat, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, internalformat, buffer );
-  funcs->ext.p_glTexBuffer( target, internalformat, buffer );
-}
-
-static void WINAPI glTexBufferARB( GLenum target, GLenum internalformat, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, internalformat, buffer );
-  funcs->ext.p_glTexBufferARB( target, internalformat, buffer );
-}
-
-static void WINAPI glTexBufferEXT( GLenum target, GLenum internalformat, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, internalformat, buffer );
-  funcs->ext.p_glTexBufferEXT( target, internalformat, buffer );
-}
-
-static void WINAPI glTexBufferRange( GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld, %ld)\n", target, internalformat, buffer, offset, size );
-  funcs->ext.p_glTexBufferRange( target, internalformat, buffer, offset, size );
-}
-
-static void WINAPI glTexBumpParameterfvATI( GLenum pname, const GLfloat *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, param );
-  funcs->ext.p_glTexBumpParameterfvATI( pname, param );
-}
-
-static void WINAPI glTexBumpParameterivATI( GLenum pname, const GLint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", pname, param );
-  funcs->ext.p_glTexBumpParameterivATI( pname, param );
-}
-
-static void WINAPI glTexCoord1bOES( GLbyte s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", s );
-  funcs->ext.p_glTexCoord1bOES( s );
-}
-
-static void WINAPI glTexCoord1bvOES( const GLbyte *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glTexCoord1bvOES( coords );
-}
-
-static void WINAPI glTexCoord1hNV( GLhalfNV s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", s );
-  funcs->ext.p_glTexCoord1hNV( s );
-}
-
-static void WINAPI glTexCoord1hvNV( const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glTexCoord1hvNV( v );
-}
-
-static void WINAPI glTexCoord1xOES( GLfixed s )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", s );
-  funcs->ext.p_glTexCoord1xOES( s );
-}
-
-static void WINAPI glTexCoord1xvOES( const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glTexCoord1xvOES( coords );
-}
-
-static void WINAPI glTexCoord2bOES( GLbyte s, GLbyte t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", s, t );
-  funcs->ext.p_glTexCoord2bOES( s, t );
-}
-
-static void WINAPI glTexCoord2bvOES( const GLbyte *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glTexCoord2bvOES( coords );
-}
-
-static void WINAPI glTexCoord2fColor3fVertex3fSUN( GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f, %f, %f, %f, %f)\n", s, t, r, g, b, x, y, z );
-  funcs->ext.p_glTexCoord2fColor3fVertex3fSUN( s, t, r, g, b, x, y, z );
-}
-
-static void WINAPI glTexCoord2fColor3fVertex3fvSUN( const GLfloat *tc, const GLfloat *c, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p)\n", tc, c, v );
-  funcs->ext.p_glTexCoord2fColor3fVertex3fvSUN( tc, c, v );
-}
-
-static void WINAPI glTexCoord2fColor4fNormal3fVertex3fSUN( GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f)\n", s, t, r, g, b, a, nx, ny, nz, x, y, z );
-  funcs->ext.p_glTexCoord2fColor4fNormal3fVertex3fSUN( s, t, r, g, b, a, nx, ny, nz, x, y, z );
-}
-
-static void WINAPI glTexCoord2fColor4fNormal3fVertex3fvSUN( const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p, %p)\n", tc, c, n, v );
-  funcs->ext.p_glTexCoord2fColor4fNormal3fVertex3fvSUN( tc, c, n, v );
-}
-
-static void WINAPI glTexCoord2fColor4ubVertex3fSUN( GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %d, %d, %d, %d, %f, %f, %f)\n", s, t, r, g, b, a, x, y, z );
-  funcs->ext.p_glTexCoord2fColor4ubVertex3fSUN( s, t, r, g, b, a, x, y, z );
-}
-
-static void WINAPI glTexCoord2fColor4ubVertex3fvSUN( const GLfloat *tc, const GLubyte *c, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p)\n", tc, c, v );
-  funcs->ext.p_glTexCoord2fColor4ubVertex3fvSUN( tc, c, v );
-}
-
-static void WINAPI glTexCoord2fNormal3fVertex3fSUN( GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f, %f, %f, %f, %f)\n", s, t, nx, ny, nz, x, y, z );
-  funcs->ext.p_glTexCoord2fNormal3fVertex3fSUN( s, t, nx, ny, nz, x, y, z );
-}
-
-static void WINAPI glTexCoord2fNormal3fVertex3fvSUN( const GLfloat *tc, const GLfloat *n, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p)\n", tc, n, v );
-  funcs->ext.p_glTexCoord2fNormal3fVertex3fvSUN( tc, n, v );
-}
-
-static void WINAPI glTexCoord2fVertex3fSUN( GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f, %f)\n", s, t, x, y, z );
-  funcs->ext.p_glTexCoord2fVertex3fSUN( s, t, x, y, z );
-}
-
-static void WINAPI glTexCoord2fVertex3fvSUN( const GLfloat *tc, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p)\n", tc, v );
-  funcs->ext.p_glTexCoord2fVertex3fvSUN( tc, v );
-}
-
-static void WINAPI glTexCoord2hNV( GLhalfNV s, GLhalfNV t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", s, t );
-  funcs->ext.p_glTexCoord2hNV( s, t );
-}
-
-static void WINAPI glTexCoord2hvNV( const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glTexCoord2hvNV( v );
-}
-
-static void WINAPI glTexCoord2xOES( GLfixed s, GLfixed t )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", s, t );
-  funcs->ext.p_glTexCoord2xOES( s, t );
-}
-
-static void WINAPI glTexCoord2xvOES( const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glTexCoord2xvOES( coords );
-}
-
-static void WINAPI glTexCoord3bOES( GLbyte s, GLbyte t, GLbyte r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", s, t, r );
-  funcs->ext.p_glTexCoord3bOES( s, t, r );
-}
-
-static void WINAPI glTexCoord3bvOES( const GLbyte *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glTexCoord3bvOES( coords );
-}
-
-static void WINAPI glTexCoord3hNV( GLhalfNV s, GLhalfNV t, GLhalfNV r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", s, t, r );
-  funcs->ext.p_glTexCoord3hNV( s, t, r );
-}
-
-static void WINAPI glTexCoord3hvNV( const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glTexCoord3hvNV( v );
-}
-
-static void WINAPI glTexCoord3xOES( GLfixed s, GLfixed t, GLfixed r )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", s, t, r );
-  funcs->ext.p_glTexCoord3xOES( s, t, r );
-}
-
-static void WINAPI glTexCoord3xvOES( const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glTexCoord3xvOES( coords );
-}
-
-static void WINAPI glTexCoord4bOES( GLbyte s, GLbyte t, GLbyte r, GLbyte q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", s, t, r, q );
-  funcs->ext.p_glTexCoord4bOES( s, t, r, q );
-}
-
-static void WINAPI glTexCoord4bvOES( const GLbyte *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glTexCoord4bvOES( coords );
-}
-
-static void WINAPI glTexCoord4fColor4fNormal3fVertex4fSUN( GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f)\n", s, t, p, q, r, g, b, a, nx, ny, nz, x, y, z, w );
-  funcs->ext.p_glTexCoord4fColor4fNormal3fVertex4fSUN( s, t, p, q, r, g, b, a, nx, ny, nz, x, y, z, w );
-}
-
-static void WINAPI glTexCoord4fColor4fNormal3fVertex4fvSUN( const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p, %p, %p)\n", tc, c, n, v );
-  funcs->ext.p_glTexCoord4fColor4fNormal3fVertex4fvSUN( tc, c, n, v );
-}
-
-static void WINAPI glTexCoord4fVertex4fSUN( GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f, %f, %f, %f, %f)\n", s, t, p, q, x, y, z, w );
-  funcs->ext.p_glTexCoord4fVertex4fSUN( s, t, p, q, x, y, z, w );
-}
-
-static void WINAPI glTexCoord4fVertex4fvSUN( const GLfloat *tc, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p)\n", tc, v );
-  funcs->ext.p_glTexCoord4fVertex4fvSUN( tc, v );
-}
-
-static void WINAPI glTexCoord4hNV( GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", s, t, r, q );
-  funcs->ext.p_glTexCoord4hNV( s, t, r, q );
-}
-
-static void WINAPI glTexCoord4hvNV( const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glTexCoord4hvNV( v );
-}
-
-static void WINAPI glTexCoord4xOES( GLfixed s, GLfixed t, GLfixed r, GLfixed q )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", s, t, r, q );
-  funcs->ext.p_glTexCoord4xOES( s, t, r, q );
-}
-
-static void WINAPI glTexCoord4xvOES( const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glTexCoord4xvOES( coords );
-}
-
-static void WINAPI glTexCoordFormatNV( GLint size, GLenum type, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", size, type, stride );
-  funcs->ext.p_glTexCoordFormatNV( size, type, stride );
-}
-
-static void WINAPI glTexCoordP1ui( GLenum type, GLuint coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, coords );
-  funcs->ext.p_glTexCoordP1ui( type, coords );
-}
-
-static void WINAPI glTexCoordP1uiv( GLenum type, const GLuint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, coords );
-  funcs->ext.p_glTexCoordP1uiv( type, coords );
-}
-
-static void WINAPI glTexCoordP2ui( GLenum type, GLuint coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, coords );
-  funcs->ext.p_glTexCoordP2ui( type, coords );
-}
-
-static void WINAPI glTexCoordP2uiv( GLenum type, const GLuint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, coords );
-  funcs->ext.p_glTexCoordP2uiv( type, coords );
-}
-
-static void WINAPI glTexCoordP3ui( GLenum type, GLuint coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, coords );
-  funcs->ext.p_glTexCoordP3ui( type, coords );
-}
-
-static void WINAPI glTexCoordP3uiv( GLenum type, const GLuint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, coords );
-  funcs->ext.p_glTexCoordP3uiv( type, coords );
-}
-
-static void WINAPI glTexCoordP4ui( GLenum type, GLuint coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, coords );
-  funcs->ext.p_glTexCoordP4ui( type, coords );
-}
-
-static void WINAPI glTexCoordP4uiv( GLenum type, const GLuint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, coords );
-  funcs->ext.p_glTexCoordP4uiv( type, coords );
-}
-
-static void WINAPI glTexCoordPointerEXT( GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", size, type, stride, count, pointer );
-  funcs->ext.p_glTexCoordPointerEXT( size, type, stride, count, pointer );
-}
-
-static void WINAPI glTexCoordPointerListIBM( GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d)\n", size, type, stride, pointer, ptrstride );
-  funcs->ext.p_glTexCoordPointerListIBM( size, type, stride, pointer, ptrstride );
-}
-
-static void WINAPI glTexCoordPointervINTEL( GLint size, GLenum type, const void **pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", size, type, pointer );
-  funcs->ext.p_glTexCoordPointervINTEL( size, type, pointer );
-}
-
-static void WINAPI glTexEnvxOES( GLenum target, GLenum pname, GLfixed param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, pname, param );
-  funcs->ext.p_glTexEnvxOES( target, pname, param );
-}
-
-static void WINAPI glTexEnvxvOES( GLenum target, GLenum pname, const GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glTexEnvxvOES( target, pname, params );
-}
-
-static void WINAPI glTexFilterFuncSGIS( GLenum target, GLenum filter, GLsizei n, const GLfloat *weights )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", target, filter, n, weights );
-  funcs->ext.p_glTexFilterFuncSGIS( target, filter, n, weights );
-}
-
-static void WINAPI glTexGenxOES( GLenum coord, GLenum pname, GLfixed param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", coord, pname, param );
-  funcs->ext.p_glTexGenxOES( coord, pname, param );
-}
-
-static void WINAPI glTexGenxvOES( GLenum coord, GLenum pname, const GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", coord, pname, params );
-  funcs->ext.p_glTexGenxvOES( coord, pname, params );
-}
-
-static void WINAPI glTexImage2DMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, samples, internalformat, width, height, fixedsamplelocations );
-  funcs->ext.p_glTexImage2DMultisample( target, samples, internalformat, width, height, fixedsamplelocations );
-}
-
-static void WINAPI glTexImage2DMultisampleCoverageNV( GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", target, coverageSamples, colorSamples, internalFormat, width, height, fixedSampleLocations );
-  funcs->ext.p_glTexImage2DMultisampleCoverageNV( target, coverageSamples, colorSamples, internalFormat, width, height, fixedSampleLocations );
-}
-
-static void WINAPI glTexImage3D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, internalformat, width, height, depth, border, format, type, pixels );
-  funcs->ext.p_glTexImage3D( target, level, internalformat, width, height, depth, border, format, type, pixels );
-}
-
-static void WINAPI glTexImage3DEXT( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, internalformat, width, height, depth, border, format, type, pixels );
-  funcs->ext.p_glTexImage3DEXT( target, level, internalformat, width, height, depth, border, format, type, pixels );
-}
-
-static void WINAPI glTexImage3DMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", target, samples, internalformat, width, height, depth, fixedsamplelocations );
-  funcs->ext.p_glTexImage3DMultisample( target, samples, internalformat, width, height, depth, fixedsamplelocations );
-}
-
-static void WINAPI glTexImage3DMultisampleCoverageNV( GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d)\n", target, coverageSamples, colorSamples, internalFormat, width, height, depth, fixedSampleLocations );
-  funcs->ext.p_glTexImage3DMultisampleCoverageNV( target, coverageSamples, colorSamples, internalFormat, width, height, depth, fixedSampleLocations );
-}
-
-static void WINAPI glTexImage4DSGIS( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, internalformat, width, height, depth, size4d, border, format, type, pixels );
-  funcs->ext.p_glTexImage4DSGIS( target, level, internalformat, width, height, depth, size4d, border, format, type, pixels );
-}
-
-static void WINAPI glTexPageCommitmentARB( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d)\n", target, level, xoffset, yoffset, zoffset, width, height, depth, commit );
-  funcs->ext.p_glTexPageCommitmentARB( target, level, xoffset, yoffset, zoffset, width, height, depth, commit );
-}
-
-static void WINAPI glTexParameterIiv( GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glTexParameterIiv( target, pname, params );
-}
-
-static void WINAPI glTexParameterIivEXT( GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glTexParameterIivEXT( target, pname, params );
-}
-
-static void WINAPI glTexParameterIuiv( GLenum target, GLenum pname, const GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glTexParameterIuiv( target, pname, params );
-}
-
-static void WINAPI glTexParameterIuivEXT( GLenum target, GLenum pname, const GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glTexParameterIuivEXT( target, pname, params );
-}
-
-static void WINAPI glTexParameterxOES( GLenum target, GLenum pname, GLfixed param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", target, pname, param );
-  funcs->ext.p_glTexParameterxOES( target, pname, param );
-}
-
-static void WINAPI glTexParameterxvOES( GLenum target, GLenum pname, const GLfixed *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, pname, params );
-  funcs->ext.p_glTexParameterxvOES( target, pname, params );
-}
-
-static void WINAPI glTexRenderbufferNV( GLenum target, GLuint renderbuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", target, renderbuffer );
-  funcs->ext.p_glTexRenderbufferNV( target, renderbuffer );
-}
-
-static void WINAPI glTexStorage1D( GLenum target, GLsizei levels, GLenum internalformat, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, levels, internalformat, width );
-  funcs->ext.p_glTexStorage1D( target, levels, internalformat, width );
-}
-
-static void WINAPI glTexStorage2D( GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", target, levels, internalformat, width, height );
-  funcs->ext.p_glTexStorage2D( target, levels, internalformat, width, height );
-}
-
-static void WINAPI glTexStorage2DMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, samples, internalformat, width, height, fixedsamplelocations );
-  funcs->ext.p_glTexStorage2DMultisample( target, samples, internalformat, width, height, fixedsamplelocations );
-}
-
-static void WINAPI glTexStorage3D( GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", target, levels, internalformat, width, height, depth );
-  funcs->ext.p_glTexStorage3D( target, levels, internalformat, width, height, depth );
-}
-
-static void WINAPI glTexStorage3DMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", target, samples, internalformat, width, height, depth, fixedsamplelocations );
-  funcs->ext.p_glTexStorage3DMultisample( target, samples, internalformat, width, height, depth, fixedsamplelocations );
-}
-
-static void WINAPI glTexStorageMem1DEXT( GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %s)\n", target, levels, internalFormat, width, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glTexStorageMem1DEXT( target, levels, internalFormat, width, memory, offset );
-}
-
-static void WINAPI glTexStorageMem2DEXT( GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %s)\n", target, levels, internalFormat, width, height, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glTexStorageMem2DEXT( target, levels, internalFormat, width, height, memory, offset );
-}
-
-static void WINAPI glTexStorageMem2DMultisampleEXT( GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %s)\n", target, samples, internalFormat, width, height, fixedSampleLocations, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glTexStorageMem2DMultisampleEXT( target, samples, internalFormat, width, height, fixedSampleLocations, memory, offset );
-}
-
-static void WINAPI glTexStorageMem3DEXT( GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %s)\n", target, levels, internalFormat, width, height, depth, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glTexStorageMem3DEXT( target, levels, internalFormat, width, height, depth, memory, offset );
-}
-
-static void WINAPI glTexStorageMem3DMultisampleEXT( GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %s)\n", target, samples, internalFormat, width, height, depth, fixedSampleLocations, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glTexStorageMem3DMultisampleEXT( target, samples, internalFormat, width, height, depth, fixedSampleLocations, memory, offset );
-}
-
-static void WINAPI glTexStorageSparseAMD( GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", target, internalFormat, width, height, depth, layers, flags );
-  funcs->ext.p_glTexStorageSparseAMD( target, internalFormat, width, height, depth, layers, flags );
-}
-
-static void WINAPI glTexSubImage1DEXT( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %p)\n", target, level, xoffset, width, format, type, pixels );
-  funcs->ext.p_glTexSubImage1DEXT( target, level, xoffset, width, format, type, pixels );
-}
-
-static void WINAPI glTexSubImage2DEXT( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, xoffset, yoffset, width, height, format, type, pixels );
-  funcs->ext.p_glTexSubImage2DEXT( target, level, xoffset, yoffset, width, height, format, type, pixels );
-}
-
-static void WINAPI glTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
-  funcs->ext.p_glTexSubImage3D( target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
-}
-
-static void WINAPI glTexSubImage3DEXT( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
-  funcs->ext.p_glTexSubImage3DEXT( target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
-}
-
-static void WINAPI glTexSubImage4DSGIS( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", target, level, xoffset, yoffset, zoffset, woffset, width, height, depth, size4d, format, type, pixels );
-  funcs->ext.p_glTexSubImage4DSGIS( target, level, xoffset, yoffset, zoffset, woffset, width, height, depth, size4d, format, type, pixels );
-}
-
-static void WINAPI glTextureAttachMemoryNV( GLuint texture, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %s)\n", texture, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glTextureAttachMemoryNV( texture, memory, offset );
-}
-
-static void WINAPI glTextureBarrier(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glTextureBarrier();
-}
-
-static void WINAPI glTextureBarrierNV(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glTextureBarrierNV();
-}
-
-static void WINAPI glTextureBuffer( GLuint texture, GLenum internalformat, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", texture, internalformat, buffer );
-  funcs->ext.p_glTextureBuffer( texture, internalformat, buffer );
-}
-
-static void WINAPI glTextureBufferEXT( GLuint texture, GLenum target, GLenum internalformat, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", texture, target, internalformat, buffer );
-  funcs->ext.p_glTextureBufferEXT( texture, target, internalformat, buffer );
-}
-
-static void WINAPI glTextureBufferRange( GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld, %ld)\n", texture, internalformat, buffer, offset, size );
-  funcs->ext.p_glTextureBufferRange( texture, internalformat, buffer, offset, size );
-}
-
-static void WINAPI glTextureBufferRangeEXT( GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %ld, %ld)\n", texture, target, internalformat, buffer, offset, size );
-  funcs->ext.p_glTextureBufferRangeEXT( texture, target, internalformat, buffer, offset, size );
-}
-
-static void WINAPI glTextureColorMaskSGIS( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", red, green, blue, alpha );
-  funcs->ext.p_glTextureColorMaskSGIS( red, green, blue, alpha );
-}
-
-static void WINAPI glTextureImage1DEXT( GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, target, level, internalformat, width, border, format, type, pixels );
-  funcs->ext.p_glTextureImage1DEXT( texture, target, level, internalformat, width, border, format, type, pixels );
-}
-
-static void WINAPI glTextureImage2DEXT( GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, target, level, internalformat, width, height, border, format, type, pixels );
-  funcs->ext.p_glTextureImage2DEXT( texture, target, level, internalformat, width, height, border, format, type, pixels );
-}
-
-static void WINAPI glTextureImage2DMultisampleCoverageNV( GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d)\n", texture, target, coverageSamples, colorSamples, internalFormat, width, height, fixedSampleLocations );
-  funcs->ext.p_glTextureImage2DMultisampleCoverageNV( texture, target, coverageSamples, colorSamples, internalFormat, width, height, fixedSampleLocations );
-}
-
-static void WINAPI glTextureImage2DMultisampleNV( GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", texture, target, samples, internalFormat, width, height, fixedSampleLocations );
-  funcs->ext.p_glTextureImage2DMultisampleNV( texture, target, samples, internalFormat, width, height, fixedSampleLocations );
-}
-
-static void WINAPI glTextureImage3DEXT( GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, target, level, internalformat, width, height, depth, border, format, type, pixels );
-  funcs->ext.p_glTextureImage3DEXT( texture, target, level, internalformat, width, height, depth, border, format, type, pixels );
-}
-
-static void WINAPI glTextureImage3DMultisampleCoverageNV( GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d)\n", texture, target, coverageSamples, colorSamples, internalFormat, width, height, depth, fixedSampleLocations );
-  funcs->ext.p_glTextureImage3DMultisampleCoverageNV( texture, target, coverageSamples, colorSamples, internalFormat, width, height, depth, fixedSampleLocations );
-}
-
-static void WINAPI glTextureImage3DMultisampleNV( GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d)\n", texture, target, samples, internalFormat, width, height, depth, fixedSampleLocations );
-  funcs->ext.p_glTextureImage3DMultisampleNV( texture, target, samples, internalFormat, width, height, depth, fixedSampleLocations );
-}
-
-static void WINAPI glTextureLightEXT( GLenum pname )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", pname );
-  funcs->ext.p_glTextureLightEXT( pname );
-}
-
-static void WINAPI glTextureMaterialEXT( GLenum face, GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", face, mode );
-  funcs->ext.p_glTextureMaterialEXT( face, mode );
-}
-
-static void WINAPI glTextureNormalEXT( GLenum mode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mode );
-  funcs->ext.p_glTextureNormalEXT( mode );
-}
-
-static void WINAPI glTexturePageCommitmentEXT( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d)\n", texture, level, xoffset, yoffset, zoffset, width, height, depth, commit );
-  funcs->ext.p_glTexturePageCommitmentEXT( texture, level, xoffset, yoffset, zoffset, width, height, depth, commit );
-}
-
-static void WINAPI glTextureParameterIiv( GLuint texture, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texture, pname, params );
-  funcs->ext.p_glTextureParameterIiv( texture, pname, params );
-}
-
-static void WINAPI glTextureParameterIivEXT( GLuint texture, GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texture, target, pname, params );
-  funcs->ext.p_glTextureParameterIivEXT( texture, target, pname, params );
-}
-
-static void WINAPI glTextureParameterIuiv( GLuint texture, GLenum pname, const GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texture, pname, params );
-  funcs->ext.p_glTextureParameterIuiv( texture, pname, params );
-}
-
-static void WINAPI glTextureParameterIuivEXT( GLuint texture, GLenum target, GLenum pname, const GLuint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texture, target, pname, params );
-  funcs->ext.p_glTextureParameterIuivEXT( texture, target, pname, params );
-}
-
-static void WINAPI glTextureParameterf( GLuint texture, GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %f)\n", texture, pname, param );
-  funcs->ext.p_glTextureParameterf( texture, pname, param );
-}
-
-static void WINAPI glTextureParameterfEXT( GLuint texture, GLenum target, GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %f)\n", texture, target, pname, param );
-  funcs->ext.p_glTextureParameterfEXT( texture, target, pname, param );
-}
-
-static void WINAPI glTextureParameterfv( GLuint texture, GLenum pname, const GLfloat *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texture, pname, param );
-  funcs->ext.p_glTextureParameterfv( texture, pname, param );
-}
-
-static void WINAPI glTextureParameterfvEXT( GLuint texture, GLenum target, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texture, target, pname, params );
-  funcs->ext.p_glTextureParameterfvEXT( texture, target, pname, params );
-}
-
-static void WINAPI glTextureParameteri( GLuint texture, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", texture, pname, param );
-  funcs->ext.p_glTextureParameteri( texture, pname, param );
-}
-
-static void WINAPI glTextureParameteriEXT( GLuint texture, GLenum target, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", texture, target, pname, param );
-  funcs->ext.p_glTextureParameteriEXT( texture, target, pname, param );
-}
-
-static void WINAPI glTextureParameteriv( GLuint texture, GLenum pname, const GLint *param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", texture, pname, param );
-  funcs->ext.p_glTextureParameteriv( texture, pname, param );
-}
-
-static void WINAPI glTextureParameterivEXT( GLuint texture, GLenum target, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", texture, target, pname, params );
-  funcs->ext.p_glTextureParameterivEXT( texture, target, pname, params );
-}
-
-static void WINAPI glTextureRangeAPPLE( GLenum target, GLsizei length, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", target, length, pointer );
-  funcs->ext.p_glTextureRangeAPPLE( target, length, pointer );
-}
-
-static void WINAPI glTextureRenderbufferEXT( GLuint texture, GLenum target, GLuint renderbuffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", texture, target, renderbuffer );
-  funcs->ext.p_glTextureRenderbufferEXT( texture, target, renderbuffer );
-}
-
-static void WINAPI glTextureStorage1D( GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", texture, levels, internalformat, width );
-  funcs->ext.p_glTextureStorage1D( texture, levels, internalformat, width );
-}
-
-static void WINAPI glTextureStorage1DEXT( GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", texture, target, levels, internalformat, width );
-  funcs->ext.p_glTextureStorage1DEXT( texture, target, levels, internalformat, width );
-}
-
-static void WINAPI glTextureStorage2D( GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", texture, levels, internalformat, width, height );
-  funcs->ext.p_glTextureStorage2D( texture, levels, internalformat, width, height );
-}
-
-static void WINAPI glTextureStorage2DEXT( GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", texture, target, levels, internalformat, width, height );
-  funcs->ext.p_glTextureStorage2DEXT( texture, target, levels, internalformat, width, height );
-}
-
-static void WINAPI glTextureStorage2DMultisample( GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", texture, samples, internalformat, width, height, fixedsamplelocations );
-  funcs->ext.p_glTextureStorage2DMultisample( texture, samples, internalformat, width, height, fixedsamplelocations );
-}
-
-static void WINAPI glTextureStorage2DMultisampleEXT( GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", texture, target, samples, internalformat, width, height, fixedsamplelocations );
-  funcs->ext.p_glTextureStorage2DMultisampleEXT( texture, target, samples, internalformat, width, height, fixedsamplelocations );
-}
-
-static void WINAPI glTextureStorage3D( GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", texture, levels, internalformat, width, height, depth );
-  funcs->ext.p_glTextureStorage3D( texture, levels, internalformat, width, height, depth );
-}
-
-static void WINAPI glTextureStorage3DEXT( GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", texture, target, levels, internalformat, width, height, depth );
-  funcs->ext.p_glTextureStorage3DEXT( texture, target, levels, internalformat, width, height, depth );
-}
-
-static void WINAPI glTextureStorage3DMultisample( GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", texture, samples, internalformat, width, height, depth, fixedsamplelocations );
-  funcs->ext.p_glTextureStorage3DMultisample( texture, samples, internalformat, width, height, depth, fixedsamplelocations );
-}
-
-static void WINAPI glTextureStorage3DMultisampleEXT( GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d)\n", texture, target, samples, internalformat, width, height, depth, fixedsamplelocations );
-  funcs->ext.p_glTextureStorage3DMultisampleEXT( texture, target, samples, internalformat, width, height, depth, fixedsamplelocations );
-}
-
-static void WINAPI glTextureStorageMem1DEXT( GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %s)\n", texture, levels, internalFormat, width, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glTextureStorageMem1DEXT( texture, levels, internalFormat, width, memory, offset );
-}
-
-static void WINAPI glTextureStorageMem2DEXT( GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %s)\n", texture, levels, internalFormat, width, height, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glTextureStorageMem2DEXT( texture, levels, internalFormat, width, height, memory, offset );
-}
-
-static void WINAPI glTextureStorageMem2DMultisampleEXT( GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %s)\n", texture, samples, internalFormat, width, height, fixedSampleLocations, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glTextureStorageMem2DMultisampleEXT( texture, samples, internalFormat, width, height, fixedSampleLocations, memory, offset );
-}
-
-static void WINAPI glTextureStorageMem3DEXT( GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %s)\n", texture, levels, internalFormat, width, height, depth, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glTextureStorageMem3DEXT( texture, levels, internalFormat, width, height, depth, memory, offset );
-}
-
-static void WINAPI glTextureStorageMem3DMultisampleEXT( GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %s)\n", texture, samples, internalFormat, width, height, depth, fixedSampleLocations, memory, wine_dbgstr_longlong(offset) );
-  funcs->ext.p_glTextureStorageMem3DMultisampleEXT( texture, samples, internalFormat, width, height, depth, fixedSampleLocations, memory, offset );
-}
-
-static void WINAPI glTextureStorageSparseAMD( GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d)\n", texture, target, internalFormat, width, height, depth, layers, flags );
-  funcs->ext.p_glTextureStorageSparseAMD( texture, target, internalFormat, width, height, depth, layers, flags );
-}
-
-static void WINAPI glTextureSubImage1D( GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %p)\n", texture, level, xoffset, width, format, type, pixels );
-  funcs->ext.p_glTextureSubImage1D( texture, level, xoffset, width, format, type, pixels );
-}
-
-static void WINAPI glTextureSubImage1DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %p)\n", texture, target, level, xoffset, width, format, type, pixels );
-  funcs->ext.p_glTextureSubImage1DEXT( texture, target, level, xoffset, width, format, type, pixels );
-}
-
-static void WINAPI glTextureSubImage2D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, level, xoffset, yoffset, width, height, format, type, pixels );
-  funcs->ext.p_glTextureSubImage2D( texture, level, xoffset, yoffset, width, height, format, type, pixels );
-}
-
-static void WINAPI glTextureSubImage2DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, target, level, xoffset, yoffset, width, height, format, type, pixels );
-  funcs->ext.p_glTextureSubImage2DEXT( texture, target, level, xoffset, yoffset, width, height, format, type, pixels );
-}
-
-static void WINAPI glTextureSubImage3D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
-  funcs->ext.p_glTextureSubImage3D( texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
-}
-
-static void WINAPI glTextureSubImage3DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %p)\n", texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
-  funcs->ext.p_glTextureSubImage3DEXT( texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
-}
-
-static void WINAPI glTextureView( GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %d)\n", texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers );
-  funcs->ext.p_glTextureView( texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers );
-}
-
-static void WINAPI glTrackMatrixNV( GLenum target, GLuint address, GLenum matrix, GLenum transform )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", target, address, matrix, transform );
-  funcs->ext.p_glTrackMatrixNV( target, address, matrix, transform );
-}
-
-static void WINAPI glTransformFeedbackAttribsNV( GLsizei count, const GLint *attribs, GLenum bufferMode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d)\n", count, attribs, bufferMode );
-  funcs->ext.p_glTransformFeedbackAttribsNV( count, attribs, bufferMode );
-}
-
-static void WINAPI glTransformFeedbackBufferBase( GLuint xfb, GLuint index, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", xfb, index, buffer );
-  funcs->ext.p_glTransformFeedbackBufferBase( xfb, index, buffer );
-}
-
-static void WINAPI glTransformFeedbackBufferRange( GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld, %ld)\n", xfb, index, buffer, offset, size );
-  funcs->ext.p_glTransformFeedbackBufferRange( xfb, index, buffer, offset, size );
-}
-
-static void WINAPI glTransformFeedbackStreamAttribsNV( GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %d, %p, %d)\n", count, attribs, nbuffers, bufstreams, bufferMode );
-  funcs->ext.p_glTransformFeedbackStreamAttribsNV( count, attribs, nbuffers, bufstreams, bufferMode );
-}
-
-static void WINAPI glTransformFeedbackVaryings( GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d)\n", program, count, varyings, bufferMode );
-  funcs->ext.p_glTransformFeedbackVaryings( program, count, varyings, bufferMode );
-}
-
-static void WINAPI glTransformFeedbackVaryingsEXT( GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d)\n", program, count, varyings, bufferMode );
-  funcs->ext.p_glTransformFeedbackVaryingsEXT( program, count, varyings, bufferMode );
-}
-
-static void WINAPI glTransformFeedbackVaryingsNV( GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d)\n", program, count, locations, bufferMode );
-  funcs->ext.p_glTransformFeedbackVaryingsNV( program, count, locations, bufferMode );
-}
-
-static void WINAPI glTransformPathNV( GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", resultPath, srcPath, transformType, transformValues );
-  funcs->ext.p_glTransformPathNV( resultPath, srcPath, transformType, transformValues );
-}
-
-static void WINAPI glTranslatexOES( GLfixed x, GLfixed y, GLfixed z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", x, y, z );
-  funcs->ext.p_glTranslatexOES( x, y, z );
-}
-
-static void WINAPI glUniform1d( GLint location, GLdouble x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", location, x );
-  funcs->ext.p_glUniform1d( location, x );
-}
-
-static void WINAPI glUniform1dv( GLint location, GLsizei count, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform1dv( location, count, value );
-}
-
-static void WINAPI glUniform1f( GLint location, GLfloat v0 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", location, v0 );
-  funcs->ext.p_glUniform1f( location, v0 );
-}
-
-static void WINAPI glUniform1fARB( GLint location, GLfloat v0 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", location, v0 );
-  funcs->ext.p_glUniform1fARB( location, v0 );
-}
-
-static void WINAPI glUniform1fv( GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform1fv( location, count, value );
-}
-
-static void WINAPI glUniform1fvARB( GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform1fvARB( location, count, value );
-}
-
-static void WINAPI glUniform1i( GLint location, GLint v0 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", location, v0 );
-  funcs->ext.p_glUniform1i( location, v0 );
-}
-
-static void WINAPI glUniform1i64ARB( GLint location, GLint64 x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s)\n", location, wine_dbgstr_longlong(x) );
-  funcs->ext.p_glUniform1i64ARB( location, x );
-}
-
-static void WINAPI glUniform1i64NV( GLint location, GLint64EXT x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s)\n", location, wine_dbgstr_longlong(x) );
-  funcs->ext.p_glUniform1i64NV( location, x );
-}
-
-static void WINAPI glUniform1i64vARB( GLint location, GLsizei count, const GLint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform1i64vARB( location, count, value );
-}
-
-static void WINAPI glUniform1i64vNV( GLint location, GLsizei count, const GLint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform1i64vNV( location, count, value );
-}
-
-static void WINAPI glUniform1iARB( GLint location, GLint v0 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", location, v0 );
-  funcs->ext.p_glUniform1iARB( location, v0 );
-}
-
-static void WINAPI glUniform1iv( GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform1iv( location, count, value );
-}
-
-static void WINAPI glUniform1ivARB( GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform1ivARB( location, count, value );
-}
-
-static void WINAPI glUniform1ui( GLint location, GLuint v0 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", location, v0 );
-  funcs->ext.p_glUniform1ui( location, v0 );
-}
-
-static void WINAPI glUniform1ui64ARB( GLint location, GLuint64 x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s)\n", location, wine_dbgstr_longlong(x) );
-  funcs->ext.p_glUniform1ui64ARB( location, x );
-}
-
-static void WINAPI glUniform1ui64NV( GLint location, GLuint64EXT x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s)\n", location, wine_dbgstr_longlong(x) );
-  funcs->ext.p_glUniform1ui64NV( location, x );
-}
-
-static void WINAPI glUniform1ui64vARB( GLint location, GLsizei count, const GLuint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform1ui64vARB( location, count, value );
-}
-
-static void WINAPI glUniform1ui64vNV( GLint location, GLsizei count, const GLuint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform1ui64vNV( location, count, value );
-}
-
-static void WINAPI glUniform1uiEXT( GLint location, GLuint v0 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", location, v0 );
-  funcs->ext.p_glUniform1uiEXT( location, v0 );
-}
-
-static void WINAPI glUniform1uiv( GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform1uiv( location, count, value );
-}
-
-static void WINAPI glUniform1uivEXT( GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform1uivEXT( location, count, value );
-}
-
-static void WINAPI glUniform2d( GLint location, GLdouble x, GLdouble y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", location, x, y );
-  funcs->ext.p_glUniform2d( location, x, y );
-}
-
-static void WINAPI glUniform2dv( GLint location, GLsizei count, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform2dv( location, count, value );
-}
-
-static void WINAPI glUniform2f( GLint location, GLfloat v0, GLfloat v1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", location, v0, v1 );
-  funcs->ext.p_glUniform2f( location, v0, v1 );
-}
-
-static void WINAPI glUniform2fARB( GLint location, GLfloat v0, GLfloat v1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", location, v0, v1 );
-  funcs->ext.p_glUniform2fARB( location, v0, v1 );
-}
-
-static void WINAPI glUniform2fv( GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform2fv( location, count, value );
-}
-
-static void WINAPI glUniform2fvARB( GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform2fvARB( location, count, value );
-}
-
-static void WINAPI glUniform2i( GLint location, GLint v0, GLint v1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", location, v0, v1 );
-  funcs->ext.p_glUniform2i( location, v0, v1 );
-}
-
-static void WINAPI glUniform2i64ARB( GLint location, GLint64 x, GLint64 y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
-  funcs->ext.p_glUniform2i64ARB( location, x, y );
-}
-
-static void WINAPI glUniform2i64NV( GLint location, GLint64EXT x, GLint64EXT y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
-  funcs->ext.p_glUniform2i64NV( location, x, y );
-}
-
-static void WINAPI glUniform2i64vARB( GLint location, GLsizei count, const GLint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform2i64vARB( location, count, value );
-}
-
-static void WINAPI glUniform2i64vNV( GLint location, GLsizei count, const GLint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform2i64vNV( location, count, value );
-}
-
-static void WINAPI glUniform2iARB( GLint location, GLint v0, GLint v1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", location, v0, v1 );
-  funcs->ext.p_glUniform2iARB( location, v0, v1 );
-}
-
-static void WINAPI glUniform2iv( GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform2iv( location, count, value );
-}
-
-static void WINAPI glUniform2ivARB( GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform2ivARB( location, count, value );
-}
-
-static void WINAPI glUniform2ui( GLint location, GLuint v0, GLuint v1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", location, v0, v1 );
-  funcs->ext.p_glUniform2ui( location, v0, v1 );
-}
-
-static void WINAPI glUniform2ui64ARB( GLint location, GLuint64 x, GLuint64 y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
-  funcs->ext.p_glUniform2ui64ARB( location, x, y );
-}
-
-static void WINAPI glUniform2ui64NV( GLint location, GLuint64EXT x, GLuint64EXT y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
-  funcs->ext.p_glUniform2ui64NV( location, x, y );
-}
-
-static void WINAPI glUniform2ui64vARB( GLint location, GLsizei count, const GLuint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform2ui64vARB( location, count, value );
-}
-
-static void WINAPI glUniform2ui64vNV( GLint location, GLsizei count, const GLuint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform2ui64vNV( location, count, value );
-}
-
-static void WINAPI glUniform2uiEXT( GLint location, GLuint v0, GLuint v1 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", location, v0, v1 );
-  funcs->ext.p_glUniform2uiEXT( location, v0, v1 );
-}
-
-static void WINAPI glUniform2uiv( GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform2uiv( location, count, value );
-}
-
-static void WINAPI glUniform2uivEXT( GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform2uivEXT( location, count, value );
-}
-
-static void WINAPI glUniform3d( GLint location, GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", location, x, y, z );
-  funcs->ext.p_glUniform3d( location, x, y, z );
-}
-
-static void WINAPI glUniform3dv( GLint location, GLsizei count, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform3dv( location, count, value );
-}
-
-static void WINAPI glUniform3f( GLint location, GLfloat v0, GLfloat v1, GLfloat v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", location, v0, v1, v2 );
-  funcs->ext.p_glUniform3f( location, v0, v1, v2 );
-}
-
-static void WINAPI glUniform3fARB( GLint location, GLfloat v0, GLfloat v1, GLfloat v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", location, v0, v1, v2 );
-  funcs->ext.p_glUniform3fARB( location, v0, v1, v2 );
-}
-
-static void WINAPI glUniform3fv( GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform3fv( location, count, value );
-}
-
-static void WINAPI glUniform3fvARB( GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform3fvARB( location, count, value );
-}
-
-static void WINAPI glUniform3i( GLint location, GLint v0, GLint v1, GLint v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", location, v0, v1, v2 );
-  funcs->ext.p_glUniform3i( location, v0, v1, v2 );
-}
-
-static void WINAPI glUniform3i64ARB( GLint location, GLint64 x, GLint64 y, GLint64 z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
-  funcs->ext.p_glUniform3i64ARB( location, x, y, z );
-}
-
-static void WINAPI glUniform3i64NV( GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
-  funcs->ext.p_glUniform3i64NV( location, x, y, z );
-}
-
-static void WINAPI glUniform3i64vARB( GLint location, GLsizei count, const GLint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform3i64vARB( location, count, value );
-}
-
-static void WINAPI glUniform3i64vNV( GLint location, GLsizei count, const GLint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform3i64vNV( location, count, value );
-}
-
-static void WINAPI glUniform3iARB( GLint location, GLint v0, GLint v1, GLint v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", location, v0, v1, v2 );
-  funcs->ext.p_glUniform3iARB( location, v0, v1, v2 );
-}
-
-static void WINAPI glUniform3iv( GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform3iv( location, count, value );
-}
-
-static void WINAPI glUniform3ivARB( GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform3ivARB( location, count, value );
-}
-
-static void WINAPI glUniform3ui( GLint location, GLuint v0, GLuint v1, GLuint v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", location, v0, v1, v2 );
-  funcs->ext.p_glUniform3ui( location, v0, v1, v2 );
-}
-
-static void WINAPI glUniform3ui64ARB( GLint location, GLuint64 x, GLuint64 y, GLuint64 z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
-  funcs->ext.p_glUniform3ui64ARB( location, x, y, z );
-}
-
-static void WINAPI glUniform3ui64NV( GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
-  funcs->ext.p_glUniform3ui64NV( location, x, y, z );
-}
-
-static void WINAPI glUniform3ui64vARB( GLint location, GLsizei count, const GLuint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform3ui64vARB( location, count, value );
-}
-
-static void WINAPI glUniform3ui64vNV( GLint location, GLsizei count, const GLuint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform3ui64vNV( location, count, value );
-}
-
-static void WINAPI glUniform3uiEXT( GLint location, GLuint v0, GLuint v1, GLuint v2 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", location, v0, v1, v2 );
-  funcs->ext.p_glUniform3uiEXT( location, v0, v1, v2 );
-}
-
-static void WINAPI glUniform3uiv( GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform3uiv( location, count, value );
-}
-
-static void WINAPI glUniform3uivEXT( GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform3uivEXT( location, count, value );
-}
-
-static void WINAPI glUniform4d( GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", location, x, y, z, w );
-  funcs->ext.p_glUniform4d( location, x, y, z, w );
-}
-
-static void WINAPI glUniform4dv( GLint location, GLsizei count, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform4dv( location, count, value );
-}
-
-static void WINAPI glUniform4f( GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", location, v0, v1, v2, v3 );
-  funcs->ext.p_glUniform4f( location, v0, v1, v2, v3 );
-}
-
-static void WINAPI glUniform4fARB( GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", location, v0, v1, v2, v3 );
-  funcs->ext.p_glUniform4fARB( location, v0, v1, v2, v3 );
-}
-
-static void WINAPI glUniform4fv( GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform4fv( location, count, value );
-}
-
-static void WINAPI glUniform4fvARB( GLint location, GLsizei count, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform4fvARB( location, count, value );
-}
-
-static void WINAPI glUniform4i( GLint location, GLint v0, GLint v1, GLint v2, GLint v3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", location, v0, v1, v2, v3 );
-  funcs->ext.p_glUniform4i( location, v0, v1, v2, v3 );
-}
-
-static void WINAPI glUniform4i64ARB( GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
-  funcs->ext.p_glUniform4i64ARB( location, x, y, z, w );
-}
-
-static void WINAPI glUniform4i64NV( GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
-  funcs->ext.p_glUniform4i64NV( location, x, y, z, w );
-}
-
-static void WINAPI glUniform4i64vARB( GLint location, GLsizei count, const GLint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform4i64vARB( location, count, value );
-}
-
-static void WINAPI glUniform4i64vNV( GLint location, GLsizei count, const GLint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform4i64vNV( location, count, value );
-}
-
-static void WINAPI glUniform4iARB( GLint location, GLint v0, GLint v1, GLint v2, GLint v3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", location, v0, v1, v2, v3 );
-  funcs->ext.p_glUniform4iARB( location, v0, v1, v2, v3 );
-}
-
-static void WINAPI glUniform4iv( GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform4iv( location, count, value );
-}
-
-static void WINAPI glUniform4ivARB( GLint location, GLsizei count, const GLint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform4ivARB( location, count, value );
-}
-
-static void WINAPI glUniform4ui( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", location, v0, v1, v2, v3 );
-  funcs->ext.p_glUniform4ui( location, v0, v1, v2, v3 );
-}
-
-static void WINAPI glUniform4ui64ARB( GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
-  funcs->ext.p_glUniform4ui64ARB( location, x, y, z, w );
-}
-
-static void WINAPI glUniform4ui64NV( GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s, %s, %s)\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
-  funcs->ext.p_glUniform4ui64NV( location, x, y, z, w );
-}
-
-static void WINAPI glUniform4ui64vARB( GLint location, GLsizei count, const GLuint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform4ui64vARB( location, count, value );
-}
-
-static void WINAPI glUniform4ui64vNV( GLint location, GLsizei count, const GLuint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform4ui64vNV( location, count, value );
-}
-
-static void WINAPI glUniform4uiEXT( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", location, v0, v1, v2, v3 );
-  funcs->ext.p_glUniform4uiEXT( location, v0, v1, v2, v3 );
-}
-
-static void WINAPI glUniform4uiv( GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform4uiv( location, count, value );
-}
-
-static void WINAPI glUniform4uivEXT( GLint location, GLsizei count, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniform4uivEXT( location, count, value );
-}
-
-static void WINAPI glUniformBlockBinding( GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", program, uniformBlockIndex, uniformBlockBinding );
-  funcs->ext.p_glUniformBlockBinding( program, uniformBlockIndex, uniformBlockBinding );
-}
-
-static void WINAPI glUniformBufferEXT( GLuint program, GLint location, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", program, location, buffer );
-  funcs->ext.p_glUniformBufferEXT( program, location, buffer );
-}
-
-static void WINAPI glUniformHandleui64ARB( GLint location, GLuint64 value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s)\n", location, wine_dbgstr_longlong(value) );
-  funcs->ext.p_glUniformHandleui64ARB( location, value );
-}
-
-static void WINAPI glUniformHandleui64NV( GLint location, GLuint64 value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s)\n", location, wine_dbgstr_longlong(value) );
-  funcs->ext.p_glUniformHandleui64NV( location, value );
-}
-
-static void WINAPI glUniformHandleui64vARB( GLint location, GLsizei count, const GLuint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniformHandleui64vARB( location, count, value );
-}
-
-static void WINAPI glUniformHandleui64vNV( GLint location, GLsizei count, const GLuint64 *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniformHandleui64vNV( location, count, value );
-}
-
-static void WINAPI glUniformMatrix2dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix2dv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix2fv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix2fvARB( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix2fvARB( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix2x3dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix2x3dv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix2x3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix2x3fv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix2x4dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix2x4dv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix2x4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix2x4fv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix3dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix3dv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix3fv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix3fvARB( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix3fvARB( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix3x2dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix3x2dv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix3x2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix3x2fv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix3x4dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix3x4dv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix3x4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix3x4fv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix4dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix4dv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix4fv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix4fvARB( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix4fvARB( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix4x2dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix4x2dv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix4x2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix4x2fv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix4x3dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix4x3dv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformMatrix4x3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", location, count, transpose, value );
-  funcs->ext.p_glUniformMatrix4x3fv( location, count, transpose, value );
-}
-
-static void WINAPI glUniformSubroutinesuiv( GLenum shadertype, GLsizei count, const GLuint *indices )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", shadertype, count, indices );
-  funcs->ext.p_glUniformSubroutinesuiv( shadertype, count, indices );
-}
-
-static void WINAPI glUniformui64NV( GLint location, GLuint64EXT value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s)\n", location, wine_dbgstr_longlong(value) );
-  funcs->ext.p_glUniformui64NV( location, value );
-}
-
-static void WINAPI glUniformui64vNV( GLint location, GLsizei count, const GLuint64EXT *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", location, count, value );
-  funcs->ext.p_glUniformui64vNV( location, count, value );
-}
-
-static void WINAPI glUnlockArraysEXT(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glUnlockArraysEXT();
-}
-
-static GLboolean WINAPI glUnmapBuffer( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  return funcs->ext.p_glUnmapBuffer( target );
-}
-
-static GLboolean WINAPI glUnmapBufferARB( GLenum target )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", target );
-  return funcs->ext.p_glUnmapBufferARB( target );
-}
-
-static GLboolean WINAPI glUnmapNamedBuffer( GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", buffer );
-  return funcs->ext.p_glUnmapNamedBuffer( buffer );
-}
-
-static GLboolean WINAPI glUnmapNamedBufferEXT( GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", buffer );
-  return funcs->ext.p_glUnmapNamedBufferEXT( buffer );
-}
-
-static void WINAPI glUnmapObjectBufferATI( GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", buffer );
-  funcs->ext.p_glUnmapObjectBufferATI( buffer );
-}
-
-static void WINAPI glUnmapTexture2DINTEL( GLuint texture, GLint level )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", texture, level );
-  funcs->ext.p_glUnmapTexture2DINTEL( texture, level );
-}
-
-static void WINAPI glUpdateObjectBufferATI( GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d)\n", buffer, offset, size, pointer, preserve );
-  funcs->ext.p_glUpdateObjectBufferATI( buffer, offset, size, pointer, preserve );
-}
-
-static void WINAPI glUploadGpuMaskNVX( GLbitfield mask )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", mask );
-  funcs->ext.p_glUploadGpuMaskNVX( mask );
-}
-
-static void WINAPI glUseProgram( GLuint program )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", program );
-  funcs->ext.p_glUseProgram( program );
-}
-
-static void WINAPI glUseProgramObjectARB( GLhandleARB programObj )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", programObj );
-  funcs->ext.p_glUseProgramObjectARB( programObj );
-}
-
-static void WINAPI glUseProgramStages( GLuint pipeline, GLbitfield stages, GLuint program )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", pipeline, stages, program );
-  funcs->ext.p_glUseProgramStages( pipeline, stages, program );
-}
-
-static void WINAPI glUseShaderProgramEXT( GLenum type, GLuint program )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, program );
-  funcs->ext.p_glUseShaderProgramEXT( type, program );
-}
-
-static void WINAPI glVDPAUFiniNV(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  funcs->ext.p_glVDPAUFiniNV();
-}
-
-static void WINAPI glVDPAUGetSurfaceivNV( GLvdpauSurfaceNV surface, GLenum pname, GLsizei count, GLsizei *length, GLint *values )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%ld, %d, %d, %p, %p)\n", surface, pname, count, length, values );
-  funcs->ext.p_glVDPAUGetSurfaceivNV( surface, pname, count, length, values );
-}
-
-static void WINAPI glVDPAUInitNV( const void *vdpDevice, const void *getProcAddress )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %p)\n", vdpDevice, getProcAddress );
-  funcs->ext.p_glVDPAUInitNV( vdpDevice, getProcAddress );
-}
-
-static GLboolean WINAPI glVDPAUIsSurfaceNV( GLvdpauSurfaceNV surface )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%ld)\n", surface );
-  return funcs->ext.p_glVDPAUIsSurfaceNV( surface );
-}
-
-static void WINAPI glVDPAUMapSurfacesNV( GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", numSurfaces, surfaces );
-  funcs->ext.p_glVDPAUMapSurfacesNV( numSurfaces, surfaces );
-}
-
-static GLvdpauSurfaceNV WINAPI glVDPAURegisterOutputSurfaceNV( const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %d, %d, %p)\n", vdpSurface, target, numTextureNames, textureNames );
-  return funcs->ext.p_glVDPAURegisterOutputSurfaceNV( vdpSurface, target, numTextureNames, textureNames );
-}
-
-static GLvdpauSurfaceNV WINAPI glVDPAURegisterVideoSurfaceNV( const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %d, %d, %p)\n", vdpSurface, target, numTextureNames, textureNames );
-  return funcs->ext.p_glVDPAURegisterVideoSurfaceNV( vdpSurface, target, numTextureNames, textureNames );
-}
-
-static GLvdpauSurfaceNV WINAPI glVDPAURegisterVideoSurfaceWithPictureStructureNV( const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %d, %d, %p, %d)\n", vdpSurface, target, numTextureNames, textureNames, isFrameStructure );
-  return funcs->ext.p_glVDPAURegisterVideoSurfaceWithPictureStructureNV( vdpSurface, target, numTextureNames, textureNames, isFrameStructure );
-}
-
-static void WINAPI glVDPAUSurfaceAccessNV( GLvdpauSurfaceNV surface, GLenum access )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%ld, %d)\n", surface, access );
-  funcs->ext.p_glVDPAUSurfaceAccessNV( surface, access );
-}
-
-static void WINAPI glVDPAUUnmapSurfacesNV( GLsizei numSurface, const GLvdpauSurfaceNV *surfaces )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", numSurface, surfaces );
-  funcs->ext.p_glVDPAUUnmapSurfacesNV( numSurface, surfaces );
-}
-
-static void WINAPI glVDPAUUnregisterSurfaceNV( GLvdpauSurfaceNV surface )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%ld)\n", surface );
-  funcs->ext.p_glVDPAUUnregisterSurfaceNV( surface );
-}
-
-static void WINAPI glValidateProgram( GLuint program )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", program );
-  funcs->ext.p_glValidateProgram( program );
-}
-
-static void WINAPI glValidateProgramARB( GLhandleARB programObj )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", programObj );
-  funcs->ext.p_glValidateProgramARB( programObj );
-}
-
-static void WINAPI glValidateProgramPipeline( GLuint pipeline )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", pipeline );
-  funcs->ext.p_glValidateProgramPipeline( pipeline );
-}
-
-static void WINAPI glVariantArrayObjectATI( GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", id, type, stride, buffer, offset );
-  funcs->ext.p_glVariantArrayObjectATI( id, type, stride, buffer, offset );
-}
-
-static void WINAPI glVariantPointerEXT( GLuint id, GLenum type, GLuint stride, const void *addr )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", id, type, stride, addr );
-  funcs->ext.p_glVariantPointerEXT( id, type, stride, addr );
-}
-
-static void WINAPI glVariantbvEXT( GLuint id, const GLbyte *addr )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", id, addr );
-  funcs->ext.p_glVariantbvEXT( id, addr );
-}
-
-static void WINAPI glVariantdvEXT( GLuint id, const GLdouble *addr )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", id, addr );
-  funcs->ext.p_glVariantdvEXT( id, addr );
-}
-
-static void WINAPI glVariantfvEXT( GLuint id, const GLfloat *addr )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", id, addr );
-  funcs->ext.p_glVariantfvEXT( id, addr );
-}
-
-static void WINAPI glVariantivEXT( GLuint id, const GLint *addr )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", id, addr );
-  funcs->ext.p_glVariantivEXT( id, addr );
-}
-
-static void WINAPI glVariantsvEXT( GLuint id, const GLshort *addr )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", id, addr );
-  funcs->ext.p_glVariantsvEXT( id, addr );
-}
-
-static void WINAPI glVariantubvEXT( GLuint id, const GLubyte *addr )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", id, addr );
-  funcs->ext.p_glVariantubvEXT( id, addr );
-}
-
-static void WINAPI glVariantuivEXT( GLuint id, const GLuint *addr )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", id, addr );
-  funcs->ext.p_glVariantuivEXT( id, addr );
-}
-
-static void WINAPI glVariantusvEXT( GLuint id, const GLushort *addr )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", id, addr );
-  funcs->ext.p_glVariantusvEXT( id, addr );
-}
-
-static void WINAPI glVertex2bOES( GLbyte x, GLbyte y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", x, y );
-  funcs->ext.p_glVertex2bOES( x, y );
-}
-
-static void WINAPI glVertex2bvOES( const GLbyte *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glVertex2bvOES( coords );
-}
-
-static void WINAPI glVertex2hNV( GLhalfNV x, GLhalfNV y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", x, y );
-  funcs->ext.p_glVertex2hNV( x, y );
-}
-
-static void WINAPI glVertex2hvNV( const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glVertex2hvNV( v );
-}
-
-static void WINAPI glVertex2xOES( GLfixed x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", x );
-  funcs->ext.p_glVertex2xOES( x );
-}
-
-static void WINAPI glVertex2xvOES( const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glVertex2xvOES( coords );
-}
-
-static void WINAPI glVertex3bOES( GLbyte x, GLbyte y, GLbyte z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", x, y, z );
-  funcs->ext.p_glVertex3bOES( x, y, z );
-}
-
-static void WINAPI glVertex3bvOES( const GLbyte *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glVertex3bvOES( coords );
-}
-
-static void WINAPI glVertex3hNV( GLhalfNV x, GLhalfNV y, GLhalfNV z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", x, y, z );
-  funcs->ext.p_glVertex3hNV( x, y, z );
-}
-
-static void WINAPI glVertex3hvNV( const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glVertex3hvNV( v );
-}
-
-static void WINAPI glVertex3xOES( GLfixed x, GLfixed y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", x, y );
-  funcs->ext.p_glVertex3xOES( x, y );
-}
-
-static void WINAPI glVertex3xvOES( const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glVertex3xvOES( coords );
-}
-
-static void WINAPI glVertex4bOES( GLbyte x, GLbyte y, GLbyte z, GLbyte w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", x, y, z, w );
-  funcs->ext.p_glVertex4bOES( x, y, z, w );
-}
-
-static void WINAPI glVertex4bvOES( const GLbyte *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glVertex4bvOES( coords );
-}
-
-static void WINAPI glVertex4hNV( GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", x, y, z, w );
-  funcs->ext.p_glVertex4hNV( x, y, z, w );
-}
-
-static void WINAPI glVertex4hvNV( const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glVertex4hvNV( v );
-}
-
-static void WINAPI glVertex4xOES( GLfixed x, GLfixed y, GLfixed z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", x, y, z );
-  funcs->ext.p_glVertex4xOES( x, y, z );
-}
-
-static void WINAPI glVertex4xvOES( const GLfixed *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", coords );
-  funcs->ext.p_glVertex4xvOES( coords );
-}
-
-static void WINAPI glVertexArrayAttribBinding( GLuint vaobj, GLuint attribindex, GLuint bindingindex )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", vaobj, attribindex, bindingindex );
-  funcs->ext.p_glVertexArrayAttribBinding( vaobj, attribindex, bindingindex );
-}
-
-static void WINAPI glVertexArrayAttribFormat( GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", vaobj, attribindex, size, type, normalized, relativeoffset );
-  funcs->ext.p_glVertexArrayAttribFormat( vaobj, attribindex, size, type, normalized, relativeoffset );
-}
-
-static void WINAPI glVertexArrayAttribIFormat( GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", vaobj, attribindex, size, type, relativeoffset );
-  funcs->ext.p_glVertexArrayAttribIFormat( vaobj, attribindex, size, type, relativeoffset );
-}
-
-static void WINAPI glVertexArrayAttribLFormat( GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", vaobj, attribindex, size, type, relativeoffset );
-  funcs->ext.p_glVertexArrayAttribLFormat( vaobj, attribindex, size, type, relativeoffset );
-}
-
-static void WINAPI glVertexArrayBindVertexBufferEXT( GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld, %d)\n", vaobj, bindingindex, buffer, offset, stride );
-  funcs->ext.p_glVertexArrayBindVertexBufferEXT( vaobj, bindingindex, buffer, offset, stride );
-}
-
-static void WINAPI glVertexArrayBindingDivisor( GLuint vaobj, GLuint bindingindex, GLuint divisor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", vaobj, bindingindex, divisor );
-  funcs->ext.p_glVertexArrayBindingDivisor( vaobj, bindingindex, divisor );
-}
-
-static void WINAPI glVertexArrayColorOffsetEXT( GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %ld)\n", vaobj, buffer, size, type, stride, offset );
-  funcs->ext.p_glVertexArrayColorOffsetEXT( vaobj, buffer, size, type, stride, offset );
-}
-
-static void WINAPI glVertexArrayEdgeFlagOffsetEXT( GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld)\n", vaobj, buffer, stride, offset );
-  funcs->ext.p_glVertexArrayEdgeFlagOffsetEXT( vaobj, buffer, stride, offset );
-}
-
-static void WINAPI glVertexArrayElementBuffer( GLuint vaobj, GLuint buffer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", vaobj, buffer );
-  funcs->ext.p_glVertexArrayElementBuffer( vaobj, buffer );
-}
-
-static void WINAPI glVertexArrayFogCoordOffsetEXT( GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %ld)\n", vaobj, buffer, type, stride, offset );
-  funcs->ext.p_glVertexArrayFogCoordOffsetEXT( vaobj, buffer, type, stride, offset );
-}
-
-static void WINAPI glVertexArrayIndexOffsetEXT( GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %ld)\n", vaobj, buffer, type, stride, offset );
-  funcs->ext.p_glVertexArrayIndexOffsetEXT( vaobj, buffer, type, stride, offset );
-}
-
-static void WINAPI glVertexArrayMultiTexCoordOffsetEXT( GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %ld)\n", vaobj, buffer, texunit, size, type, stride, offset );
-  funcs->ext.p_glVertexArrayMultiTexCoordOffsetEXT( vaobj, buffer, texunit, size, type, stride, offset );
-}
-
-static void WINAPI glVertexArrayNormalOffsetEXT( GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %ld)\n", vaobj, buffer, type, stride, offset );
-  funcs->ext.p_glVertexArrayNormalOffsetEXT( vaobj, buffer, type, stride, offset );
-}
-
-static void WINAPI glVertexArrayParameteriAPPLE( GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glVertexArrayParameteriAPPLE( pname, param );
-}
-
-static void WINAPI glVertexArrayRangeAPPLE( GLsizei length, void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", length, pointer );
-  funcs->ext.p_glVertexArrayRangeAPPLE( length, pointer );
-}
-
-static void WINAPI glVertexArrayRangeNV( GLsizei length, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", length, pointer );
-  funcs->ext.p_glVertexArrayRangeNV( length, pointer );
-}
-
-static void WINAPI glVertexArraySecondaryColorOffsetEXT( GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %ld)\n", vaobj, buffer, size, type, stride, offset );
-  funcs->ext.p_glVertexArraySecondaryColorOffsetEXT( vaobj, buffer, size, type, stride, offset );
-}
-
-static void WINAPI glVertexArrayTexCoordOffsetEXT( GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %ld)\n", vaobj, buffer, size, type, stride, offset );
-  funcs->ext.p_glVertexArrayTexCoordOffsetEXT( vaobj, buffer, size, type, stride, offset );
-}
-
-static void WINAPI glVertexArrayVertexAttribBindingEXT( GLuint vaobj, GLuint attribindex, GLuint bindingindex )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", vaobj, attribindex, bindingindex );
-  funcs->ext.p_glVertexArrayVertexAttribBindingEXT( vaobj, attribindex, bindingindex );
-}
-
-static void WINAPI glVertexArrayVertexAttribDivisorEXT( GLuint vaobj, GLuint index, GLuint divisor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", vaobj, index, divisor );
-  funcs->ext.p_glVertexArrayVertexAttribDivisorEXT( vaobj, index, divisor );
-}
-
-static void WINAPI glVertexArrayVertexAttribFormatEXT( GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", vaobj, attribindex, size, type, normalized, relativeoffset );
-  funcs->ext.p_glVertexArrayVertexAttribFormatEXT( vaobj, attribindex, size, type, normalized, relativeoffset );
-}
-
-static void WINAPI glVertexArrayVertexAttribIFormatEXT( GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", vaobj, attribindex, size, type, relativeoffset );
-  funcs->ext.p_glVertexArrayVertexAttribIFormatEXT( vaobj, attribindex, size, type, relativeoffset );
-}
-
-static void WINAPI glVertexArrayVertexAttribIOffsetEXT( GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %ld)\n", vaobj, buffer, index, size, type, stride, offset );
-  funcs->ext.p_glVertexArrayVertexAttribIOffsetEXT( vaobj, buffer, index, size, type, stride, offset );
-}
-
-static void WINAPI glVertexArrayVertexAttribLFormatEXT( GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", vaobj, attribindex, size, type, relativeoffset );
-  funcs->ext.p_glVertexArrayVertexAttribLFormatEXT( vaobj, attribindex, size, type, relativeoffset );
-}
-
-static void WINAPI glVertexArrayVertexAttribLOffsetEXT( GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %ld)\n", vaobj, buffer, index, size, type, stride, offset );
-  funcs->ext.p_glVertexArrayVertexAttribLOffsetEXT( vaobj, buffer, index, size, type, stride, offset );
-}
-
-static void WINAPI glVertexArrayVertexAttribOffsetEXT( GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d, %ld)\n", vaobj, buffer, index, size, type, normalized, stride, offset );
-  funcs->ext.p_glVertexArrayVertexAttribOffsetEXT( vaobj, buffer, index, size, type, normalized, stride, offset );
-}
-
-static void WINAPI glVertexArrayVertexBindingDivisorEXT( GLuint vaobj, GLuint bindingindex, GLuint divisor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", vaobj, bindingindex, divisor );
-  funcs->ext.p_glVertexArrayVertexBindingDivisorEXT( vaobj, bindingindex, divisor );
-}
-
-static void WINAPI glVertexArrayVertexBuffer( GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %ld, %d)\n", vaobj, bindingindex, buffer, offset, stride );
-  funcs->ext.p_glVertexArrayVertexBuffer( vaobj, bindingindex, buffer, offset, stride );
-}
-
-static void WINAPI glVertexArrayVertexBuffers( GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %p, %p)\n", vaobj, first, count, buffers, offsets, strides );
-  funcs->ext.p_glVertexArrayVertexBuffers( vaobj, first, count, buffers, offsets, strides );
-}
-
-static void WINAPI glVertexArrayVertexOffsetEXT( GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %ld)\n", vaobj, buffer, size, type, stride, offset );
-  funcs->ext.p_glVertexArrayVertexOffsetEXT( vaobj, buffer, size, type, stride, offset );
-}
-
-static void WINAPI glVertexAttrib1d( GLuint index, GLdouble x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", index, x );
-  funcs->ext.p_glVertexAttrib1d( index, x );
-}
-
-static void WINAPI glVertexAttrib1dARB( GLuint index, GLdouble x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", index, x );
-  funcs->ext.p_glVertexAttrib1dARB( index, x );
-}
-
-static void WINAPI glVertexAttrib1dNV( GLuint index, GLdouble x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", index, x );
-  funcs->ext.p_glVertexAttrib1dNV( index, x );
-}
-
-static void WINAPI glVertexAttrib1dv( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib1dv( index, v );
-}
-
-static void WINAPI glVertexAttrib1dvARB( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib1dvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib1dvNV( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib1dvNV( index, v );
-}
-
-static void WINAPI glVertexAttrib1f( GLuint index, GLfloat x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", index, x );
-  funcs->ext.p_glVertexAttrib1f( index, x );
-}
-
-static void WINAPI glVertexAttrib1fARB( GLuint index, GLfloat x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", index, x );
-  funcs->ext.p_glVertexAttrib1fARB( index, x );
-}
-
-static void WINAPI glVertexAttrib1fNV( GLuint index, GLfloat x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", index, x );
-  funcs->ext.p_glVertexAttrib1fNV( index, x );
-}
-
-static void WINAPI glVertexAttrib1fv( GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib1fv( index, v );
-}
-
-static void WINAPI glVertexAttrib1fvARB( GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib1fvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib1fvNV( GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib1fvNV( index, v );
-}
-
-static void WINAPI glVertexAttrib1hNV( GLuint index, GLhalfNV x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, x );
-  funcs->ext.p_glVertexAttrib1hNV( index, x );
-}
-
-static void WINAPI glVertexAttrib1hvNV( GLuint index, const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib1hvNV( index, v );
-}
-
-static void WINAPI glVertexAttrib1s( GLuint index, GLshort x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, x );
-  funcs->ext.p_glVertexAttrib1s( index, x );
-}
-
-static void WINAPI glVertexAttrib1sARB( GLuint index, GLshort x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, x );
-  funcs->ext.p_glVertexAttrib1sARB( index, x );
-}
-
-static void WINAPI glVertexAttrib1sNV( GLuint index, GLshort x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, x );
-  funcs->ext.p_glVertexAttrib1sNV( index, x );
-}
-
-static void WINAPI glVertexAttrib1sv( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib1sv( index, v );
-}
-
-static void WINAPI glVertexAttrib1svARB( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib1svARB( index, v );
-}
-
-static void WINAPI glVertexAttrib1svNV( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib1svNV( index, v );
-}
-
-static void WINAPI glVertexAttrib2d( GLuint index, GLdouble x, GLdouble y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", index, x, y );
-  funcs->ext.p_glVertexAttrib2d( index, x, y );
-}
-
-static void WINAPI glVertexAttrib2dARB( GLuint index, GLdouble x, GLdouble y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", index, x, y );
-  funcs->ext.p_glVertexAttrib2dARB( index, x, y );
-}
-
-static void WINAPI glVertexAttrib2dNV( GLuint index, GLdouble x, GLdouble y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", index, x, y );
-  funcs->ext.p_glVertexAttrib2dNV( index, x, y );
-}
-
-static void WINAPI glVertexAttrib2dv( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib2dv( index, v );
-}
-
-static void WINAPI glVertexAttrib2dvARB( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib2dvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib2dvNV( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib2dvNV( index, v );
-}
-
-static void WINAPI glVertexAttrib2f( GLuint index, GLfloat x, GLfloat y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", index, x, y );
-  funcs->ext.p_glVertexAttrib2f( index, x, y );
-}
-
-static void WINAPI glVertexAttrib2fARB( GLuint index, GLfloat x, GLfloat y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", index, x, y );
-  funcs->ext.p_glVertexAttrib2fARB( index, x, y );
-}
-
-static void WINAPI glVertexAttrib2fNV( GLuint index, GLfloat x, GLfloat y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", index, x, y );
-  funcs->ext.p_glVertexAttrib2fNV( index, x, y );
-}
-
-static void WINAPI glVertexAttrib2fv( GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib2fv( index, v );
-}
-
-static void WINAPI glVertexAttrib2fvARB( GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib2fvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib2fvNV( GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib2fvNV( index, v );
-}
-
-static void WINAPI glVertexAttrib2hNV( GLuint index, GLhalfNV x, GLhalfNV y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", index, x, y );
-  funcs->ext.p_glVertexAttrib2hNV( index, x, y );
-}
-
-static void WINAPI glVertexAttrib2hvNV( GLuint index, const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib2hvNV( index, v );
-}
-
-static void WINAPI glVertexAttrib2s( GLuint index, GLshort x, GLshort y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", index, x, y );
-  funcs->ext.p_glVertexAttrib2s( index, x, y );
-}
-
-static void WINAPI glVertexAttrib2sARB( GLuint index, GLshort x, GLshort y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", index, x, y );
-  funcs->ext.p_glVertexAttrib2sARB( index, x, y );
-}
-
-static void WINAPI glVertexAttrib2sNV( GLuint index, GLshort x, GLshort y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", index, x, y );
-  funcs->ext.p_glVertexAttrib2sNV( index, x, y );
-}
-
-static void WINAPI glVertexAttrib2sv( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib2sv( index, v );
-}
-
-static void WINAPI glVertexAttrib2svARB( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib2svARB( index, v );
-}
-
-static void WINAPI glVertexAttrib2svNV( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib2svNV( index, v );
-}
-
-static void WINAPI glVertexAttrib3d( GLuint index, GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttrib3d( index, x, y, z );
-}
-
-static void WINAPI glVertexAttrib3dARB( GLuint index, GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttrib3dARB( index, x, y, z );
-}
-
-static void WINAPI glVertexAttrib3dNV( GLuint index, GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttrib3dNV( index, x, y, z );
-}
-
-static void WINAPI glVertexAttrib3dv( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib3dv( index, v );
-}
-
-static void WINAPI glVertexAttrib3dvARB( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib3dvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib3dvNV( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib3dvNV( index, v );
-}
-
-static void WINAPI glVertexAttrib3f( GLuint index, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttrib3f( index, x, y, z );
-}
-
-static void WINAPI glVertexAttrib3fARB( GLuint index, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttrib3fARB( index, x, y, z );
-}
-
-static void WINAPI glVertexAttrib3fNV( GLuint index, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttrib3fNV( index, x, y, z );
-}
-
-static void WINAPI glVertexAttrib3fv( GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib3fv( index, v );
-}
-
-static void WINAPI glVertexAttrib3fvARB( GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib3fvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib3fvNV( GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib3fvNV( index, v );
-}
-
-static void WINAPI glVertexAttrib3hNV( GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttrib3hNV( index, x, y, z );
-}
-
-static void WINAPI glVertexAttrib3hvNV( GLuint index, const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib3hvNV( index, v );
-}
-
-static void WINAPI glVertexAttrib3s( GLuint index, GLshort x, GLshort y, GLshort z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttrib3s( index, x, y, z );
-}
-
-static void WINAPI glVertexAttrib3sARB( GLuint index, GLshort x, GLshort y, GLshort z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttrib3sARB( index, x, y, z );
-}
-
-static void WINAPI glVertexAttrib3sNV( GLuint index, GLshort x, GLshort y, GLshort z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttrib3sNV( index, x, y, z );
-}
-
-static void WINAPI glVertexAttrib3sv( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib3sv( index, v );
-}
-
-static void WINAPI glVertexAttrib3svARB( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib3svARB( index, v );
-}
-
-static void WINAPI glVertexAttrib3svNV( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib3svNV( index, v );
-}
-
-static void WINAPI glVertexAttrib4Nbv( GLuint index, const GLbyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4Nbv( index, v );
-}
-
-static void WINAPI glVertexAttrib4NbvARB( GLuint index, const GLbyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4NbvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib4Niv( GLuint index, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4Niv( index, v );
-}
-
-static void WINAPI glVertexAttrib4NivARB( GLuint index, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4NivARB( index, v );
-}
-
-static void WINAPI glVertexAttrib4Nsv( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4Nsv( index, v );
-}
-
-static void WINAPI glVertexAttrib4NsvARB( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4NsvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib4Nub( GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttrib4Nub( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttrib4NubARB( GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttrib4NubARB( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttrib4Nubv( GLuint index, const GLubyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4Nubv( index, v );
-}
-
-static void WINAPI glVertexAttrib4NubvARB( GLuint index, const GLubyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4NubvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib4Nuiv( GLuint index, const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4Nuiv( index, v );
-}
-
-static void WINAPI glVertexAttrib4NuivARB( GLuint index, const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4NuivARB( index, v );
-}
-
-static void WINAPI glVertexAttrib4Nusv( GLuint index, const GLushort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4Nusv( index, v );
-}
-
-static void WINAPI glVertexAttrib4NusvARB( GLuint index, const GLushort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4NusvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib4bv( GLuint index, const GLbyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4bv( index, v );
-}
-
-static void WINAPI glVertexAttrib4bvARB( GLuint index, const GLbyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4bvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib4d( GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttrib4d( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttrib4dARB( GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttrib4dARB( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttrib4dNV( GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttrib4dNV( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttrib4dv( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4dv( index, v );
-}
-
-static void WINAPI glVertexAttrib4dvARB( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4dvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib4dvNV( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4dvNV( index, v );
-}
-
-static void WINAPI glVertexAttrib4f( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttrib4f( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttrib4fARB( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttrib4fARB( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttrib4fNV( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttrib4fNV( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttrib4fv( GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4fv( index, v );
-}
-
-static void WINAPI glVertexAttrib4fvARB( GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4fvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib4fvNV( GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4fvNV( index, v );
-}
-
-static void WINAPI glVertexAttrib4hNV( GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttrib4hNV( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttrib4hvNV( GLuint index, const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4hvNV( index, v );
-}
-
-static void WINAPI glVertexAttrib4iv( GLuint index, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4iv( index, v );
-}
-
-static void WINAPI glVertexAttrib4ivARB( GLuint index, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4ivARB( index, v );
-}
-
-static void WINAPI glVertexAttrib4s( GLuint index, GLshort x, GLshort y, GLshort z, GLshort w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttrib4s( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttrib4sARB( GLuint index, GLshort x, GLshort y, GLshort z, GLshort w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttrib4sARB( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttrib4sNV( GLuint index, GLshort x, GLshort y, GLshort z, GLshort w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttrib4sNV( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttrib4sv( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4sv( index, v );
-}
-
-static void WINAPI glVertexAttrib4svARB( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4svARB( index, v );
-}
-
-static void WINAPI glVertexAttrib4svNV( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4svNV( index, v );
-}
-
-static void WINAPI glVertexAttrib4ubNV( GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttrib4ubNV( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttrib4ubv( GLuint index, const GLubyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4ubv( index, v );
-}
-
-static void WINAPI glVertexAttrib4ubvARB( GLuint index, const GLubyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4ubvARB( index, v );
-}
-
-static void WINAPI glVertexAttrib4ubvNV( GLuint index, const GLubyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4ubvNV( index, v );
-}
-
-static void WINAPI glVertexAttrib4uiv( GLuint index, const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4uiv( index, v );
-}
-
-static void WINAPI glVertexAttrib4uivARB( GLuint index, const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4uivARB( index, v );
-}
-
-static void WINAPI glVertexAttrib4usv( GLuint index, const GLushort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4usv( index, v );
-}
-
-static void WINAPI glVertexAttrib4usvARB( GLuint index, const GLushort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttrib4usvARB( index, v );
-}
-
-static void WINAPI glVertexAttribArrayObjectATI( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d, %d)\n", index, size, type, normalized, stride, buffer, offset );
-  funcs->ext.p_glVertexAttribArrayObjectATI( index, size, type, normalized, stride, buffer, offset );
-}
-
-static void WINAPI glVertexAttribBinding( GLuint attribindex, GLuint bindingindex )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", attribindex, bindingindex );
-  funcs->ext.p_glVertexAttribBinding( attribindex, bindingindex );
-}
-
-static void WINAPI glVertexAttribDivisor( GLuint index, GLuint divisor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, divisor );
-  funcs->ext.p_glVertexAttribDivisor( index, divisor );
-}
-
-static void WINAPI glVertexAttribDivisorARB( GLuint index, GLuint divisor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, divisor );
-  funcs->ext.p_glVertexAttribDivisorARB( index, divisor );
-}
-
-static void WINAPI glVertexAttribFormat( GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", attribindex, size, type, normalized, relativeoffset );
-  funcs->ext.p_glVertexAttribFormat( attribindex, size, type, normalized, relativeoffset );
-}
-
-static void WINAPI glVertexAttribFormatNV( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, size, type, normalized, stride );
-  funcs->ext.p_glVertexAttribFormatNV( index, size, type, normalized, stride );
-}
-
-static void WINAPI glVertexAttribI1i( GLuint index, GLint x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, x );
-  funcs->ext.p_glVertexAttribI1i( index, x );
-}
-
-static void WINAPI glVertexAttribI1iEXT( GLuint index, GLint x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, x );
-  funcs->ext.p_glVertexAttribI1iEXT( index, x );
-}
-
-static void WINAPI glVertexAttribI1iv( GLuint index, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI1iv( index, v );
-}
-
-static void WINAPI glVertexAttribI1ivEXT( GLuint index, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI1ivEXT( index, v );
-}
-
-static void WINAPI glVertexAttribI1ui( GLuint index, GLuint x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, x );
-  funcs->ext.p_glVertexAttribI1ui( index, x );
-}
-
-static void WINAPI glVertexAttribI1uiEXT( GLuint index, GLuint x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", index, x );
-  funcs->ext.p_glVertexAttribI1uiEXT( index, x );
-}
-
-static void WINAPI glVertexAttribI1uiv( GLuint index, const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI1uiv( index, v );
-}
-
-static void WINAPI glVertexAttribI1uivEXT( GLuint index, const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI1uivEXT( index, v );
-}
-
-static void WINAPI glVertexAttribI2i( GLuint index, GLint x, GLint y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", index, x, y );
-  funcs->ext.p_glVertexAttribI2i( index, x, y );
-}
-
-static void WINAPI glVertexAttribI2iEXT( GLuint index, GLint x, GLint y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", index, x, y );
-  funcs->ext.p_glVertexAttribI2iEXT( index, x, y );
-}
-
-static void WINAPI glVertexAttribI2iv( GLuint index, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI2iv( index, v );
-}
-
-static void WINAPI glVertexAttribI2ivEXT( GLuint index, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI2ivEXT( index, v );
-}
-
-static void WINAPI glVertexAttribI2ui( GLuint index, GLuint x, GLuint y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", index, x, y );
-  funcs->ext.p_glVertexAttribI2ui( index, x, y );
-}
-
-static void WINAPI glVertexAttribI2uiEXT( GLuint index, GLuint x, GLuint y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", index, x, y );
-  funcs->ext.p_glVertexAttribI2uiEXT( index, x, y );
-}
-
-static void WINAPI glVertexAttribI2uiv( GLuint index, const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI2uiv( index, v );
-}
-
-static void WINAPI glVertexAttribI2uivEXT( GLuint index, const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI2uivEXT( index, v );
-}
-
-static void WINAPI glVertexAttribI3i( GLuint index, GLint x, GLint y, GLint z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttribI3i( index, x, y, z );
-}
-
-static void WINAPI glVertexAttribI3iEXT( GLuint index, GLint x, GLint y, GLint z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttribI3iEXT( index, x, y, z );
-}
-
-static void WINAPI glVertexAttribI3iv( GLuint index, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI3iv( index, v );
-}
-
-static void WINAPI glVertexAttribI3ivEXT( GLuint index, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI3ivEXT( index, v );
-}
-
-static void WINAPI glVertexAttribI3ui( GLuint index, GLuint x, GLuint y, GLuint z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttribI3ui( index, x, y, z );
-}
-
-static void WINAPI glVertexAttribI3uiEXT( GLuint index, GLuint x, GLuint y, GLuint z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttribI3uiEXT( index, x, y, z );
-}
-
-static void WINAPI glVertexAttribI3uiv( GLuint index, const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI3uiv( index, v );
-}
-
-static void WINAPI glVertexAttribI3uivEXT( GLuint index, const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI3uivEXT( index, v );
-}
-
-static void WINAPI glVertexAttribI4bv( GLuint index, const GLbyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI4bv( index, v );
-}
-
-static void WINAPI glVertexAttribI4bvEXT( GLuint index, const GLbyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI4bvEXT( index, v );
-}
-
-static void WINAPI glVertexAttribI4i( GLuint index, GLint x, GLint y, GLint z, GLint w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttribI4i( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttribI4iEXT( GLuint index, GLint x, GLint y, GLint z, GLint w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttribI4iEXT( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttribI4iv( GLuint index, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI4iv( index, v );
-}
-
-static void WINAPI glVertexAttribI4ivEXT( GLuint index, const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI4ivEXT( index, v );
-}
-
-static void WINAPI glVertexAttribI4sv( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI4sv( index, v );
-}
-
-static void WINAPI glVertexAttribI4svEXT( GLuint index, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI4svEXT( index, v );
-}
-
-static void WINAPI glVertexAttribI4ubv( GLuint index, const GLubyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI4ubv( index, v );
-}
-
-static void WINAPI glVertexAttribI4ubvEXT( GLuint index, const GLubyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI4ubvEXT( index, v );
-}
-
-static void WINAPI glVertexAttribI4ui( GLuint index, GLuint x, GLuint y, GLuint z, GLuint w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttribI4ui( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttribI4uiEXT( GLuint index, GLuint x, GLuint y, GLuint z, GLuint w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttribI4uiEXT( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttribI4uiv( GLuint index, const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI4uiv( index, v );
-}
-
-static void WINAPI glVertexAttribI4uivEXT( GLuint index, const GLuint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI4uivEXT( index, v );
-}
-
-static void WINAPI glVertexAttribI4usv( GLuint index, const GLushort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI4usv( index, v );
-}
-
-static void WINAPI glVertexAttribI4usvEXT( GLuint index, const GLushort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribI4usvEXT( index, v );
-}
-
-static void WINAPI glVertexAttribIFormat( GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", attribindex, size, type, relativeoffset );
-  funcs->ext.p_glVertexAttribIFormat( attribindex, size, type, relativeoffset );
-}
-
-static void WINAPI glVertexAttribIFormatNV( GLuint index, GLint size, GLenum type, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, size, type, stride );
-  funcs->ext.p_glVertexAttribIFormatNV( index, size, type, stride );
-}
-
-static void WINAPI glVertexAttribIPointer( GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", index, size, type, stride, pointer );
-  funcs->ext.p_glVertexAttribIPointer( index, size, type, stride, pointer );
-}
-
-static void WINAPI glVertexAttribIPointerEXT( GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", index, size, type, stride, pointer );
-  funcs->ext.p_glVertexAttribIPointerEXT( index, size, type, stride, pointer );
-}
-
-static void WINAPI glVertexAttribL1d( GLuint index, GLdouble x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", index, x );
-  funcs->ext.p_glVertexAttribL1d( index, x );
-}
-
-static void WINAPI glVertexAttribL1dEXT( GLuint index, GLdouble x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", index, x );
-  funcs->ext.p_glVertexAttribL1dEXT( index, x );
-}
-
-static void WINAPI glVertexAttribL1dv( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL1dv( index, v );
-}
-
-static void WINAPI glVertexAttribL1dvEXT( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL1dvEXT( index, v );
-}
-
-static void WINAPI glVertexAttribL1i64NV( GLuint index, GLint64EXT x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s)\n", index, wine_dbgstr_longlong(x) );
-  funcs->ext.p_glVertexAttribL1i64NV( index, x );
-}
-
-static void WINAPI glVertexAttribL1i64vNV( GLuint index, const GLint64EXT *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL1i64vNV( index, v );
-}
-
-static void WINAPI glVertexAttribL1ui64ARB( GLuint index, GLuint64EXT x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s)\n", index, wine_dbgstr_longlong(x) );
-  funcs->ext.p_glVertexAttribL1ui64ARB( index, x );
-}
-
-static void WINAPI glVertexAttribL1ui64NV( GLuint index, GLuint64EXT x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s)\n", index, wine_dbgstr_longlong(x) );
-  funcs->ext.p_glVertexAttribL1ui64NV( index, x );
-}
-
-static void WINAPI glVertexAttribL1ui64vARB( GLuint index, const GLuint64EXT *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL1ui64vARB( index, v );
-}
-
-static void WINAPI glVertexAttribL1ui64vNV( GLuint index, const GLuint64EXT *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL1ui64vNV( index, v );
-}
-
-static void WINAPI glVertexAttribL2d( GLuint index, GLdouble x, GLdouble y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", index, x, y );
-  funcs->ext.p_glVertexAttribL2d( index, x, y );
-}
-
-static void WINAPI glVertexAttribL2dEXT( GLuint index, GLdouble x, GLdouble y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", index, x, y );
-  funcs->ext.p_glVertexAttribL2dEXT( index, x, y );
-}
-
-static void WINAPI glVertexAttribL2dv( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL2dv( index, v );
-}
-
-static void WINAPI glVertexAttribL2dvEXT( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL2dvEXT( index, v );
-}
-
-static void WINAPI glVertexAttribL2i64NV( GLuint index, GLint64EXT x, GLint64EXT y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s)\n", index, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
-  funcs->ext.p_glVertexAttribL2i64NV( index, x, y );
-}
-
-static void WINAPI glVertexAttribL2i64vNV( GLuint index, const GLint64EXT *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL2i64vNV( index, v );
-}
-
-static void WINAPI glVertexAttribL2ui64NV( GLuint index, GLuint64EXT x, GLuint64EXT y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s)\n", index, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
-  funcs->ext.p_glVertexAttribL2ui64NV( index, x, y );
-}
-
-static void WINAPI glVertexAttribL2ui64vNV( GLuint index, const GLuint64EXT *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL2ui64vNV( index, v );
-}
-
-static void WINAPI glVertexAttribL3d( GLuint index, GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttribL3d( index, x, y, z );
-}
-
-static void WINAPI glVertexAttribL3dEXT( GLuint index, GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", index, x, y, z );
-  funcs->ext.p_glVertexAttribL3dEXT( index, x, y, z );
-}
-
-static void WINAPI glVertexAttribL3dv( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL3dv( index, v );
-}
-
-static void WINAPI glVertexAttribL3dvEXT( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL3dvEXT( index, v );
-}
-
-static void WINAPI glVertexAttribL3i64NV( GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s, %s)\n", index, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
-  funcs->ext.p_glVertexAttribL3i64NV( index, x, y, z );
-}
-
-static void WINAPI glVertexAttribL3i64vNV( GLuint index, const GLint64EXT *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL3i64vNV( index, v );
-}
-
-static void WINAPI glVertexAttribL3ui64NV( GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s, %s)\n", index, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
-  funcs->ext.p_glVertexAttribL3ui64NV( index, x, y, z );
-}
-
-static void WINAPI glVertexAttribL3ui64vNV( GLuint index, const GLuint64EXT *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL3ui64vNV( index, v );
-}
-
-static void WINAPI glVertexAttribL4d( GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttribL4d( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttribL4dEXT( GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", index, x, y, z, w );
-  funcs->ext.p_glVertexAttribL4dEXT( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttribL4dv( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL4dv( index, v );
-}
-
-static void WINAPI glVertexAttribL4dvEXT( GLuint index, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL4dvEXT( index, v );
-}
-
-static void WINAPI glVertexAttribL4i64NV( GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s, %s, %s)\n", index, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
-  funcs->ext.p_glVertexAttribL4i64NV( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttribL4i64vNV( GLuint index, const GLint64EXT *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL4i64vNV( index, v );
-}
-
-static void WINAPI glVertexAttribL4ui64NV( GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %s, %s, %s, %s)\n", index, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
-  funcs->ext.p_glVertexAttribL4ui64NV( index, x, y, z, w );
-}
-
-static void WINAPI glVertexAttribL4ui64vNV( GLuint index, const GLuint64EXT *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glVertexAttribL4ui64vNV( index, v );
-}
-
-static void WINAPI glVertexAttribLFormat( GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", attribindex, size, type, relativeoffset );
-  funcs->ext.p_glVertexAttribLFormat( attribindex, size, type, relativeoffset );
-}
-
-static void WINAPI glVertexAttribLFormatNV( GLuint index, GLint size, GLenum type, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, size, type, stride );
-  funcs->ext.p_glVertexAttribLFormatNV( index, size, type, stride );
-}
-
-static void WINAPI glVertexAttribLPointer( GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", index, size, type, stride, pointer );
-  funcs->ext.p_glVertexAttribLPointer( index, size, type, stride, pointer );
-}
-
-static void WINAPI glVertexAttribLPointerEXT( GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", index, size, type, stride, pointer );
-  funcs->ext.p_glVertexAttribLPointerEXT( index, size, type, stride, pointer );
-}
-
-static void WINAPI glVertexAttribP1ui( GLuint index, GLenum type, GLboolean normalized, GLuint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, type, normalized, value );
-  funcs->ext.p_glVertexAttribP1ui( index, type, normalized, value );
-}
-
-static void WINAPI glVertexAttribP1uiv( GLuint index, GLenum type, GLboolean normalized, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", index, type, normalized, value );
-  funcs->ext.p_glVertexAttribP1uiv( index, type, normalized, value );
-}
-
-static void WINAPI glVertexAttribP2ui( GLuint index, GLenum type, GLboolean normalized, GLuint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, type, normalized, value );
-  funcs->ext.p_glVertexAttribP2ui( index, type, normalized, value );
-}
-
-static void WINAPI glVertexAttribP2uiv( GLuint index, GLenum type, GLboolean normalized, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", index, type, normalized, value );
-  funcs->ext.p_glVertexAttribP2uiv( index, type, normalized, value );
-}
-
-static void WINAPI glVertexAttribP3ui( GLuint index, GLenum type, GLboolean normalized, GLuint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, type, normalized, value );
-  funcs->ext.p_glVertexAttribP3ui( index, type, normalized, value );
-}
-
-static void WINAPI glVertexAttribP3uiv( GLuint index, GLenum type, GLboolean normalized, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", index, type, normalized, value );
-  funcs->ext.p_glVertexAttribP3uiv( index, type, normalized, value );
-}
-
-static void WINAPI glVertexAttribP4ui( GLuint index, GLenum type, GLboolean normalized, GLuint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", index, type, normalized, value );
-  funcs->ext.p_glVertexAttribP4ui( index, type, normalized, value );
-}
-
-static void WINAPI glVertexAttribP4uiv( GLuint index, GLenum type, GLboolean normalized, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", index, type, normalized, value );
-  funcs->ext.p_glVertexAttribP4uiv( index, type, normalized, value );
-}
-
-static void WINAPI glVertexAttribParameteriAMD( GLuint index, GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", index, pname, param );
-  funcs->ext.p_glVertexAttribParameteriAMD( index, pname, param );
-}
-
-static void WINAPI glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", index, size, type, normalized, stride, pointer );
-  funcs->ext.p_glVertexAttribPointer( index, size, type, normalized, stride, pointer );
-}
-
-static void WINAPI glVertexAttribPointerARB( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %p)\n", index, size, type, normalized, stride, pointer );
-  funcs->ext.p_glVertexAttribPointerARB( index, size, type, normalized, stride, pointer );
-}
-
-static void WINAPI glVertexAttribPointerNV( GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", index, fsize, type, stride, pointer );
-  funcs->ext.p_glVertexAttribPointerNV( index, fsize, type, stride, pointer );
-}
-
-static void WINAPI glVertexAttribs1dvNV( GLuint index, GLsizei count, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, count, v );
-  funcs->ext.p_glVertexAttribs1dvNV( index, count, v );
-}
-
-static void WINAPI glVertexAttribs1fvNV( GLuint index, GLsizei count, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, count, v );
-  funcs->ext.p_glVertexAttribs1fvNV( index, count, v );
-}
-
-static void WINAPI glVertexAttribs1hvNV( GLuint index, GLsizei n, const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, n, v );
-  funcs->ext.p_glVertexAttribs1hvNV( index, n, v );
-}
-
-static void WINAPI glVertexAttribs1svNV( GLuint index, GLsizei count, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, count, v );
-  funcs->ext.p_glVertexAttribs1svNV( index, count, v );
-}
-
-static void WINAPI glVertexAttribs2dvNV( GLuint index, GLsizei count, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, count, v );
-  funcs->ext.p_glVertexAttribs2dvNV( index, count, v );
-}
-
-static void WINAPI glVertexAttribs2fvNV( GLuint index, GLsizei count, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, count, v );
-  funcs->ext.p_glVertexAttribs2fvNV( index, count, v );
-}
-
-static void WINAPI glVertexAttribs2hvNV( GLuint index, GLsizei n, const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, n, v );
-  funcs->ext.p_glVertexAttribs2hvNV( index, n, v );
-}
-
-static void WINAPI glVertexAttribs2svNV( GLuint index, GLsizei count, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, count, v );
-  funcs->ext.p_glVertexAttribs2svNV( index, count, v );
-}
-
-static void WINAPI glVertexAttribs3dvNV( GLuint index, GLsizei count, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, count, v );
-  funcs->ext.p_glVertexAttribs3dvNV( index, count, v );
-}
-
-static void WINAPI glVertexAttribs3fvNV( GLuint index, GLsizei count, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, count, v );
-  funcs->ext.p_glVertexAttribs3fvNV( index, count, v );
-}
-
-static void WINAPI glVertexAttribs3hvNV( GLuint index, GLsizei n, const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, n, v );
-  funcs->ext.p_glVertexAttribs3hvNV( index, n, v );
-}
-
-static void WINAPI glVertexAttribs3svNV( GLuint index, GLsizei count, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, count, v );
-  funcs->ext.p_glVertexAttribs3svNV( index, count, v );
-}
-
-static void WINAPI glVertexAttribs4dvNV( GLuint index, GLsizei count, const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, count, v );
-  funcs->ext.p_glVertexAttribs4dvNV( index, count, v );
-}
-
-static void WINAPI glVertexAttribs4fvNV( GLuint index, GLsizei count, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, count, v );
-  funcs->ext.p_glVertexAttribs4fvNV( index, count, v );
-}
-
-static void WINAPI glVertexAttribs4hvNV( GLuint index, GLsizei n, const GLhalfNV *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, n, v );
-  funcs->ext.p_glVertexAttribs4hvNV( index, n, v );
-}
-
-static void WINAPI glVertexAttribs4svNV( GLuint index, GLsizei count, const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, count, v );
-  funcs->ext.p_glVertexAttribs4svNV( index, count, v );
-}
-
-static void WINAPI glVertexAttribs4ubvNV( GLuint index, GLsizei count, const GLubyte *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", index, count, v );
-  funcs->ext.p_glVertexAttribs4ubvNV( index, count, v );
-}
-
-static void WINAPI glVertexBindingDivisor( GLuint bindingindex, GLuint divisor )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", bindingindex, divisor );
-  funcs->ext.p_glVertexBindingDivisor( bindingindex, divisor );
-}
-
-static void WINAPI glVertexBlendARB( GLint count )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", count );
-  funcs->ext.p_glVertexBlendARB( count );
-}
-
-static void WINAPI glVertexBlendEnvfATI( GLenum pname, GLfloat param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", pname, param );
-  funcs->ext.p_glVertexBlendEnvfATI( pname, param );
-}
-
-static void WINAPI glVertexBlendEnviATI( GLenum pname, GLint param )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", pname, param );
-  funcs->ext.p_glVertexBlendEnviATI( pname, param );
-}
-
-static void WINAPI glVertexFormatNV( GLint size, GLenum type, GLsizei stride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", size, type, stride );
-  funcs->ext.p_glVertexFormatNV( size, type, stride );
-}
-
-static void WINAPI glVertexP2ui( GLenum type, GLuint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, value );
-  funcs->ext.p_glVertexP2ui( type, value );
-}
-
-static void WINAPI glVertexP2uiv( GLenum type, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, value );
-  funcs->ext.p_glVertexP2uiv( type, value );
-}
-
-static void WINAPI glVertexP3ui( GLenum type, GLuint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, value );
-  funcs->ext.p_glVertexP3ui( type, value );
-}
-
-static void WINAPI glVertexP3uiv( GLenum type, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, value );
-  funcs->ext.p_glVertexP3uiv( type, value );
-}
-
-static void WINAPI glVertexP4ui( GLenum type, GLuint value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", type, value );
-  funcs->ext.p_glVertexP4ui( type, value );
-}
-
-static void WINAPI glVertexP4uiv( GLenum type, const GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", type, value );
-  funcs->ext.p_glVertexP4uiv( type, value );
-}
-
-static void WINAPI glVertexPointerEXT( GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %p)\n", size, type, stride, count, pointer );
-  funcs->ext.p_glVertexPointerEXT( size, type, stride, count, pointer );
-}
-
-static void WINAPI glVertexPointerListIBM( GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p, %d)\n", size, type, stride, pointer, ptrstride );
-  funcs->ext.p_glVertexPointerListIBM( size, type, stride, pointer, ptrstride );
-}
-
-static void WINAPI glVertexPointervINTEL( GLint size, GLenum type, const void **pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", size, type, pointer );
-  funcs->ext.p_glVertexPointervINTEL( size, type, pointer );
-}
-
-static void WINAPI glVertexStream1dATI( GLenum stream, GLdouble x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", stream, x );
-  funcs->ext.p_glVertexStream1dATI( stream, x );
-}
-
-static void WINAPI glVertexStream1dvATI( GLenum stream, const GLdouble *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream1dvATI( stream, coords );
-}
-
-static void WINAPI glVertexStream1fATI( GLenum stream, GLfloat x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f)\n", stream, x );
-  funcs->ext.p_glVertexStream1fATI( stream, x );
-}
-
-static void WINAPI glVertexStream1fvATI( GLenum stream, const GLfloat *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream1fvATI( stream, coords );
-}
-
-static void WINAPI glVertexStream1iATI( GLenum stream, GLint x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", stream, x );
-  funcs->ext.p_glVertexStream1iATI( stream, x );
-}
-
-static void WINAPI glVertexStream1ivATI( GLenum stream, const GLint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream1ivATI( stream, coords );
-}
-
-static void WINAPI glVertexStream1sATI( GLenum stream, GLshort x )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", stream, x );
-  funcs->ext.p_glVertexStream1sATI( stream, x );
-}
-
-static void WINAPI glVertexStream1svATI( GLenum stream, const GLshort *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream1svATI( stream, coords );
-}
-
-static void WINAPI glVertexStream2dATI( GLenum stream, GLdouble x, GLdouble y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", stream, x, y );
-  funcs->ext.p_glVertexStream2dATI( stream, x, y );
-}
-
-static void WINAPI glVertexStream2dvATI( GLenum stream, const GLdouble *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream2dvATI( stream, coords );
-}
-
-static void WINAPI glVertexStream2fATI( GLenum stream, GLfloat x, GLfloat y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", stream, x, y );
-  funcs->ext.p_glVertexStream2fATI( stream, x, y );
-}
-
-static void WINAPI glVertexStream2fvATI( GLenum stream, const GLfloat *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream2fvATI( stream, coords );
-}
-
-static void WINAPI glVertexStream2iATI( GLenum stream, GLint x, GLint y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", stream, x, y );
-  funcs->ext.p_glVertexStream2iATI( stream, x, y );
-}
-
-static void WINAPI glVertexStream2ivATI( GLenum stream, const GLint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream2ivATI( stream, coords );
-}
-
-static void WINAPI glVertexStream2sATI( GLenum stream, GLshort x, GLshort y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", stream, x, y );
-  funcs->ext.p_glVertexStream2sATI( stream, x, y );
-}
-
-static void WINAPI glVertexStream2svATI( GLenum stream, const GLshort *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream2svATI( stream, coords );
-}
-
-static void WINAPI glVertexStream3dATI( GLenum stream, GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", stream, x, y, z );
-  funcs->ext.p_glVertexStream3dATI( stream, x, y, z );
-}
-
-static void WINAPI glVertexStream3dvATI( GLenum stream, const GLdouble *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream3dvATI( stream, coords );
-}
-
-static void WINAPI glVertexStream3fATI( GLenum stream, GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", stream, x, y, z );
-  funcs->ext.p_glVertexStream3fATI( stream, x, y, z );
-}
-
-static void WINAPI glVertexStream3fvATI( GLenum stream, const GLfloat *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream3fvATI( stream, coords );
-}
-
-static void WINAPI glVertexStream3iATI( GLenum stream, GLint x, GLint y, GLint z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", stream, x, y, z );
-  funcs->ext.p_glVertexStream3iATI( stream, x, y, z );
-}
-
-static void WINAPI glVertexStream3ivATI( GLenum stream, const GLint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream3ivATI( stream, coords );
-}
-
-static void WINAPI glVertexStream3sATI( GLenum stream, GLshort x, GLshort y, GLshort z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", stream, x, y, z );
-  funcs->ext.p_glVertexStream3sATI( stream, x, y, z );
-}
-
-static void WINAPI glVertexStream3svATI( GLenum stream, const GLshort *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream3svATI( stream, coords );
-}
-
-static void WINAPI glVertexStream4dATI( GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", stream, x, y, z, w );
-  funcs->ext.p_glVertexStream4dATI( stream, x, y, z, w );
-}
-
-static void WINAPI glVertexStream4dvATI( GLenum stream, const GLdouble *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream4dvATI( stream, coords );
-}
-
-static void WINAPI glVertexStream4fATI( GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", stream, x, y, z, w );
-  funcs->ext.p_glVertexStream4fATI( stream, x, y, z, w );
-}
-
-static void WINAPI glVertexStream4fvATI( GLenum stream, const GLfloat *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream4fvATI( stream, coords );
-}
-
-static void WINAPI glVertexStream4iATI( GLenum stream, GLint x, GLint y, GLint z, GLint w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", stream, x, y, z, w );
-  funcs->ext.p_glVertexStream4iATI( stream, x, y, z, w );
-}
-
-static void WINAPI glVertexStream4ivATI( GLenum stream, const GLint *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream4ivATI( stream, coords );
-}
-
-static void WINAPI glVertexStream4sATI( GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", stream, x, y, z, w );
-  funcs->ext.p_glVertexStream4sATI( stream, x, y, z, w );
-}
-
-static void WINAPI glVertexStream4svATI( GLenum stream, const GLshort *coords )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", stream, coords );
-  funcs->ext.p_glVertexStream4svATI( stream, coords );
-}
-
-static void WINAPI glVertexWeightPointerEXT( GLint size, GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", size, type, stride, pointer );
-  funcs->ext.p_glVertexWeightPointerEXT( size, type, stride, pointer );
-}
-
-static void WINAPI glVertexWeightfEXT( GLfloat weight )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f)\n", weight );
-  funcs->ext.p_glVertexWeightfEXT( weight );
-}
-
-static void WINAPI glVertexWeightfvEXT( const GLfloat *weight )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", weight );
-  funcs->ext.p_glVertexWeightfvEXT( weight );
-}
-
-static void WINAPI glVertexWeighthNV( GLhalfNV weight )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", weight );
-  funcs->ext.p_glVertexWeighthNV( weight );
-}
-
-static void WINAPI glVertexWeighthvNV( const GLhalfNV *weight )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", weight );
-  funcs->ext.p_glVertexWeighthvNV( weight );
-}
-
-static GLenum WINAPI glVideoCaptureNV( GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p, %p)\n", video_capture_slot, sequence_num, capture_time );
-  return funcs->ext.p_glVideoCaptureNV( video_capture_slot, sequence_num, capture_time );
-}
-
-static void WINAPI glVideoCaptureStreamParameterdvNV( GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", video_capture_slot, stream, pname, params );
-  funcs->ext.p_glVideoCaptureStreamParameterdvNV( video_capture_slot, stream, pname, params );
-}
-
-static void WINAPI glVideoCaptureStreamParameterfvNV( GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", video_capture_slot, stream, pname, params );
-  funcs->ext.p_glVideoCaptureStreamParameterfvNV( video_capture_slot, stream, pname, params );
-}
-
-static void WINAPI glVideoCaptureStreamParameterivNV( GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", video_capture_slot, stream, pname, params );
-  funcs->ext.p_glVideoCaptureStreamParameterivNV( video_capture_slot, stream, pname, params );
-}
-
-static void WINAPI glViewportArrayv( GLuint first, GLsizei count, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", first, count, v );
-  funcs->ext.p_glViewportArrayv( first, count, v );
-}
-
-static void WINAPI glViewportIndexedf( GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f, %f)\n", index, x, y, w, h );
-  funcs->ext.p_glViewportIndexedf( index, x, y, w, h );
-}
-
-static void WINAPI glViewportIndexedfv( GLuint index, const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", index, v );
-  funcs->ext.p_glViewportIndexedfv( index, v );
-}
-
-static void WINAPI glViewportPositionWScaleNV( GLuint index, GLfloat xcoeff, GLfloat ycoeff )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f)\n", index, xcoeff, ycoeff );
-  funcs->ext.p_glViewportPositionWScaleNV( index, xcoeff, ycoeff );
-}
-
-static void WINAPI glViewportSwizzleNV( GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d)\n", index, swizzlex, swizzley, swizzlez, swizzlew );
-  funcs->ext.p_glViewportSwizzleNV( index, swizzlex, swizzley, swizzlez, swizzlew );
-}
-
-static void WINAPI glWaitSemaphoreEXT( GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %d, %p, %p)\n", semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, srcLayouts );
-  funcs->ext.p_glWaitSemaphoreEXT( semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, srcLayouts );
-}
-
-static void WINAPI glWaitSemaphoreui64NVX( GLuint waitGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", waitGpu, fenceObjectCount, semaphoreArray, fenceValueArray );
-  funcs->ext.p_glWaitSemaphoreui64NVX( waitGpu, fenceObjectCount, semaphoreArray, fenceValueArray );
-}
-
-static void WINAPI glWaitSync( GLsync sync, GLbitfield flags, GLuint64 timeout )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p, %d, %s)\n", sync, flags, wine_dbgstr_longlong(timeout) );
-  funcs->ext.p_glWaitSync( sync, flags, timeout );
-}
-
-static void WINAPI glWaitVkSemaphoreNV( GLuint64 vkSemaphore )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%s)\n", wine_dbgstr_longlong(vkSemaphore) );
-  funcs->ext.p_glWaitVkSemaphoreNV( vkSemaphore );
-}
-
-static void WINAPI glWeightPathsNV( GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p, %p)\n", resultPath, numPaths, paths, weights );
-  funcs->ext.p_glWeightPathsNV( resultPath, numPaths, paths, weights );
-}
-
-static void WINAPI glWeightPointerARB( GLint size, GLenum type, GLsizei stride, const void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %p)\n", size, type, stride, pointer );
-  funcs->ext.p_glWeightPointerARB( size, type, stride, pointer );
-}
-
-static void WINAPI glWeightbvARB( GLint size, const GLbyte *weights )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", size, weights );
-  funcs->ext.p_glWeightbvARB( size, weights );
-}
-
-static void WINAPI glWeightdvARB( GLint size, const GLdouble *weights )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", size, weights );
-  funcs->ext.p_glWeightdvARB( size, weights );
-}
-
-static void WINAPI glWeightfvARB( GLint size, const GLfloat *weights )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", size, weights );
-  funcs->ext.p_glWeightfvARB( size, weights );
-}
-
-static void WINAPI glWeightivARB( GLint size, const GLint *weights )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", size, weights );
-  funcs->ext.p_glWeightivARB( size, weights );
-}
-
-static void WINAPI glWeightsvARB( GLint size, const GLshort *weights )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", size, weights );
-  funcs->ext.p_glWeightsvARB( size, weights );
-}
-
-static void WINAPI glWeightubvARB( GLint size, const GLubyte *weights )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", size, weights );
-  funcs->ext.p_glWeightubvARB( size, weights );
-}
-
-static void WINAPI glWeightuivARB( GLint size, const GLuint *weights )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", size, weights );
-  funcs->ext.p_glWeightuivARB( size, weights );
-}
-
-static void WINAPI glWeightusvARB( GLint size, const GLushort *weights )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", size, weights );
-  funcs->ext.p_glWeightusvARB( size, weights );
-}
-
-static void WINAPI glWindowPos2d( GLdouble x, GLdouble y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f)\n", x, y );
-  funcs->ext.p_glWindowPos2d( x, y );
-}
-
-static void WINAPI glWindowPos2dARB( GLdouble x, GLdouble y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f)\n", x, y );
-  funcs->ext.p_glWindowPos2dARB( x, y );
-}
-
-static void WINAPI glWindowPos2dMESA( GLdouble x, GLdouble y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f)\n", x, y );
-  funcs->ext.p_glWindowPos2dMESA( x, y );
-}
-
-static void WINAPI glWindowPos2dv( const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos2dv( v );
-}
-
-static void WINAPI glWindowPos2dvARB( const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos2dvARB( v );
-}
-
-static void WINAPI glWindowPos2dvMESA( const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos2dvMESA( v );
-}
-
-static void WINAPI glWindowPos2f( GLfloat x, GLfloat y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f)\n", x, y );
-  funcs->ext.p_glWindowPos2f( x, y );
-}
-
-static void WINAPI glWindowPos2fARB( GLfloat x, GLfloat y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f)\n", x, y );
-  funcs->ext.p_glWindowPos2fARB( x, y );
-}
-
-static void WINAPI glWindowPos2fMESA( GLfloat x, GLfloat y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f)\n", x, y );
-  funcs->ext.p_glWindowPos2fMESA( x, y );
-}
-
-static void WINAPI glWindowPos2fv( const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos2fv( v );
-}
-
-static void WINAPI glWindowPos2fvARB( const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos2fvARB( v );
-}
-
-static void WINAPI glWindowPos2fvMESA( const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos2fvMESA( v );
-}
-
-static void WINAPI glWindowPos2i( GLint x, GLint y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", x, y );
-  funcs->ext.p_glWindowPos2i( x, y );
-}
-
-static void WINAPI glWindowPos2iARB( GLint x, GLint y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", x, y );
-  funcs->ext.p_glWindowPos2iARB( x, y );
-}
-
-static void WINAPI glWindowPos2iMESA( GLint x, GLint y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", x, y );
-  funcs->ext.p_glWindowPos2iMESA( x, y );
-}
-
-static void WINAPI glWindowPos2iv( const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos2iv( v );
-}
-
-static void WINAPI glWindowPos2ivARB( const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos2ivARB( v );
-}
-
-static void WINAPI glWindowPos2ivMESA( const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos2ivMESA( v );
-}
-
-static void WINAPI glWindowPos2s( GLshort x, GLshort y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", x, y );
-  funcs->ext.p_glWindowPos2s( x, y );
-}
-
-static void WINAPI glWindowPos2sARB( GLshort x, GLshort y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", x, y );
-  funcs->ext.p_glWindowPos2sARB( x, y );
-}
-
-static void WINAPI glWindowPos2sMESA( GLshort x, GLshort y )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d)\n", x, y );
-  funcs->ext.p_glWindowPos2sMESA( x, y );
-}
-
-static void WINAPI glWindowPos2sv( const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos2sv( v );
-}
-
-static void WINAPI glWindowPos2svARB( const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos2svARB( v );
-}
-
-static void WINAPI glWindowPos2svMESA( const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos2svMESA( v );
-}
-
-static void WINAPI glWindowPos3d( GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", x, y, z );
-  funcs->ext.p_glWindowPos3d( x, y, z );
-}
-
-static void WINAPI glWindowPos3dARB( GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", x, y, z );
-  funcs->ext.p_glWindowPos3dARB( x, y, z );
-}
-
-static void WINAPI glWindowPos3dMESA( GLdouble x, GLdouble y, GLdouble z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", x, y, z );
-  funcs->ext.p_glWindowPos3dMESA( x, y, z );
-}
-
-static void WINAPI glWindowPos3dv( const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos3dv( v );
-}
-
-static void WINAPI glWindowPos3dvARB( const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos3dvARB( v );
-}
-
-static void WINAPI glWindowPos3dvMESA( const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos3dvMESA( v );
-}
-
-static void WINAPI glWindowPos3f( GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", x, y, z );
-  funcs->ext.p_glWindowPos3f( x, y, z );
-}
-
-static void WINAPI glWindowPos3fARB( GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", x, y, z );
-  funcs->ext.p_glWindowPos3fARB( x, y, z );
-}
-
-static void WINAPI glWindowPos3fMESA( GLfloat x, GLfloat y, GLfloat z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f)\n", x, y, z );
-  funcs->ext.p_glWindowPos3fMESA( x, y, z );
-}
-
-static void WINAPI glWindowPos3fv( const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos3fv( v );
-}
-
-static void WINAPI glWindowPos3fvARB( const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos3fvARB( v );
-}
-
-static void WINAPI glWindowPos3fvMESA( const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos3fvMESA( v );
-}
-
-static void WINAPI glWindowPos3i( GLint x, GLint y, GLint z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", x, y, z );
-  funcs->ext.p_glWindowPos3i( x, y, z );
-}
-
-static void WINAPI glWindowPos3iARB( GLint x, GLint y, GLint z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", x, y, z );
-  funcs->ext.p_glWindowPos3iARB( x, y, z );
-}
-
-static void WINAPI glWindowPos3iMESA( GLint x, GLint y, GLint z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", x, y, z );
-  funcs->ext.p_glWindowPos3iMESA( x, y, z );
-}
-
-static void WINAPI glWindowPos3iv( const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos3iv( v );
-}
-
-static void WINAPI glWindowPos3ivARB( const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos3ivARB( v );
-}
-
-static void WINAPI glWindowPos3ivMESA( const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos3ivMESA( v );
-}
-
-static void WINAPI glWindowPos3s( GLshort x, GLshort y, GLshort z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", x, y, z );
-  funcs->ext.p_glWindowPos3s( x, y, z );
-}
-
-static void WINAPI glWindowPos3sARB( GLshort x, GLshort y, GLshort z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", x, y, z );
-  funcs->ext.p_glWindowPos3sARB( x, y, z );
-}
-
-static void WINAPI glWindowPos3sMESA( GLshort x, GLshort y, GLshort z )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d)\n", x, y, z );
-  funcs->ext.p_glWindowPos3sMESA( x, y, z );
-}
-
-static void WINAPI glWindowPos3sv( const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos3sv( v );
-}
-
-static void WINAPI glWindowPos3svARB( const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos3svARB( v );
-}
-
-static void WINAPI glWindowPos3svMESA( const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos3svMESA( v );
-}
-
-static void WINAPI glWindowPos4dMESA( GLdouble x, GLdouble y, GLdouble z, GLdouble w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f)\n", x, y, z, w );
-  funcs->ext.p_glWindowPos4dMESA( x, y, z, w );
-}
-
-static void WINAPI glWindowPos4dvMESA( const GLdouble *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos4dvMESA( v );
-}
-
-static void WINAPI glWindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%f, %f, %f, %f)\n", x, y, z, w );
-  funcs->ext.p_glWindowPos4fMESA( x, y, z, w );
-}
-
-static void WINAPI glWindowPos4fvMESA( const GLfloat *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos4fvMESA( v );
-}
-
-static void WINAPI glWindowPos4iMESA( GLint x, GLint y, GLint z, GLint w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", x, y, z, w );
-  funcs->ext.p_glWindowPos4iMESA( x, y, z, w );
-}
-
-static void WINAPI glWindowPos4ivMESA( const GLint *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos4ivMESA( v );
-}
-
-static void WINAPI glWindowPos4sMESA( GLshort x, GLshort y, GLshort z, GLshort w )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d)\n", x, y, z, w );
-  funcs->ext.p_glWindowPos4sMESA( x, y, z, w );
-}
-
-static void WINAPI glWindowPos4svMESA( const GLshort *v )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", v );
-  funcs->ext.p_glWindowPos4svMESA( v );
-}
-
-static void WINAPI glWindowRectanglesEXT( GLenum mode, GLsizei count, const GLint *box )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %p)\n", mode, count, box );
-  funcs->ext.p_glWindowRectanglesEXT( mode, count, box );
-}
-
-static void WINAPI glWriteMaskEXT( GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %d, %d, %d, %d, %d)\n", res, in, outX, outY, outZ, outW );
-  funcs->ext.p_glWriteMaskEXT( res, in, outX, outY, outZ, outW );
-}
-
-static void * WINAPI wglAllocateMemoryNV( GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %f, %f, %f)\n", size, readfreq, writefreq, priority );
-  return funcs->ext.p_wglAllocateMemoryNV( size, readfreq, writefreq, priority );
-}
-
-static BOOL WINAPI wglChoosePixelFormatARB( HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats )
-{
-  const struct opengl_funcs *funcs = get_dc_funcs( hdc );
-  TRACE( "(%p, %p, %p, %u, %p, %p)\n", hdc, piAttribIList, pfAttribFList, nMaxFormats, piFormats, nNumFormats );
-  if (!funcs || !funcs->ext.p_wglChoosePixelFormatARB) return 0;
-  return funcs->ext.p_wglChoosePixelFormatARB( hdc, piAttribIList, pfAttribFList, nMaxFormats, piFormats, nNumFormats );
-}
-
-static void WINAPI wglFreeMemoryNV( void *pointer )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%p)\n", pointer );
-  funcs->ext.p_wglFreeMemoryNV( pointer );
-}
-
-static const char * WINAPI wglGetExtensionsStringARB( HDC hdc )
-{
-  const struct opengl_funcs *funcs = get_dc_funcs( hdc );
-  TRACE( "(%p)\n", hdc );
-  if (!funcs || !funcs->ext.p_wglGetExtensionsStringARB) return 0;
-  return funcs->ext.p_wglGetExtensionsStringARB( hdc );
-}
-
-static const char * WINAPI wglGetExtensionsStringEXT(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  return funcs->ext.p_wglGetExtensionsStringEXT();
-}
-
-static BOOL WINAPI wglGetPixelFormatAttribfvARB( HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues )
-{
-  const struct opengl_funcs *funcs = get_dc_funcs( hdc );
-  TRACE( "(%p, %d, %d, %u, %p, %p)\n", hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, pfValues );
-  if (!funcs || !funcs->ext.p_wglGetPixelFormatAttribfvARB) return 0;
-  return funcs->ext.p_wglGetPixelFormatAttribfvARB( hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, pfValues );
-}
-
-static BOOL WINAPI wglGetPixelFormatAttribivARB( HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues )
-{
-  const struct opengl_funcs *funcs = get_dc_funcs( hdc );
-  TRACE( "(%p, %d, %d, %u, %p, %p)\n", hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, piValues );
-  if (!funcs || !funcs->ext.p_wglGetPixelFormatAttribivARB) return 0;
-  return funcs->ext.p_wglGetPixelFormatAttribivARB( hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, piValues );
-}
-
-static int WINAPI wglGetSwapIntervalEXT(void)
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "()\n" );
-  return funcs->ext.p_wglGetSwapIntervalEXT();
-}
-
-static BOOL WINAPI wglQueryCurrentRendererIntegerWINE( GLenum attribute, GLuint *value )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d, %p)\n", attribute, value );
-  return funcs->ext.p_wglQueryCurrentRendererIntegerWINE( attribute, value );
-}
-
-static const GLchar * WINAPI wglQueryCurrentRendererStringWINE( GLenum attribute )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", attribute );
-  return funcs->ext.p_wglQueryCurrentRendererStringWINE( attribute );
-}
-
-static BOOL WINAPI wglQueryRendererIntegerWINE( HDC dc, GLint renderer, GLenum attribute, GLuint *value )
-{
-  const struct opengl_funcs *funcs = get_dc_funcs( dc );
-  TRACE( "(%p, %d, %d, %p)\n", dc, renderer, attribute, value );
-  if (!funcs || !funcs->ext.p_wglQueryRendererIntegerWINE) return 0;
-  return funcs->ext.p_wglQueryRendererIntegerWINE( dc, renderer, attribute, value );
-}
-
-static const GLchar * WINAPI wglQueryRendererStringWINE( HDC dc, GLint renderer, GLenum attribute )
-{
-  const struct opengl_funcs *funcs = get_dc_funcs( dc );
-  TRACE( "(%p, %d, %d)\n", dc, renderer, attribute );
-  if (!funcs || !funcs->ext.p_wglQueryRendererStringWINE) return 0;
-  return funcs->ext.p_wglQueryRendererStringWINE( dc, renderer, attribute );
-}
-
-static BOOL WINAPI wglSetPixelFormatWINE( HDC hdc, int format )
-{
-  const struct opengl_funcs *funcs = get_dc_funcs( hdc );
-  TRACE( "(%p, %d)\n", hdc, format );
-  if (!funcs || !funcs->ext.p_wglSetPixelFormatWINE) return 0;
-  return funcs->ext.p_wglSetPixelFormatWINE( hdc, format );
-}
-
-static BOOL WINAPI wglSwapIntervalEXT( int interval )
-{
-  const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
-  TRACE( "(%d)\n", interval );
-  return funcs->ext.p_wglSwapIntervalEXT( interval );
-}
-
-extern void WINAPI glDebugMessageCallback( GLDEBUGPROC callback, const void *userParam ) DECLSPEC_HIDDEN;
-extern void WINAPI glDebugMessageCallbackAMD( GLDEBUGPROCAMD callback, void *userParam ) DECLSPEC_HIDDEN;
-extern void WINAPI glDebugMessageCallbackARB( GLDEBUGPROCARB callback, const void *userParam ) DECLSPEC_HIDDEN;
-extern const GLubyte * WINAPI glGetStringi( GLenum name, GLuint index ) DECLSPEC_HIDDEN;
-extern BOOL WINAPI wglBindTexImageARB( HPBUFFERARB hPbuffer, int iBuffer ) DECLSPEC_HIDDEN;
-extern HGLRC WINAPI wglCreateContextAttribsARB( HDC hDC, HGLRC hShareContext, const int *attribList ) DECLSPEC_HIDDEN;
-extern HPBUFFERARB WINAPI wglCreatePbufferARB( HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList ) DECLSPEC_HIDDEN;
-extern BOOL WINAPI wglDestroyPbufferARB( HPBUFFERARB hPbuffer ) DECLSPEC_HIDDEN;
-extern HDC WINAPI wglGetCurrentReadDCARB(void) DECLSPEC_HIDDEN;
-extern HDC WINAPI wglGetPbufferDCARB( HPBUFFERARB hPbuffer ) DECLSPEC_HIDDEN;
-extern BOOL WINAPI wglMakeContextCurrentARB( HDC hDrawDC, HDC hReadDC, HGLRC hglrc ) DECLSPEC_HIDDEN;
-extern BOOL WINAPI wglQueryPbufferARB( HPBUFFERARB hPbuffer, int iAttribute, int *piValue ) DECLSPEC_HIDDEN;
-extern int WINAPI wglReleasePbufferDCARB( HPBUFFERARB hPbuffer, HDC hDC ) DECLSPEC_HIDDEN;
-extern BOOL WINAPI wglReleaseTexImageARB( HPBUFFERARB hPbuffer, int iBuffer ) DECLSPEC_HIDDEN;
-extern BOOL WINAPI wglSetPbufferAttribARB( HPBUFFERARB hPbuffer, const int *piAttribList ) DECLSPEC_HIDDEN;
-
-const OpenGL_extension extension_registry[2694] = {
-  { "glAccumxOES", "GL_OES_fixed_point", glAccumxOES },
-  { "glAcquireKeyedMutexWin32EXT", "GL_EXT_win32_keyed_mutex", glAcquireKeyedMutexWin32EXT },
-  { "glActiveProgramEXT", "GL_EXT_separate_shader_objects", glActiveProgramEXT },
-  { "glActiveShaderProgram", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glActiveShaderProgram },
-  { "glActiveStencilFaceEXT", "GL_EXT_stencil_two_side", glActiveStencilFaceEXT },
-  { "glActiveTexture", "GL_VERSION_1_3", glActiveTexture },
-  { "glActiveTextureARB", "GL_ARB_multitexture", glActiveTextureARB },
-  { "glActiveVaryingNV", "GL_NV_transform_feedback", glActiveVaryingNV },
-  { "glAlphaFragmentOp1ATI", "GL_ATI_fragment_shader", glAlphaFragmentOp1ATI },
-  { "glAlphaFragmentOp2ATI", "GL_ATI_fragment_shader", glAlphaFragmentOp2ATI },
-  { "glAlphaFragmentOp3ATI", "GL_ATI_fragment_shader", glAlphaFragmentOp3ATI },
-  { "glAlphaFuncxOES", "GL_OES_fixed_point", glAlphaFuncxOES },
-  { "glAlphaToCoverageDitherControlNV", "GL_NV_alpha_to_coverage_dither_control", glAlphaToCoverageDitherControlNV },
-  { "glApplyFramebufferAttachmentCMAAINTEL", "GL_INTEL_framebuffer_CMAA", glApplyFramebufferAttachmentCMAAINTEL },
-  { "glApplyTextureEXT", "GL_EXT_light_texture", glApplyTextureEXT },
-  { "glAreProgramsResidentNV", "GL_NV_vertex_program", glAreProgramsResidentNV },
-  { "glAreTexturesResidentEXT", "GL_EXT_texture_object", glAreTexturesResidentEXT },
-  { "glArrayElementEXT", "GL_EXT_vertex_array", glArrayElementEXT },
-  { "glArrayObjectATI", "GL_ATI_vertex_array_object", glArrayObjectATI },
-  { "glAsyncCopyBufferSubDataNVX", "GL_NVX_gpu_multicast2", glAsyncCopyBufferSubDataNVX },
-  { "glAsyncCopyImageSubDataNVX", "GL_NVX_gpu_multicast2", glAsyncCopyImageSubDataNVX },
-  { "glAsyncMarkerSGIX", "GL_SGIX_async", glAsyncMarkerSGIX },
-  { "glAttachObjectARB", "GL_ARB_shader_objects", glAttachObjectARB },
-  { "glAttachShader", "GL_VERSION_2_0", glAttachShader },
-  { "glBeginConditionalRender", "GL_VERSION_3_0", glBeginConditionalRender },
-  { "glBeginConditionalRenderNV", "GL_NV_conditional_render", glBeginConditionalRenderNV },
-  { "glBeginConditionalRenderNVX", "GL_NVX_conditional_render", glBeginConditionalRenderNVX },
-  { "glBeginFragmentShaderATI", "GL_ATI_fragment_shader", glBeginFragmentShaderATI },
-  { "glBeginOcclusionQueryNV", "GL_NV_occlusion_query", glBeginOcclusionQueryNV },
-  { "glBeginPerfMonitorAMD", "GL_AMD_performance_monitor", glBeginPerfMonitorAMD },
-  { "glBeginPerfQueryINTEL", "GL_INTEL_performance_query", glBeginPerfQueryINTEL },
-  { "glBeginQuery", "GL_VERSION_1_5", glBeginQuery },
-  { "glBeginQueryARB", "GL_ARB_occlusion_query", glBeginQueryARB },
-  { "glBeginQueryIndexed", "GL_ARB_transform_feedback3 GL_VERSION_4_0", glBeginQueryIndexed },
-  { "glBeginTransformFeedback", "GL_VERSION_3_0", glBeginTransformFeedback },
-  { "glBeginTransformFeedbackEXT", "GL_EXT_transform_feedback", glBeginTransformFeedbackEXT },
-  { "glBeginTransformFeedbackNV", "GL_NV_transform_feedback", glBeginTransformFeedbackNV },
-  { "glBeginVertexShaderEXT", "GL_EXT_vertex_shader", glBeginVertexShaderEXT },
-  { "glBeginVideoCaptureNV", "GL_NV_video_capture", glBeginVideoCaptureNV },
-  { "glBindAttribLocation", "GL_VERSION_2_0", glBindAttribLocation },
-  { "glBindAttribLocationARB", "GL_ARB_vertex_shader", glBindAttribLocationARB },
-  { "glBindBuffer", "GL_VERSION_1_5", glBindBuffer },
-  { "glBindBufferARB", "GL_ARB_vertex_buffer_object", glBindBufferARB },
-  { "glBindBufferBase", "GL_ARB_uniform_buffer_object GL_VERSION_3_0", glBindBufferBase },
-  { "glBindBufferBaseEXT", "GL_EXT_transform_feedback", glBindBufferBaseEXT },
-  { "glBindBufferBaseNV", "GL_NV_transform_feedback", glBindBufferBaseNV },
-  { "glBindBufferOffsetEXT", "GL_EXT_transform_feedback", glBindBufferOffsetEXT },
-  { "glBindBufferOffsetNV", "GL_NV_transform_feedback", glBindBufferOffsetNV },
-  { "glBindBufferRange", "GL_ARB_uniform_buffer_object GL_VERSION_3_0", glBindBufferRange },
-  { "glBindBufferRangeEXT", "GL_EXT_transform_feedback", glBindBufferRangeEXT },
-  { "glBindBufferRangeNV", "GL_NV_transform_feedback", glBindBufferRangeNV },
-  { "glBindBuffersBase", "GL_ARB_multi_bind GL_VERSION_4_4", glBindBuffersBase },
-  { "glBindBuffersRange", "GL_ARB_multi_bind GL_VERSION_4_4", glBindBuffersRange },
-  { "glBindFragDataLocation", "GL_VERSION_3_0", glBindFragDataLocation },
-  { "glBindFragDataLocationEXT", "GL_EXT_gpu_shader4", glBindFragDataLocationEXT },
-  { "glBindFragDataLocationIndexed", "GL_ARB_blend_func_extended GL_VERSION_3_3", glBindFragDataLocationIndexed },
-  { "glBindFragmentShaderATI", "GL_ATI_fragment_shader", glBindFragmentShaderATI },
-  { "glBindFramebuffer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glBindFramebuffer },
-  { "glBindFramebufferEXT", "GL_EXT_framebuffer_object", glBindFramebufferEXT },
-  { "glBindImageTexture", "GL_ARB_shader_image_load_store GL_VERSION_4_2", glBindImageTexture },
-  { "glBindImageTextureEXT", "GL_EXT_shader_image_load_store", glBindImageTextureEXT },
-  { "glBindImageTextures", "GL_ARB_multi_bind GL_VERSION_4_4", glBindImageTextures },
-  { "glBindLightParameterEXT", "GL_EXT_vertex_shader", glBindLightParameterEXT },
-  { "glBindMaterialParameterEXT", "GL_EXT_vertex_shader", glBindMaterialParameterEXT },
-  { "glBindMultiTextureEXT", "GL_EXT_direct_state_access", glBindMultiTextureEXT },
-  { "glBindParameterEXT", "GL_EXT_vertex_shader", glBindParameterEXT },
-  { "glBindProgramARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glBindProgramARB },
-  { "glBindProgramNV", "GL_NV_vertex_program", glBindProgramNV },
-  { "glBindProgramPipeline", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glBindProgramPipeline },
-  { "glBindRenderbuffer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glBindRenderbuffer },
-  { "glBindRenderbufferEXT", "GL_EXT_framebuffer_object", glBindRenderbufferEXT },
-  { "glBindSampler", "GL_ARB_sampler_objects GL_VERSION_3_3", glBindSampler },
-  { "glBindSamplers", "GL_ARB_multi_bind GL_VERSION_4_4", glBindSamplers },
-  { "glBindShadingRateImageNV", "GL_NV_shading_rate_image", glBindShadingRateImageNV },
-  { "glBindTexGenParameterEXT", "GL_EXT_vertex_shader", glBindTexGenParameterEXT },
-  { "glBindTextureEXT", "GL_EXT_texture_object", glBindTextureEXT },
-  { "glBindTextureUnit", "GL_ARB_direct_state_access GL_VERSION_4_5", glBindTextureUnit },
-  { "glBindTextureUnitParameterEXT", "GL_EXT_vertex_shader", glBindTextureUnitParameterEXT },
-  { "glBindTextures", "GL_ARB_multi_bind GL_VERSION_4_4", glBindTextures },
-  { "glBindTransformFeedback", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glBindTransformFeedback },
-  { "glBindTransformFeedbackNV", "GL_NV_transform_feedback2", glBindTransformFeedbackNV },
-  { "glBindVertexArray", "GL_ARB_vertex_array_object GL_VERSION_3_0", glBindVertexArray },
-  { "glBindVertexArrayAPPLE", "GL_APPLE_vertex_array_object", glBindVertexArrayAPPLE },
-  { "glBindVertexBuffer", "GL_ARB_vertex_attrib_binding GL_VERSION_4_3", glBindVertexBuffer },
-  { "glBindVertexBuffers", "GL_ARB_multi_bind GL_VERSION_4_4", glBindVertexBuffers },
-  { "glBindVertexShaderEXT", "GL_EXT_vertex_shader", glBindVertexShaderEXT },
-  { "glBindVideoCaptureStreamBufferNV", "GL_NV_video_capture", glBindVideoCaptureStreamBufferNV },
-  { "glBindVideoCaptureStreamTextureNV", "GL_NV_video_capture", glBindVideoCaptureStreamTextureNV },
-  { "glBinormal3bEXT", "GL_EXT_coordinate_frame", glBinormal3bEXT },
-  { "glBinormal3bvEXT", "GL_EXT_coordinate_frame", glBinormal3bvEXT },
-  { "glBinormal3dEXT", "GL_EXT_coordinate_frame", glBinormal3dEXT },
-  { "glBinormal3dvEXT", "GL_EXT_coordinate_frame", glBinormal3dvEXT },
-  { "glBinormal3fEXT", "GL_EXT_coordinate_frame", glBinormal3fEXT },
-  { "glBinormal3fvEXT", "GL_EXT_coordinate_frame", glBinormal3fvEXT },
-  { "glBinormal3iEXT", "GL_EXT_coordinate_frame", glBinormal3iEXT },
-  { "glBinormal3ivEXT", "GL_EXT_coordinate_frame", glBinormal3ivEXT },
-  { "glBinormal3sEXT", "GL_EXT_coordinate_frame", glBinormal3sEXT },
-  { "glBinormal3svEXT", "GL_EXT_coordinate_frame", glBinormal3svEXT },
-  { "glBinormalPointerEXT", "GL_EXT_coordinate_frame", glBinormalPointerEXT },
-  { "glBitmapxOES", "GL_OES_fixed_point", glBitmapxOES },
-  { "glBlendBarrierKHR", "GL_KHR_blend_equation_advanced", glBlendBarrierKHR },
-  { "glBlendBarrierNV", "GL_NV_blend_equation_advanced", glBlendBarrierNV },
-  { "glBlendColor", "GL_ARB_imaging GL_VERSION_1_4", glBlendColor },
-  { "glBlendColorEXT", "GL_EXT_blend_color", glBlendColorEXT },
-  { "glBlendColorxOES", "GL_OES_fixed_point", glBlendColorxOES },
-  { "glBlendEquation", "GL_ARB_imaging GL_VERSION_1_4", glBlendEquation },
-  { "glBlendEquationEXT", "GL_EXT_blend_minmax", glBlendEquationEXT },
-  { "glBlendEquationIndexedAMD", "GL_AMD_draw_buffers_blend", glBlendEquationIndexedAMD },
-  { "glBlendEquationSeparate", "GL_VERSION_2_0", glBlendEquationSeparate },
-  { "glBlendEquationSeparateEXT", "GL_EXT_blend_equation_separate", glBlendEquationSeparateEXT },
-  { "glBlendEquationSeparateIndexedAMD", "GL_AMD_draw_buffers_blend", glBlendEquationSeparateIndexedAMD },
-  { "glBlendEquationSeparatei", "GL_VERSION_4_0", glBlendEquationSeparatei },
-  { "glBlendEquationSeparateiARB", "GL_ARB_draw_buffers_blend", glBlendEquationSeparateiARB },
-  { "glBlendEquationi", "GL_VERSION_4_0", glBlendEquationi },
-  { "glBlendEquationiARB", "GL_ARB_draw_buffers_blend", glBlendEquationiARB },
-  { "glBlendFuncIndexedAMD", "GL_AMD_draw_buffers_blend", glBlendFuncIndexedAMD },
-  { "glBlendFuncSeparate", "GL_VERSION_1_4", glBlendFuncSeparate },
-  { "glBlendFuncSeparateEXT", "GL_EXT_blend_func_separate", glBlendFuncSeparateEXT },
-  { "glBlendFuncSeparateINGR", "GL_INGR_blend_func_separate", glBlendFuncSeparateINGR },
-  { "glBlendFuncSeparateIndexedAMD", "GL_AMD_draw_buffers_blend", glBlendFuncSeparateIndexedAMD },
-  { "glBlendFuncSeparatei", "GL_VERSION_4_0", glBlendFuncSeparatei },
-  { "glBlendFuncSeparateiARB", "GL_ARB_draw_buffers_blend", glBlendFuncSeparateiARB },
-  { "glBlendFunci", "GL_VERSION_4_0", glBlendFunci },
-  { "glBlendFunciARB", "GL_ARB_draw_buffers_blend", glBlendFunciARB },
-  { "glBlendParameteriNV", "GL_NV_blend_equation_advanced", glBlendParameteriNV },
-  { "glBlitFramebuffer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glBlitFramebuffer },
-  { "glBlitFramebufferEXT", "GL_EXT_framebuffer_blit", glBlitFramebufferEXT },
-  { "glBlitNamedFramebuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glBlitNamedFramebuffer },
-  { "glBufferAddressRangeNV", "GL_NV_vertex_buffer_unified_memory", glBufferAddressRangeNV },
-  { "glBufferAttachMemoryNV", "GL_NV_memory_attachment", glBufferAttachMemoryNV },
-  { "glBufferData", "GL_VERSION_1_5", glBufferData },
-  { "glBufferDataARB", "GL_ARB_vertex_buffer_object", glBufferDataARB },
-  { "glBufferPageCommitmentARB", "GL_ARB_sparse_buffer", glBufferPageCommitmentARB },
-  { "glBufferParameteriAPPLE", "GL_APPLE_flush_buffer_range", glBufferParameteriAPPLE },
-  { "glBufferRegionEnabled", "GL_KTX_buffer_region", glBufferRegionEnabled },
-  { "glBufferStorage", "GL_ARB_buffer_storage GL_VERSION_4_4", glBufferStorage },
-  { "glBufferStorageExternalEXT", "GL_EXT_external_buffer", glBufferStorageExternalEXT },
-  { "glBufferStorageMemEXT", "GL_EXT_memory_object", glBufferStorageMemEXT },
-  { "glBufferSubData", "GL_VERSION_1_5", glBufferSubData },
-  { "glBufferSubDataARB", "GL_ARB_vertex_buffer_object", glBufferSubDataARB },
-  { "glCallCommandListNV", "GL_NV_command_list", glCallCommandListNV },
-  { "glCheckFramebufferStatus", "GL_ARB_framebuffer_object GL_VERSION_3_0", glCheckFramebufferStatus },
-  { "glCheckFramebufferStatusEXT", "GL_EXT_framebuffer_object", glCheckFramebufferStatusEXT },
-  { "glCheckNamedFramebufferStatus", "GL_ARB_direct_state_access GL_VERSION_4_5", glCheckNamedFramebufferStatus },
-  { "glCheckNamedFramebufferStatusEXT", "GL_EXT_direct_state_access", glCheckNamedFramebufferStatusEXT },
-  { "glClampColor", "GL_VERSION_3_0", glClampColor },
-  { "glClampColorARB", "GL_ARB_color_buffer_float", glClampColorARB },
-  { "glClearAccumxOES", "GL_OES_fixed_point", glClearAccumxOES },
-  { "glClearBufferData", "GL_ARB_clear_buffer_object GL_VERSION_4_3", glClearBufferData },
-  { "glClearBufferSubData", "GL_ARB_clear_buffer_object GL_VERSION_4_3", glClearBufferSubData },
-  { "glClearBufferfi", "GL_VERSION_3_0", glClearBufferfi },
-  { "glClearBufferfv", "GL_VERSION_3_0", glClearBufferfv },
-  { "glClearBufferiv", "GL_VERSION_3_0", glClearBufferiv },
-  { "glClearBufferuiv", "GL_VERSION_3_0", glClearBufferuiv },
-  { "glClearColorIiEXT", "GL_EXT_texture_integer", glClearColorIiEXT },
-  { "glClearColorIuiEXT", "GL_EXT_texture_integer", glClearColorIuiEXT },
-  { "glClearColorxOES", "GL_OES_fixed_point", glClearColorxOES },
-  { "glClearDepthdNV", "GL_NV_depth_buffer_float", glClearDepthdNV },
-  { "glClearDepthf", "GL_ARB_ES2_compatibility GL_VERSION_4_1", glClearDepthf },
-  { "glClearDepthfOES", "GL_OES_single_precision", glClearDepthfOES },
-  { "glClearDepthxOES", "GL_OES_fixed_point", glClearDepthxOES },
-  { "glClearNamedBufferData", "GL_ARB_direct_state_access GL_VERSION_4_5", glClearNamedBufferData },
-  { "glClearNamedBufferDataEXT", "GL_EXT_direct_state_access", glClearNamedBufferDataEXT },
-  { "glClearNamedBufferSubData", "GL_ARB_direct_state_access GL_VERSION_4_5", glClearNamedBufferSubData },
-  { "glClearNamedBufferSubDataEXT", "GL_EXT_direct_state_access", glClearNamedBufferSubDataEXT },
-  { "glClearNamedFramebufferfi", "GL_ARB_direct_state_access GL_VERSION_4_5", glClearNamedFramebufferfi },
-  { "glClearNamedFramebufferfv", "GL_ARB_direct_state_access GL_VERSION_4_5", glClearNamedFramebufferfv },
-  { "glClearNamedFramebufferiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glClearNamedFramebufferiv },
-  { "glClearNamedFramebufferuiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glClearNamedFramebufferuiv },
-  { "glClearTexImage", "GL_ARB_clear_texture GL_VERSION_4_4", glClearTexImage },
-  { "glClearTexSubImage", "GL_ARB_clear_texture GL_VERSION_4_4", glClearTexSubImage },
-  { "glClientActiveTexture", "GL_VERSION_1_3", glClientActiveTexture },
-  { "glClientActiveTextureARB", "GL_ARB_multitexture", glClientActiveTextureARB },
-  { "glClientActiveVertexStreamATI", "GL_ATI_vertex_streams", glClientActiveVertexStreamATI },
-  { "glClientAttribDefaultEXT", "GL_EXT_direct_state_access", glClientAttribDefaultEXT },
-  { "glClientWaitSemaphoreui64NVX", "GL_NVX_progress_fence", glClientWaitSemaphoreui64NVX },
-  { "glClientWaitSync", "GL_ARB_sync GL_VERSION_3_2", glClientWaitSync },
-  { "glClipControl", "GL_ARB_clip_control GL_VERSION_4_5", glClipControl },
-  { "glClipPlanefOES", "GL_OES_single_precision", glClipPlanefOES },
-  { "glClipPlanexOES", "GL_OES_fixed_point", glClipPlanexOES },
-  { "glColor3fVertex3fSUN", "GL_SUN_vertex", glColor3fVertex3fSUN },
-  { "glColor3fVertex3fvSUN", "GL_SUN_vertex", glColor3fVertex3fvSUN },
-  { "glColor3hNV", "GL_NV_half_float", glColor3hNV },
-  { "glColor3hvNV", "GL_NV_half_float", glColor3hvNV },
-  { "glColor3xOES", "GL_OES_fixed_point", glColor3xOES },
-  { "glColor3xvOES", "GL_OES_fixed_point", glColor3xvOES },
-  { "glColor4fNormal3fVertex3fSUN", "GL_SUN_vertex", glColor4fNormal3fVertex3fSUN },
-  { "glColor4fNormal3fVertex3fvSUN", "GL_SUN_vertex", glColor4fNormal3fVertex3fvSUN },
-  { "glColor4hNV", "GL_NV_half_float", glColor4hNV },
-  { "glColor4hvNV", "GL_NV_half_float", glColor4hvNV },
-  { "glColor4ubVertex2fSUN", "GL_SUN_vertex", glColor4ubVertex2fSUN },
-  { "glColor4ubVertex2fvSUN", "GL_SUN_vertex", glColor4ubVertex2fvSUN },
-  { "glColor4ubVertex3fSUN", "GL_SUN_vertex", glColor4ubVertex3fSUN },
-  { "glColor4ubVertex3fvSUN", "GL_SUN_vertex", glColor4ubVertex3fvSUN },
-  { "glColor4xOES", "GL_OES_fixed_point", glColor4xOES },
-  { "glColor4xvOES", "GL_OES_fixed_point", glColor4xvOES },
-  { "glColorFormatNV", "GL_NV_vertex_buffer_unified_memory", glColorFormatNV },
-  { "glColorFragmentOp1ATI", "GL_ATI_fragment_shader", glColorFragmentOp1ATI },
-  { "glColorFragmentOp2ATI", "GL_ATI_fragment_shader", glColorFragmentOp2ATI },
-  { "glColorFragmentOp3ATI", "GL_ATI_fragment_shader", glColorFragmentOp3ATI },
-  { "glColorMaskIndexedEXT", "GL_EXT_draw_buffers2", glColorMaskIndexedEXT },
-  { "glColorMaski", "GL_VERSION_3_0", glColorMaski },
-  { "glColorP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glColorP3ui },
-  { "glColorP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glColorP3uiv },
-  { "glColorP4ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glColorP4ui },
-  { "glColorP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glColorP4uiv },
-  { "glColorPointerEXT", "GL_EXT_vertex_array", glColorPointerEXT },
-  { "glColorPointerListIBM", "GL_IBM_vertex_array_lists", glColorPointerListIBM },
-  { "glColorPointervINTEL", "GL_INTEL_parallel_arrays", glColorPointervINTEL },
-  { "glColorSubTable", "GL_ARB_imaging", glColorSubTable },
-  { "glColorSubTableEXT", "GL_EXT_color_subtable", glColorSubTableEXT },
-  { "glColorTable", "GL_ARB_imaging", glColorTable },
-  { "glColorTableEXT", "GL_EXT_paletted_texture", glColorTableEXT },
-  { "glColorTableParameterfv", "GL_ARB_imaging", glColorTableParameterfv },
-  { "glColorTableParameterfvSGI", "GL_SGI_color_table", glColorTableParameterfvSGI },
-  { "glColorTableParameteriv", "GL_ARB_imaging", glColorTableParameteriv },
-  { "glColorTableParameterivSGI", "GL_SGI_color_table", glColorTableParameterivSGI },
-  { "glColorTableSGI", "GL_SGI_color_table", glColorTableSGI },
-  { "glCombinerInputNV", "GL_NV_register_combiners", glCombinerInputNV },
-  { "glCombinerOutputNV", "GL_NV_register_combiners", glCombinerOutputNV },
-  { "glCombinerParameterfNV", "GL_NV_register_combiners", glCombinerParameterfNV },
-  { "glCombinerParameterfvNV", "GL_NV_register_combiners", glCombinerParameterfvNV },
-  { "glCombinerParameteriNV", "GL_NV_register_combiners", glCombinerParameteriNV },
-  { "glCombinerParameterivNV", "GL_NV_register_combiners", glCombinerParameterivNV },
-  { "glCombinerStageParameterfvNV", "GL_NV_register_combiners2", glCombinerStageParameterfvNV },
-  { "glCommandListSegmentsNV", "GL_NV_command_list", glCommandListSegmentsNV },
-  { "glCompileCommandListNV", "GL_NV_command_list", glCompileCommandListNV },
-  { "glCompileShader", "GL_VERSION_2_0", glCompileShader },
-  { "glCompileShaderARB", "GL_ARB_shader_objects", glCompileShaderARB },
-  { "glCompileShaderIncludeARB", "GL_ARB_shading_language_include", glCompileShaderIncludeARB },
-  { "glCompressedMultiTexImage1DEXT", "GL_EXT_direct_state_access", glCompressedMultiTexImage1DEXT },
-  { "glCompressedMultiTexImage2DEXT", "GL_EXT_direct_state_access", glCompressedMultiTexImage2DEXT },
-  { "glCompressedMultiTexImage3DEXT", "GL_EXT_direct_state_access", glCompressedMultiTexImage3DEXT },
-  { "glCompressedMultiTexSubImage1DEXT", "GL_EXT_direct_state_access", glCompressedMultiTexSubImage1DEXT },
-  { "glCompressedMultiTexSubImage2DEXT", "GL_EXT_direct_state_access", glCompressedMultiTexSubImage2DEXT },
-  { "glCompressedMultiTexSubImage3DEXT", "GL_EXT_direct_state_access", glCompressedMultiTexSubImage3DEXT },
-  { "glCompressedTexImage1D", "GL_VERSION_1_3", glCompressedTexImage1D },
-  { "glCompressedTexImage1DARB", "GL_ARB_texture_compression", glCompressedTexImage1DARB },
-  { "glCompressedTexImage2D", "GL_VERSION_1_3", glCompressedTexImage2D },
-  { "glCompressedTexImage2DARB", "GL_ARB_texture_compression", glCompressedTexImage2DARB },
-  { "glCompressedTexImage3D", "GL_VERSION_1_3", glCompressedTexImage3D },
-  { "glCompressedTexImage3DARB", "GL_ARB_texture_compression", glCompressedTexImage3DARB },
-  { "glCompressedTexSubImage1D", "GL_VERSION_1_3", glCompressedTexSubImage1D },
-  { "glCompressedTexSubImage1DARB", "GL_ARB_texture_compression", glCompressedTexSubImage1DARB },
-  { "glCompressedTexSubImage2D", "GL_VERSION_1_3", glCompressedTexSubImage2D },
-  { "glCompressedTexSubImage2DARB", "GL_ARB_texture_compression", glCompressedTexSubImage2DARB },
-  { "glCompressedTexSubImage3D", "GL_VERSION_1_3", glCompressedTexSubImage3D },
-  { "glCompressedTexSubImage3DARB", "GL_ARB_texture_compression", glCompressedTexSubImage3DARB },
-  { "glCompressedTextureImage1DEXT", "GL_EXT_direct_state_access", glCompressedTextureImage1DEXT },
-  { "glCompressedTextureImage2DEXT", "GL_EXT_direct_state_access", glCompressedTextureImage2DEXT },
-  { "glCompressedTextureImage3DEXT", "GL_EXT_direct_state_access", glCompressedTextureImage3DEXT },
-  { "glCompressedTextureSubImage1D", "GL_ARB_direct_state_access GL_VERSION_4_5", glCompressedTextureSubImage1D },
-  { "glCompressedTextureSubImage1DEXT", "GL_EXT_direct_state_access", glCompressedTextureSubImage1DEXT },
-  { "glCompressedTextureSubImage2D", "GL_ARB_direct_state_access GL_VERSION_4_5", glCompressedTextureSubImage2D },
-  { "glCompressedTextureSubImage2DEXT", "GL_EXT_direct_state_access", glCompressedTextureSubImage2DEXT },
-  { "glCompressedTextureSubImage3D", "GL_ARB_direct_state_access GL_VERSION_4_5", glCompressedTextureSubImage3D },
-  { "glCompressedTextureSubImage3DEXT", "GL_EXT_direct_state_access", glCompressedTextureSubImage3DEXT },
-  { "glConservativeRasterParameterfNV", "GL_NV_conservative_raster_dilate", glConservativeRasterParameterfNV },
-  { "glConservativeRasterParameteriNV", "GL_NV_conservative_raster_pre_snap_triangles", glConservativeRasterParameteriNV },
-  { "glConvolutionFilter1D", "GL_ARB_imaging", glConvolutionFilter1D },
-  { "glConvolutionFilter1DEXT", "GL_EXT_convolution", glConvolutionFilter1DEXT },
-  { "glConvolutionFilter2D", "GL_ARB_imaging", glConvolutionFilter2D },
-  { "glConvolutionFilter2DEXT", "GL_EXT_convolution", glConvolutionFilter2DEXT },
-  { "glConvolutionParameterf", "GL_ARB_imaging", glConvolutionParameterf },
-  { "glConvolutionParameterfEXT", "GL_EXT_convolution", glConvolutionParameterfEXT },
-  { "glConvolutionParameterfv", "GL_ARB_imaging", glConvolutionParameterfv },
-  { "glConvolutionParameterfvEXT", "GL_EXT_convolution", glConvolutionParameterfvEXT },
-  { "glConvolutionParameteri", "GL_ARB_imaging", glConvolutionParameteri },
-  { "glConvolutionParameteriEXT", "GL_EXT_convolution", glConvolutionParameteriEXT },
-  { "glConvolutionParameteriv", "GL_ARB_imaging", glConvolutionParameteriv },
-  { "glConvolutionParameterivEXT", "GL_EXT_convolution", glConvolutionParameterivEXT },
-  { "glConvolutionParameterxOES", "GL_OES_fixed_point", glConvolutionParameterxOES },
-  { "glConvolutionParameterxvOES", "GL_OES_fixed_point", glConvolutionParameterxvOES },
-  { "glCopyBufferSubData", "GL_ARB_copy_buffer GL_VERSION_3_1", glCopyBufferSubData },
-  { "glCopyColorSubTable", "GL_ARB_imaging", glCopyColorSubTable },
-  { "glCopyColorSubTableEXT", "GL_EXT_color_subtable", glCopyColorSubTableEXT },
-  { "glCopyColorTable", "GL_ARB_imaging", glCopyColorTable },
-  { "glCopyColorTableSGI", "GL_SGI_color_table", glCopyColorTableSGI },
-  { "glCopyConvolutionFilter1D", "GL_ARB_imaging", glCopyConvolutionFilter1D },
-  { "glCopyConvolutionFilter1DEXT", "GL_EXT_convolution", glCopyConvolutionFilter1DEXT },
-  { "glCopyConvolutionFilter2D", "GL_ARB_imaging", glCopyConvolutionFilter2D },
-  { "glCopyConvolutionFilter2DEXT", "GL_EXT_convolution", glCopyConvolutionFilter2DEXT },
-  { "glCopyImageSubData", "GL_ARB_copy_image GL_VERSION_4_3", glCopyImageSubData },
-  { "glCopyImageSubDataNV", "GL_NV_copy_image", glCopyImageSubDataNV },
-  { "glCopyMultiTexImage1DEXT", "GL_EXT_direct_state_access", glCopyMultiTexImage1DEXT },
-  { "glCopyMultiTexImage2DEXT", "GL_EXT_direct_state_access", glCopyMultiTexImage2DEXT },
-  { "glCopyMultiTexSubImage1DEXT", "GL_EXT_direct_state_access", glCopyMultiTexSubImage1DEXT },
-  { "glCopyMultiTexSubImage2DEXT", "GL_EXT_direct_state_access", glCopyMultiTexSubImage2DEXT },
-  { "glCopyMultiTexSubImage3DEXT", "GL_EXT_direct_state_access", glCopyMultiTexSubImage3DEXT },
-  { "glCopyNamedBufferSubData", "GL_ARB_direct_state_access GL_VERSION_4_5", glCopyNamedBufferSubData },
-  { "glCopyPathNV", "GL_NV_path_rendering", glCopyPathNV },
-  { "glCopyTexImage1DEXT", "GL_EXT_copy_texture", glCopyTexImage1DEXT },
-  { "glCopyTexImage2DEXT", "GL_EXT_copy_texture", glCopyTexImage2DEXT },
-  { "glCopyTexSubImage1DEXT", "GL_EXT_copy_texture", glCopyTexSubImage1DEXT },
-  { "glCopyTexSubImage2DEXT", "GL_EXT_copy_texture", glCopyTexSubImage2DEXT },
-  { "glCopyTexSubImage3D", "GL_VERSION_1_2", glCopyTexSubImage3D },
-  { "glCopyTexSubImage3DEXT", "GL_EXT_copy_texture", glCopyTexSubImage3DEXT },
-  { "glCopyTextureImage1DEXT", "GL_EXT_direct_state_access", glCopyTextureImage1DEXT },
-  { "glCopyTextureImage2DEXT", "GL_EXT_direct_state_access", glCopyTextureImage2DEXT },
-  { "glCopyTextureSubImage1D", "GL_ARB_direct_state_access GL_VERSION_4_5", glCopyTextureSubImage1D },
-  { "glCopyTextureSubImage1DEXT", "GL_EXT_direct_state_access", glCopyTextureSubImage1DEXT },
-  { "glCopyTextureSubImage2D", "GL_ARB_direct_state_access GL_VERSION_4_5", glCopyTextureSubImage2D },
-  { "glCopyTextureSubImage2DEXT", "GL_EXT_direct_state_access", glCopyTextureSubImage2DEXT },
-  { "glCopyTextureSubImage3D", "GL_ARB_direct_state_access GL_VERSION_4_5", glCopyTextureSubImage3D },
-  { "glCopyTextureSubImage3DEXT", "GL_EXT_direct_state_access", glCopyTextureSubImage3DEXT },
-  { "glCoverFillPathInstancedNV", "GL_NV_path_rendering", glCoverFillPathInstancedNV },
-  { "glCoverFillPathNV", "GL_NV_path_rendering", glCoverFillPathNV },
-  { "glCoverStrokePathInstancedNV", "GL_NV_path_rendering", glCoverStrokePathInstancedNV },
-  { "glCoverStrokePathNV", "GL_NV_path_rendering", glCoverStrokePathNV },
-  { "glCoverageModulationNV", "GL_NV_framebuffer_mixed_samples", glCoverageModulationNV },
-  { "glCoverageModulationTableNV", "GL_NV_framebuffer_mixed_samples", glCoverageModulationTableNV },
-  { "glCreateBuffers", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateBuffers },
-  { "glCreateCommandListsNV", "GL_NV_command_list", glCreateCommandListsNV },
-  { "glCreateFramebuffers", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateFramebuffers },
-  { "glCreateMemoryObjectsEXT", "GL_EXT_memory_object", glCreateMemoryObjectsEXT },
-  { "glCreatePerfQueryINTEL", "GL_INTEL_performance_query", glCreatePerfQueryINTEL },
-  { "glCreateProgram", "GL_VERSION_2_0", glCreateProgram },
-  { "glCreateProgramObjectARB", "GL_ARB_shader_objects", glCreateProgramObjectARB },
-  { "glCreateProgramPipelines", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateProgramPipelines },
-  { "glCreateProgressFenceNVX", "GL_NVX_progress_fence", glCreateProgressFenceNVX },
-  { "glCreateQueries", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateQueries },
-  { "glCreateRenderbuffers", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateRenderbuffers },
-  { "glCreateSamplers", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateSamplers },
-  { "glCreateShader", "GL_VERSION_2_0", glCreateShader },
-  { "glCreateShaderObjectARB", "GL_ARB_shader_objects", glCreateShaderObjectARB },
-  { "glCreateShaderProgramEXT", "GL_EXT_separate_shader_objects", glCreateShaderProgramEXT },
-  { "glCreateShaderProgramv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glCreateShaderProgramv },
-  { "glCreateStatesNV", "GL_NV_command_list", glCreateStatesNV },
-  { "glCreateSyncFromCLeventARB", "GL_ARB_cl_event", glCreateSyncFromCLeventARB },
-  { "glCreateTextures", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateTextures },
-  { "glCreateTransformFeedbacks", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateTransformFeedbacks },
-  { "glCreateVertexArrays", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateVertexArrays },
-  { "glCullParameterdvEXT", "GL_EXT_cull_vertex", glCullParameterdvEXT },
-  { "glCullParameterfvEXT", "GL_EXT_cull_vertex", glCullParameterfvEXT },
-  { "glCurrentPaletteMatrixARB", "GL_ARB_matrix_palette", glCurrentPaletteMatrixARB },
-  { "glDebugMessageCallback", "GL_KHR_debug GL_VERSION_4_3", glDebugMessageCallback },
-  { "glDebugMessageCallbackAMD", "GL_AMD_debug_output", glDebugMessageCallbackAMD },
-  { "glDebugMessageCallbackARB", "GL_ARB_debug_output", glDebugMessageCallbackARB },
-  { "glDebugMessageControl", "GL_KHR_debug GL_VERSION_4_3", glDebugMessageControl },
-  { "glDebugMessageControlARB", "GL_ARB_debug_output", glDebugMessageControlARB },
-  { "glDebugMessageEnableAMD", "GL_AMD_debug_output", glDebugMessageEnableAMD },
-  { "glDebugMessageInsert", "GL_KHR_debug GL_VERSION_4_3", glDebugMessageInsert },
-  { "glDebugMessageInsertAMD", "GL_AMD_debug_output", glDebugMessageInsertAMD },
-  { "glDebugMessageInsertARB", "GL_ARB_debug_output", glDebugMessageInsertARB },
-  { "glDeformSGIX", "GL_SGIX_polynomial_ffd", glDeformSGIX },
-  { "glDeformationMap3dSGIX", "GL_SGIX_polynomial_ffd", glDeformationMap3dSGIX },
-  { "glDeformationMap3fSGIX", "GL_SGIX_polynomial_ffd", glDeformationMap3fSGIX },
-  { "glDeleteAsyncMarkersSGIX", "GL_SGIX_async", glDeleteAsyncMarkersSGIX },
-  { "glDeleteBufferRegion", "GL_KTX_buffer_region", glDeleteBufferRegion },
-  { "glDeleteBuffers", "GL_VERSION_1_5", glDeleteBuffers },
-  { "glDeleteBuffersARB", "GL_ARB_vertex_buffer_object", glDeleteBuffersARB },
-  { "glDeleteCommandListsNV", "GL_NV_command_list", glDeleteCommandListsNV },
-  { "glDeleteFencesAPPLE", "GL_APPLE_fence", glDeleteFencesAPPLE },
-  { "glDeleteFencesNV", "GL_NV_fence", glDeleteFencesNV },
-  { "glDeleteFragmentShaderATI", "GL_ATI_fragment_shader", glDeleteFragmentShaderATI },
-  { "glDeleteFramebuffers", "GL_ARB_framebuffer_object GL_VERSION_3_0", glDeleteFramebuffers },
-  { "glDeleteFramebuffersEXT", "GL_EXT_framebuffer_object", glDeleteFramebuffersEXT },
-  { "glDeleteMemoryObjectsEXT", "GL_EXT_memory_object", glDeleteMemoryObjectsEXT },
-  { "glDeleteNamedStringARB", "GL_ARB_shading_language_include", glDeleteNamedStringARB },
-  { "glDeleteNamesAMD", "GL_AMD_name_gen_delete", glDeleteNamesAMD },
-  { "glDeleteObjectARB", "GL_ARB_shader_objects", glDeleteObjectARB },
-  { "glDeleteObjectBufferATI", "GL_ATI_vertex_array_object", glDeleteObjectBufferATI },
-  { "glDeleteOcclusionQueriesNV", "GL_NV_occlusion_query", glDeleteOcclusionQueriesNV },
-  { "glDeletePathsNV", "GL_NV_path_rendering", glDeletePathsNV },
-  { "glDeletePerfMonitorsAMD", "GL_AMD_performance_monitor", glDeletePerfMonitorsAMD },
-  { "glDeletePerfQueryINTEL", "GL_INTEL_performance_query", glDeletePerfQueryINTEL },
-  { "glDeleteProgram", "GL_VERSION_2_0", glDeleteProgram },
-  { "glDeleteProgramPipelines", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glDeleteProgramPipelines },
-  { "glDeleteProgramsARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glDeleteProgramsARB },
-  { "glDeleteProgramsNV", "GL_NV_vertex_program", glDeleteProgramsNV },
-  { "glDeleteQueries", "GL_VERSION_1_5", glDeleteQueries },
-  { "glDeleteQueriesARB", "GL_ARB_occlusion_query", glDeleteQueriesARB },
-  { "glDeleteQueryResourceTagNV", "GL_NV_query_resource_tag", glDeleteQueryResourceTagNV },
-  { "glDeleteRenderbuffers", "GL_ARB_framebuffer_object GL_VERSION_3_0", glDeleteRenderbuffers },
-  { "glDeleteRenderbuffersEXT", "GL_EXT_framebuffer_object", glDeleteRenderbuffersEXT },
-  { "glDeleteSamplers", "GL_ARB_sampler_objects GL_VERSION_3_3", glDeleteSamplers },
-  { "glDeleteSemaphoresEXT", "GL_EXT_semaphore", glDeleteSemaphoresEXT },
-  { "glDeleteShader", "GL_VERSION_2_0", glDeleteShader },
-  { "glDeleteStatesNV", "GL_NV_command_list", glDeleteStatesNV },
-  { "glDeleteSync", "GL_ARB_sync GL_VERSION_3_2", glDeleteSync },
-  { "glDeleteTexturesEXT", "GL_EXT_texture_object", glDeleteTexturesEXT },
-  { "glDeleteTransformFeedbacks", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glDeleteTransformFeedbacks },
-  { "glDeleteTransformFeedbacksNV", "GL_NV_transform_feedback2", glDeleteTransformFeedbacksNV },
-  { "glDeleteVertexArrays", "GL_ARB_vertex_array_object GL_VERSION_3_0", glDeleteVertexArrays },
-  { "glDeleteVertexArraysAPPLE", "GL_APPLE_vertex_array_object", glDeleteVertexArraysAPPLE },
-  { "glDeleteVertexShaderEXT", "GL_EXT_vertex_shader", glDeleteVertexShaderEXT },
-  { "glDepthBoundsEXT", "GL_EXT_depth_bounds_test", glDepthBoundsEXT },
-  { "glDepthBoundsdNV", "GL_NV_depth_buffer_float", glDepthBoundsdNV },
-  { "glDepthRangeArraydvNV", "GL_ARB_viewport_array", glDepthRangeArraydvNV },
-  { "glDepthRangeArrayv", "GL_ARB_viewport_array GL_VERSION_4_1", glDepthRangeArrayv },
-  { "glDepthRangeIndexed", "GL_ARB_viewport_array GL_VERSION_4_1", glDepthRangeIndexed },
-  { "glDepthRangeIndexeddNV", "GL_ARB_viewport_array", glDepthRangeIndexeddNV },
-  { "glDepthRangedNV", "GL_NV_depth_buffer_float", glDepthRangedNV },
-  { "glDepthRangef", "GL_ARB_ES2_compatibility GL_VERSION_4_1", glDepthRangef },
-  { "glDepthRangefOES", "GL_OES_single_precision", glDepthRangefOES },
-  { "glDepthRangexOES", "GL_OES_fixed_point", glDepthRangexOES },
-  { "glDetachObjectARB", "GL_ARB_shader_objects", glDetachObjectARB },
-  { "glDetachShader", "GL_VERSION_2_0", glDetachShader },
-  { "glDetailTexFuncSGIS", "GL_SGIS_detail_texture", glDetailTexFuncSGIS },
-  { "glDisableClientStateIndexedEXT", "GL_EXT_direct_state_access", glDisableClientStateIndexedEXT },
-  { "glDisableClientStateiEXT", "GL_EXT_direct_state_access", glDisableClientStateiEXT },
-  { "glDisableIndexedEXT", "GL_EXT_direct_state_access GL_EXT_draw_buffers2", glDisableIndexedEXT },
-  { "glDisableVariantClientStateEXT", "GL_EXT_vertex_shader", glDisableVariantClientStateEXT },
-  { "glDisableVertexArrayAttrib", "GL_ARB_direct_state_access GL_VERSION_4_5", glDisableVertexArrayAttrib },
-  { "glDisableVertexArrayAttribEXT", "GL_EXT_direct_state_access", glDisableVertexArrayAttribEXT },
-  { "glDisableVertexArrayEXT", "GL_EXT_direct_state_access", glDisableVertexArrayEXT },
-  { "glDisableVertexAttribAPPLE", "GL_APPLE_vertex_program_evaluators", glDisableVertexAttribAPPLE },
-  { "glDisableVertexAttribArray", "GL_VERSION_2_0", glDisableVertexAttribArray },
-  { "glDisableVertexAttribArrayARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glDisableVertexAttribArrayARB },
-  { "glDisablei", "GL_VERSION_3_0", glDisablei },
-  { "glDispatchCompute", "GL_ARB_compute_shader GL_VERSION_4_3", glDispatchCompute },
-  { "glDispatchComputeGroupSizeARB", "GL_ARB_compute_variable_group_size", glDispatchComputeGroupSizeARB },
-  { "glDispatchComputeIndirect", "GL_ARB_compute_shader GL_VERSION_4_3", glDispatchComputeIndirect },
-  { "glDrawArraysEXT", "GL_EXT_vertex_array", glDrawArraysEXT },
-  { "glDrawArraysIndirect", "GL_ARB_draw_indirect GL_VERSION_4_0", glDrawArraysIndirect },
-  { "glDrawArraysInstanced", "GL_VERSION_3_1", glDrawArraysInstanced },
-  { "glDrawArraysInstancedARB", "GL_ARB_draw_instanced", glDrawArraysInstancedARB },
-  { "glDrawArraysInstancedBaseInstance", "GL_ARB_base_instance GL_VERSION_4_2", glDrawArraysInstancedBaseInstance },
-  { "glDrawArraysInstancedEXT", "GL_EXT_draw_instanced", glDrawArraysInstancedEXT },
-  { "glDrawBufferRegion", "GL_KTX_buffer_region", glDrawBufferRegion },
-  { "glDrawBuffers", "GL_VERSION_2_0", glDrawBuffers },
-  { "glDrawBuffersARB", "GL_ARB_draw_buffers", glDrawBuffersARB },
-  { "glDrawBuffersATI", "GL_ATI_draw_buffers", glDrawBuffersATI },
-  { "glDrawCommandsAddressNV", "GL_NV_command_list", glDrawCommandsAddressNV },
-  { "glDrawCommandsNV", "GL_NV_command_list", glDrawCommandsNV },
-  { "glDrawCommandsStatesAddressNV", "GL_NV_command_list", glDrawCommandsStatesAddressNV },
-  { "glDrawCommandsStatesNV", "GL_NV_command_list", glDrawCommandsStatesNV },
-  { "glDrawElementArrayAPPLE", "GL_APPLE_element_array", glDrawElementArrayAPPLE },
-  { "glDrawElementArrayATI", "GL_ATI_element_array", glDrawElementArrayATI },
-  { "glDrawElementsBaseVertex", "GL_ARB_draw_elements_base_vertex GL_VERSION_3_2", glDrawElementsBaseVertex },
-  { "glDrawElementsIndirect", "GL_ARB_draw_indirect GL_VERSION_4_0", glDrawElementsIndirect },
-  { "glDrawElementsInstanced", "GL_VERSION_3_1", glDrawElementsInstanced },
-  { "glDrawElementsInstancedARB", "GL_ARB_draw_instanced", glDrawElementsInstancedARB },
-  { "glDrawElementsInstancedBaseInstance", "GL_ARB_base_instance GL_VERSION_4_2", glDrawElementsInstancedBaseInstance },
-  { "glDrawElementsInstancedBaseVertex", "GL_ARB_draw_elements_base_vertex GL_VERSION_3_2", glDrawElementsInstancedBaseVertex },
-  { "glDrawElementsInstancedBaseVertexBaseInstance", "GL_ARB_base_instance GL_VERSION_4_2", glDrawElementsInstancedBaseVertexBaseInstance },
-  { "glDrawElementsInstancedEXT", "GL_EXT_draw_instanced", glDrawElementsInstancedEXT },
-  { "glDrawMeshArraysSUN", "GL_SUN_mesh_array", glDrawMeshArraysSUN },
-  { "glDrawMeshTasksIndirectNV", "GL_NV_mesh_shader", glDrawMeshTasksIndirectNV },
-  { "glDrawMeshTasksNV", "GL_NV_mesh_shader", glDrawMeshTasksNV },
-  { "glDrawRangeElementArrayAPPLE", "GL_APPLE_element_array", glDrawRangeElementArrayAPPLE },
-  { "glDrawRangeElementArrayATI", "GL_ATI_element_array", glDrawRangeElementArrayATI },
-  { "glDrawRangeElements", "GL_VERSION_1_2", glDrawRangeElements },
-  { "glDrawRangeElementsBaseVertex", "GL_ARB_draw_elements_base_vertex GL_VERSION_3_2", glDrawRangeElementsBaseVertex },
-  { "glDrawRangeElementsEXT", "GL_EXT_draw_range_elements", glDrawRangeElementsEXT },
-  { "glDrawTextureNV", "GL_NV_draw_texture", glDrawTextureNV },
-  { "glDrawTransformFeedback", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glDrawTransformFeedback },
-  { "glDrawTransformFeedbackInstanced", "GL_ARB_transform_feedback_instanced GL_VERSION_4_2", glDrawTransformFeedbackInstanced },
-  { "glDrawTransformFeedbackNV", "GL_NV_transform_feedback2", glDrawTransformFeedbackNV },
-  { "glDrawTransformFeedbackStream", "GL_ARB_transform_feedback3 GL_VERSION_4_0", glDrawTransformFeedbackStream },
-  { "glDrawTransformFeedbackStreamInstanced", "GL_ARB_transform_feedback_instanced GL_VERSION_4_2", glDrawTransformFeedbackStreamInstanced },
-  { "glDrawVkImageNV", "GL_NV_draw_vulkan_image", glDrawVkImageNV },
-  { "glEGLImageTargetTexStorageEXT", "GL_EXT_EGL_image_storage", glEGLImageTargetTexStorageEXT },
-  { "glEGLImageTargetTextureStorageEXT", "GL_EXT_EGL_image_storage", glEGLImageTargetTextureStorageEXT },
-  { "glEdgeFlagFormatNV", "GL_NV_vertex_buffer_unified_memory", glEdgeFlagFormatNV },
-  { "glEdgeFlagPointerEXT", "GL_EXT_vertex_array", glEdgeFlagPointerEXT },
-  { "glEdgeFlagPointerListIBM", "GL_IBM_vertex_array_lists", glEdgeFlagPointerListIBM },
-  { "glElementPointerAPPLE", "GL_APPLE_element_array", glElementPointerAPPLE },
-  { "glElementPointerATI", "GL_ATI_element_array", glElementPointerATI },
-  { "glEnableClientStateIndexedEXT", "GL_EXT_direct_state_access", glEnableClientStateIndexedEXT },
-  { "glEnableClientStateiEXT", "GL_EXT_direct_state_access", glEnableClientStateiEXT },
-  { "glEnableIndexedEXT", "GL_EXT_direct_state_access GL_EXT_draw_buffers2", glEnableIndexedEXT },
-  { "glEnableVariantClientStateEXT", "GL_EXT_vertex_shader", glEnableVariantClientStateEXT },
-  { "glEnableVertexArrayAttrib", "GL_ARB_direct_state_access GL_VERSION_4_5", glEnableVertexArrayAttrib },
-  { "glEnableVertexArrayAttribEXT", "GL_EXT_direct_state_access", glEnableVertexArrayAttribEXT },
-  { "glEnableVertexArrayEXT", "GL_EXT_direct_state_access", glEnableVertexArrayEXT },
-  { "glEnableVertexAttribAPPLE", "GL_APPLE_vertex_program_evaluators", glEnableVertexAttribAPPLE },
-  { "glEnableVertexAttribArray", "GL_VERSION_2_0", glEnableVertexAttribArray },
-  { "glEnableVertexAttribArrayARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glEnableVertexAttribArrayARB },
-  { "glEnablei", "GL_VERSION_3_0", glEnablei },
-  { "glEndConditionalRender", "GL_VERSION_3_0", glEndConditionalRender },
-  { "glEndConditionalRenderNV", "GL_NV_conditional_render", glEndConditionalRenderNV },
-  { "glEndConditionalRenderNVX", "GL_NVX_conditional_render", glEndConditionalRenderNVX },
-  { "glEndFragmentShaderATI", "GL_ATI_fragment_shader", glEndFragmentShaderATI },
-  { "glEndOcclusionQueryNV", "GL_NV_occlusion_query", glEndOcclusionQueryNV },
-  { "glEndPerfMonitorAMD", "GL_AMD_performance_monitor", glEndPerfMonitorAMD },
-  { "glEndPerfQueryINTEL", "GL_INTEL_performance_query", glEndPerfQueryINTEL },
-  { "glEndQuery", "GL_VERSION_1_5", glEndQuery },
-  { "glEndQueryARB", "GL_ARB_occlusion_query", glEndQueryARB },
-  { "glEndQueryIndexed", "GL_ARB_transform_feedback3 GL_VERSION_4_0", glEndQueryIndexed },
-  { "glEndTransformFeedback", "GL_VERSION_3_0", glEndTransformFeedback },
-  { "glEndTransformFeedbackEXT", "GL_EXT_transform_feedback", glEndTransformFeedbackEXT },
-  { "glEndTransformFeedbackNV", "GL_NV_transform_feedback", glEndTransformFeedbackNV },
-  { "glEndVertexShaderEXT", "GL_EXT_vertex_shader", glEndVertexShaderEXT },
-  { "glEndVideoCaptureNV", "GL_NV_video_capture", glEndVideoCaptureNV },
-  { "glEvalCoord1xOES", "GL_OES_fixed_point", glEvalCoord1xOES },
-  { "glEvalCoord1xvOES", "GL_OES_fixed_point", glEvalCoord1xvOES },
-  { "glEvalCoord2xOES", "GL_OES_fixed_point", glEvalCoord2xOES },
-  { "glEvalCoord2xvOES", "GL_OES_fixed_point", glEvalCoord2xvOES },
-  { "glEvalMapsNV", "GL_NV_evaluators", glEvalMapsNV },
-  { "glEvaluateDepthValuesARB", "GL_ARB_sample_locations", glEvaluateDepthValuesARB },
-  { "glExecuteProgramNV", "GL_NV_vertex_program", glExecuteProgramNV },
-  { "glExtractComponentEXT", "GL_EXT_vertex_shader", glExtractComponentEXT },
-  { "glFeedbackBufferxOES", "GL_OES_fixed_point", glFeedbackBufferxOES },
-  { "glFenceSync", "GL_ARB_sync GL_VERSION_3_2", glFenceSync },
-  { "glFinalCombinerInputNV", "GL_NV_register_combiners", glFinalCombinerInputNV },
-  { "glFinishAsyncSGIX", "GL_SGIX_async", glFinishAsyncSGIX },
-  { "glFinishFenceAPPLE", "GL_APPLE_fence", glFinishFenceAPPLE },
-  { "glFinishFenceNV", "GL_NV_fence", glFinishFenceNV },
-  { "glFinishObjectAPPLE", "GL_APPLE_fence", glFinishObjectAPPLE },
-  { "glFinishTextureSUNX", "GL_SUNX_constant_data", glFinishTextureSUNX },
-  { "glFlushMappedBufferRange", "GL_ARB_map_buffer_range GL_VERSION_3_0", glFlushMappedBufferRange },
-  { "glFlushMappedBufferRangeAPPLE", "GL_APPLE_flush_buffer_range", glFlushMappedBufferRangeAPPLE },
-  { "glFlushMappedNamedBufferRange", "GL_ARB_direct_state_access GL_VERSION_4_5", glFlushMappedNamedBufferRange },
-  { "glFlushMappedNamedBufferRangeEXT", "GL_EXT_direct_state_access", glFlushMappedNamedBufferRangeEXT },
-  { "glFlushPixelDataRangeNV", "GL_NV_pixel_data_range", glFlushPixelDataRangeNV },
-  { "glFlushRasterSGIX", "GL_SGIX_flush_raster", glFlushRasterSGIX },
-  { "glFlushStaticDataIBM", "GL_IBM_static_data", glFlushStaticDataIBM },
-  { "glFlushVertexArrayRangeAPPLE", "GL_APPLE_vertex_array_range", glFlushVertexArrayRangeAPPLE },
-  { "glFlushVertexArrayRangeNV", "GL_NV_vertex_array_range", glFlushVertexArrayRangeNV },
-  { "glFogCoordFormatNV", "GL_NV_vertex_buffer_unified_memory", glFogCoordFormatNV },
-  { "glFogCoordPointer", "GL_VERSION_1_4", glFogCoordPointer },
-  { "glFogCoordPointerEXT", "GL_EXT_fog_coord", glFogCoordPointerEXT },
-  { "glFogCoordPointerListIBM", "GL_IBM_vertex_array_lists", glFogCoordPointerListIBM },
-  { "glFogCoordd", "GL_VERSION_1_4", glFogCoordd },
-  { "glFogCoorddEXT", "GL_EXT_fog_coord", glFogCoorddEXT },
-  { "glFogCoorddv", "GL_VERSION_1_4", glFogCoorddv },
-  { "glFogCoorddvEXT", "GL_EXT_fog_coord", glFogCoorddvEXT },
-  { "glFogCoordf", "GL_VERSION_1_4", glFogCoordf },
-  { "glFogCoordfEXT", "GL_EXT_fog_coord", glFogCoordfEXT },
-  { "glFogCoordfv", "GL_VERSION_1_4", glFogCoordfv },
-  { "glFogCoordfvEXT", "GL_EXT_fog_coord", glFogCoordfvEXT },
-  { "glFogCoordhNV", "GL_NV_half_float", glFogCoordhNV },
-  { "glFogCoordhvNV", "GL_NV_half_float", glFogCoordhvNV },
-  { "glFogFuncSGIS", "GL_SGIS_fog_function", glFogFuncSGIS },
-  { "glFogxOES", "GL_OES_fixed_point", glFogxOES },
-  { "glFogxvOES", "GL_OES_fixed_point", glFogxvOES },
-  { "glFragmentColorMaterialSGIX", "GL_SGIX_fragment_lighting", glFragmentColorMaterialSGIX },
-  { "glFragmentCoverageColorNV", "GL_NV_fragment_coverage_to_color", glFragmentCoverageColorNV },
-  { "glFragmentLightModelfSGIX", "GL_SGIX_fragment_lighting", glFragmentLightModelfSGIX },
-  { "glFragmentLightModelfvSGIX", "GL_SGIX_fragment_lighting", glFragmentLightModelfvSGIX },
-  { "glFragmentLightModeliSGIX", "GL_SGIX_fragment_lighting", glFragmentLightModeliSGIX },
-  { "glFragmentLightModelivSGIX", "GL_SGIX_fragment_lighting", glFragmentLightModelivSGIX },
-  { "glFragmentLightfSGIX", "GL_SGIX_fragment_lighting", glFragmentLightfSGIX },
-  { "glFragmentLightfvSGIX", "GL_SGIX_fragment_lighting", glFragmentLightfvSGIX },
-  { "glFragmentLightiSGIX", "GL_SGIX_fragment_lighting", glFragmentLightiSGIX },
-  { "glFragmentLightivSGIX", "GL_SGIX_fragment_lighting", glFragmentLightivSGIX },
-  { "glFragmentMaterialfSGIX", "GL_SGIX_fragment_lighting", glFragmentMaterialfSGIX },
-  { "glFragmentMaterialfvSGIX", "GL_SGIX_fragment_lighting", glFragmentMaterialfvSGIX },
-  { "glFragmentMaterialiSGIX", "GL_SGIX_fragment_lighting", glFragmentMaterialiSGIX },
-  { "glFragmentMaterialivSGIX", "GL_SGIX_fragment_lighting", glFragmentMaterialivSGIX },
-  { "glFrameTerminatorGREMEDY", "GL_GREMEDY_frame_terminator", glFrameTerminatorGREMEDY },
-  { "glFrameZoomSGIX", "GL_SGIX_framezoom", glFrameZoomSGIX },
-  { "glFramebufferDrawBufferEXT", "GL_EXT_direct_state_access", glFramebufferDrawBufferEXT },
-  { "glFramebufferDrawBuffersEXT", "GL_EXT_direct_state_access", glFramebufferDrawBuffersEXT },
-  { "glFramebufferFetchBarrierEXT", "GL_EXT_shader_framebuffer_fetch_non_coherent", glFramebufferFetchBarrierEXT },
-  { "glFramebufferParameteri", "GL_ARB_framebuffer_no_attachments GL_VERSION_4_3", glFramebufferParameteri },
-  { "glFramebufferParameteriMESA", "GL_MESA_framebuffer_flip_y", glFramebufferParameteriMESA },
-  { "glFramebufferReadBufferEXT", "GL_EXT_direct_state_access", glFramebufferReadBufferEXT },
-  { "glFramebufferRenderbuffer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glFramebufferRenderbuffer },
-  { "glFramebufferRenderbufferEXT", "GL_EXT_framebuffer_object", glFramebufferRenderbufferEXT },
-  { "glFramebufferSampleLocationsfvARB", "GL_ARB_sample_locations", glFramebufferSampleLocationsfvARB },
-  { "glFramebufferSampleLocationsfvNV", "GL_NV_sample_locations", glFramebufferSampleLocationsfvNV },
-  { "glFramebufferSamplePositionsfvAMD", "GL_AMD_framebuffer_sample_positions", glFramebufferSamplePositionsfvAMD },
-  { "glFramebufferTexture", "GL_VERSION_3_2", glFramebufferTexture },
-  { "glFramebufferTexture1D", "GL_ARB_framebuffer_object GL_VERSION_3_0", glFramebufferTexture1D },
-  { "glFramebufferTexture1DEXT", "GL_EXT_framebuffer_object", glFramebufferTexture1DEXT },
-  { "glFramebufferTexture2D", "GL_ARB_framebuffer_object GL_VERSION_3_0", glFramebufferTexture2D },
-  { "glFramebufferTexture2DEXT", "GL_EXT_framebuffer_object", glFramebufferTexture2DEXT },
-  { "glFramebufferTexture3D", "GL_ARB_framebuffer_object GL_VERSION_3_0", glFramebufferTexture3D },
-  { "glFramebufferTexture3DEXT", "GL_EXT_framebuffer_object", glFramebufferTexture3DEXT },
-  { "glFramebufferTextureARB", "GL_ARB_geometry_shader4", glFramebufferTextureARB },
-  { "glFramebufferTextureEXT", "GL_NV_geometry_program4", glFramebufferTextureEXT },
-  { "glFramebufferTextureFaceARB", "GL_ARB_geometry_shader4", glFramebufferTextureFaceARB },
-  { "glFramebufferTextureFaceEXT", "GL_NV_geometry_program4", glFramebufferTextureFaceEXT },
-  { "glFramebufferTextureLayer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glFramebufferTextureLayer },
-  { "glFramebufferTextureLayerARB", "GL_ARB_geometry_shader4", glFramebufferTextureLayerARB },
-  { "glFramebufferTextureLayerEXT", "GL_EXT_texture_array GL_NV_geometry_program4", glFramebufferTextureLayerEXT },
-  { "glFramebufferTextureMultiviewOVR", "GL_OVR_multiview", glFramebufferTextureMultiviewOVR },
-  { "glFreeObjectBufferATI", "GL_ATI_vertex_array_object", glFreeObjectBufferATI },
-  { "glFrustumfOES", "GL_OES_single_precision", glFrustumfOES },
-  { "glFrustumxOES", "GL_OES_fixed_point", glFrustumxOES },
-  { "glGenAsyncMarkersSGIX", "GL_SGIX_async", glGenAsyncMarkersSGIX },
-  { "glGenBuffers", "GL_VERSION_1_5", glGenBuffers },
-  { "glGenBuffersARB", "GL_ARB_vertex_buffer_object", glGenBuffersARB },
-  { "glGenFencesAPPLE", "GL_APPLE_fence", glGenFencesAPPLE },
-  { "glGenFencesNV", "GL_NV_fence", glGenFencesNV },
-  { "glGenFragmentShadersATI", "GL_ATI_fragment_shader", glGenFragmentShadersATI },
-  { "glGenFramebuffers", "GL_ARB_framebuffer_object GL_VERSION_3_0", glGenFramebuffers },
-  { "glGenFramebuffersEXT", "GL_EXT_framebuffer_object", glGenFramebuffersEXT },
-  { "glGenNamesAMD", "GL_AMD_name_gen_delete", glGenNamesAMD },
-  { "glGenOcclusionQueriesNV", "GL_NV_occlusion_query", glGenOcclusionQueriesNV },
-  { "glGenPathsNV", "GL_NV_path_rendering", glGenPathsNV },
-  { "glGenPerfMonitorsAMD", "GL_AMD_performance_monitor", glGenPerfMonitorsAMD },
-  { "glGenProgramPipelines", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glGenProgramPipelines },
-  { "glGenProgramsARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGenProgramsARB },
-  { "glGenProgramsNV", "GL_NV_vertex_program", glGenProgramsNV },
-  { "glGenQueries", "GL_VERSION_1_5", glGenQueries },
-  { "glGenQueriesARB", "GL_ARB_occlusion_query", glGenQueriesARB },
-  { "glGenQueryResourceTagNV", "GL_NV_query_resource_tag", glGenQueryResourceTagNV },
-  { "glGenRenderbuffers", "GL_ARB_framebuffer_object GL_VERSION_3_0", glGenRenderbuffers },
-  { "glGenRenderbuffersEXT", "GL_EXT_framebuffer_object", glGenRenderbuffersEXT },
-  { "glGenSamplers", "GL_ARB_sampler_objects GL_VERSION_3_3", glGenSamplers },
-  { "glGenSemaphoresEXT", "GL_EXT_semaphore", glGenSemaphoresEXT },
-  { "glGenSymbolsEXT", "GL_EXT_vertex_shader", glGenSymbolsEXT },
-  { "glGenTexturesEXT", "GL_EXT_texture_object", glGenTexturesEXT },
-  { "glGenTransformFeedbacks", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glGenTransformFeedbacks },
-  { "glGenTransformFeedbacksNV", "GL_NV_transform_feedback2", glGenTransformFeedbacksNV },
-  { "glGenVertexArrays", "GL_ARB_vertex_array_object GL_VERSION_3_0", glGenVertexArrays },
-  { "glGenVertexArraysAPPLE", "GL_APPLE_vertex_array_object", glGenVertexArraysAPPLE },
-  { "glGenVertexShadersEXT", "GL_EXT_vertex_shader", glGenVertexShadersEXT },
-  { "glGenerateMipmap", "GL_ARB_framebuffer_object GL_VERSION_3_0", glGenerateMipmap },
-  { "glGenerateMipmapEXT", "GL_EXT_framebuffer_object", glGenerateMipmapEXT },
-  { "glGenerateMultiTexMipmapEXT", "GL_EXT_direct_state_access", glGenerateMultiTexMipmapEXT },
-  { "glGenerateTextureMipmap", "GL_ARB_direct_state_access GL_VERSION_4_5", glGenerateTextureMipmap },
-  { "glGenerateTextureMipmapEXT", "GL_EXT_direct_state_access", glGenerateTextureMipmapEXT },
-  { "glGetActiveAtomicCounterBufferiv", "GL_ARB_shader_atomic_counters GL_VERSION_4_2", glGetActiveAtomicCounterBufferiv },
-  { "glGetActiveAttrib", "GL_VERSION_2_0", glGetActiveAttrib },
-  { "glGetActiveAttribARB", "GL_ARB_vertex_shader", glGetActiveAttribARB },
-  { "glGetActiveSubroutineName", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetActiveSubroutineName },
-  { "glGetActiveSubroutineUniformName", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetActiveSubroutineUniformName },
-  { "glGetActiveSubroutineUniformiv", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetActiveSubroutineUniformiv },
-  { "glGetActiveUniform", "GL_VERSION_2_0", glGetActiveUniform },
-  { "glGetActiveUniformARB", "GL_ARB_shader_objects", glGetActiveUniformARB },
-  { "glGetActiveUniformBlockName", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glGetActiveUniformBlockName },
-  { "glGetActiveUniformBlockiv", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glGetActiveUniformBlockiv },
-  { "glGetActiveUniformName", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glGetActiveUniformName },
-  { "glGetActiveUniformsiv", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glGetActiveUniformsiv },
-  { "glGetActiveVaryingNV", "GL_NV_transform_feedback", glGetActiveVaryingNV },
-  { "glGetArrayObjectfvATI", "GL_ATI_vertex_array_object", glGetArrayObjectfvATI },
-  { "glGetArrayObjectivATI", "GL_ATI_vertex_array_object", glGetArrayObjectivATI },
-  { "glGetAttachedObjectsARB", "GL_ARB_shader_objects", glGetAttachedObjectsARB },
-  { "glGetAttachedShaders", "GL_VERSION_2_0", glGetAttachedShaders },
-  { "glGetAttribLocation", "GL_VERSION_2_0", glGetAttribLocation },
-  { "glGetAttribLocationARB", "GL_ARB_vertex_shader", glGetAttribLocationARB },
-  { "glGetBooleanIndexedvEXT", "GL_EXT_direct_state_access GL_EXT_draw_buffers2", glGetBooleanIndexedvEXT },
-  { "glGetBooleani_v", "GL_VERSION_3_0", glGetBooleani_v },
-  { "glGetBufferParameteri64v", "GL_VERSION_3_2", glGetBufferParameteri64v },
-  { "glGetBufferParameteriv", "GL_VERSION_1_5", glGetBufferParameteriv },
-  { "glGetBufferParameterivARB", "GL_ARB_vertex_buffer_object", glGetBufferParameterivARB },
-  { "glGetBufferParameterui64vNV", "GL_NV_shader_buffer_load", glGetBufferParameterui64vNV },
-  { "glGetBufferPointerv", "GL_VERSION_1_5", glGetBufferPointerv },
-  { "glGetBufferPointervARB", "GL_ARB_vertex_buffer_object", glGetBufferPointervARB },
-  { "glGetBufferSubData", "GL_VERSION_1_5", glGetBufferSubData },
-  { "glGetBufferSubDataARB", "GL_ARB_vertex_buffer_object", glGetBufferSubDataARB },
-  { "glGetClipPlanefOES", "GL_OES_single_precision", glGetClipPlanefOES },
-  { "glGetClipPlanexOES", "GL_OES_fixed_point", glGetClipPlanexOES },
-  { "glGetColorTable", "GL_ARB_imaging", glGetColorTable },
-  { "glGetColorTableEXT", "GL_EXT_paletted_texture", glGetColorTableEXT },
-  { "glGetColorTableParameterfv", "GL_ARB_imaging", glGetColorTableParameterfv },
-  { "glGetColorTableParameterfvEXT", "GL_EXT_paletted_texture", glGetColorTableParameterfvEXT },
-  { "glGetColorTableParameterfvSGI", "GL_SGI_color_table", glGetColorTableParameterfvSGI },
-  { "glGetColorTableParameteriv", "GL_ARB_imaging", glGetColorTableParameteriv },
-  { "glGetColorTableParameterivEXT", "GL_EXT_paletted_texture", glGetColorTableParameterivEXT },
-  { "glGetColorTableParameterivSGI", "GL_SGI_color_table", glGetColorTableParameterivSGI },
-  { "glGetColorTableSGI", "GL_SGI_color_table", glGetColorTableSGI },
-  { "glGetCombinerInputParameterfvNV", "GL_NV_register_combiners", glGetCombinerInputParameterfvNV },
-  { "glGetCombinerInputParameterivNV", "GL_NV_register_combiners", glGetCombinerInputParameterivNV },
-  { "glGetCombinerOutputParameterfvNV", "GL_NV_register_combiners", glGetCombinerOutputParameterfvNV },
-  { "glGetCombinerOutputParameterivNV", "GL_NV_register_combiners", glGetCombinerOutputParameterivNV },
-  { "glGetCombinerStageParameterfvNV", "GL_NV_register_combiners2", glGetCombinerStageParameterfvNV },
-  { "glGetCommandHeaderNV", "GL_NV_command_list", glGetCommandHeaderNV },
-  { "glGetCompressedMultiTexImageEXT", "GL_EXT_direct_state_access", glGetCompressedMultiTexImageEXT },
-  { "glGetCompressedTexImage", "GL_VERSION_1_3", glGetCompressedTexImage },
-  { "glGetCompressedTexImageARB", "GL_ARB_texture_compression", glGetCompressedTexImageARB },
-  { "glGetCompressedTextureImage", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetCompressedTextureImage },
-  { "glGetCompressedTextureImageEXT", "GL_EXT_direct_state_access", glGetCompressedTextureImageEXT },
-  { "glGetCompressedTextureSubImage", "GL_ARB_get_texture_sub_image GL_VERSION_4_5", glGetCompressedTextureSubImage },
-  { "glGetConvolutionFilter", "GL_ARB_imaging", glGetConvolutionFilter },
-  { "glGetConvolutionFilterEXT", "GL_EXT_convolution", glGetConvolutionFilterEXT },
-  { "glGetConvolutionParameterfv", "GL_ARB_imaging", glGetConvolutionParameterfv },
-  { "glGetConvolutionParameterfvEXT", "GL_EXT_convolution", glGetConvolutionParameterfvEXT },
-  { "glGetConvolutionParameteriv", "GL_ARB_imaging", glGetConvolutionParameteriv },
-  { "glGetConvolutionParameterivEXT", "GL_EXT_convolution", glGetConvolutionParameterivEXT },
-  { "glGetConvolutionParameterxvOES", "GL_OES_fixed_point", glGetConvolutionParameterxvOES },
-  { "glGetCoverageModulationTableNV", "GL_NV_framebuffer_mixed_samples", glGetCoverageModulationTableNV },
-  { "glGetDebugMessageLog", "GL_KHR_debug GL_VERSION_4_3", glGetDebugMessageLog },
-  { "glGetDebugMessageLogAMD", "GL_AMD_debug_output", glGetDebugMessageLogAMD },
-  { "glGetDebugMessageLogARB", "GL_ARB_debug_output", glGetDebugMessageLogARB },
-  { "glGetDetailTexFuncSGIS", "GL_SGIS_detail_texture", glGetDetailTexFuncSGIS },
-  { "glGetDoubleIndexedvEXT", "GL_EXT_direct_state_access", glGetDoubleIndexedvEXT },
-  { "glGetDoublei_v", "GL_ARB_viewport_array GL_VERSION_4_1", glGetDoublei_v },
-  { "glGetDoublei_vEXT", "GL_EXT_direct_state_access", glGetDoublei_vEXT },
-  { "glGetFenceivNV", "GL_NV_fence", glGetFenceivNV },
-  { "glGetFinalCombinerInputParameterfvNV", "GL_NV_register_combiners", glGetFinalCombinerInputParameterfvNV },
-  { "glGetFinalCombinerInputParameterivNV", "GL_NV_register_combiners", glGetFinalCombinerInputParameterivNV },
-  { "glGetFirstPerfQueryIdINTEL", "GL_INTEL_performance_query", glGetFirstPerfQueryIdINTEL },
-  { "glGetFixedvOES", "GL_OES_fixed_point", glGetFixedvOES },
-  { "glGetFloatIndexedvEXT", "GL_EXT_direct_state_access", glGetFloatIndexedvEXT },
-  { "glGetFloati_v", "GL_ARB_viewport_array GL_VERSION_4_1", glGetFloati_v },
-  { "glGetFloati_vEXT", "GL_EXT_direct_state_access", glGetFloati_vEXT },
-  { "glGetFogFuncSGIS", "GL_SGIS_fog_function", glGetFogFuncSGIS },
-  { "glGetFragDataIndex", "GL_ARB_blend_func_extended GL_VERSION_3_3", glGetFragDataIndex },
-  { "glGetFragDataLocation", "GL_VERSION_3_0", glGetFragDataLocation },
-  { "glGetFragDataLocationEXT", "GL_EXT_gpu_shader4", glGetFragDataLocationEXT },
-  { "glGetFragmentLightfvSGIX", "GL_SGIX_fragment_lighting", glGetFragmentLightfvSGIX },
-  { "glGetFragmentLightivSGIX", "GL_SGIX_fragment_lighting", glGetFragmentLightivSGIX },
-  { "glGetFragmentMaterialfvSGIX", "GL_SGIX_fragment_lighting", glGetFragmentMaterialfvSGIX },
-  { "glGetFragmentMaterialivSGIX", "GL_SGIX_fragment_lighting", glGetFragmentMaterialivSGIX },
-  { "glGetFramebufferAttachmentParameteriv", "GL_ARB_framebuffer_object GL_VERSION_3_0", glGetFramebufferAttachmentParameteriv },
-  { "glGetFramebufferAttachmentParameterivEXT", "GL_EXT_framebuffer_object", glGetFramebufferAttachmentParameterivEXT },
-  { "glGetFramebufferParameterfvAMD", "GL_AMD_framebuffer_sample_positions", glGetFramebufferParameterfvAMD },
-  { "glGetFramebufferParameteriv", "GL_ARB_framebuffer_no_attachments GL_VERSION_4_3", glGetFramebufferParameteriv },
-  { "glGetFramebufferParameterivEXT", "GL_EXT_direct_state_access", glGetFramebufferParameterivEXT },
-  { "glGetFramebufferParameterivMESA", "GL_MESA_framebuffer_flip_y", glGetFramebufferParameterivMESA },
-  { "glGetGraphicsResetStatus", "GL_KHR_robustness GL_VERSION_4_5", glGetGraphicsResetStatus },
-  { "glGetGraphicsResetStatusARB", "GL_ARB_robustness", glGetGraphicsResetStatusARB },
-  { "glGetHandleARB", "GL_ARB_shader_objects", glGetHandleARB },
-  { "glGetHistogram", "GL_ARB_imaging", glGetHistogram },
-  { "glGetHistogramEXT", "GL_EXT_histogram", glGetHistogramEXT },
-  { "glGetHistogramParameterfv", "GL_ARB_imaging", glGetHistogramParameterfv },
-  { "glGetHistogramParameterfvEXT", "GL_EXT_histogram", glGetHistogramParameterfvEXT },
-  { "glGetHistogramParameteriv", "GL_ARB_imaging", glGetHistogramParameteriv },
-  { "glGetHistogramParameterivEXT", "GL_EXT_histogram", glGetHistogramParameterivEXT },
-  { "glGetHistogramParameterxvOES", "GL_OES_fixed_point", glGetHistogramParameterxvOES },
-  { "glGetImageHandleARB", "GL_ARB_bindless_texture", glGetImageHandleARB },
-  { "glGetImageHandleNV", "GL_NV_bindless_texture", glGetImageHandleNV },
-  { "glGetImageTransformParameterfvHP", "GL_HP_image_transform", glGetImageTransformParameterfvHP },
-  { "glGetImageTransformParameterivHP", "GL_HP_image_transform", glGetImageTransformParameterivHP },
-  { "glGetInfoLogARB", "GL_ARB_shader_objects", glGetInfoLogARB },
-  { "glGetInstrumentsSGIX", "GL_SGIX_instruments", glGetInstrumentsSGIX },
-  { "glGetInteger64i_v", "GL_VERSION_3_2", glGetInteger64i_v },
-  { "glGetInteger64v", "GL_ARB_sync GL_VERSION_3_2", glGetInteger64v },
-  { "glGetIntegerIndexedvEXT", "GL_EXT_direct_state_access GL_EXT_draw_buffers2", glGetIntegerIndexedvEXT },
-  { "glGetIntegeri_v", "GL_ARB_uniform_buffer_object GL_VERSION_3_0", glGetIntegeri_v },
-  { "glGetIntegerui64i_vNV", "GL_NV_vertex_buffer_unified_memory", glGetIntegerui64i_vNV },
-  { "glGetIntegerui64vNV", "GL_NV_shader_buffer_load", glGetIntegerui64vNV },
-  { "glGetInternalformatSampleivNV", "GL_NV_internalformat_sample_query", glGetInternalformatSampleivNV },
-  { "glGetInternalformati64v", "GL_ARB_internalformat_query2 GL_VERSION_4_3", glGetInternalformati64v },
-  { "glGetInternalformativ", "GL_ARB_internalformat_query GL_VERSION_4_2", glGetInternalformativ },
-  { "glGetInvariantBooleanvEXT", "GL_EXT_vertex_shader", glGetInvariantBooleanvEXT },
-  { "glGetInvariantFloatvEXT", "GL_EXT_vertex_shader", glGetInvariantFloatvEXT },
-  { "glGetInvariantIntegervEXT", "GL_EXT_vertex_shader", glGetInvariantIntegervEXT },
-  { "glGetLightxOES", "GL_OES_fixed_point", glGetLightxOES },
-  { "glGetListParameterfvSGIX", "GL_SGIX_list_priority", glGetListParameterfvSGIX },
-  { "glGetListParameterivSGIX", "GL_SGIX_list_priority", glGetListParameterivSGIX },
-  { "glGetLocalConstantBooleanvEXT", "GL_EXT_vertex_shader", glGetLocalConstantBooleanvEXT },
-  { "glGetLocalConstantFloatvEXT", "GL_EXT_vertex_shader", glGetLocalConstantFloatvEXT },
-  { "glGetLocalConstantIntegervEXT", "GL_EXT_vertex_shader", glGetLocalConstantIntegervEXT },
-  { "glGetMapAttribParameterfvNV", "GL_NV_evaluators", glGetMapAttribParameterfvNV },
-  { "glGetMapAttribParameterivNV", "GL_NV_evaluators", glGetMapAttribParameterivNV },
-  { "glGetMapControlPointsNV", "GL_NV_evaluators", glGetMapControlPointsNV },
-  { "glGetMapParameterfvNV", "GL_NV_evaluators", glGetMapParameterfvNV },
-  { "glGetMapParameterivNV", "GL_NV_evaluators", glGetMapParameterivNV },
-  { "glGetMapxvOES", "GL_OES_fixed_point", glGetMapxvOES },
-  { "glGetMaterialxOES", "GL_OES_fixed_point", glGetMaterialxOES },
-  { "glGetMemoryObjectDetachedResourcesuivNV", "GL_NV_memory_attachment", glGetMemoryObjectDetachedResourcesuivNV },
-  { "glGetMemoryObjectParameterivEXT", "GL_EXT_memory_object", glGetMemoryObjectParameterivEXT },
-  { "glGetMinmax", "GL_ARB_imaging", glGetMinmax },
-  { "glGetMinmaxEXT", "GL_EXT_histogram", glGetMinmaxEXT },
-  { "glGetMinmaxParameterfv", "GL_ARB_imaging", glGetMinmaxParameterfv },
-  { "glGetMinmaxParameterfvEXT", "GL_EXT_histogram", glGetMinmaxParameterfvEXT },
-  { "glGetMinmaxParameteriv", "GL_ARB_imaging", glGetMinmaxParameteriv },
-  { "glGetMinmaxParameterivEXT", "GL_EXT_histogram", glGetMinmaxParameterivEXT },
-  { "glGetMultiTexEnvfvEXT", "GL_EXT_direct_state_access", glGetMultiTexEnvfvEXT },
-  { "glGetMultiTexEnvivEXT", "GL_EXT_direct_state_access", glGetMultiTexEnvivEXT },
-  { "glGetMultiTexGendvEXT", "GL_EXT_direct_state_access", glGetMultiTexGendvEXT },
-  { "glGetMultiTexGenfvEXT", "GL_EXT_direct_state_access", glGetMultiTexGenfvEXT },
-  { "glGetMultiTexGenivEXT", "GL_EXT_direct_state_access", glGetMultiTexGenivEXT },
-  { "glGetMultiTexImageEXT", "GL_EXT_direct_state_access", glGetMultiTexImageEXT },
-  { "glGetMultiTexLevelParameterfvEXT", "GL_EXT_direct_state_access", glGetMultiTexLevelParameterfvEXT },
-  { "glGetMultiTexLevelParameterivEXT", "GL_EXT_direct_state_access", glGetMultiTexLevelParameterivEXT },
-  { "glGetMultiTexParameterIivEXT", "GL_EXT_direct_state_access", glGetMultiTexParameterIivEXT },
-  { "glGetMultiTexParameterIuivEXT", "GL_EXT_direct_state_access", glGetMultiTexParameterIuivEXT },
-  { "glGetMultiTexParameterfvEXT", "GL_EXT_direct_state_access", glGetMultiTexParameterfvEXT },
-  { "glGetMultiTexParameterivEXT", "GL_EXT_direct_state_access", glGetMultiTexParameterivEXT },
-  { "glGetMultisamplefv", "GL_ARB_texture_multisample GL_VERSION_3_2", glGetMultisamplefv },
-  { "glGetMultisamplefvNV", "GL_NV_explicit_multisample", glGetMultisamplefvNV },
-  { "glGetNamedBufferParameteri64v", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedBufferParameteri64v },
-  { "glGetNamedBufferParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedBufferParameteriv },
-  { "glGetNamedBufferParameterivEXT", "GL_EXT_direct_state_access", glGetNamedBufferParameterivEXT },
-  { "glGetNamedBufferParameterui64vNV", "GL_NV_shader_buffer_load", glGetNamedBufferParameterui64vNV },
-  { "glGetNamedBufferPointerv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedBufferPointerv },
-  { "glGetNamedBufferPointervEXT", "GL_EXT_direct_state_access", glGetNamedBufferPointervEXT },
-  { "glGetNamedBufferSubData", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedBufferSubData },
-  { "glGetNamedBufferSubDataEXT", "GL_EXT_direct_state_access", glGetNamedBufferSubDataEXT },
-  { "glGetNamedFramebufferAttachmentParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedFramebufferAttachmentParameteriv },
-  { "glGetNamedFramebufferAttachmentParameterivEXT", "GL_EXT_direct_state_access", glGetNamedFramebufferAttachmentParameterivEXT },
-  { "glGetNamedFramebufferParameterfvAMD", "GL_AMD_framebuffer_sample_positions", glGetNamedFramebufferParameterfvAMD },
-  { "glGetNamedFramebufferParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedFramebufferParameteriv },
-  { "glGetNamedFramebufferParameterivEXT", "GL_EXT_direct_state_access", glGetNamedFramebufferParameterivEXT },
-  { "glGetNamedProgramLocalParameterIivEXT", "GL_EXT_direct_state_access", glGetNamedProgramLocalParameterIivEXT },
-  { "glGetNamedProgramLocalParameterIuivEXT", "GL_EXT_direct_state_access", glGetNamedProgramLocalParameterIuivEXT },
-  { "glGetNamedProgramLocalParameterdvEXT", "GL_EXT_direct_state_access", glGetNamedProgramLocalParameterdvEXT },
-  { "glGetNamedProgramLocalParameterfvEXT", "GL_EXT_direct_state_access", glGetNamedProgramLocalParameterfvEXT },
-  { "glGetNamedProgramStringEXT", "GL_EXT_direct_state_access", glGetNamedProgramStringEXT },
-  { "glGetNamedProgramivEXT", "GL_EXT_direct_state_access", glGetNamedProgramivEXT },
-  { "glGetNamedRenderbufferParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedRenderbufferParameteriv },
-  { "glGetNamedRenderbufferParameterivEXT", "GL_EXT_direct_state_access", glGetNamedRenderbufferParameterivEXT },
-  { "glGetNamedStringARB", "GL_ARB_shading_language_include", glGetNamedStringARB },
-  { "glGetNamedStringivARB", "GL_ARB_shading_language_include", glGetNamedStringivARB },
-  { "glGetNextPerfQueryIdINTEL", "GL_INTEL_performance_query", glGetNextPerfQueryIdINTEL },
-  { "glGetObjectBufferfvATI", "GL_ATI_vertex_array_object", glGetObjectBufferfvATI },
-  { "glGetObjectBufferivATI", "GL_ATI_vertex_array_object", glGetObjectBufferivATI },
-  { "glGetObjectLabel", "GL_KHR_debug GL_VERSION_4_3", glGetObjectLabel },
-  { "glGetObjectLabelEXT", "GL_EXT_debug_label", glGetObjectLabelEXT },
-  { "glGetObjectParameterfvARB", "GL_ARB_shader_objects", glGetObjectParameterfvARB },
-  { "glGetObjectParameterivAPPLE", "GL_APPLE_object_purgeable", glGetObjectParameterivAPPLE },
-  { "glGetObjectParameterivARB", "GL_ARB_shader_objects", glGetObjectParameterivARB },
-  { "glGetObjectPtrLabel", "GL_KHR_debug GL_VERSION_4_3", glGetObjectPtrLabel },
-  { "glGetOcclusionQueryivNV", "GL_NV_occlusion_query", glGetOcclusionQueryivNV },
-  { "glGetOcclusionQueryuivNV", "GL_NV_occlusion_query", glGetOcclusionQueryuivNV },
-  { "glGetPathColorGenfvNV", "GL_NV_path_rendering", glGetPathColorGenfvNV },
-  { "glGetPathColorGenivNV", "GL_NV_path_rendering", glGetPathColorGenivNV },
-  { "glGetPathCommandsNV", "GL_NV_path_rendering", glGetPathCommandsNV },
-  { "glGetPathCoordsNV", "GL_NV_path_rendering", glGetPathCoordsNV },
-  { "glGetPathDashArrayNV", "GL_NV_path_rendering", glGetPathDashArrayNV },
-  { "glGetPathLengthNV", "GL_NV_path_rendering", glGetPathLengthNV },
-  { "glGetPathMetricRangeNV", "GL_NV_path_rendering", glGetPathMetricRangeNV },
-  { "glGetPathMetricsNV", "GL_NV_path_rendering", glGetPathMetricsNV },
-  { "glGetPathParameterfvNV", "GL_NV_path_rendering", glGetPathParameterfvNV },
-  { "glGetPathParameterivNV", "GL_NV_path_rendering", glGetPathParameterivNV },
-  { "glGetPathSpacingNV", "GL_NV_path_rendering", glGetPathSpacingNV },
-  { "glGetPathTexGenfvNV", "GL_NV_path_rendering", glGetPathTexGenfvNV },
-  { "glGetPathTexGenivNV", "GL_NV_path_rendering", glGetPathTexGenivNV },
-  { "glGetPerfCounterInfoINTEL", "GL_INTEL_performance_query", glGetPerfCounterInfoINTEL },
-  { "glGetPerfMonitorCounterDataAMD", "GL_AMD_performance_monitor", glGetPerfMonitorCounterDataAMD },
-  { "glGetPerfMonitorCounterInfoAMD", "GL_AMD_performance_monitor", glGetPerfMonitorCounterInfoAMD },
-  { "glGetPerfMonitorCounterStringAMD", "GL_AMD_performance_monitor", glGetPerfMonitorCounterStringAMD },
-  { "glGetPerfMonitorCountersAMD", "GL_AMD_performance_monitor", glGetPerfMonitorCountersAMD },
-  { "glGetPerfMonitorGroupStringAMD", "GL_AMD_performance_monitor", glGetPerfMonitorGroupStringAMD },
-  { "glGetPerfMonitorGroupsAMD", "GL_AMD_performance_monitor", glGetPerfMonitorGroupsAMD },
-  { "glGetPerfQueryDataINTEL", "GL_INTEL_performance_query", glGetPerfQueryDataINTEL },
-  { "glGetPerfQueryIdByNameINTEL", "GL_INTEL_performance_query", glGetPerfQueryIdByNameINTEL },
-  { "glGetPerfQueryInfoINTEL", "GL_INTEL_performance_query", glGetPerfQueryInfoINTEL },
-  { "glGetPixelMapxv", "GL_OES_fixed_point", glGetPixelMapxv },
-  { "glGetPixelTexGenParameterfvSGIS", "GL_SGIS_pixel_texture", glGetPixelTexGenParameterfvSGIS },
-  { "glGetPixelTexGenParameterivSGIS", "GL_SGIS_pixel_texture", glGetPixelTexGenParameterivSGIS },
-  { "glGetPixelTransformParameterfvEXT", "GL_EXT_pixel_transform", glGetPixelTransformParameterfvEXT },
-  { "glGetPixelTransformParameterivEXT", "GL_EXT_pixel_transform", glGetPixelTransformParameterivEXT },
-  { "glGetPointerIndexedvEXT", "GL_EXT_direct_state_access", glGetPointerIndexedvEXT },
-  { "glGetPointeri_vEXT", "GL_EXT_direct_state_access", glGetPointeri_vEXT },
-  { "glGetPointervEXT", "GL_EXT_vertex_array", glGetPointervEXT },
-  { "glGetProgramBinary", "GL_ARB_get_program_binary GL_VERSION_4_1", glGetProgramBinary },
-  { "glGetProgramEnvParameterIivNV", "GL_NV_gpu_program4", glGetProgramEnvParameterIivNV },
-  { "glGetProgramEnvParameterIuivNV", "GL_NV_gpu_program4", glGetProgramEnvParameterIuivNV },
-  { "glGetProgramEnvParameterdvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGetProgramEnvParameterdvARB },
-  { "glGetProgramEnvParameterfvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGetProgramEnvParameterfvARB },
-  { "glGetProgramInfoLog", "GL_VERSION_2_0", glGetProgramInfoLog },
-  { "glGetProgramInterfaceiv", "GL_ARB_program_interface_query GL_VERSION_4_3", glGetProgramInterfaceiv },
-  { "glGetProgramLocalParameterIivNV", "GL_NV_gpu_program4", glGetProgramLocalParameterIivNV },
-  { "glGetProgramLocalParameterIuivNV", "GL_NV_gpu_program4", glGetProgramLocalParameterIuivNV },
-  { "glGetProgramLocalParameterdvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGetProgramLocalParameterdvARB },
-  { "glGetProgramLocalParameterfvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGetProgramLocalParameterfvARB },
-  { "glGetProgramNamedParameterdvNV", "GL_NV_fragment_program", glGetProgramNamedParameterdvNV },
-  { "glGetProgramNamedParameterfvNV", "GL_NV_fragment_program", glGetProgramNamedParameterfvNV },
-  { "glGetProgramParameterdvNV", "GL_NV_vertex_program", glGetProgramParameterdvNV },
-  { "glGetProgramParameterfvNV", "GL_NV_vertex_program", glGetProgramParameterfvNV },
-  { "glGetProgramPipelineInfoLog", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glGetProgramPipelineInfoLog },
-  { "glGetProgramPipelineiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glGetProgramPipelineiv },
-  { "glGetProgramResourceIndex", "GL_ARB_program_interface_query GL_VERSION_4_3", glGetProgramResourceIndex },
-  { "glGetProgramResourceLocation", "GL_ARB_program_interface_query GL_VERSION_4_3", glGetProgramResourceLocation },
-  { "glGetProgramResourceLocationIndex", "GL_ARB_program_interface_query GL_VERSION_4_3", glGetProgramResourceLocationIndex },
-  { "glGetProgramResourceName", "GL_ARB_program_interface_query GL_VERSION_4_3", glGetProgramResourceName },
-  { "glGetProgramResourcefvNV", "GL_NV_path_rendering", glGetProgramResourcefvNV },
-  { "glGetProgramResourceiv", "GL_ARB_program_interface_query GL_VERSION_4_3", glGetProgramResourceiv },
-  { "glGetProgramStageiv", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetProgramStageiv },
-  { "glGetProgramStringARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGetProgramStringARB },
-  { "glGetProgramStringNV", "GL_NV_vertex_program", glGetProgramStringNV },
-  { "glGetProgramSubroutineParameteruivNV", "GL_NV_gpu_program5", glGetProgramSubroutineParameteruivNV },
-  { "glGetProgramiv", "GL_VERSION_2_0", glGetProgramiv },
-  { "glGetProgramivARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGetProgramivARB },
-  { "glGetProgramivNV", "GL_NV_vertex_program", glGetProgramivNV },
-  { "glGetQueryBufferObjecti64v", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetQueryBufferObjecti64v },
-  { "glGetQueryBufferObjectiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetQueryBufferObjectiv },
-  { "glGetQueryBufferObjectui64v", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetQueryBufferObjectui64v },
-  { "glGetQueryBufferObjectuiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetQueryBufferObjectuiv },
-  { "glGetQueryIndexediv", "GL_ARB_transform_feedback3 GL_VERSION_4_0", glGetQueryIndexediv },
-  { "glGetQueryObjecti64v", "GL_ARB_timer_query GL_VERSION_3_3", glGetQueryObjecti64v },
-  { "glGetQueryObjecti64vEXT", "GL_EXT_timer_query", glGetQueryObjecti64vEXT },
-  { "glGetQueryObjectiv", "GL_VERSION_1_5", glGetQueryObjectiv },
-  { "glGetQueryObjectivARB", "GL_ARB_occlusion_query", glGetQueryObjectivARB },
-  { "glGetQueryObjectui64v", "GL_ARB_timer_query GL_VERSION_3_3", glGetQueryObjectui64v },
-  { "glGetQueryObjectui64vEXT", "GL_EXT_timer_query", glGetQueryObjectui64vEXT },
-  { "glGetQueryObjectuiv", "GL_VERSION_1_5", glGetQueryObjectuiv },
-  { "glGetQueryObjectuivARB", "GL_ARB_occlusion_query", glGetQueryObjectuivARB },
-  { "glGetQueryiv", "GL_VERSION_1_5", glGetQueryiv },
-  { "glGetQueryivARB", "GL_ARB_occlusion_query", glGetQueryivARB },
-  { "glGetRenderbufferParameteriv", "GL_ARB_framebuffer_object GL_VERSION_3_0", glGetRenderbufferParameteriv },
-  { "glGetRenderbufferParameterivEXT", "GL_EXT_framebuffer_object", glGetRenderbufferParameterivEXT },
-  { "glGetSamplerParameterIiv", "GL_ARB_sampler_objects GL_VERSION_3_3", glGetSamplerParameterIiv },
-  { "glGetSamplerParameterIuiv", "GL_ARB_sampler_objects GL_VERSION_3_3", glGetSamplerParameterIuiv },
-  { "glGetSamplerParameterfv", "GL_ARB_sampler_objects GL_VERSION_3_3", glGetSamplerParameterfv },
-  { "glGetSamplerParameteriv", "GL_ARB_sampler_objects GL_VERSION_3_3", glGetSamplerParameteriv },
-  { "glGetSemaphoreParameterui64vEXT", "GL_EXT_semaphore", glGetSemaphoreParameterui64vEXT },
-  { "glGetSeparableFilter", "GL_ARB_imaging", glGetSeparableFilter },
-  { "glGetSeparableFilterEXT", "GL_EXT_convolution", glGetSeparableFilterEXT },
-  { "glGetShaderInfoLog", "GL_VERSION_2_0", glGetShaderInfoLog },
-  { "glGetShaderPrecisionFormat", "GL_ARB_ES2_compatibility GL_VERSION_4_1", glGetShaderPrecisionFormat },
-  { "glGetShaderSource", "GL_VERSION_2_0", glGetShaderSource },
-  { "glGetShaderSourceARB", "GL_ARB_shader_objects", glGetShaderSourceARB },
-  { "glGetShaderiv", "GL_VERSION_2_0", glGetShaderiv },
-  { "glGetShadingRateImagePaletteNV", "GL_NV_shading_rate_image", glGetShadingRateImagePaletteNV },
-  { "glGetShadingRateSampleLocationivNV", "GL_NV_shading_rate_image", glGetShadingRateSampleLocationivNV },
-  { "glGetSharpenTexFuncSGIS", "GL_SGIS_sharpen_texture", glGetSharpenTexFuncSGIS },
-  { "glGetStageIndexNV", "GL_NV_command_list", glGetStageIndexNV },
-  { "glGetStringi", "GL_VERSION_3_0", glGetStringi },
-  { "glGetSubroutineIndex", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetSubroutineIndex },
-  { "glGetSubroutineUniformLocation", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetSubroutineUniformLocation },
-  { "glGetSynciv", "GL_ARB_sync GL_VERSION_3_2", glGetSynciv },
-  { "glGetTexBumpParameterfvATI", "GL_ATI_envmap_bumpmap", glGetTexBumpParameterfvATI },
-  { "glGetTexBumpParameterivATI", "GL_ATI_envmap_bumpmap", glGetTexBumpParameterivATI },
-  { "glGetTexEnvxvOES", "GL_OES_fixed_point", glGetTexEnvxvOES },
-  { "glGetTexFilterFuncSGIS", "GL_SGIS_texture_filter4", glGetTexFilterFuncSGIS },
-  { "glGetTexGenxvOES", "GL_OES_fixed_point", glGetTexGenxvOES },
-  { "glGetTexLevelParameterxvOES", "GL_OES_fixed_point", glGetTexLevelParameterxvOES },
-  { "glGetTexParameterIiv", "GL_VERSION_3_0", glGetTexParameterIiv },
-  { "glGetTexParameterIivEXT", "GL_EXT_texture_integer", glGetTexParameterIivEXT },
-  { "glGetTexParameterIuiv", "GL_VERSION_3_0", glGetTexParameterIuiv },
-  { "glGetTexParameterIuivEXT", "GL_EXT_texture_integer", glGetTexParameterIuivEXT },
-  { "glGetTexParameterPointervAPPLE", "GL_APPLE_texture_range", glGetTexParameterPointervAPPLE },
-  { "glGetTexParameterxvOES", "GL_OES_fixed_point", glGetTexParameterxvOES },
-  { "glGetTextureHandleARB", "GL_ARB_bindless_texture", glGetTextureHandleARB },
-  { "glGetTextureHandleNV", "GL_NV_bindless_texture", glGetTextureHandleNV },
-  { "glGetTextureImage", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureImage },
-  { "glGetTextureImageEXT", "GL_EXT_direct_state_access", glGetTextureImageEXT },
-  { "glGetTextureLevelParameterfv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureLevelParameterfv },
-  { "glGetTextureLevelParameterfvEXT", "GL_EXT_direct_state_access", glGetTextureLevelParameterfvEXT },
-  { "glGetTextureLevelParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureLevelParameteriv },
-  { "glGetTextureLevelParameterivEXT", "GL_EXT_direct_state_access", glGetTextureLevelParameterivEXT },
-  { "glGetTextureParameterIiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureParameterIiv },
-  { "glGetTextureParameterIivEXT", "GL_EXT_direct_state_access", glGetTextureParameterIivEXT },
-  { "glGetTextureParameterIuiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureParameterIuiv },
-  { "glGetTextureParameterIuivEXT", "GL_EXT_direct_state_access", glGetTextureParameterIuivEXT },
-  { "glGetTextureParameterfv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureParameterfv },
-  { "glGetTextureParameterfvEXT", "GL_EXT_direct_state_access", glGetTextureParameterfvEXT },
-  { "glGetTextureParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureParameteriv },
-  { "glGetTextureParameterivEXT", "GL_EXT_direct_state_access", glGetTextureParameterivEXT },
-  { "glGetTextureSamplerHandleARB", "GL_ARB_bindless_texture", glGetTextureSamplerHandleARB },
-  { "glGetTextureSamplerHandleNV", "GL_NV_bindless_texture", glGetTextureSamplerHandleNV },
-  { "glGetTextureSubImage", "GL_ARB_get_texture_sub_image GL_VERSION_4_5", glGetTextureSubImage },
-  { "glGetTrackMatrixivNV", "GL_NV_vertex_program", glGetTrackMatrixivNV },
-  { "glGetTransformFeedbackVarying", "GL_VERSION_3_0", glGetTransformFeedbackVarying },
-  { "glGetTransformFeedbackVaryingEXT", "GL_EXT_transform_feedback", glGetTransformFeedbackVaryingEXT },
-  { "glGetTransformFeedbackVaryingNV", "GL_NV_transform_feedback", glGetTransformFeedbackVaryingNV },
-  { "glGetTransformFeedbacki64_v", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTransformFeedbacki64_v },
-  { "glGetTransformFeedbacki_v", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTransformFeedbacki_v },
-  { "glGetTransformFeedbackiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTransformFeedbackiv },
-  { "glGetUniformBlockIndex", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glGetUniformBlockIndex },
-  { "glGetUniformBufferSizeEXT", "GL_EXT_bindable_uniform", glGetUniformBufferSizeEXT },
-  { "glGetUniformIndices", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glGetUniformIndices },
-  { "glGetUniformLocation", "GL_VERSION_2_0", glGetUniformLocation },
-  { "glGetUniformLocationARB", "GL_ARB_shader_objects", glGetUniformLocationARB },
-  { "glGetUniformOffsetEXT", "GL_EXT_bindable_uniform", glGetUniformOffsetEXT },
-  { "glGetUniformSubroutineuiv", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetUniformSubroutineuiv },
-  { "glGetUniformdv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glGetUniformdv },
-  { "glGetUniformfv", "GL_VERSION_2_0", glGetUniformfv },
-  { "glGetUniformfvARB", "GL_ARB_shader_objects", glGetUniformfvARB },
-  { "glGetUniformi64vARB", "GL_ARB_gpu_shader_int64", glGetUniformi64vARB },
-  { "glGetUniformi64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glGetUniformi64vNV },
-  { "glGetUniformiv", "GL_VERSION_2_0", glGetUniformiv },
-  { "glGetUniformivARB", "GL_ARB_shader_objects", glGetUniformivARB },
-  { "glGetUniformui64vARB", "GL_ARB_gpu_shader_int64", glGetUniformui64vARB },
-  { "glGetUniformui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_shader_buffer_load", glGetUniformui64vNV },
-  { "glGetUniformuiv", "GL_VERSION_3_0", glGetUniformuiv },
-  { "glGetUniformuivEXT", "GL_EXT_gpu_shader4", glGetUniformuivEXT },
-  { "glGetUnsignedBytei_vEXT", "GL_EXT_memory_object GL_EXT_semaphore", glGetUnsignedBytei_vEXT },
-  { "glGetUnsignedBytevEXT", "GL_EXT_memory_object GL_EXT_semaphore", glGetUnsignedBytevEXT },
-  { "glGetVariantArrayObjectfvATI", "GL_ATI_vertex_array_object", glGetVariantArrayObjectfvATI },
-  { "glGetVariantArrayObjectivATI", "GL_ATI_vertex_array_object", glGetVariantArrayObjectivATI },
-  { "glGetVariantBooleanvEXT", "GL_EXT_vertex_shader", glGetVariantBooleanvEXT },
-  { "glGetVariantFloatvEXT", "GL_EXT_vertex_shader", glGetVariantFloatvEXT },
-  { "glGetVariantIntegervEXT", "GL_EXT_vertex_shader", glGetVariantIntegervEXT },
-  { "glGetVariantPointervEXT", "GL_EXT_vertex_shader", glGetVariantPointervEXT },
-  { "glGetVaryingLocationNV", "GL_NV_transform_feedback", glGetVaryingLocationNV },
-  { "glGetVertexArrayIndexed64iv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetVertexArrayIndexed64iv },
-  { "glGetVertexArrayIndexediv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetVertexArrayIndexediv },
-  { "glGetVertexArrayIntegeri_vEXT", "GL_EXT_direct_state_access", glGetVertexArrayIntegeri_vEXT },
-  { "glGetVertexArrayIntegervEXT", "GL_EXT_direct_state_access", glGetVertexArrayIntegervEXT },
-  { "glGetVertexArrayPointeri_vEXT", "GL_EXT_direct_state_access", glGetVertexArrayPointeri_vEXT },
-  { "glGetVertexArrayPointervEXT", "GL_EXT_direct_state_access", glGetVertexArrayPointervEXT },
-  { "glGetVertexArrayiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetVertexArrayiv },
-  { "glGetVertexAttribArrayObjectfvATI", "GL_ATI_vertex_attrib_array_object", glGetVertexAttribArrayObjectfvATI },
-  { "glGetVertexAttribArrayObjectivATI", "GL_ATI_vertex_attrib_array_object", glGetVertexAttribArrayObjectivATI },
-  { "glGetVertexAttribIiv", "GL_VERSION_3_0", glGetVertexAttribIiv },
-  { "glGetVertexAttribIivEXT", "GL_NV_vertex_program4", glGetVertexAttribIivEXT },
-  { "glGetVertexAttribIuiv", "GL_VERSION_3_0", glGetVertexAttribIuiv },
-  { "glGetVertexAttribIuivEXT", "GL_NV_vertex_program4", glGetVertexAttribIuivEXT },
-  { "glGetVertexAttribLdv", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glGetVertexAttribLdv },
-  { "glGetVertexAttribLdvEXT", "GL_EXT_vertex_attrib_64bit", glGetVertexAttribLdvEXT },
-  { "glGetVertexAttribLi64vNV", "GL_NV_vertex_attrib_integer_64bit", glGetVertexAttribLi64vNV },
-  { "glGetVertexAttribLui64vARB", "GL_ARB_bindless_texture", glGetVertexAttribLui64vARB },
-  { "glGetVertexAttribLui64vNV", "GL_NV_vertex_attrib_integer_64bit", glGetVertexAttribLui64vNV },
-  { "glGetVertexAttribPointerv", "GL_VERSION_2_0", glGetVertexAttribPointerv },
-  { "glGetVertexAttribPointervARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glGetVertexAttribPointervARB },
-  { "glGetVertexAttribPointervNV", "GL_NV_vertex_program", glGetVertexAttribPointervNV },
-  { "glGetVertexAttribdv", "GL_VERSION_2_0", glGetVertexAttribdv },
-  { "glGetVertexAttribdvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glGetVertexAttribdvARB },
-  { "glGetVertexAttribdvNV", "GL_NV_vertex_program", glGetVertexAttribdvNV },
-  { "glGetVertexAttribfv", "GL_VERSION_2_0", glGetVertexAttribfv },
-  { "glGetVertexAttribfvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glGetVertexAttribfvARB },
-  { "glGetVertexAttribfvNV", "GL_NV_vertex_program", glGetVertexAttribfvNV },
-  { "glGetVertexAttribiv", "GL_VERSION_2_0", glGetVertexAttribiv },
-  { "glGetVertexAttribivARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glGetVertexAttribivARB },
-  { "glGetVertexAttribivNV", "GL_NV_vertex_program", glGetVertexAttribivNV },
-  { "glGetVideoCaptureStreamdvNV", "GL_NV_video_capture", glGetVideoCaptureStreamdvNV },
-  { "glGetVideoCaptureStreamfvNV", "GL_NV_video_capture", glGetVideoCaptureStreamfvNV },
-  { "glGetVideoCaptureStreamivNV", "GL_NV_video_capture", glGetVideoCaptureStreamivNV },
-  { "glGetVideoCaptureivNV", "GL_NV_video_capture", glGetVideoCaptureivNV },
-  { "glGetVideoi64vNV", "GL_NV_present_video", glGetVideoi64vNV },
-  { "glGetVideoivNV", "GL_NV_present_video", glGetVideoivNV },
-  { "glGetVideoui64vNV", "GL_NV_present_video", glGetVideoui64vNV },
-  { "glGetVideouivNV", "GL_NV_present_video", glGetVideouivNV },
-  { "glGetVkProcAddrNV", "GL_NV_draw_vulkan_image", glGetVkProcAddrNV },
-  { "glGetnColorTable", "GL_VERSION_4_5", glGetnColorTable },
-  { "glGetnColorTableARB", "GL_ARB_robustness", glGetnColorTableARB },
-  { "glGetnCompressedTexImage", "GL_VERSION_4_5", glGetnCompressedTexImage },
-  { "glGetnCompressedTexImageARB", "GL_ARB_robustness", glGetnCompressedTexImageARB },
-  { "glGetnConvolutionFilter", "GL_VERSION_4_5", glGetnConvolutionFilter },
-  { "glGetnConvolutionFilterARB", "GL_ARB_robustness", glGetnConvolutionFilterARB },
-  { "glGetnHistogram", "GL_VERSION_4_5", glGetnHistogram },
-  { "glGetnHistogramARB", "GL_ARB_robustness", glGetnHistogramARB },
-  { "glGetnMapdv", "GL_VERSION_4_5", glGetnMapdv },
-  { "glGetnMapdvARB", "GL_ARB_robustness", glGetnMapdvARB },
-  { "glGetnMapfv", "GL_VERSION_4_5", glGetnMapfv },
-  { "glGetnMapfvARB", "GL_ARB_robustness", glGetnMapfvARB },
-  { "glGetnMapiv", "GL_VERSION_4_5", glGetnMapiv },
-  { "glGetnMapivARB", "GL_ARB_robustness", glGetnMapivARB },
-  { "glGetnMinmax", "GL_VERSION_4_5", glGetnMinmax },
-  { "glGetnMinmaxARB", "GL_ARB_robustness", glGetnMinmaxARB },
-  { "glGetnPixelMapfv", "GL_VERSION_4_5", glGetnPixelMapfv },
-  { "glGetnPixelMapfvARB", "GL_ARB_robustness", glGetnPixelMapfvARB },
-  { "glGetnPixelMapuiv", "GL_VERSION_4_5", glGetnPixelMapuiv },
-  { "glGetnPixelMapuivARB", "GL_ARB_robustness", glGetnPixelMapuivARB },
-  { "glGetnPixelMapusv", "GL_VERSION_4_5", glGetnPixelMapusv },
-  { "glGetnPixelMapusvARB", "GL_ARB_robustness", glGetnPixelMapusvARB },
-  { "glGetnPolygonStipple", "GL_VERSION_4_5", glGetnPolygonStipple },
-  { "glGetnPolygonStippleARB", "GL_ARB_robustness", glGetnPolygonStippleARB },
-  { "glGetnSeparableFilter", "GL_VERSION_4_5", glGetnSeparableFilter },
-  { "glGetnSeparableFilterARB", "GL_ARB_robustness", glGetnSeparableFilterARB },
-  { "glGetnTexImage", "GL_VERSION_4_5", glGetnTexImage },
-  { "glGetnTexImageARB", "GL_ARB_robustness", glGetnTexImageARB },
-  { "glGetnUniformdv", "GL_VERSION_4_5", glGetnUniformdv },
-  { "glGetnUniformdvARB", "GL_ARB_robustness", glGetnUniformdvARB },
-  { "glGetnUniformfv", "GL_KHR_robustness GL_VERSION_4_5", glGetnUniformfv },
-  { "glGetnUniformfvARB", "GL_ARB_robustness", glGetnUniformfvARB },
-  { "glGetnUniformi64vARB", "GL_ARB_gpu_shader_int64", glGetnUniformi64vARB },
-  { "glGetnUniformiv", "GL_KHR_robustness GL_VERSION_4_5", glGetnUniformiv },
-  { "glGetnUniformivARB", "GL_ARB_robustness", glGetnUniformivARB },
-  { "glGetnUniformui64vARB", "GL_ARB_gpu_shader_int64", glGetnUniformui64vARB },
-  { "glGetnUniformuiv", "GL_KHR_robustness GL_VERSION_4_5", glGetnUniformuiv },
-  { "glGetnUniformuivARB", "GL_ARB_robustness", glGetnUniformuivARB },
-  { "glGlobalAlphaFactorbSUN", "GL_SUN_global_alpha", glGlobalAlphaFactorbSUN },
-  { "glGlobalAlphaFactordSUN", "GL_SUN_global_alpha", glGlobalAlphaFactordSUN },
-  { "glGlobalAlphaFactorfSUN", "GL_SUN_global_alpha", glGlobalAlphaFactorfSUN },
-  { "glGlobalAlphaFactoriSUN", "GL_SUN_global_alpha", glGlobalAlphaFactoriSUN },
-  { "glGlobalAlphaFactorsSUN", "GL_SUN_global_alpha", glGlobalAlphaFactorsSUN },
-  { "glGlobalAlphaFactorubSUN", "GL_SUN_global_alpha", glGlobalAlphaFactorubSUN },
-  { "glGlobalAlphaFactoruiSUN", "GL_SUN_global_alpha", glGlobalAlphaFactoruiSUN },
-  { "glGlobalAlphaFactorusSUN", "GL_SUN_global_alpha", glGlobalAlphaFactorusSUN },
-  { "glHintPGI", "GL_PGI_misc_hints", glHintPGI },
-  { "glHistogram", "GL_ARB_imaging", glHistogram },
-  { "glHistogramEXT", "GL_EXT_histogram", glHistogramEXT },
-  { "glIglooInterfaceSGIX", "GL_SGIX_igloo_interface", glIglooInterfaceSGIX },
-  { "glImageTransformParameterfHP", "GL_HP_image_transform", glImageTransformParameterfHP },
-  { "glImageTransformParameterfvHP", "GL_HP_image_transform", glImageTransformParameterfvHP },
-  { "glImageTransformParameteriHP", "GL_HP_image_transform", glImageTransformParameteriHP },
-  { "glImageTransformParameterivHP", "GL_HP_image_transform", glImageTransformParameterivHP },
-  { "glImportMemoryFdEXT", "GL_EXT_memory_object_fd", glImportMemoryFdEXT },
-  { "glImportMemoryWin32HandleEXT", "GL_EXT_memory_object_win32", glImportMemoryWin32HandleEXT },
-  { "glImportMemoryWin32NameEXT", "GL_EXT_memory_object_win32", glImportMemoryWin32NameEXT },
-  { "glImportSemaphoreFdEXT", "GL_EXT_semaphore_fd", glImportSemaphoreFdEXT },
-  { "glImportSemaphoreWin32HandleEXT", "GL_EXT_semaphore_win32", glImportSemaphoreWin32HandleEXT },
-  { "glImportSemaphoreWin32NameEXT", "GL_EXT_semaphore_win32", glImportSemaphoreWin32NameEXT },
-  { "glImportSyncEXT", "GL_EXT_x11_sync_object", glImportSyncEXT },
-  { "glIndexFormatNV", "GL_NV_vertex_buffer_unified_memory", glIndexFormatNV },
-  { "glIndexFuncEXT", "GL_EXT_index_func", glIndexFuncEXT },
-  { "glIndexMaterialEXT", "GL_EXT_index_material", glIndexMaterialEXT },
-  { "glIndexPointerEXT", "GL_EXT_vertex_array", glIndexPointerEXT },
-  { "glIndexPointerListIBM", "GL_IBM_vertex_array_lists", glIndexPointerListIBM },
-  { "glIndexxOES", "GL_OES_fixed_point", glIndexxOES },
-  { "glIndexxvOES", "GL_OES_fixed_point", glIndexxvOES },
-  { "glInsertComponentEXT", "GL_EXT_vertex_shader", glInsertComponentEXT },
-  { "glInsertEventMarkerEXT", "GL_EXT_debug_marker", glInsertEventMarkerEXT },
-  { "glInstrumentsBufferSGIX", "GL_SGIX_instruments", glInstrumentsBufferSGIX },
-  { "glInterpolatePathsNV", "GL_NV_path_rendering", glInterpolatePathsNV },
-  { "glInvalidateBufferData", "GL_ARB_invalidate_subdata GL_VERSION_4_3", glInvalidateBufferData },
-  { "glInvalidateBufferSubData", "GL_ARB_invalidate_subdata GL_VERSION_4_3", glInvalidateBufferSubData },
-  { "glInvalidateFramebuffer", "GL_ARB_invalidate_subdata GL_VERSION_4_3", glInvalidateFramebuffer },
-  { "glInvalidateNamedFramebufferData", "GL_ARB_direct_state_access GL_VERSION_4_5", glInvalidateNamedFramebufferData },
-  { "glInvalidateNamedFramebufferSubData", "GL_ARB_direct_state_access GL_VERSION_4_5", glInvalidateNamedFramebufferSubData },
-  { "glInvalidateSubFramebuffer", "GL_ARB_invalidate_subdata GL_VERSION_4_3", glInvalidateSubFramebuffer },
-  { "glInvalidateTexImage", "GL_ARB_invalidate_subdata GL_VERSION_4_3", glInvalidateTexImage },
-  { "glInvalidateTexSubImage", "GL_ARB_invalidate_subdata GL_VERSION_4_3", glInvalidateTexSubImage },
-  { "glIsAsyncMarkerSGIX", "GL_SGIX_async", glIsAsyncMarkerSGIX },
-  { "glIsBuffer", "GL_VERSION_1_5", glIsBuffer },
-  { "glIsBufferARB", "GL_ARB_vertex_buffer_object", glIsBufferARB },
-  { "glIsBufferResidentNV", "GL_NV_shader_buffer_load", glIsBufferResidentNV },
-  { "glIsCommandListNV", "GL_NV_command_list", glIsCommandListNV },
-  { "glIsEnabledIndexedEXT", "GL_EXT_direct_state_access GL_EXT_draw_buffers2", glIsEnabledIndexedEXT },
-  { "glIsEnabledi", "GL_VERSION_3_0", glIsEnabledi },
-  { "glIsFenceAPPLE", "GL_APPLE_fence", glIsFenceAPPLE },
-  { "glIsFenceNV", "GL_NV_fence", glIsFenceNV },
-  { "glIsFramebuffer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glIsFramebuffer },
-  { "glIsFramebufferEXT", "GL_EXT_framebuffer_object", glIsFramebufferEXT },
-  { "glIsImageHandleResidentARB", "GL_ARB_bindless_texture", glIsImageHandleResidentARB },
-  { "glIsImageHandleResidentNV", "GL_NV_bindless_texture", glIsImageHandleResidentNV },
-  { "glIsMemoryObjectEXT", "GL_EXT_memory_object", glIsMemoryObjectEXT },
-  { "glIsNameAMD", "GL_AMD_name_gen_delete", glIsNameAMD },
-  { "glIsNamedBufferResidentNV", "GL_NV_shader_buffer_load", glIsNamedBufferResidentNV },
-  { "glIsNamedStringARB", "GL_ARB_shading_language_include", glIsNamedStringARB },
-  { "glIsObjectBufferATI", "GL_ATI_vertex_array_object", glIsObjectBufferATI },
-  { "glIsOcclusionQueryNV", "GL_NV_occlusion_query", glIsOcclusionQueryNV },
-  { "glIsPathNV", "GL_NV_path_rendering", glIsPathNV },
-  { "glIsPointInFillPathNV", "GL_NV_path_rendering", glIsPointInFillPathNV },
-  { "glIsPointInStrokePathNV", "GL_NV_path_rendering", glIsPointInStrokePathNV },
-  { "glIsProgram", "GL_VERSION_2_0", glIsProgram },
-  { "glIsProgramARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glIsProgramARB },
-  { "glIsProgramNV", "GL_NV_vertex_program", glIsProgramNV },
-  { "glIsProgramPipeline", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glIsProgramPipeline },
-  { "glIsQuery", "GL_VERSION_1_5", glIsQuery },
-  { "glIsQueryARB", "GL_ARB_occlusion_query", glIsQueryARB },
-  { "glIsRenderbuffer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glIsRenderbuffer },
-  { "glIsRenderbufferEXT", "GL_EXT_framebuffer_object", glIsRenderbufferEXT },
-  { "glIsSampler", "GL_ARB_sampler_objects GL_VERSION_3_3", glIsSampler },
-  { "glIsSemaphoreEXT", "GL_EXT_semaphore", glIsSemaphoreEXT },
-  { "glIsShader", "GL_VERSION_2_0", glIsShader },
-  { "glIsStateNV", "GL_NV_command_list", glIsStateNV },
-  { "glIsSync", "GL_ARB_sync GL_VERSION_3_2", glIsSync },
-  { "glIsTextureEXT", "GL_EXT_texture_object", glIsTextureEXT },
-  { "glIsTextureHandleResidentARB", "GL_ARB_bindless_texture", glIsTextureHandleResidentARB },
-  { "glIsTextureHandleResidentNV", "GL_NV_bindless_texture", glIsTextureHandleResidentNV },
-  { "glIsTransformFeedback", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glIsTransformFeedback },
-  { "glIsTransformFeedbackNV", "GL_NV_transform_feedback2", glIsTransformFeedbackNV },
-  { "glIsVariantEnabledEXT", "GL_EXT_vertex_shader", glIsVariantEnabledEXT },
-  { "glIsVertexArray", "GL_ARB_vertex_array_object GL_VERSION_3_0", glIsVertexArray },
-  { "glIsVertexArrayAPPLE", "GL_APPLE_vertex_array_object", glIsVertexArrayAPPLE },
-  { "glIsVertexAttribEnabledAPPLE", "GL_APPLE_vertex_program_evaluators", glIsVertexAttribEnabledAPPLE },
-  { "glLGPUCopyImageSubDataNVX", "GL_NVX_linked_gpu_multicast", glLGPUCopyImageSubDataNVX },
-  { "glLGPUInterlockNVX", "GL_NVX_linked_gpu_multicast", glLGPUInterlockNVX },
-  { "glLGPUNamedBufferSubDataNVX", "GL_NVX_linked_gpu_multicast", glLGPUNamedBufferSubDataNVX },
-  { "glLabelObjectEXT", "GL_EXT_debug_label", glLabelObjectEXT },
-  { "glLightEnviSGIX", "GL_SGIX_fragment_lighting", glLightEnviSGIX },
-  { "glLightModelxOES", "GL_OES_fixed_point", glLightModelxOES },
-  { "glLightModelxvOES", "GL_OES_fixed_point", glLightModelxvOES },
-  { "glLightxOES", "GL_OES_fixed_point", glLightxOES },
-  { "glLightxvOES", "GL_OES_fixed_point", glLightxvOES },
-  { "glLineWidthxOES", "GL_OES_fixed_point", glLineWidthxOES },
-  { "glLinkProgram", "GL_VERSION_2_0", glLinkProgram },
-  { "glLinkProgramARB", "GL_ARB_shader_objects", glLinkProgramARB },
-  { "glListDrawCommandsStatesClientNV", "GL_NV_command_list", glListDrawCommandsStatesClientNV },
-  { "glListParameterfSGIX", "GL_SGIX_list_priority", glListParameterfSGIX },
-  { "glListParameterfvSGIX", "GL_SGIX_list_priority", glListParameterfvSGIX },
-  { "glListParameteriSGIX", "GL_SGIX_list_priority", glListParameteriSGIX },
-  { "glListParameterivSGIX", "GL_SGIX_list_priority", glListParameterivSGIX },
-  { "glLoadIdentityDeformationMapSGIX", "GL_SGIX_polynomial_ffd", glLoadIdentityDeformationMapSGIX },
-  { "glLoadMatrixxOES", "GL_OES_fixed_point", glLoadMatrixxOES },
-  { "glLoadProgramNV", "GL_NV_vertex_program", glLoadProgramNV },
-  { "glLoadTransposeMatrixd", "GL_VERSION_1_3", glLoadTransposeMatrixd },
-  { "glLoadTransposeMatrixdARB", "GL_ARB_transpose_matrix", glLoadTransposeMatrixdARB },
-  { "glLoadTransposeMatrixf", "GL_VERSION_1_3", glLoadTransposeMatrixf },
-  { "glLoadTransposeMatrixfARB", "GL_ARB_transpose_matrix", glLoadTransposeMatrixfARB },
-  { "glLoadTransposeMatrixxOES", "GL_OES_fixed_point", glLoadTransposeMatrixxOES },
-  { "glLockArraysEXT", "GL_EXT_compiled_vertex_array", glLockArraysEXT },
-  { "glMTexCoord2fSGIS", "GL_SGIS_multitexture", glMTexCoord2fSGIS },
-  { "glMTexCoord2fvSGIS", "GL_SGIS_multitexture", glMTexCoord2fvSGIS },
-  { "glMakeBufferNonResidentNV", "GL_NV_shader_buffer_load", glMakeBufferNonResidentNV },
-  { "glMakeBufferResidentNV", "GL_NV_shader_buffer_load", glMakeBufferResidentNV },
-  { "glMakeImageHandleNonResidentARB", "GL_ARB_bindless_texture", glMakeImageHandleNonResidentARB },
-  { "glMakeImageHandleNonResidentNV", "GL_NV_bindless_texture", glMakeImageHandleNonResidentNV },
-  { "glMakeImageHandleResidentARB", "GL_ARB_bindless_texture", glMakeImageHandleResidentARB },
-  { "glMakeImageHandleResidentNV", "GL_NV_bindless_texture", glMakeImageHandleResidentNV },
-  { "glMakeNamedBufferNonResidentNV", "GL_NV_shader_buffer_load", glMakeNamedBufferNonResidentNV },
-  { "glMakeNamedBufferResidentNV", "GL_NV_shader_buffer_load", glMakeNamedBufferResidentNV },
-  { "glMakeTextureHandleNonResidentARB", "GL_ARB_bindless_texture", glMakeTextureHandleNonResidentARB },
-  { "glMakeTextureHandleNonResidentNV", "GL_NV_bindless_texture", glMakeTextureHandleNonResidentNV },
-  { "glMakeTextureHandleResidentARB", "GL_ARB_bindless_texture", glMakeTextureHandleResidentARB },
-  { "glMakeTextureHandleResidentNV", "GL_NV_bindless_texture", glMakeTextureHandleResidentNV },
-  { "glMap1xOES", "GL_OES_fixed_point", glMap1xOES },
-  { "glMap2xOES", "GL_OES_fixed_point", glMap2xOES },
-  { "glMapBuffer", "GL_VERSION_1_5", glMapBuffer },
-  { "glMapBufferARB", "GL_ARB_vertex_buffer_object", glMapBufferARB },
-  { "glMapBufferRange", "GL_ARB_map_buffer_range GL_VERSION_3_0", glMapBufferRange },
-  { "glMapControlPointsNV", "GL_NV_evaluators", glMapControlPointsNV },
-  { "glMapGrid1xOES", "GL_OES_fixed_point", glMapGrid1xOES },
-  { "glMapGrid2xOES", "GL_OES_fixed_point", glMapGrid2xOES },
-  { "glMapNamedBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glMapNamedBuffer },
-  { "glMapNamedBufferEXT", "GL_EXT_direct_state_access", glMapNamedBufferEXT },
-  { "glMapNamedBufferRange", "GL_ARB_direct_state_access GL_VERSION_4_5", glMapNamedBufferRange },
-  { "glMapNamedBufferRangeEXT", "GL_EXT_direct_state_access", glMapNamedBufferRangeEXT },
-  { "glMapObjectBufferATI", "GL_ATI_map_object_buffer", glMapObjectBufferATI },
-  { "glMapParameterfvNV", "GL_NV_evaluators", glMapParameterfvNV },
-  { "glMapParameterivNV", "GL_NV_evaluators", glMapParameterivNV },
-  { "glMapTexture2DINTEL", "GL_INTEL_map_texture", glMapTexture2DINTEL },
-  { "glMapVertexAttrib1dAPPLE", "GL_APPLE_vertex_program_evaluators", glMapVertexAttrib1dAPPLE },
-  { "glMapVertexAttrib1fAPPLE", "GL_APPLE_vertex_program_evaluators", glMapVertexAttrib1fAPPLE },
-  { "glMapVertexAttrib2dAPPLE", "GL_APPLE_vertex_program_evaluators", glMapVertexAttrib2dAPPLE },
-  { "glMapVertexAttrib2fAPPLE", "GL_APPLE_vertex_program_evaluators", glMapVertexAttrib2fAPPLE },
-  { "glMaterialxOES", "GL_OES_fixed_point", glMaterialxOES },
-  { "glMaterialxvOES", "GL_OES_fixed_point", glMaterialxvOES },
-  { "glMatrixFrustumEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixFrustumEXT },
-  { "glMatrixIndexPointerARB", "GL_ARB_matrix_palette", glMatrixIndexPointerARB },
-  { "glMatrixIndexubvARB", "GL_ARB_matrix_palette", glMatrixIndexubvARB },
-  { "glMatrixIndexuivARB", "GL_ARB_matrix_palette", glMatrixIndexuivARB },
-  { "glMatrixIndexusvARB", "GL_ARB_matrix_palette", glMatrixIndexusvARB },
-  { "glMatrixLoad3x2fNV", "GL_NV_path_rendering", glMatrixLoad3x2fNV },
-  { "glMatrixLoad3x3fNV", "GL_NV_path_rendering", glMatrixLoad3x3fNV },
-  { "glMatrixLoadIdentityEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixLoadIdentityEXT },
-  { "glMatrixLoadTranspose3x3fNV", "GL_NV_path_rendering", glMatrixLoadTranspose3x3fNV },
-  { "glMatrixLoadTransposedEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixLoadTransposedEXT },
-  { "glMatrixLoadTransposefEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixLoadTransposefEXT },
-  { "glMatrixLoaddEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixLoaddEXT },
-  { "glMatrixLoadfEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixLoadfEXT },
-  { "glMatrixMult3x2fNV", "GL_NV_path_rendering", glMatrixMult3x2fNV },
-  { "glMatrixMult3x3fNV", "GL_NV_path_rendering", glMatrixMult3x3fNV },
-  { "glMatrixMultTranspose3x3fNV", "GL_NV_path_rendering", glMatrixMultTranspose3x3fNV },
-  { "glMatrixMultTransposedEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixMultTransposedEXT },
-  { "glMatrixMultTransposefEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixMultTransposefEXT },
-  { "glMatrixMultdEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixMultdEXT },
-  { "glMatrixMultfEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixMultfEXT },
-  { "glMatrixOrthoEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixOrthoEXT },
-  { "glMatrixPopEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixPopEXT },
-  { "glMatrixPushEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixPushEXT },
-  { "glMatrixRotatedEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixRotatedEXT },
-  { "glMatrixRotatefEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixRotatefEXT },
-  { "glMatrixScaledEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixScaledEXT },
-  { "glMatrixScalefEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixScalefEXT },
-  { "glMatrixTranslatedEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixTranslatedEXT },
-  { "glMatrixTranslatefEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixTranslatefEXT },
-  { "glMaxShaderCompilerThreadsARB", "GL_ARB_parallel_shader_compile", glMaxShaderCompilerThreadsARB },
-  { "glMaxShaderCompilerThreadsKHR", "GL_KHR_parallel_shader_compile", glMaxShaderCompilerThreadsKHR },
-  { "glMemoryBarrier", "GL_ARB_shader_image_load_store GL_VERSION_4_2", glMemoryBarrier },
-  { "glMemoryBarrierByRegion", "GL_ARB_ES3_1_compatibility GL_VERSION_4_5", glMemoryBarrierByRegion },
-  { "glMemoryBarrierEXT", "GL_EXT_shader_image_load_store", glMemoryBarrierEXT },
-  { "glMemoryObjectParameterivEXT", "GL_EXT_memory_object", glMemoryObjectParameterivEXT },
-  { "glMinSampleShading", "GL_VERSION_4_0", glMinSampleShading },
-  { "glMinSampleShadingARB", "GL_ARB_sample_shading", glMinSampleShadingARB },
-  { "glMinmax", "GL_ARB_imaging", glMinmax },
-  { "glMinmaxEXT", "GL_EXT_histogram", glMinmaxEXT },
-  { "glMultMatrixxOES", "GL_OES_fixed_point", glMultMatrixxOES },
-  { "glMultTransposeMatrixd", "GL_VERSION_1_3", glMultTransposeMatrixd },
-  { "glMultTransposeMatrixdARB", "GL_ARB_transpose_matrix", glMultTransposeMatrixdARB },
-  { "glMultTransposeMatrixf", "GL_VERSION_1_3", glMultTransposeMatrixf },
-  { "glMultTransposeMatrixfARB", "GL_ARB_transpose_matrix", glMultTransposeMatrixfARB },
-  { "glMultTransposeMatrixxOES", "GL_OES_fixed_point", glMultTransposeMatrixxOES },
-  { "glMultiDrawArrays", "GL_VERSION_1_4", glMultiDrawArrays },
-  { "glMultiDrawArraysEXT", "GL_EXT_multi_draw_arrays", glMultiDrawArraysEXT },
-  { "glMultiDrawArraysIndirect", "GL_ARB_multi_draw_indirect GL_VERSION_4_3", glMultiDrawArraysIndirect },
-  { "glMultiDrawArraysIndirectAMD", "GL_AMD_multi_draw_indirect", glMultiDrawArraysIndirectAMD },
-  { "glMultiDrawArraysIndirectBindlessCountNV", "GL_NV_bindless_multi_draw_indirect_count", glMultiDrawArraysIndirectBindlessCountNV },
-  { "glMultiDrawArraysIndirectBindlessNV", "GL_NV_bindless_multi_draw_indirect", glMultiDrawArraysIndirectBindlessNV },
-  { "glMultiDrawArraysIndirectCount", "GL_VERSION_4_6", glMultiDrawArraysIndirectCount },
-  { "glMultiDrawArraysIndirectCountARB", "GL_ARB_indirect_parameters", glMultiDrawArraysIndirectCountARB },
-  { "glMultiDrawElementArrayAPPLE", "GL_APPLE_element_array", glMultiDrawElementArrayAPPLE },
-  { "glMultiDrawElements", "GL_VERSION_1_4", glMultiDrawElements },
-  { "glMultiDrawElementsBaseVertex", "GL_ARB_draw_elements_base_vertex GL_VERSION_3_2", glMultiDrawElementsBaseVertex },
-  { "glMultiDrawElementsEXT", "GL_EXT_multi_draw_arrays", glMultiDrawElementsEXT },
-  { "glMultiDrawElementsIndirect", "GL_ARB_multi_draw_indirect GL_VERSION_4_3", glMultiDrawElementsIndirect },
-  { "glMultiDrawElementsIndirectAMD", "GL_AMD_multi_draw_indirect", glMultiDrawElementsIndirectAMD },
-  { "glMultiDrawElementsIndirectBindlessCountNV", "GL_NV_bindless_multi_draw_indirect_count", glMultiDrawElementsIndirectBindlessCountNV },
-  { "glMultiDrawElementsIndirectBindlessNV", "GL_NV_bindless_multi_draw_indirect", glMultiDrawElementsIndirectBindlessNV },
-  { "glMultiDrawElementsIndirectCount", "GL_VERSION_4_6", glMultiDrawElementsIndirectCount },
-  { "glMultiDrawElementsIndirectCountARB", "GL_ARB_indirect_parameters", glMultiDrawElementsIndirectCountARB },
-  { "glMultiDrawMeshTasksIndirectCountNV", "GL_NV_mesh_shader", glMultiDrawMeshTasksIndirectCountNV },
-  { "glMultiDrawMeshTasksIndirectNV", "GL_NV_mesh_shader", glMultiDrawMeshTasksIndirectNV },
-  { "glMultiDrawRangeElementArrayAPPLE", "GL_APPLE_element_array", glMultiDrawRangeElementArrayAPPLE },
-  { "glMultiModeDrawArraysIBM", "GL_IBM_multimode_draw_arrays", glMultiModeDrawArraysIBM },
-  { "glMultiModeDrawElementsIBM", "GL_IBM_multimode_draw_arrays", glMultiModeDrawElementsIBM },
-  { "glMultiTexBufferEXT", "GL_EXT_direct_state_access", glMultiTexBufferEXT },
-  { "glMultiTexCoord1bOES", "GL_OES_byte_coordinates", glMultiTexCoord1bOES },
-  { "glMultiTexCoord1bvOES", "GL_OES_byte_coordinates", glMultiTexCoord1bvOES },
-  { "glMultiTexCoord1d", "GL_VERSION_1_3", glMultiTexCoord1d },
-  { "glMultiTexCoord1dARB", "GL_ARB_multitexture", glMultiTexCoord1dARB },
-  { "glMultiTexCoord1dSGIS", "GL_SGIS_multitexture", glMultiTexCoord1dSGIS },
-  { "glMultiTexCoord1dv", "GL_VERSION_1_3", glMultiTexCoord1dv },
-  { "glMultiTexCoord1dvARB", "GL_ARB_multitexture", glMultiTexCoord1dvARB },
-  { "glMultiTexCoord1dvSGIS", "GL_SGIS_multitexture", glMultiTexCoord1dvSGIS },
-  { "glMultiTexCoord1f", "GL_VERSION_1_3", glMultiTexCoord1f },
-  { "glMultiTexCoord1fARB", "GL_ARB_multitexture", glMultiTexCoord1fARB },
-  { "glMultiTexCoord1fSGIS", "GL_SGIS_multitexture", glMultiTexCoord1fSGIS },
-  { "glMultiTexCoord1fv", "GL_VERSION_1_3", glMultiTexCoord1fv },
-  { "glMultiTexCoord1fvARB", "GL_ARB_multitexture", glMultiTexCoord1fvARB },
-  { "glMultiTexCoord1fvSGIS", "GL_SGIS_multitexture", glMultiTexCoord1fvSGIS },
-  { "glMultiTexCoord1hNV", "GL_NV_half_float", glMultiTexCoord1hNV },
-  { "glMultiTexCoord1hvNV", "GL_NV_half_float", glMultiTexCoord1hvNV },
-  { "glMultiTexCoord1i", "GL_VERSION_1_3", glMultiTexCoord1i },
-  { "glMultiTexCoord1iARB", "GL_ARB_multitexture", glMultiTexCoord1iARB },
-  { "glMultiTexCoord1iSGIS", "GL_SGIS_multitexture", glMultiTexCoord1iSGIS },
-  { "glMultiTexCoord1iv", "GL_VERSION_1_3", glMultiTexCoord1iv },
-  { "glMultiTexCoord1ivARB", "GL_ARB_multitexture", glMultiTexCoord1ivARB },
-  { "glMultiTexCoord1ivSGIS", "GL_SGIS_multitexture", glMultiTexCoord1ivSGIS },
-  { "glMultiTexCoord1s", "GL_VERSION_1_3", glMultiTexCoord1s },
-  { "glMultiTexCoord1sARB", "GL_ARB_multitexture", glMultiTexCoord1sARB },
-  { "glMultiTexCoord1sSGIS", "GL_SGIS_multitexture", glMultiTexCoord1sSGIS },
-  { "glMultiTexCoord1sv", "GL_VERSION_1_3", glMultiTexCoord1sv },
-  { "glMultiTexCoord1svARB", "GL_ARB_multitexture", glMultiTexCoord1svARB },
-  { "glMultiTexCoord1svSGIS", "GL_SGIS_multitexture", glMultiTexCoord1svSGIS },
-  { "glMultiTexCoord1xOES", "GL_OES_fixed_point", glMultiTexCoord1xOES },
-  { "glMultiTexCoord1xvOES", "GL_OES_fixed_point", glMultiTexCoord1xvOES },
-  { "glMultiTexCoord2bOES", "GL_OES_byte_coordinates", glMultiTexCoord2bOES },
-  { "glMultiTexCoord2bvOES", "GL_OES_byte_coordinates", glMultiTexCoord2bvOES },
-  { "glMultiTexCoord2d", "GL_VERSION_1_3", glMultiTexCoord2d },
-  { "glMultiTexCoord2dARB", "GL_ARB_multitexture", glMultiTexCoord2dARB },
-  { "glMultiTexCoord2dSGIS", "GL_SGIS_multitexture", glMultiTexCoord2dSGIS },
-  { "glMultiTexCoord2dv", "GL_VERSION_1_3", glMultiTexCoord2dv },
-  { "glMultiTexCoord2dvARB", "GL_ARB_multitexture", glMultiTexCoord2dvARB },
-  { "glMultiTexCoord2dvSGIS", "GL_SGIS_multitexture", glMultiTexCoord2dvSGIS },
-  { "glMultiTexCoord2f", "GL_VERSION_1_3", glMultiTexCoord2f },
-  { "glMultiTexCoord2fARB", "GL_ARB_multitexture", glMultiTexCoord2fARB },
-  { "glMultiTexCoord2fSGIS", "GL_SGIS_multitexture", glMultiTexCoord2fSGIS },
-  { "glMultiTexCoord2fv", "GL_VERSION_1_3", glMultiTexCoord2fv },
-  { "glMultiTexCoord2fvARB", "GL_ARB_multitexture", glMultiTexCoord2fvARB },
-  { "glMultiTexCoord2fvSGIS", "GL_SGIS_multitexture", glMultiTexCoord2fvSGIS },
-  { "glMultiTexCoord2hNV", "GL_NV_half_float", glMultiTexCoord2hNV },
-  { "glMultiTexCoord2hvNV", "GL_NV_half_float", glMultiTexCoord2hvNV },
-  { "glMultiTexCoord2i", "GL_VERSION_1_3", glMultiTexCoord2i },
-  { "glMultiTexCoord2iARB", "GL_ARB_multitexture", glMultiTexCoord2iARB },
-  { "glMultiTexCoord2iSGIS", "GL_SGIS_multitexture", glMultiTexCoord2iSGIS },
-  { "glMultiTexCoord2iv", "GL_VERSION_1_3", glMultiTexCoord2iv },
-  { "glMultiTexCoord2ivARB", "GL_ARB_multitexture", glMultiTexCoord2ivARB },
-  { "glMultiTexCoord2ivSGIS", "GL_SGIS_multitexture", glMultiTexCoord2ivSGIS },
-  { "glMultiTexCoord2s", "GL_VERSION_1_3", glMultiTexCoord2s },
-  { "glMultiTexCoord2sARB", "GL_ARB_multitexture", glMultiTexCoord2sARB },
-  { "glMultiTexCoord2sSGIS", "GL_SGIS_multitexture", glMultiTexCoord2sSGIS },
-  { "glMultiTexCoord2sv", "GL_VERSION_1_3", glMultiTexCoord2sv },
-  { "glMultiTexCoord2svARB", "GL_ARB_multitexture", glMultiTexCoord2svARB },
-  { "glMultiTexCoord2svSGIS", "GL_SGIS_multitexture", glMultiTexCoord2svSGIS },
-  { "glMultiTexCoord2xOES", "GL_OES_fixed_point", glMultiTexCoord2xOES },
-  { "glMultiTexCoord2xvOES", "GL_OES_fixed_point", glMultiTexCoord2xvOES },
-  { "glMultiTexCoord3bOES", "GL_OES_byte_coordinates", glMultiTexCoord3bOES },
-  { "glMultiTexCoord3bvOES", "GL_OES_byte_coordinates", glMultiTexCoord3bvOES },
-  { "glMultiTexCoord3d", "GL_VERSION_1_3", glMultiTexCoord3d },
-  { "glMultiTexCoord3dARB", "GL_ARB_multitexture", glMultiTexCoord3dARB },
-  { "glMultiTexCoord3dSGIS", "GL_SGIS_multitexture", glMultiTexCoord3dSGIS },
-  { "glMultiTexCoord3dv", "GL_VERSION_1_3", glMultiTexCoord3dv },
-  { "glMultiTexCoord3dvARB", "GL_ARB_multitexture", glMultiTexCoord3dvARB },
-  { "glMultiTexCoord3dvSGIS", "GL_SGIS_multitexture", glMultiTexCoord3dvSGIS },
-  { "glMultiTexCoord3f", "GL_VERSION_1_3", glMultiTexCoord3f },
-  { "glMultiTexCoord3fARB", "GL_ARB_multitexture", glMultiTexCoord3fARB },
-  { "glMultiTexCoord3fSGIS", "GL_SGIS_multitexture", glMultiTexCoord3fSGIS },
-  { "glMultiTexCoord3fv", "GL_VERSION_1_3", glMultiTexCoord3fv },
-  { "glMultiTexCoord3fvARB", "GL_ARB_multitexture", glMultiTexCoord3fvARB },
-  { "glMultiTexCoord3fvSGIS", "GL_SGIS_multitexture", glMultiTexCoord3fvSGIS },
-  { "glMultiTexCoord3hNV", "GL_NV_half_float", glMultiTexCoord3hNV },
-  { "glMultiTexCoord3hvNV", "GL_NV_half_float", glMultiTexCoord3hvNV },
-  { "glMultiTexCoord3i", "GL_VERSION_1_3", glMultiTexCoord3i },
-  { "glMultiTexCoord3iARB", "GL_ARB_multitexture", glMultiTexCoord3iARB },
-  { "glMultiTexCoord3iSGIS", "GL_SGIS_multitexture", glMultiTexCoord3iSGIS },
-  { "glMultiTexCoord3iv", "GL_VERSION_1_3", glMultiTexCoord3iv },
-  { "glMultiTexCoord3ivARB", "GL_ARB_multitexture", glMultiTexCoord3ivARB },
-  { "glMultiTexCoord3ivSGIS", "GL_SGIS_multitexture", glMultiTexCoord3ivSGIS },
-  { "glMultiTexCoord3s", "GL_VERSION_1_3", glMultiTexCoord3s },
-  { "glMultiTexCoord3sARB", "GL_ARB_multitexture", glMultiTexCoord3sARB },
-  { "glMultiTexCoord3sSGIS", "GL_SGIS_multitexture", glMultiTexCoord3sSGIS },
-  { "glMultiTexCoord3sv", "GL_VERSION_1_3", glMultiTexCoord3sv },
-  { "glMultiTexCoord3svARB", "GL_ARB_multitexture", glMultiTexCoord3svARB },
-  { "glMultiTexCoord3svSGIS", "GL_SGIS_multitexture", glMultiTexCoord3svSGIS },
-  { "glMultiTexCoord3xOES", "GL_OES_fixed_point", glMultiTexCoord3xOES },
-  { "glMultiTexCoord3xvOES", "GL_OES_fixed_point", glMultiTexCoord3xvOES },
-  { "glMultiTexCoord4bOES", "GL_OES_byte_coordinates", glMultiTexCoord4bOES },
-  { "glMultiTexCoord4bvOES", "GL_OES_byte_coordinates", glMultiTexCoord4bvOES },
-  { "glMultiTexCoord4d", "GL_VERSION_1_3", glMultiTexCoord4d },
-  { "glMultiTexCoord4dARB", "GL_ARB_multitexture", glMultiTexCoord4dARB },
-  { "glMultiTexCoord4dSGIS", "GL_SGIS_multitexture", glMultiTexCoord4dSGIS },
-  { "glMultiTexCoord4dv", "GL_VERSION_1_3", glMultiTexCoord4dv },
-  { "glMultiTexCoord4dvARB", "GL_ARB_multitexture", glMultiTexCoord4dvARB },
-  { "glMultiTexCoord4dvSGIS", "GL_SGIS_multitexture", glMultiTexCoord4dvSGIS },
-  { "glMultiTexCoord4f", "GL_VERSION_1_3", glMultiTexCoord4f },
-  { "glMultiTexCoord4fARB", "GL_ARB_multitexture", glMultiTexCoord4fARB },
-  { "glMultiTexCoord4fSGIS", "GL_SGIS_multitexture", glMultiTexCoord4fSGIS },
-  { "glMultiTexCoord4fv", "GL_VERSION_1_3", glMultiTexCoord4fv },
-  { "glMultiTexCoord4fvARB", "GL_ARB_multitexture", glMultiTexCoord4fvARB },
-  { "glMultiTexCoord4fvSGIS", "GL_SGIS_multitexture", glMultiTexCoord4fvSGIS },
-  { "glMultiTexCoord4hNV", "GL_NV_half_float", glMultiTexCoord4hNV },
-  { "glMultiTexCoord4hvNV", "GL_NV_half_float", glMultiTexCoord4hvNV },
-  { "glMultiTexCoord4i", "GL_VERSION_1_3", glMultiTexCoord4i },
-  { "glMultiTexCoord4iARB", "GL_ARB_multitexture", glMultiTexCoord4iARB },
-  { "glMultiTexCoord4iSGIS", "GL_SGIS_multitexture", glMultiTexCoord4iSGIS },
-  { "glMultiTexCoord4iv", "GL_VERSION_1_3", glMultiTexCoord4iv },
-  { "glMultiTexCoord4ivARB", "GL_ARB_multitexture", glMultiTexCoord4ivARB },
-  { "glMultiTexCoord4ivSGIS", "GL_SGIS_multitexture", glMultiTexCoord4ivSGIS },
-  { "glMultiTexCoord4s", "GL_VERSION_1_3", glMultiTexCoord4s },
-  { "glMultiTexCoord4sARB", "GL_ARB_multitexture", glMultiTexCoord4sARB },
-  { "glMultiTexCoord4sSGIS", "GL_SGIS_multitexture", glMultiTexCoord4sSGIS },
-  { "glMultiTexCoord4sv", "GL_VERSION_1_3", glMultiTexCoord4sv },
-  { "glMultiTexCoord4svARB", "GL_ARB_multitexture", glMultiTexCoord4svARB },
-  { "glMultiTexCoord4svSGIS", "GL_SGIS_multitexture", glMultiTexCoord4svSGIS },
-  { "glMultiTexCoord4xOES", "GL_OES_fixed_point", glMultiTexCoord4xOES },
-  { "glMultiTexCoord4xvOES", "GL_OES_fixed_point", glMultiTexCoord4xvOES },
-  { "glMultiTexCoordP1ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP1ui },
-  { "glMultiTexCoordP1uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP1uiv },
-  { "glMultiTexCoordP2ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP2ui },
-  { "glMultiTexCoordP2uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP2uiv },
-  { "glMultiTexCoordP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP3ui },
-  { "glMultiTexCoordP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP3uiv },
-  { "glMultiTexCoordP4ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP4ui },
-  { "glMultiTexCoordP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP4uiv },
-  { "glMultiTexCoordPointerEXT", "GL_EXT_direct_state_access", glMultiTexCoordPointerEXT },
-  { "glMultiTexCoordPointerSGIS", "GL_SGIS_multitexture", glMultiTexCoordPointerSGIS },
-  { "glMultiTexEnvfEXT", "GL_EXT_direct_state_access", glMultiTexEnvfEXT },
-  { "glMultiTexEnvfvEXT", "GL_EXT_direct_state_access", glMultiTexEnvfvEXT },
-  { "glMultiTexEnviEXT", "GL_EXT_direct_state_access", glMultiTexEnviEXT },
-  { "glMultiTexEnvivEXT", "GL_EXT_direct_state_access", glMultiTexEnvivEXT },
-  { "glMultiTexGendEXT", "GL_EXT_direct_state_access", glMultiTexGendEXT },
-  { "glMultiTexGendvEXT", "GL_EXT_direct_state_access", glMultiTexGendvEXT },
-  { "glMultiTexGenfEXT", "GL_EXT_direct_state_access", glMultiTexGenfEXT },
-  { "glMultiTexGenfvEXT", "GL_EXT_direct_state_access", glMultiTexGenfvEXT },
-  { "glMultiTexGeniEXT", "GL_EXT_direct_state_access", glMultiTexGeniEXT },
-  { "glMultiTexGenivEXT", "GL_EXT_direct_state_access", glMultiTexGenivEXT },
-  { "glMultiTexImage1DEXT", "GL_EXT_direct_state_access", glMultiTexImage1DEXT },
-  { "glMultiTexImage2DEXT", "GL_EXT_direct_state_access", glMultiTexImage2DEXT },
-  { "glMultiTexImage3DEXT", "GL_EXT_direct_state_access", glMultiTexImage3DEXT },
-  { "glMultiTexParameterIivEXT", "GL_EXT_direct_state_access", glMultiTexParameterIivEXT },
-  { "glMultiTexParameterIuivEXT", "GL_EXT_direct_state_access", glMultiTexParameterIuivEXT },
-  { "glMultiTexParameterfEXT", "GL_EXT_direct_state_access", glMultiTexParameterfEXT },
-  { "glMultiTexParameterfvEXT", "GL_EXT_direct_state_access", glMultiTexParameterfvEXT },
-  { "glMultiTexParameteriEXT", "GL_EXT_direct_state_access", glMultiTexParameteriEXT },
-  { "glMultiTexParameterivEXT", "GL_EXT_direct_state_access", glMultiTexParameterivEXT },
-  { "glMultiTexRenderbufferEXT", "GL_EXT_direct_state_access", glMultiTexRenderbufferEXT },
-  { "glMultiTexSubImage1DEXT", "GL_EXT_direct_state_access", glMultiTexSubImage1DEXT },
-  { "glMultiTexSubImage2DEXT", "GL_EXT_direct_state_access", glMultiTexSubImage2DEXT },
-  { "glMultiTexSubImage3DEXT", "GL_EXT_direct_state_access", glMultiTexSubImage3DEXT },
-  { "glMulticastBarrierNV", "GL_NV_gpu_multicast", glMulticastBarrierNV },
-  { "glMulticastBlitFramebufferNV", "GL_NV_gpu_multicast", glMulticastBlitFramebufferNV },
-  { "glMulticastBufferSubDataNV", "GL_NV_gpu_multicast", glMulticastBufferSubDataNV },
-  { "glMulticastCopyBufferSubDataNV", "GL_NV_gpu_multicast", glMulticastCopyBufferSubDataNV },
-  { "glMulticastCopyImageSubDataNV", "GL_NV_gpu_multicast", glMulticastCopyImageSubDataNV },
-  { "glMulticastFramebufferSampleLocationsfvNV", "GL_NV_gpu_multicast", glMulticastFramebufferSampleLocationsfvNV },
-  { "glMulticastGetQueryObjecti64vNV", "GL_NV_gpu_multicast", glMulticastGetQueryObjecti64vNV },
-  { "glMulticastGetQueryObjectivNV", "GL_NV_gpu_multicast", glMulticastGetQueryObjectivNV },
-  { "glMulticastGetQueryObjectui64vNV", "GL_NV_gpu_multicast", glMulticastGetQueryObjectui64vNV },
-  { "glMulticastGetQueryObjectuivNV", "GL_NV_gpu_multicast", glMulticastGetQueryObjectuivNV },
-  { "glMulticastScissorArrayvNVX", "GL_NVX_gpu_multicast2", glMulticastScissorArrayvNVX },
-  { "glMulticastViewportArrayvNVX", "GL_NVX_gpu_multicast2", glMulticastViewportArrayvNVX },
-  { "glMulticastViewportPositionWScaleNVX", "GL_NVX_gpu_multicast2", glMulticastViewportPositionWScaleNVX },
-  { "glMulticastWaitSyncNV", "GL_NV_gpu_multicast", glMulticastWaitSyncNV },
-  { "glNamedBufferAttachMemoryNV", "GL_NV_memory_attachment", glNamedBufferAttachMemoryNV },
-  { "glNamedBufferData", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedBufferData },
-  { "glNamedBufferDataEXT", "GL_EXT_direct_state_access", glNamedBufferDataEXT },
-  { "glNamedBufferPageCommitmentARB", "GL_ARB_sparse_buffer", glNamedBufferPageCommitmentARB },
-  { "glNamedBufferPageCommitmentEXT", "GL_ARB_sparse_buffer", glNamedBufferPageCommitmentEXT },
-  { "glNamedBufferStorage", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedBufferStorage },
-  { "glNamedBufferStorageEXT", "GL_EXT_direct_state_access", glNamedBufferStorageEXT },
-  { "glNamedBufferStorageExternalEXT", "GL_EXT_external_buffer", glNamedBufferStorageExternalEXT },
-  { "glNamedBufferStorageMemEXT", "GL_EXT_memory_object", glNamedBufferStorageMemEXT },
-  { "glNamedBufferSubData", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedBufferSubData },
-  { "glNamedBufferSubDataEXT", "GL_EXT_direct_state_access", glNamedBufferSubDataEXT },
-  { "glNamedCopyBufferSubDataEXT", "GL_EXT_direct_state_access", glNamedCopyBufferSubDataEXT },
-  { "glNamedFramebufferDrawBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferDrawBuffer },
-  { "glNamedFramebufferDrawBuffers", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferDrawBuffers },
-  { "glNamedFramebufferParameteri", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferParameteri },
-  { "glNamedFramebufferParameteriEXT", "GL_EXT_direct_state_access", glNamedFramebufferParameteriEXT },
-  { "glNamedFramebufferReadBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferReadBuffer },
-  { "glNamedFramebufferRenderbuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferRenderbuffer },
-  { "glNamedFramebufferRenderbufferEXT", "GL_EXT_direct_state_access", glNamedFramebufferRenderbufferEXT },
-  { "glNamedFramebufferSampleLocationsfvARB", "GL_ARB_sample_locations", glNamedFramebufferSampleLocationsfvARB },
-  { "glNamedFramebufferSampleLocationsfvNV", "GL_NV_sample_locations", glNamedFramebufferSampleLocationsfvNV },
-  { "glNamedFramebufferSamplePositionsfvAMD", "GL_AMD_framebuffer_sample_positions", glNamedFramebufferSamplePositionsfvAMD },
-  { "glNamedFramebufferTexture", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferTexture },
-  { "glNamedFramebufferTexture1DEXT", "GL_EXT_direct_state_access", glNamedFramebufferTexture1DEXT },
-  { "glNamedFramebufferTexture2DEXT", "GL_EXT_direct_state_access", glNamedFramebufferTexture2DEXT },
-  { "glNamedFramebufferTexture3DEXT", "GL_EXT_direct_state_access", glNamedFramebufferTexture3DEXT },
-  { "glNamedFramebufferTextureEXT", "GL_EXT_direct_state_access", glNamedFramebufferTextureEXT },
-  { "glNamedFramebufferTextureFaceEXT", "GL_EXT_direct_state_access", glNamedFramebufferTextureFaceEXT },
-  { "glNamedFramebufferTextureLayer", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferTextureLayer },
-  { "glNamedFramebufferTextureLayerEXT", "GL_EXT_direct_state_access", glNamedFramebufferTextureLayerEXT },
-  { "glNamedProgramLocalParameter4dEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameter4dEXT },
-  { "glNamedProgramLocalParameter4dvEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameter4dvEXT },
-  { "glNamedProgramLocalParameter4fEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameter4fEXT },
-  { "glNamedProgramLocalParameter4fvEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameter4fvEXT },
-  { "glNamedProgramLocalParameterI4iEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameterI4iEXT },
-  { "glNamedProgramLocalParameterI4ivEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameterI4ivEXT },
-  { "glNamedProgramLocalParameterI4uiEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameterI4uiEXT },
-  { "glNamedProgramLocalParameterI4uivEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameterI4uivEXT },
-  { "glNamedProgramLocalParameters4fvEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameters4fvEXT },
-  { "glNamedProgramLocalParametersI4ivEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParametersI4ivEXT },
-  { "glNamedProgramLocalParametersI4uivEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParametersI4uivEXT },
-  { "glNamedProgramStringEXT", "GL_EXT_direct_state_access", glNamedProgramStringEXT },
-  { "glNamedRenderbufferStorage", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedRenderbufferStorage },
-  { "glNamedRenderbufferStorageEXT", "GL_EXT_direct_state_access", glNamedRenderbufferStorageEXT },
-  { "glNamedRenderbufferStorageMultisample", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedRenderbufferStorageMultisample },
-  { "glNamedRenderbufferStorageMultisampleAdvancedAMD", "GL_AMD_framebuffer_multisample_advanced", glNamedRenderbufferStorageMultisampleAdvancedAMD },
-  { "glNamedRenderbufferStorageMultisampleCoverageEXT", "GL_EXT_direct_state_access", glNamedRenderbufferStorageMultisampleCoverageEXT },
-  { "glNamedRenderbufferStorageMultisampleEXT", "GL_EXT_direct_state_access", glNamedRenderbufferStorageMultisampleEXT },
-  { "glNamedStringARB", "GL_ARB_shading_language_include", glNamedStringARB },
-  { "glNewBufferRegion", "GL_KTX_buffer_region", glNewBufferRegion },
-  { "glNewObjectBufferATI", "GL_ATI_vertex_array_object", glNewObjectBufferATI },
-  { "glNormal3fVertex3fSUN", "GL_SUN_vertex", glNormal3fVertex3fSUN },
-  { "glNormal3fVertex3fvSUN", "GL_SUN_vertex", glNormal3fVertex3fvSUN },
-  { "glNormal3hNV", "GL_NV_half_float", glNormal3hNV },
-  { "glNormal3hvNV", "GL_NV_half_float", glNormal3hvNV },
-  { "glNormal3xOES", "GL_OES_fixed_point", glNormal3xOES },
-  { "glNormal3xvOES", "GL_OES_fixed_point", glNormal3xvOES },
-  { "glNormalFormatNV", "GL_NV_vertex_buffer_unified_memory", glNormalFormatNV },
-  { "glNormalP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glNormalP3ui },
-  { "glNormalP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glNormalP3uiv },
-  { "glNormalPointerEXT", "GL_EXT_vertex_array", glNormalPointerEXT },
-  { "glNormalPointerListIBM", "GL_IBM_vertex_array_lists", glNormalPointerListIBM },
-  { "glNormalPointervINTEL", "GL_INTEL_parallel_arrays", glNormalPointervINTEL },
-  { "glNormalStream3bATI", "GL_ATI_vertex_streams", glNormalStream3bATI },
-  { "glNormalStream3bvATI", "GL_ATI_vertex_streams", glNormalStream3bvATI },
-  { "glNormalStream3dATI", "GL_ATI_vertex_streams", glNormalStream3dATI },
-  { "glNormalStream3dvATI", "GL_ATI_vertex_streams", glNormalStream3dvATI },
-  { "glNormalStream3fATI", "GL_ATI_vertex_streams", glNormalStream3fATI },
-  { "glNormalStream3fvATI", "GL_ATI_vertex_streams", glNormalStream3fvATI },
-  { "glNormalStream3iATI", "GL_ATI_vertex_streams", glNormalStream3iATI },
-  { "glNormalStream3ivATI", "GL_ATI_vertex_streams", glNormalStream3ivATI },
-  { "glNormalStream3sATI", "GL_ATI_vertex_streams", glNormalStream3sATI },
-  { "glNormalStream3svATI", "GL_ATI_vertex_streams", glNormalStream3svATI },
-  { "glObjectLabel", "GL_KHR_debug GL_VERSION_4_3", glObjectLabel },
-  { "glObjectPtrLabel", "GL_KHR_debug GL_VERSION_4_3", glObjectPtrLabel },
-  { "glObjectPurgeableAPPLE", "GL_APPLE_object_purgeable", glObjectPurgeableAPPLE },
-  { "glObjectUnpurgeableAPPLE", "GL_APPLE_object_purgeable", glObjectUnpurgeableAPPLE },
-  { "glOrthofOES", "GL_OES_single_precision", glOrthofOES },
-  { "glOrthoxOES", "GL_OES_fixed_point", glOrthoxOES },
-  { "glPNTrianglesfATI", "GL_ATI_pn_triangles", glPNTrianglesfATI },
-  { "glPNTrianglesiATI", "GL_ATI_pn_triangles", glPNTrianglesiATI },
-  { "glPassTexCoordATI", "GL_ATI_fragment_shader", glPassTexCoordATI },
-  { "glPassThroughxOES", "GL_OES_fixed_point", glPassThroughxOES },
-  { "glPatchParameterfv", "GL_ARB_tessellation_shader GL_VERSION_4_0", glPatchParameterfv },
-  { "glPatchParameteri", "GL_ARB_tessellation_shader GL_VERSION_4_0", glPatchParameteri },
-  { "glPathColorGenNV", "GL_NV_path_rendering", glPathColorGenNV },
-  { "glPathCommandsNV", "GL_NV_path_rendering", glPathCommandsNV },
-  { "glPathCoordsNV", "GL_NV_path_rendering", glPathCoordsNV },
-  { "glPathCoverDepthFuncNV", "GL_NV_path_rendering", glPathCoverDepthFuncNV },
-  { "glPathDashArrayNV", "GL_NV_path_rendering", glPathDashArrayNV },
-  { "glPathFogGenNV", "GL_NV_path_rendering", glPathFogGenNV },
-  { "glPathGlyphIndexArrayNV", "GL_NV_path_rendering", glPathGlyphIndexArrayNV },
-  { "glPathGlyphIndexRangeNV", "GL_NV_path_rendering", glPathGlyphIndexRangeNV },
-  { "glPathGlyphRangeNV", "GL_NV_path_rendering", glPathGlyphRangeNV },
-  { "glPathGlyphsNV", "GL_NV_path_rendering", glPathGlyphsNV },
-  { "glPathMemoryGlyphIndexArrayNV", "GL_NV_path_rendering", glPathMemoryGlyphIndexArrayNV },
-  { "glPathParameterfNV", "GL_NV_path_rendering", glPathParameterfNV },
-  { "glPathParameterfvNV", "GL_NV_path_rendering", glPathParameterfvNV },
-  { "glPathParameteriNV", "GL_NV_path_rendering", glPathParameteriNV },
-  { "glPathParameterivNV", "GL_NV_path_rendering", glPathParameterivNV },
-  { "glPathStencilDepthOffsetNV", "GL_NV_path_rendering", glPathStencilDepthOffsetNV },
-  { "glPathStencilFuncNV", "GL_NV_path_rendering", glPathStencilFuncNV },
-  { "glPathStringNV", "GL_NV_path_rendering", glPathStringNV },
-  { "glPathSubCommandsNV", "GL_NV_path_rendering", glPathSubCommandsNV },
-  { "glPathSubCoordsNV", "GL_NV_path_rendering", glPathSubCoordsNV },
-  { "glPathTexGenNV", "GL_NV_path_rendering", glPathTexGenNV },
-  { "glPauseTransformFeedback", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glPauseTransformFeedback },
-  { "glPauseTransformFeedbackNV", "GL_NV_transform_feedback2", glPauseTransformFeedbackNV },
-  { "glPixelDataRangeNV", "GL_NV_pixel_data_range", glPixelDataRangeNV },
-  { "glPixelMapx", "GL_OES_fixed_point", glPixelMapx },
-  { "glPixelStorex", "GL_OES_fixed_point", glPixelStorex },
-  { "glPixelTexGenParameterfSGIS", "GL_SGIS_pixel_texture", glPixelTexGenParameterfSGIS },
-  { "glPixelTexGenParameterfvSGIS", "GL_SGIS_pixel_texture", glPixelTexGenParameterfvSGIS },
-  { "glPixelTexGenParameteriSGIS", "GL_SGIS_pixel_texture", glPixelTexGenParameteriSGIS },
-  { "glPixelTexGenParameterivSGIS", "GL_SGIS_pixel_texture", glPixelTexGenParameterivSGIS },
-  { "glPixelTexGenSGIX", "GL_SGIX_pixel_texture", glPixelTexGenSGIX },
-  { "glPixelTransferxOES", "GL_OES_fixed_point", glPixelTransferxOES },
-  { "glPixelTransformParameterfEXT", "GL_EXT_pixel_transform", glPixelTransformParameterfEXT },
-  { "glPixelTransformParameterfvEXT", "GL_EXT_pixel_transform", glPixelTransformParameterfvEXT },
-  { "glPixelTransformParameteriEXT", "GL_EXT_pixel_transform", glPixelTransformParameteriEXT },
-  { "glPixelTransformParameterivEXT", "GL_EXT_pixel_transform", glPixelTransformParameterivEXT },
-  { "glPixelZoomxOES", "GL_OES_fixed_point", glPixelZoomxOES },
-  { "glPointAlongPathNV", "GL_NV_path_rendering", glPointAlongPathNV },
-  { "glPointParameterf", "GL_VERSION_1_4", glPointParameterf },
-  { "glPointParameterfARB", "GL_ARB_point_parameters", glPointParameterfARB },
-  { "glPointParameterfEXT", "GL_EXT_point_parameters", glPointParameterfEXT },
-  { "glPointParameterfSGIS", "GL_SGIS_point_parameters", glPointParameterfSGIS },
-  { "glPointParameterfv", "GL_VERSION_1_4", glPointParameterfv },
-  { "glPointParameterfvARB", "GL_ARB_point_parameters", glPointParameterfvARB },
-  { "glPointParameterfvEXT", "GL_EXT_point_parameters", glPointParameterfvEXT },
-  { "glPointParameterfvSGIS", "GL_SGIS_point_parameters", glPointParameterfvSGIS },
-  { "glPointParameteri", "GL_VERSION_1_4", glPointParameteri },
-  { "glPointParameteriNV", "GL_NV_point_sprite", glPointParameteriNV },
-  { "glPointParameteriv", "GL_VERSION_1_4", glPointParameteriv },
-  { "glPointParameterivNV", "GL_NV_point_sprite", glPointParameterivNV },
-  { "glPointParameterxvOES", "GL_OES_fixed_point", glPointParameterxvOES },
-  { "glPointSizexOES", "GL_OES_fixed_point", glPointSizexOES },
-  { "glPollAsyncSGIX", "GL_SGIX_async", glPollAsyncSGIX },
-  { "glPollInstrumentsSGIX", "GL_SGIX_instruments", glPollInstrumentsSGIX },
-  { "glPolygonOffsetClamp", "GL_ARB_polygon_offset_clamp GL_VERSION_4_6", glPolygonOffsetClamp },
-  { "glPolygonOffsetClampEXT", "GL_EXT_polygon_offset_clamp", glPolygonOffsetClampEXT },
-  { "glPolygonOffsetEXT", "GL_EXT_polygon_offset", glPolygonOffsetEXT },
-  { "glPolygonOffsetxOES", "GL_OES_fixed_point", glPolygonOffsetxOES },
-  { "glPopDebugGroup", "GL_KHR_debug GL_VERSION_4_3", glPopDebugGroup },
-  { "glPopGroupMarkerEXT", "GL_EXT_debug_marker", glPopGroupMarkerEXT },
-  { "glPresentFrameDualFillNV", "GL_NV_present_video", glPresentFrameDualFillNV },
-  { "glPresentFrameKeyedNV", "GL_NV_present_video", glPresentFrameKeyedNV },
-  { "glPrimitiveBoundingBoxARB", "GL_ARB_ES3_2_compatibility", glPrimitiveBoundingBoxARB },
-  { "glPrimitiveRestartIndex", "GL_VERSION_3_1", glPrimitiveRestartIndex },
-  { "glPrimitiveRestartIndexNV", "GL_NV_primitive_restart", glPrimitiveRestartIndexNV },
-  { "glPrimitiveRestartNV", "GL_NV_primitive_restart", glPrimitiveRestartNV },
-  { "glPrioritizeTexturesEXT", "GL_EXT_texture_object", glPrioritizeTexturesEXT },
-  { "glPrioritizeTexturesxOES", "GL_OES_fixed_point", glPrioritizeTexturesxOES },
-  { "glProgramBinary", "GL_ARB_get_program_binary GL_VERSION_4_1", glProgramBinary },
-  { "glProgramBufferParametersIivNV", "GL_NV_parameter_buffer_object", glProgramBufferParametersIivNV },
-  { "glProgramBufferParametersIuivNV", "GL_NV_parameter_buffer_object", glProgramBufferParametersIuivNV },
-  { "glProgramBufferParametersfvNV", "GL_NV_parameter_buffer_object", glProgramBufferParametersfvNV },
-  { "glProgramEnvParameter4dARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramEnvParameter4dARB },
-  { "glProgramEnvParameter4dvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramEnvParameter4dvARB },
-  { "glProgramEnvParameter4fARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramEnvParameter4fARB },
-  { "glProgramEnvParameter4fvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramEnvParameter4fvARB },
-  { "glProgramEnvParameterI4iNV", "GL_NV_gpu_program4", glProgramEnvParameterI4iNV },
-  { "glProgramEnvParameterI4ivNV", "GL_NV_gpu_program4", glProgramEnvParameterI4ivNV },
-  { "glProgramEnvParameterI4uiNV", "GL_NV_gpu_program4", glProgramEnvParameterI4uiNV },
-  { "glProgramEnvParameterI4uivNV", "GL_NV_gpu_program4", glProgramEnvParameterI4uivNV },
-  { "glProgramEnvParameters4fvEXT", "GL_EXT_gpu_program_parameters", glProgramEnvParameters4fvEXT },
-  { "glProgramEnvParametersI4ivNV", "GL_NV_gpu_program4", glProgramEnvParametersI4ivNV },
-  { "glProgramEnvParametersI4uivNV", "GL_NV_gpu_program4", glProgramEnvParametersI4uivNV },
-  { "glProgramLocalParameter4dARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramLocalParameter4dARB },
-  { "glProgramLocalParameter4dvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramLocalParameter4dvARB },
-  { "glProgramLocalParameter4fARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramLocalParameter4fARB },
-  { "glProgramLocalParameter4fvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramLocalParameter4fvARB },
-  { "glProgramLocalParameterI4iNV", "GL_NV_gpu_program4", glProgramLocalParameterI4iNV },
-  { "glProgramLocalParameterI4ivNV", "GL_NV_gpu_program4", glProgramLocalParameterI4ivNV },
-  { "glProgramLocalParameterI4uiNV", "GL_NV_gpu_program4", glProgramLocalParameterI4uiNV },
-  { "glProgramLocalParameterI4uivNV", "GL_NV_gpu_program4", glProgramLocalParameterI4uivNV },
-  { "glProgramLocalParameters4fvEXT", "GL_EXT_gpu_program_parameters", glProgramLocalParameters4fvEXT },
-  { "glProgramLocalParametersI4ivNV", "GL_NV_gpu_program4", glProgramLocalParametersI4ivNV },
-  { "glProgramLocalParametersI4uivNV", "GL_NV_gpu_program4", glProgramLocalParametersI4uivNV },
-  { "glProgramNamedParameter4dNV", "GL_NV_fragment_program", glProgramNamedParameter4dNV },
-  { "glProgramNamedParameter4dvNV", "GL_NV_fragment_program", glProgramNamedParameter4dvNV },
-  { "glProgramNamedParameter4fNV", "GL_NV_fragment_program", glProgramNamedParameter4fNV },
-  { "glProgramNamedParameter4fvNV", "GL_NV_fragment_program", glProgramNamedParameter4fvNV },
-  { "glProgramParameter4dNV", "GL_NV_vertex_program", glProgramParameter4dNV },
-  { "glProgramParameter4dvNV", "GL_NV_vertex_program", glProgramParameter4dvNV },
-  { "glProgramParameter4fNV", "GL_NV_vertex_program", glProgramParameter4fNV },
-  { "glProgramParameter4fvNV", "GL_NV_vertex_program", glProgramParameter4fvNV },
-  { "glProgramParameteri", "GL_ARB_get_program_binary GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramParameteri },
-  { "glProgramParameteriARB", "GL_ARB_geometry_shader4", glProgramParameteriARB },
-  { "glProgramParameteriEXT", "GL_EXT_geometry_shader4", glProgramParameteriEXT },
-  { "glProgramParameters4dvNV", "GL_NV_vertex_program", glProgramParameters4dvNV },
-  { "glProgramParameters4fvNV", "GL_NV_vertex_program", glProgramParameters4fvNV },
-  { "glProgramPathFragmentInputGenNV", "GL_NV_path_rendering", glProgramPathFragmentInputGenNV },
-  { "glProgramStringARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramStringARB },
-  { "glProgramSubroutineParametersuivNV", "GL_NV_gpu_program5", glProgramSubroutineParametersuivNV },
-  { "glProgramUniform1d", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1d },
-  { "glProgramUniform1dEXT", "GL_EXT_direct_state_access", glProgramUniform1dEXT },
-  { "glProgramUniform1dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1dv },
-  { "glProgramUniform1dvEXT", "GL_EXT_direct_state_access", glProgramUniform1dvEXT },
-  { "glProgramUniform1f", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1f },
-  { "glProgramUniform1fEXT", "GL_EXT_direct_state_access", glProgramUniform1fEXT },
-  { "glProgramUniform1fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1fv },
-  { "glProgramUniform1fvEXT", "GL_EXT_direct_state_access", glProgramUniform1fvEXT },
-  { "glProgramUniform1i", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1i },
-  { "glProgramUniform1i64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform1i64ARB },
-  { "glProgramUniform1i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform1i64NV },
-  { "glProgramUniform1i64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform1i64vARB },
-  { "glProgramUniform1i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform1i64vNV },
-  { "glProgramUniform1iEXT", "GL_EXT_direct_state_access", glProgramUniform1iEXT },
-  { "glProgramUniform1iv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1iv },
-  { "glProgramUniform1ivEXT", "GL_EXT_direct_state_access", glProgramUniform1ivEXT },
-  { "glProgramUniform1ui", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1ui },
-  { "glProgramUniform1ui64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform1ui64ARB },
-  { "glProgramUniform1ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform1ui64NV },
-  { "glProgramUniform1ui64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform1ui64vARB },
-  { "glProgramUniform1ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform1ui64vNV },
-  { "glProgramUniform1uiEXT", "GL_EXT_direct_state_access", glProgramUniform1uiEXT },
-  { "glProgramUniform1uiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1uiv },
-  { "glProgramUniform1uivEXT", "GL_EXT_direct_state_access", glProgramUniform1uivEXT },
-  { "glProgramUniform2d", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2d },
-  { "glProgramUniform2dEXT", "GL_EXT_direct_state_access", glProgramUniform2dEXT },
-  { "glProgramUniform2dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2dv },
-  { "glProgramUniform2dvEXT", "GL_EXT_direct_state_access", glProgramUniform2dvEXT },
-  { "glProgramUniform2f", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2f },
-  { "glProgramUniform2fEXT", "GL_EXT_direct_state_access", glProgramUniform2fEXT },
-  { "glProgramUniform2fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2fv },
-  { "glProgramUniform2fvEXT", "GL_EXT_direct_state_access", glProgramUniform2fvEXT },
-  { "glProgramUniform2i", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2i },
-  { "glProgramUniform2i64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform2i64ARB },
-  { "glProgramUniform2i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform2i64NV },
-  { "glProgramUniform2i64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform2i64vARB },
-  { "glProgramUniform2i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform2i64vNV },
-  { "glProgramUniform2iEXT", "GL_EXT_direct_state_access", glProgramUniform2iEXT },
-  { "glProgramUniform2iv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2iv },
-  { "glProgramUniform2ivEXT", "GL_EXT_direct_state_access", glProgramUniform2ivEXT },
-  { "glProgramUniform2ui", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2ui },
-  { "glProgramUniform2ui64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform2ui64ARB },
-  { "glProgramUniform2ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform2ui64NV },
-  { "glProgramUniform2ui64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform2ui64vARB },
-  { "glProgramUniform2ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform2ui64vNV },
-  { "glProgramUniform2uiEXT", "GL_EXT_direct_state_access", glProgramUniform2uiEXT },
-  { "glProgramUniform2uiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2uiv },
-  { "glProgramUniform2uivEXT", "GL_EXT_direct_state_access", glProgramUniform2uivEXT },
-  { "glProgramUniform3d", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3d },
-  { "glProgramUniform3dEXT", "GL_EXT_direct_state_access", glProgramUniform3dEXT },
-  { "glProgramUniform3dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3dv },
-  { "glProgramUniform3dvEXT", "GL_EXT_direct_state_access", glProgramUniform3dvEXT },
-  { "glProgramUniform3f", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3f },
-  { "glProgramUniform3fEXT", "GL_EXT_direct_state_access", glProgramUniform3fEXT },
-  { "glProgramUniform3fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3fv },
-  { "glProgramUniform3fvEXT", "GL_EXT_direct_state_access", glProgramUniform3fvEXT },
-  { "glProgramUniform3i", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3i },
-  { "glProgramUniform3i64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform3i64ARB },
-  { "glProgramUniform3i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform3i64NV },
-  { "glProgramUniform3i64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform3i64vARB },
-  { "glProgramUniform3i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform3i64vNV },
-  { "glProgramUniform3iEXT", "GL_EXT_direct_state_access", glProgramUniform3iEXT },
-  { "glProgramUniform3iv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3iv },
-  { "glProgramUniform3ivEXT", "GL_EXT_direct_state_access", glProgramUniform3ivEXT },
-  { "glProgramUniform3ui", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3ui },
-  { "glProgramUniform3ui64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform3ui64ARB },
-  { "glProgramUniform3ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform3ui64NV },
-  { "glProgramUniform3ui64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform3ui64vARB },
-  { "glProgramUniform3ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform3ui64vNV },
-  { "glProgramUniform3uiEXT", "GL_EXT_direct_state_access", glProgramUniform3uiEXT },
-  { "glProgramUniform3uiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3uiv },
-  { "glProgramUniform3uivEXT", "GL_EXT_direct_state_access", glProgramUniform3uivEXT },
-  { "glProgramUniform4d", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4d },
-  { "glProgramUniform4dEXT", "GL_EXT_direct_state_access", glProgramUniform4dEXT },
-  { "glProgramUniform4dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4dv },
-  { "glProgramUniform4dvEXT", "GL_EXT_direct_state_access", glProgramUniform4dvEXT },
-  { "glProgramUniform4f", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4f },
-  { "glProgramUniform4fEXT", "GL_EXT_direct_state_access", glProgramUniform4fEXT },
-  { "glProgramUniform4fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4fv },
-  { "glProgramUniform4fvEXT", "GL_EXT_direct_state_access", glProgramUniform4fvEXT },
-  { "glProgramUniform4i", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4i },
-  { "glProgramUniform4i64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform4i64ARB },
-  { "glProgramUniform4i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform4i64NV },
-  { "glProgramUniform4i64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform4i64vARB },
-  { "glProgramUniform4i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform4i64vNV },
-  { "glProgramUniform4iEXT", "GL_EXT_direct_state_access", glProgramUniform4iEXT },
-  { "glProgramUniform4iv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4iv },
-  { "glProgramUniform4ivEXT", "GL_EXT_direct_state_access", glProgramUniform4ivEXT },
-  { "glProgramUniform4ui", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4ui },
-  { "glProgramUniform4ui64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform4ui64ARB },
-  { "glProgramUniform4ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform4ui64NV },
-  { "glProgramUniform4ui64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform4ui64vARB },
-  { "glProgramUniform4ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform4ui64vNV },
-  { "glProgramUniform4uiEXT", "GL_EXT_direct_state_access", glProgramUniform4uiEXT },
-  { "glProgramUniform4uiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4uiv },
-  { "glProgramUniform4uivEXT", "GL_EXT_direct_state_access", glProgramUniform4uivEXT },
-  { "glProgramUniformHandleui64ARB", "GL_ARB_bindless_texture", glProgramUniformHandleui64ARB },
-  { "glProgramUniformHandleui64NV", "GL_NV_bindless_texture", glProgramUniformHandleui64NV },
-  { "glProgramUniformHandleui64vARB", "GL_ARB_bindless_texture", glProgramUniformHandleui64vARB },
-  { "glProgramUniformHandleui64vNV", "GL_NV_bindless_texture", glProgramUniformHandleui64vNV },
-  { "glProgramUniformMatrix2dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix2dv },
-  { "glProgramUniformMatrix2dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix2dvEXT },
-  { "glProgramUniformMatrix2fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix2fv },
-  { "glProgramUniformMatrix2fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix2fvEXT },
-  { "glProgramUniformMatrix2x3dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix2x3dv },
-  { "glProgramUniformMatrix2x3dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix2x3dvEXT },
-  { "glProgramUniformMatrix2x3fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix2x3fv },
-  { "glProgramUniformMatrix2x3fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix2x3fvEXT },
-  { "glProgramUniformMatrix2x4dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix2x4dv },
-  { "glProgramUniformMatrix2x4dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix2x4dvEXT },
-  { "glProgramUniformMatrix2x4fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix2x4fv },
-  { "glProgramUniformMatrix2x4fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix2x4fvEXT },
-  { "glProgramUniformMatrix3dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix3dv },
-  { "glProgramUniformMatrix3dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix3dvEXT },
-  { "glProgramUniformMatrix3fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix3fv },
-  { "glProgramUniformMatrix3fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix3fvEXT },
-  { "glProgramUniformMatrix3x2dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix3x2dv },
-  { "glProgramUniformMatrix3x2dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix3x2dvEXT },
-  { "glProgramUniformMatrix3x2fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix3x2fv },
-  { "glProgramUniformMatrix3x2fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix3x2fvEXT },
-  { "glProgramUniformMatrix3x4dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix3x4dv },
-  { "glProgramUniformMatrix3x4dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix3x4dvEXT },
-  { "glProgramUniformMatrix3x4fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix3x4fv },
-  { "glProgramUniformMatrix3x4fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix3x4fvEXT },
-  { "glProgramUniformMatrix4dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix4dv },
-  { "glProgramUniformMatrix4dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix4dvEXT },
-  { "glProgramUniformMatrix4fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix4fv },
-  { "glProgramUniformMatrix4fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix4fvEXT },
-  { "glProgramUniformMatrix4x2dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix4x2dv },
-  { "glProgramUniformMatrix4x2dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix4x2dvEXT },
-  { "glProgramUniformMatrix4x2fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix4x2fv },
-  { "glProgramUniformMatrix4x2fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix4x2fvEXT },
-  { "glProgramUniformMatrix4x3dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix4x3dv },
-  { "glProgramUniformMatrix4x3dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix4x3dvEXT },
-  { "glProgramUniformMatrix4x3fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix4x3fv },
-  { "glProgramUniformMatrix4x3fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix4x3fvEXT },
-  { "glProgramUniformui64NV", "GL_NV_shader_buffer_load", glProgramUniformui64NV },
-  { "glProgramUniformui64vNV", "GL_NV_shader_buffer_load", glProgramUniformui64vNV },
-  { "glProgramVertexLimitNV", "GL_NV_geometry_program4", glProgramVertexLimitNV },
-  { "glProvokingVertex", "GL_ARB_provoking_vertex GL_VERSION_3_2", glProvokingVertex },
-  { "glProvokingVertexEXT", "GL_EXT_provoking_vertex", glProvokingVertexEXT },
-  { "glPushClientAttribDefaultEXT", "GL_EXT_direct_state_access", glPushClientAttribDefaultEXT },
-  { "glPushDebugGroup", "GL_KHR_debug GL_VERSION_4_3", glPushDebugGroup },
-  { "glPushGroupMarkerEXT", "GL_EXT_debug_marker", glPushGroupMarkerEXT },
-  { "glQueryCounter", "GL_ARB_timer_query GL_VERSION_3_3", glQueryCounter },
-  { "glQueryMatrixxOES", "GL_OES_query_matrix", glQueryMatrixxOES },
-  { "glQueryObjectParameteruiAMD", "GL_AMD_occlusion_query_event", glQueryObjectParameteruiAMD },
-  { "glQueryResourceNV", "GL_NV_query_resource", glQueryResourceNV },
-  { "glQueryResourceTagNV", "GL_NV_query_resource_tag", glQueryResourceTagNV },
-  { "glRasterPos2xOES", "GL_OES_fixed_point", glRasterPos2xOES },
-  { "glRasterPos2xvOES", "GL_OES_fixed_point", glRasterPos2xvOES },
-  { "glRasterPos3xOES", "GL_OES_fixed_point", glRasterPos3xOES },
-  { "glRasterPos3xvOES", "GL_OES_fixed_point", glRasterPos3xvOES },
-  { "glRasterPos4xOES", "GL_OES_fixed_point", glRasterPos4xOES },
-  { "glRasterPos4xvOES", "GL_OES_fixed_point", glRasterPos4xvOES },
-  { "glRasterSamplesEXT", "GL_EXT_raster_multisample GL_NV_framebuffer_mixed_samples", glRasterSamplesEXT },
-  { "glReadBufferRegion", "GL_KTX_buffer_region", glReadBufferRegion },
-  { "glReadInstrumentsSGIX", "GL_SGIX_instruments", glReadInstrumentsSGIX },
-  { "glReadnPixels", "GL_KHR_robustness GL_VERSION_4_5", glReadnPixels },
-  { "glReadnPixelsARB", "GL_ARB_robustness", glReadnPixelsARB },
-  { "glRectxOES", "GL_OES_fixed_point", glRectxOES },
-  { "glRectxvOES", "GL_OES_fixed_point", glRectxvOES },
-  { "glReferencePlaneSGIX", "GL_SGIX_reference_plane", glReferencePlaneSGIX },
-  { "glReleaseKeyedMutexWin32EXT", "GL_EXT_win32_keyed_mutex", glReleaseKeyedMutexWin32EXT },
-  { "glReleaseShaderCompiler", "GL_ARB_ES2_compatibility GL_VERSION_4_1", glReleaseShaderCompiler },
-  { "glRenderGpuMaskNV", "GL_NV_gpu_multicast", glRenderGpuMaskNV },
-  { "glRenderbufferStorage", "GL_ARB_framebuffer_object GL_VERSION_3_0", glRenderbufferStorage },
-  { "glRenderbufferStorageEXT", "GL_EXT_framebuffer_object", glRenderbufferStorageEXT },
-  { "glRenderbufferStorageMultisample", "GL_ARB_framebuffer_object GL_VERSION_3_0", glRenderbufferStorageMultisample },
-  { "glRenderbufferStorageMultisampleAdvancedAMD", "GL_AMD_framebuffer_multisample_advanced", glRenderbufferStorageMultisampleAdvancedAMD },
-  { "glRenderbufferStorageMultisampleCoverageNV", "GL_NV_framebuffer_multisample_coverage", glRenderbufferStorageMultisampleCoverageNV },
-  { "glRenderbufferStorageMultisampleEXT", "GL_EXT_framebuffer_multisample", glRenderbufferStorageMultisampleEXT },
-  { "glReplacementCodePointerSUN", "GL_SUN_triangle_list", glReplacementCodePointerSUN },
-  { "glReplacementCodeubSUN", "GL_SUN_triangle_list", glReplacementCodeubSUN },
-  { "glReplacementCodeubvSUN", "GL_SUN_triangle_list", glReplacementCodeubvSUN },
-  { "glReplacementCodeuiColor3fVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiColor3fVertex3fSUN },
-  { "glReplacementCodeuiColor3fVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiColor3fVertex3fvSUN },
-  { "glReplacementCodeuiColor4fNormal3fVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiColor4fNormal3fVertex3fSUN },
-  { "glReplacementCodeuiColor4fNormal3fVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiColor4fNormal3fVertex3fvSUN },
-  { "glReplacementCodeuiColor4ubVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiColor4ubVertex3fSUN },
-  { "glReplacementCodeuiColor4ubVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiColor4ubVertex3fvSUN },
-  { "glReplacementCodeuiNormal3fVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiNormal3fVertex3fSUN },
-  { "glReplacementCodeuiNormal3fVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiNormal3fVertex3fvSUN },
-  { "glReplacementCodeuiSUN", "GL_SUN_triangle_list", glReplacementCodeuiSUN },
-  { "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN },
-  { "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN },
-  { "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN },
-  { "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN },
-  { "glReplacementCodeuiTexCoord2fVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiTexCoord2fVertex3fSUN },
-  { "glReplacementCodeuiTexCoord2fVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiTexCoord2fVertex3fvSUN },
-  { "glReplacementCodeuiVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiVertex3fSUN },
-  { "glReplacementCodeuiVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiVertex3fvSUN },
-  { "glReplacementCodeuivSUN", "GL_SUN_triangle_list", glReplacementCodeuivSUN },
-  { "glReplacementCodeusSUN", "GL_SUN_triangle_list", glReplacementCodeusSUN },
-  { "glReplacementCodeusvSUN", "GL_SUN_triangle_list", glReplacementCodeusvSUN },
-  { "glRequestResidentProgramsNV", "GL_NV_vertex_program", glRequestResidentProgramsNV },
-  { "glResetHistogram", "GL_ARB_imaging", glResetHistogram },
-  { "glResetHistogramEXT", "GL_EXT_histogram", glResetHistogramEXT },
-  { "glResetMemoryObjectParameterNV", "GL_NV_memory_attachment", glResetMemoryObjectParameterNV },
-  { "glResetMinmax", "GL_ARB_imaging", glResetMinmax },
-  { "glResetMinmaxEXT", "GL_EXT_histogram", glResetMinmaxEXT },
-  { "glResizeBuffersMESA", "GL_MESA_resize_buffers", glResizeBuffersMESA },
-  { "glResolveDepthValuesNV", "GL_NV_sample_locations", glResolveDepthValuesNV },
-  { "glResumeTransformFeedback", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glResumeTransformFeedback },
-  { "glResumeTransformFeedbackNV", "GL_NV_transform_feedback2", glResumeTransformFeedbackNV },
-  { "glRotatexOES", "GL_OES_fixed_point", glRotatexOES },
-  { "glSampleCoverage", "GL_VERSION_1_3", glSampleCoverage },
-  { "glSampleCoverageARB", "GL_ARB_multisample", glSampleCoverageARB },
-  { "glSampleMapATI", "GL_ATI_fragment_shader", glSampleMapATI },
-  { "glSampleMaskEXT", "GL_EXT_multisample", glSampleMaskEXT },
-  { "glSampleMaskIndexedNV", "GL_NV_explicit_multisample", glSampleMaskIndexedNV },
-  { "glSampleMaskSGIS", "GL_SGIS_multisample", glSampleMaskSGIS },
-  { "glSampleMaski", "GL_ARB_texture_multisample GL_VERSION_3_2", glSampleMaski },
-  { "glSamplePatternEXT", "GL_EXT_multisample", glSamplePatternEXT },
-  { "glSamplePatternSGIS", "GL_SGIS_multisample", glSamplePatternSGIS },
-  { "glSamplerParameterIiv", "GL_ARB_sampler_objects GL_VERSION_3_3", glSamplerParameterIiv },
-  { "glSamplerParameterIuiv", "GL_ARB_sampler_objects GL_VERSION_3_3", glSamplerParameterIuiv },
-  { "glSamplerParameterf", "GL_ARB_sampler_objects GL_VERSION_3_3", glSamplerParameterf },
-  { "glSamplerParameterfv", "GL_ARB_sampler_objects GL_VERSION_3_3", glSamplerParameterfv },
-  { "glSamplerParameteri", "GL_ARB_sampler_objects GL_VERSION_3_3", glSamplerParameteri },
-  { "glSamplerParameteriv", "GL_ARB_sampler_objects GL_VERSION_3_3", glSamplerParameteriv },
-  { "glScalexOES", "GL_OES_fixed_point", glScalexOES },
-  { "glScissorArrayv", "GL_ARB_viewport_array GL_VERSION_4_1", glScissorArrayv },
-  { "glScissorExclusiveArrayvNV", "GL_NV_scissor_exclusive", glScissorExclusiveArrayvNV },
-  { "glScissorExclusiveNV", "GL_NV_scissor_exclusive", glScissorExclusiveNV },
-  { "glScissorIndexed", "GL_ARB_viewport_array GL_VERSION_4_1", glScissorIndexed },
-  { "glScissorIndexedv", "GL_ARB_viewport_array GL_VERSION_4_1", glScissorIndexedv },
-  { "glSecondaryColor3b", "GL_VERSION_1_4", glSecondaryColor3b },
-  { "glSecondaryColor3bEXT", "GL_EXT_secondary_color", glSecondaryColor3bEXT },
-  { "glSecondaryColor3bv", "GL_VERSION_1_4", glSecondaryColor3bv },
-  { "glSecondaryColor3bvEXT", "GL_EXT_secondary_color", glSecondaryColor3bvEXT },
-  { "glSecondaryColor3d", "GL_VERSION_1_4", glSecondaryColor3d },
-  { "glSecondaryColor3dEXT", "GL_EXT_secondary_color", glSecondaryColor3dEXT },
-  { "glSecondaryColor3dv", "GL_VERSION_1_4", glSecondaryColor3dv },
-  { "glSecondaryColor3dvEXT", "GL_EXT_secondary_color", glSecondaryColor3dvEXT },
-  { "glSecondaryColor3f", "GL_VERSION_1_4", glSecondaryColor3f },
-  { "glSecondaryColor3fEXT", "GL_EXT_secondary_color", glSecondaryColor3fEXT },
-  { "glSecondaryColor3fv", "GL_VERSION_1_4", glSecondaryColor3fv },
-  { "glSecondaryColor3fvEXT", "GL_EXT_secondary_color", glSecondaryColor3fvEXT },
-  { "glSecondaryColor3hNV", "GL_NV_half_float", glSecondaryColor3hNV },
-  { "glSecondaryColor3hvNV", "GL_NV_half_float", glSecondaryColor3hvNV },
-  { "glSecondaryColor3i", "GL_VERSION_1_4", glSecondaryColor3i },
-  { "glSecondaryColor3iEXT", "GL_EXT_secondary_color", glSecondaryColor3iEXT },
-  { "glSecondaryColor3iv", "GL_VERSION_1_4", glSecondaryColor3iv },
-  { "glSecondaryColor3ivEXT", "GL_EXT_secondary_color", glSecondaryColor3ivEXT },
-  { "glSecondaryColor3s", "GL_VERSION_1_4", glSecondaryColor3s },
-  { "glSecondaryColor3sEXT", "GL_EXT_secondary_color", glSecondaryColor3sEXT },
-  { "glSecondaryColor3sv", "GL_VERSION_1_4", glSecondaryColor3sv },
-  { "glSecondaryColor3svEXT", "GL_EXT_secondary_color", glSecondaryColor3svEXT },
-  { "glSecondaryColor3ub", "GL_VERSION_1_4", glSecondaryColor3ub },
-  { "glSecondaryColor3ubEXT", "GL_EXT_secondary_color", glSecondaryColor3ubEXT },
-  { "glSecondaryColor3ubv", "GL_VERSION_1_4", glSecondaryColor3ubv },
-  { "glSecondaryColor3ubvEXT", "GL_EXT_secondary_color", glSecondaryColor3ubvEXT },
-  { "glSecondaryColor3ui", "GL_VERSION_1_4", glSecondaryColor3ui },
-  { "glSecondaryColor3uiEXT", "GL_EXT_secondary_color", glSecondaryColor3uiEXT },
-  { "glSecondaryColor3uiv", "GL_VERSION_1_4", glSecondaryColor3uiv },
-  { "glSecondaryColor3uivEXT", "GL_EXT_secondary_color", glSecondaryColor3uivEXT },
-  { "glSecondaryColor3us", "GL_VERSION_1_4", glSecondaryColor3us },
-  { "glSecondaryColor3usEXT", "GL_EXT_secondary_color", glSecondaryColor3usEXT },
-  { "glSecondaryColor3usv", "GL_VERSION_1_4", glSecondaryColor3usv },
-  { "glSecondaryColor3usvEXT", "GL_EXT_secondary_color", glSecondaryColor3usvEXT },
-  { "glSecondaryColorFormatNV", "GL_NV_vertex_buffer_unified_memory", glSecondaryColorFormatNV },
-  { "glSecondaryColorP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glSecondaryColorP3ui },
-  { "glSecondaryColorP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glSecondaryColorP3uiv },
-  { "glSecondaryColorPointer", "GL_VERSION_1_4", glSecondaryColorPointer },
-  { "glSecondaryColorPointerEXT", "GL_EXT_secondary_color", glSecondaryColorPointerEXT },
-  { "glSecondaryColorPointerListIBM", "GL_IBM_vertex_array_lists", glSecondaryColorPointerListIBM },
-  { "glSelectPerfMonitorCountersAMD", "GL_AMD_performance_monitor", glSelectPerfMonitorCountersAMD },
-  { "glSelectTextureCoordSetSGIS", "GL_SGIS_multitexture", glSelectTextureCoordSetSGIS },
-  { "glSelectTextureSGIS", "GL_SGIS_multitexture", glSelectTextureSGIS },
-  { "glSemaphoreParameterui64vEXT", "GL_EXT_semaphore", glSemaphoreParameterui64vEXT },
-  { "glSeparableFilter2D", "GL_ARB_imaging", glSeparableFilter2D },
-  { "glSeparableFilter2DEXT", "GL_EXT_convolution", glSeparableFilter2DEXT },
-  { "glSetFenceAPPLE", "GL_APPLE_fence", glSetFenceAPPLE },
-  { "glSetFenceNV", "GL_NV_fence", glSetFenceNV },
-  { "glSetFragmentShaderConstantATI", "GL_ATI_fragment_shader", glSetFragmentShaderConstantATI },
-  { "glSetInvariantEXT", "GL_EXT_vertex_shader", glSetInvariantEXT },
-  { "glSetLocalConstantEXT", "GL_EXT_vertex_shader", glSetLocalConstantEXT },
-  { "glSetMultisamplefvAMD", "GL_AMD_sample_positions", glSetMultisamplefvAMD },
-  { "glShaderBinary", "GL_ARB_ES2_compatibility GL_VERSION_4_1", glShaderBinary },
-  { "glShaderOp1EXT", "GL_EXT_vertex_shader", glShaderOp1EXT },
-  { "glShaderOp2EXT", "GL_EXT_vertex_shader", glShaderOp2EXT },
-  { "glShaderOp3EXT", "GL_EXT_vertex_shader", glShaderOp3EXT },
-  { "glShaderSource", "GL_VERSION_2_0", glShaderSource },
-  { "glShaderSourceARB", "GL_ARB_shader_objects", glShaderSourceARB },
-  { "glShaderStorageBlockBinding", "GL_ARB_shader_storage_buffer_object GL_VERSION_4_3", glShaderStorageBlockBinding },
-  { "glShadingRateImageBarrierNV", "GL_NV_shading_rate_image GL_NV_shading_rate_image", glShadingRateImageBarrierNV },
-  { "glShadingRateImagePaletteNV", "GL_NV_shading_rate_image", glShadingRateImagePaletteNV },
-  { "glShadingRateSampleOrderCustomNV", "GL_NV_shading_rate_image", glShadingRateSampleOrderCustomNV },
-  { "glShadingRateSampleOrderNV", "GL_NV_shading_rate_image", glShadingRateSampleOrderNV },
-  { "glSharpenTexFuncSGIS", "GL_SGIS_sharpen_texture", glSharpenTexFuncSGIS },
-  { "glSignalSemaphoreEXT", "GL_EXT_semaphore", glSignalSemaphoreEXT },
-  { "glSignalSemaphoreui64NVX", "GL_NVX_progress_fence", glSignalSemaphoreui64NVX },
-  { "glSignalVkFenceNV", "GL_NV_draw_vulkan_image", glSignalVkFenceNV },
-  { "glSignalVkSemaphoreNV", "GL_NV_draw_vulkan_image", glSignalVkSemaphoreNV },
-  { "glSpecializeShader", "GL_VERSION_4_6", glSpecializeShader },
-  { "glSpecializeShaderARB", "GL_ARB_gl_spirv", glSpecializeShaderARB },
-  { "glSpriteParameterfSGIX", "GL_SGIX_sprite", glSpriteParameterfSGIX },
-  { "glSpriteParameterfvSGIX", "GL_SGIX_sprite", glSpriteParameterfvSGIX },
-  { "glSpriteParameteriSGIX", "GL_SGIX_sprite", glSpriteParameteriSGIX },
-  { "glSpriteParameterivSGIX", "GL_SGIX_sprite", glSpriteParameterivSGIX },
-  { "glStartInstrumentsSGIX", "GL_SGIX_instruments", glStartInstrumentsSGIX },
-  { "glStateCaptureNV", "GL_NV_command_list", glStateCaptureNV },
-  { "glStencilClearTagEXT", "GL_EXT_stencil_clear_tag", glStencilClearTagEXT },
-  { "glStencilFillPathInstancedNV", "GL_NV_path_rendering", glStencilFillPathInstancedNV },
-  { "glStencilFillPathNV", "GL_NV_path_rendering", glStencilFillPathNV },
-  { "glStencilFuncSeparate", "GL_VERSION_2_0", glStencilFuncSeparate },
-  { "glStencilFuncSeparateATI", "GL_ATI_separate_stencil", glStencilFuncSeparateATI },
-  { "glStencilMaskSeparate", "GL_VERSION_2_0", glStencilMaskSeparate },
-  { "glStencilOpSeparate", "GL_VERSION_2_0", glStencilOpSeparate },
-  { "glStencilOpSeparateATI", "GL_ATI_separate_stencil", glStencilOpSeparateATI },
-  { "glStencilOpValueAMD", "GL_AMD_stencil_operation_extended", glStencilOpValueAMD },
-  { "glStencilStrokePathInstancedNV", "GL_NV_path_rendering", glStencilStrokePathInstancedNV },
-  { "glStencilStrokePathNV", "GL_NV_path_rendering", glStencilStrokePathNV },
-  { "glStencilThenCoverFillPathInstancedNV", "GL_NV_path_rendering", glStencilThenCoverFillPathInstancedNV },
-  { "glStencilThenCoverFillPathNV", "GL_NV_path_rendering", glStencilThenCoverFillPathNV },
-  { "glStencilThenCoverStrokePathInstancedNV", "GL_NV_path_rendering", glStencilThenCoverStrokePathInstancedNV },
-  { "glStencilThenCoverStrokePathNV", "GL_NV_path_rendering", glStencilThenCoverStrokePathNV },
-  { "glStopInstrumentsSGIX", "GL_SGIX_instruments", glStopInstrumentsSGIX },
-  { "glStringMarkerGREMEDY", "GL_GREMEDY_string_marker", glStringMarkerGREMEDY },
-  { "glSubpixelPrecisionBiasNV", "GL_NV_conservative_raster", glSubpixelPrecisionBiasNV },
-  { "glSwizzleEXT", "GL_EXT_vertex_shader", glSwizzleEXT },
-  { "glSyncTextureINTEL", "GL_INTEL_map_texture", glSyncTextureINTEL },
-  { "glTagSampleBufferSGIX", "GL_SGIX_tag_sample_buffer", glTagSampleBufferSGIX },
-  { "glTangent3bEXT", "GL_EXT_coordinate_frame", glTangent3bEXT },
-  { "glTangent3bvEXT", "GL_EXT_coordinate_frame", glTangent3bvEXT },
-  { "glTangent3dEXT", "GL_EXT_coordinate_frame", glTangent3dEXT },
-  { "glTangent3dvEXT", "GL_EXT_coordinate_frame", glTangent3dvEXT },
-  { "glTangent3fEXT", "GL_EXT_coordinate_frame", glTangent3fEXT },
-  { "glTangent3fvEXT", "GL_EXT_coordinate_frame", glTangent3fvEXT },
-  { "glTangent3iEXT", "GL_EXT_coordinate_frame", glTangent3iEXT },
-  { "glTangent3ivEXT", "GL_EXT_coordinate_frame", glTangent3ivEXT },
-  { "glTangent3sEXT", "GL_EXT_coordinate_frame", glTangent3sEXT },
-  { "glTangent3svEXT", "GL_EXT_coordinate_frame", glTangent3svEXT },
-  { "glTangentPointerEXT", "GL_EXT_coordinate_frame", glTangentPointerEXT },
-  { "glTbufferMask3DFX", "GL_3DFX_tbuffer", glTbufferMask3DFX },
-  { "glTessellationFactorAMD", "GL_AMD_vertex_shader_tessellator", glTessellationFactorAMD },
-  { "glTessellationModeAMD", "GL_AMD_vertex_shader_tessellator", glTessellationModeAMD },
-  { "glTestFenceAPPLE", "GL_APPLE_fence", glTestFenceAPPLE },
-  { "glTestFenceNV", "GL_NV_fence", glTestFenceNV },
-  { "glTestObjectAPPLE", "GL_APPLE_fence", glTestObjectAPPLE },
-  { "glTexAttachMemoryNV", "GL_NV_memory_attachment", glTexAttachMemoryNV },
-  { "glTexBuffer", "GL_VERSION_3_1", glTexBuffer },
-  { "glTexBufferARB", "GL_ARB_texture_buffer_object", glTexBufferARB },
-  { "glTexBufferEXT", "GL_EXT_texture_buffer_object", glTexBufferEXT },
-  { "glTexBufferRange", "GL_ARB_texture_buffer_range GL_VERSION_4_3", glTexBufferRange },
-  { "glTexBumpParameterfvATI", "GL_ATI_envmap_bumpmap", glTexBumpParameterfvATI },
-  { "glTexBumpParameterivATI", "GL_ATI_envmap_bumpmap", glTexBumpParameterivATI },
-  { "glTexCoord1bOES", "GL_OES_byte_coordinates", glTexCoord1bOES },
-  { "glTexCoord1bvOES", "GL_OES_byte_coordinates", glTexCoord1bvOES },
-  { "glTexCoord1hNV", "GL_NV_half_float", glTexCoord1hNV },
-  { "glTexCoord1hvNV", "GL_NV_half_float", glTexCoord1hvNV },
-  { "glTexCoord1xOES", "GL_OES_fixed_point", glTexCoord1xOES },
-  { "glTexCoord1xvOES", "GL_OES_fixed_point", glTexCoord1xvOES },
-  { "glTexCoord2bOES", "GL_OES_byte_coordinates", glTexCoord2bOES },
-  { "glTexCoord2bvOES", "GL_OES_byte_coordinates", glTexCoord2bvOES },
-  { "glTexCoord2fColor3fVertex3fSUN", "GL_SUN_vertex", glTexCoord2fColor3fVertex3fSUN },
-  { "glTexCoord2fColor3fVertex3fvSUN", "GL_SUN_vertex", glTexCoord2fColor3fVertex3fvSUN },
-  { "glTexCoord2fColor4fNormal3fVertex3fSUN", "GL_SUN_vertex", glTexCoord2fColor4fNormal3fVertex3fSUN },
-  { "glTexCoord2fColor4fNormal3fVertex3fvSUN", "GL_SUN_vertex", glTexCoord2fColor4fNormal3fVertex3fvSUN },
-  { "glTexCoord2fColor4ubVertex3fSUN", "GL_SUN_vertex", glTexCoord2fColor4ubVertex3fSUN },
-  { "glTexCoord2fColor4ubVertex3fvSUN", "GL_SUN_vertex", glTexCoord2fColor4ubVertex3fvSUN },
-  { "glTexCoord2fNormal3fVertex3fSUN", "GL_SUN_vertex", glTexCoord2fNormal3fVertex3fSUN },
-  { "glTexCoord2fNormal3fVertex3fvSUN", "GL_SUN_vertex", glTexCoord2fNormal3fVertex3fvSUN },
-  { "glTexCoord2fVertex3fSUN", "GL_SUN_vertex", glTexCoord2fVertex3fSUN },
-  { "glTexCoord2fVertex3fvSUN", "GL_SUN_vertex", glTexCoord2fVertex3fvSUN },
-  { "glTexCoord2hNV", "GL_NV_half_float", glTexCoord2hNV },
-  { "glTexCoord2hvNV", "GL_NV_half_float", glTexCoord2hvNV },
-  { "glTexCoord2xOES", "GL_OES_fixed_point", glTexCoord2xOES },
-  { "glTexCoord2xvOES", "GL_OES_fixed_point", glTexCoord2xvOES },
-  { "glTexCoord3bOES", "GL_OES_byte_coordinates", glTexCoord3bOES },
-  { "glTexCoord3bvOES", "GL_OES_byte_coordinates", glTexCoord3bvOES },
-  { "glTexCoord3hNV", "GL_NV_half_float", glTexCoord3hNV },
-  { "glTexCoord3hvNV", "GL_NV_half_float", glTexCoord3hvNV },
-  { "glTexCoord3xOES", "GL_OES_fixed_point", glTexCoord3xOES },
-  { "glTexCoord3xvOES", "GL_OES_fixed_point", glTexCoord3xvOES },
-  { "glTexCoord4bOES", "GL_OES_byte_coordinates", glTexCoord4bOES },
-  { "glTexCoord4bvOES", "GL_OES_byte_coordinates", glTexCoord4bvOES },
-  { "glTexCoord4fColor4fNormal3fVertex4fSUN", "GL_SUN_vertex", glTexCoord4fColor4fNormal3fVertex4fSUN },
-  { "glTexCoord4fColor4fNormal3fVertex4fvSUN", "GL_SUN_vertex", glTexCoord4fColor4fNormal3fVertex4fvSUN },
-  { "glTexCoord4fVertex4fSUN", "GL_SUN_vertex", glTexCoord4fVertex4fSUN },
-  { "glTexCoord4fVertex4fvSUN", "GL_SUN_vertex", glTexCoord4fVertex4fvSUN },
-  { "glTexCoord4hNV", "GL_NV_half_float", glTexCoord4hNV },
-  { "glTexCoord4hvNV", "GL_NV_half_float", glTexCoord4hvNV },
-  { "glTexCoord4xOES", "GL_OES_fixed_point", glTexCoord4xOES },
-  { "glTexCoord4xvOES", "GL_OES_fixed_point", glTexCoord4xvOES },
-  { "glTexCoordFormatNV", "GL_NV_vertex_buffer_unified_memory", glTexCoordFormatNV },
-  { "glTexCoordP1ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP1ui },
-  { "glTexCoordP1uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP1uiv },
-  { "glTexCoordP2ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP2ui },
-  { "glTexCoordP2uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP2uiv },
-  { "glTexCoordP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP3ui },
-  { "glTexCoordP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP3uiv },
-  { "glTexCoordP4ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP4ui },
-  { "glTexCoordP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP4uiv },
-  { "glTexCoordPointerEXT", "GL_EXT_vertex_array", glTexCoordPointerEXT },
-  { "glTexCoordPointerListIBM", "GL_IBM_vertex_array_lists", glTexCoordPointerListIBM },
-  { "glTexCoordPointervINTEL", "GL_INTEL_parallel_arrays", glTexCoordPointervINTEL },
-  { "glTexEnvxOES", "GL_OES_fixed_point", glTexEnvxOES },
-  { "glTexEnvxvOES", "GL_OES_fixed_point", glTexEnvxvOES },
-  { "glTexFilterFuncSGIS", "GL_SGIS_texture_filter4", glTexFilterFuncSGIS },
-  { "glTexGenxOES", "GL_OES_fixed_point", glTexGenxOES },
-  { "glTexGenxvOES", "GL_OES_fixed_point", glTexGenxvOES },
-  { "glTexImage2DMultisample", "GL_ARB_texture_multisample GL_VERSION_3_2", glTexImage2DMultisample },
-  { "glTexImage2DMultisampleCoverageNV", "GL_NV_texture_multisample", glTexImage2DMultisampleCoverageNV },
-  { "glTexImage3D", "GL_VERSION_1_2", glTexImage3D },
-  { "glTexImage3DEXT", "GL_EXT_texture3D", glTexImage3DEXT },
-  { "glTexImage3DMultisample", "GL_ARB_texture_multisample GL_VERSION_3_2", glTexImage3DMultisample },
-  { "glTexImage3DMultisampleCoverageNV", "GL_NV_texture_multisample", glTexImage3DMultisampleCoverageNV },
-  { "glTexImage4DSGIS", "GL_SGIS_texture4D", glTexImage4DSGIS },
-  { "glTexPageCommitmentARB", "GL_ARB_sparse_texture", glTexPageCommitmentARB },
-  { "glTexParameterIiv", "GL_VERSION_3_0", glTexParameterIiv },
-  { "glTexParameterIivEXT", "GL_EXT_texture_integer", glTexParameterIivEXT },
-  { "glTexParameterIuiv", "GL_VERSION_3_0", glTexParameterIuiv },
-  { "glTexParameterIuivEXT", "GL_EXT_texture_integer", glTexParameterIuivEXT },
-  { "glTexParameterxOES", "GL_OES_fixed_point", glTexParameterxOES },
-  { "glTexParameterxvOES", "GL_OES_fixed_point", glTexParameterxvOES },
-  { "glTexRenderbufferNV", "GL_NV_explicit_multisample", glTexRenderbufferNV },
-  { "glTexStorage1D", "GL_ARB_texture_storage GL_VERSION_4_2", glTexStorage1D },
-  { "glTexStorage2D", "GL_ARB_texture_storage GL_VERSION_4_2", glTexStorage2D },
-  { "glTexStorage2DMultisample", "GL_ARB_texture_storage_multisample GL_VERSION_4_3", glTexStorage2DMultisample },
-  { "glTexStorage3D", "GL_ARB_texture_storage GL_VERSION_4_2", glTexStorage3D },
-  { "glTexStorage3DMultisample", "GL_ARB_texture_storage_multisample GL_VERSION_4_3", glTexStorage3DMultisample },
-  { "glTexStorageMem1DEXT", "GL_EXT_memory_object", glTexStorageMem1DEXT },
-  { "glTexStorageMem2DEXT", "GL_EXT_memory_object", glTexStorageMem2DEXT },
-  { "glTexStorageMem2DMultisampleEXT", "GL_EXT_memory_object", glTexStorageMem2DMultisampleEXT },
-  { "glTexStorageMem3DEXT", "GL_EXT_memory_object", glTexStorageMem3DEXT },
-  { "glTexStorageMem3DMultisampleEXT", "GL_EXT_memory_object", glTexStorageMem3DMultisampleEXT },
-  { "glTexStorageSparseAMD", "GL_AMD_sparse_texture", glTexStorageSparseAMD },
-  { "glTexSubImage1DEXT", "GL_EXT_subtexture", glTexSubImage1DEXT },
-  { "glTexSubImage2DEXT", "GL_EXT_subtexture", glTexSubImage2DEXT },
-  { "glTexSubImage3D", "GL_VERSION_1_2", glTexSubImage3D },
-  { "glTexSubImage3DEXT", "GL_EXT_texture3D", glTexSubImage3DEXT },
-  { "glTexSubImage4DSGIS", "GL_SGIS_texture4D", glTexSubImage4DSGIS },
-  { "glTextureAttachMemoryNV", "GL_NV_memory_attachment", glTextureAttachMemoryNV },
-  { "glTextureBarrier", "GL_ARB_texture_barrier GL_VERSION_4_5", glTextureBarrier },
-  { "glTextureBarrierNV", "GL_NV_texture_barrier", glTextureBarrierNV },
-  { "glTextureBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureBuffer },
-  { "glTextureBufferEXT", "GL_EXT_direct_state_access", glTextureBufferEXT },
-  { "glTextureBufferRange", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureBufferRange },
-  { "glTextureBufferRangeEXT", "GL_EXT_direct_state_access", glTextureBufferRangeEXT },
-  { "glTextureColorMaskSGIS", "GL_SGIS_texture_color_mask", glTextureColorMaskSGIS },
-  { "glTextureImage1DEXT", "GL_EXT_direct_state_access", glTextureImage1DEXT },
-  { "glTextureImage2DEXT", "GL_EXT_direct_state_access", glTextureImage2DEXT },
-  { "glTextureImage2DMultisampleCoverageNV", "GL_NV_texture_multisample", glTextureImage2DMultisampleCoverageNV },
-  { "glTextureImage2DMultisampleNV", "GL_NV_texture_multisample", glTextureImage2DMultisampleNV },
-  { "glTextureImage3DEXT", "GL_EXT_direct_state_access", glTextureImage3DEXT },
-  { "glTextureImage3DMultisampleCoverageNV", "GL_NV_texture_multisample", glTextureImage3DMultisampleCoverageNV },
-  { "glTextureImage3DMultisampleNV", "GL_NV_texture_multisample", glTextureImage3DMultisampleNV },
-  { "glTextureLightEXT", "GL_EXT_light_texture", glTextureLightEXT },
-  { "glTextureMaterialEXT", "GL_EXT_light_texture", glTextureMaterialEXT },
-  { "glTextureNormalEXT", "GL_EXT_texture_perturb_normal", glTextureNormalEXT },
-  { "glTexturePageCommitmentEXT", "GL_EXT_direct_state_access", glTexturePageCommitmentEXT },
-  { "glTextureParameterIiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureParameterIiv },
-  { "glTextureParameterIivEXT", "GL_EXT_direct_state_access", glTextureParameterIivEXT },
-  { "glTextureParameterIuiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureParameterIuiv },
-  { "glTextureParameterIuivEXT", "GL_EXT_direct_state_access", glTextureParameterIuivEXT },
-  { "glTextureParameterf", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureParameterf },
-  { "glTextureParameterfEXT", "GL_EXT_direct_state_access", glTextureParameterfEXT },
-  { "glTextureParameterfv", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureParameterfv },
-  { "glTextureParameterfvEXT", "GL_EXT_direct_state_access", glTextureParameterfvEXT },
-  { "glTextureParameteri", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureParameteri },
-  { "glTextureParameteriEXT", "GL_EXT_direct_state_access", glTextureParameteriEXT },
-  { "glTextureParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureParameteriv },
-  { "glTextureParameterivEXT", "GL_EXT_direct_state_access", glTextureParameterivEXT },
-  { "glTextureRangeAPPLE", "GL_APPLE_texture_range", glTextureRangeAPPLE },
-  { "glTextureRenderbufferEXT", "GL_EXT_direct_state_access", glTextureRenderbufferEXT },
-  { "glTextureStorage1D", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureStorage1D },
-  { "glTextureStorage1DEXT", "GL_EXT_direct_state_access", glTextureStorage1DEXT },
-  { "glTextureStorage2D", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureStorage2D },
-  { "glTextureStorage2DEXT", "GL_EXT_direct_state_access", glTextureStorage2DEXT },
-  { "glTextureStorage2DMultisample", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureStorage2DMultisample },
-  { "glTextureStorage2DMultisampleEXT", "GL_EXT_direct_state_access", glTextureStorage2DMultisampleEXT },
-  { "glTextureStorage3D", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureStorage3D },
-  { "glTextureStorage3DEXT", "GL_EXT_direct_state_access", glTextureStorage3DEXT },
-  { "glTextureStorage3DMultisample", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureStorage3DMultisample },
-  { "glTextureStorage3DMultisampleEXT", "GL_EXT_direct_state_access", glTextureStorage3DMultisampleEXT },
-  { "glTextureStorageMem1DEXT", "GL_EXT_memory_object", glTextureStorageMem1DEXT },
-  { "glTextureStorageMem2DEXT", "GL_EXT_memory_object", glTextureStorageMem2DEXT },
-  { "glTextureStorageMem2DMultisampleEXT", "GL_EXT_memory_object", glTextureStorageMem2DMultisampleEXT },
-  { "glTextureStorageMem3DEXT", "GL_EXT_memory_object", glTextureStorageMem3DEXT },
-  { "glTextureStorageMem3DMultisampleEXT", "GL_EXT_memory_object", glTextureStorageMem3DMultisampleEXT },
-  { "glTextureStorageSparseAMD", "GL_AMD_sparse_texture", glTextureStorageSparseAMD },
-  { "glTextureSubImage1D", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureSubImage1D },
-  { "glTextureSubImage1DEXT", "GL_EXT_direct_state_access", glTextureSubImage1DEXT },
-  { "glTextureSubImage2D", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureSubImage2D },
-  { "glTextureSubImage2DEXT", "GL_EXT_direct_state_access", glTextureSubImage2DEXT },
-  { "glTextureSubImage3D", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureSubImage3D },
-  { "glTextureSubImage3DEXT", "GL_EXT_direct_state_access", glTextureSubImage3DEXT },
-  { "glTextureView", "GL_ARB_texture_view GL_VERSION_4_3", glTextureView },
-  { "glTrackMatrixNV", "GL_NV_vertex_program", glTrackMatrixNV },
-  { "glTransformFeedbackAttribsNV", "GL_NV_transform_feedback", glTransformFeedbackAttribsNV },
-  { "glTransformFeedbackBufferBase", "GL_ARB_direct_state_access GL_VERSION_4_5", glTransformFeedbackBufferBase },
-  { "glTransformFeedbackBufferRange", "GL_ARB_direct_state_access GL_VERSION_4_5", glTransformFeedbackBufferRange },
-  { "glTransformFeedbackStreamAttribsNV", "GL_NV_transform_feedback", glTransformFeedbackStreamAttribsNV },
-  { "glTransformFeedbackVaryings", "GL_VERSION_3_0", glTransformFeedbackVaryings },
-  { "glTransformFeedbackVaryingsEXT", "GL_EXT_transform_feedback", glTransformFeedbackVaryingsEXT },
-  { "glTransformFeedbackVaryingsNV", "GL_NV_transform_feedback", glTransformFeedbackVaryingsNV },
-  { "glTransformPathNV", "GL_NV_path_rendering", glTransformPathNV },
-  { "glTranslatexOES", "GL_OES_fixed_point", glTranslatexOES },
-  { "glUniform1d", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform1d },
-  { "glUniform1dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform1dv },
-  { "glUniform1f", "GL_VERSION_2_0", glUniform1f },
-  { "glUniform1fARB", "GL_ARB_shader_objects", glUniform1fARB },
-  { "glUniform1fv", "GL_VERSION_2_0", glUniform1fv },
-  { "glUniform1fvARB", "GL_ARB_shader_objects", glUniform1fvARB },
-  { "glUniform1i", "GL_VERSION_2_0", glUniform1i },
-  { "glUniform1i64ARB", "GL_ARB_gpu_shader_int64", glUniform1i64ARB },
-  { "glUniform1i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform1i64NV },
-  { "glUniform1i64vARB", "GL_ARB_gpu_shader_int64", glUniform1i64vARB },
-  { "glUniform1i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform1i64vNV },
-  { "glUniform1iARB", "GL_ARB_shader_objects", glUniform1iARB },
-  { "glUniform1iv", "GL_VERSION_2_0", glUniform1iv },
-  { "glUniform1ivARB", "GL_ARB_shader_objects", glUniform1ivARB },
-  { "glUniform1ui", "GL_VERSION_3_0", glUniform1ui },
-  { "glUniform1ui64ARB", "GL_ARB_gpu_shader_int64", glUniform1ui64ARB },
-  { "glUniform1ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform1ui64NV },
-  { "glUniform1ui64vARB", "GL_ARB_gpu_shader_int64", glUniform1ui64vARB },
-  { "glUniform1ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform1ui64vNV },
-  { "glUniform1uiEXT", "GL_EXT_gpu_shader4", glUniform1uiEXT },
-  { "glUniform1uiv", "GL_VERSION_3_0", glUniform1uiv },
-  { "glUniform1uivEXT", "GL_EXT_gpu_shader4", glUniform1uivEXT },
-  { "glUniform2d", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform2d },
-  { "glUniform2dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform2dv },
-  { "glUniform2f", "GL_VERSION_2_0", glUniform2f },
-  { "glUniform2fARB", "GL_ARB_shader_objects", glUniform2fARB },
-  { "glUniform2fv", "GL_VERSION_2_0", glUniform2fv },
-  { "glUniform2fvARB", "GL_ARB_shader_objects", glUniform2fvARB },
-  { "glUniform2i", "GL_VERSION_2_0", glUniform2i },
-  { "glUniform2i64ARB", "GL_ARB_gpu_shader_int64", glUniform2i64ARB },
-  { "glUniform2i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform2i64NV },
-  { "glUniform2i64vARB", "GL_ARB_gpu_shader_int64", glUniform2i64vARB },
-  { "glUniform2i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform2i64vNV },
-  { "glUniform2iARB", "GL_ARB_shader_objects", glUniform2iARB },
-  { "glUniform2iv", "GL_VERSION_2_0", glUniform2iv },
-  { "glUniform2ivARB", "GL_ARB_shader_objects", glUniform2ivARB },
-  { "glUniform2ui", "GL_VERSION_3_0", glUniform2ui },
-  { "glUniform2ui64ARB", "GL_ARB_gpu_shader_int64", glUniform2ui64ARB },
-  { "glUniform2ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform2ui64NV },
-  { "glUniform2ui64vARB", "GL_ARB_gpu_shader_int64", glUniform2ui64vARB },
-  { "glUniform2ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform2ui64vNV },
-  { "glUniform2uiEXT", "GL_EXT_gpu_shader4", glUniform2uiEXT },
-  { "glUniform2uiv", "GL_VERSION_3_0", glUniform2uiv },
-  { "glUniform2uivEXT", "GL_EXT_gpu_shader4", glUniform2uivEXT },
-  { "glUniform3d", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform3d },
-  { "glUniform3dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform3dv },
-  { "glUniform3f", "GL_VERSION_2_0", glUniform3f },
-  { "glUniform3fARB", "GL_ARB_shader_objects", glUniform3fARB },
-  { "glUniform3fv", "GL_VERSION_2_0", glUniform3fv },
-  { "glUniform3fvARB", "GL_ARB_shader_objects", glUniform3fvARB },
-  { "glUniform3i", "GL_VERSION_2_0", glUniform3i },
-  { "glUniform3i64ARB", "GL_ARB_gpu_shader_int64", glUniform3i64ARB },
-  { "glUniform3i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform3i64NV },
-  { "glUniform3i64vARB", "GL_ARB_gpu_shader_int64", glUniform3i64vARB },
-  { "glUniform3i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform3i64vNV },
-  { "glUniform3iARB", "GL_ARB_shader_objects", glUniform3iARB },
-  { "glUniform3iv", "GL_VERSION_2_0", glUniform3iv },
-  { "glUniform3ivARB", "GL_ARB_shader_objects", glUniform3ivARB },
-  { "glUniform3ui", "GL_VERSION_3_0", glUniform3ui },
-  { "glUniform3ui64ARB", "GL_ARB_gpu_shader_int64", glUniform3ui64ARB },
-  { "glUniform3ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform3ui64NV },
-  { "glUniform3ui64vARB", "GL_ARB_gpu_shader_int64", glUniform3ui64vARB },
-  { "glUniform3ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform3ui64vNV },
-  { "glUniform3uiEXT", "GL_EXT_gpu_shader4", glUniform3uiEXT },
-  { "glUniform3uiv", "GL_VERSION_3_0", glUniform3uiv },
-  { "glUniform3uivEXT", "GL_EXT_gpu_shader4", glUniform3uivEXT },
-  { "glUniform4d", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform4d },
-  { "glUniform4dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform4dv },
-  { "glUniform4f", "GL_VERSION_2_0", glUniform4f },
-  { "glUniform4fARB", "GL_ARB_shader_objects", glUniform4fARB },
-  { "glUniform4fv", "GL_VERSION_2_0", glUniform4fv },
-  { "glUniform4fvARB", "GL_ARB_shader_objects", glUniform4fvARB },
-  { "glUniform4i", "GL_VERSION_2_0", glUniform4i },
-  { "glUniform4i64ARB", "GL_ARB_gpu_shader_int64", glUniform4i64ARB },
-  { "glUniform4i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform4i64NV },
-  { "glUniform4i64vARB", "GL_ARB_gpu_shader_int64", glUniform4i64vARB },
-  { "glUniform4i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform4i64vNV },
-  { "glUniform4iARB", "GL_ARB_shader_objects", glUniform4iARB },
-  { "glUniform4iv", "GL_VERSION_2_0", glUniform4iv },
-  { "glUniform4ivARB", "GL_ARB_shader_objects", glUniform4ivARB },
-  { "glUniform4ui", "GL_VERSION_3_0", glUniform4ui },
-  { "glUniform4ui64ARB", "GL_ARB_gpu_shader_int64", glUniform4ui64ARB },
-  { "glUniform4ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform4ui64NV },
-  { "glUniform4ui64vARB", "GL_ARB_gpu_shader_int64", glUniform4ui64vARB },
-  { "glUniform4ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform4ui64vNV },
-  { "glUniform4uiEXT", "GL_EXT_gpu_shader4", glUniform4uiEXT },
-  { "glUniform4uiv", "GL_VERSION_3_0", glUniform4uiv },
-  { "glUniform4uivEXT", "GL_EXT_gpu_shader4", glUniform4uivEXT },
-  { "glUniformBlockBinding", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glUniformBlockBinding },
-  { "glUniformBufferEXT", "GL_EXT_bindable_uniform", glUniformBufferEXT },
-  { "glUniformHandleui64ARB", "GL_ARB_bindless_texture", glUniformHandleui64ARB },
-  { "glUniformHandleui64NV", "GL_NV_bindless_texture", glUniformHandleui64NV },
-  { "glUniformHandleui64vARB", "GL_ARB_bindless_texture", glUniformHandleui64vARB },
-  { "glUniformHandleui64vNV", "GL_NV_bindless_texture", glUniformHandleui64vNV },
-  { "glUniformMatrix2dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix2dv },
-  { "glUniformMatrix2fv", "GL_VERSION_2_0", glUniformMatrix2fv },
-  { "glUniformMatrix2fvARB", "GL_ARB_shader_objects", glUniformMatrix2fvARB },
-  { "glUniformMatrix2x3dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix2x3dv },
-  { "glUniformMatrix2x3fv", "GL_VERSION_2_1", glUniformMatrix2x3fv },
-  { "glUniformMatrix2x4dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix2x4dv },
-  { "glUniformMatrix2x4fv", "GL_VERSION_2_1", glUniformMatrix2x4fv },
-  { "glUniformMatrix3dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix3dv },
-  { "glUniformMatrix3fv", "GL_VERSION_2_0", glUniformMatrix3fv },
-  { "glUniformMatrix3fvARB", "GL_ARB_shader_objects", glUniformMatrix3fvARB },
-  { "glUniformMatrix3x2dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix3x2dv },
-  { "glUniformMatrix3x2fv", "GL_VERSION_2_1", glUniformMatrix3x2fv },
-  { "glUniformMatrix3x4dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix3x4dv },
-  { "glUniformMatrix3x4fv", "GL_VERSION_2_1", glUniformMatrix3x4fv },
-  { "glUniformMatrix4dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix4dv },
-  { "glUniformMatrix4fv", "GL_VERSION_2_0", glUniformMatrix4fv },
-  { "glUniformMatrix4fvARB", "GL_ARB_shader_objects", glUniformMatrix4fvARB },
-  { "glUniformMatrix4x2dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix4x2dv },
-  { "glUniformMatrix4x2fv", "GL_VERSION_2_1", glUniformMatrix4x2fv },
-  { "glUniformMatrix4x3dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix4x3dv },
-  { "glUniformMatrix4x3fv", "GL_VERSION_2_1", glUniformMatrix4x3fv },
-  { "glUniformSubroutinesuiv", "GL_ARB_shader_subroutine GL_VERSION_4_0", glUniformSubroutinesuiv },
-  { "glUniformui64NV", "GL_NV_shader_buffer_load", glUniformui64NV },
-  { "glUniformui64vNV", "GL_NV_shader_buffer_load", glUniformui64vNV },
-  { "glUnlockArraysEXT", "GL_EXT_compiled_vertex_array", glUnlockArraysEXT },
-  { "glUnmapBuffer", "GL_VERSION_1_5", glUnmapBuffer },
-  { "glUnmapBufferARB", "GL_ARB_vertex_buffer_object", glUnmapBufferARB },
-  { "glUnmapNamedBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glUnmapNamedBuffer },
-  { "glUnmapNamedBufferEXT", "GL_EXT_direct_state_access", glUnmapNamedBufferEXT },
-  { "glUnmapObjectBufferATI", "GL_ATI_map_object_buffer", glUnmapObjectBufferATI },
-  { "glUnmapTexture2DINTEL", "GL_INTEL_map_texture", glUnmapTexture2DINTEL },
-  { "glUpdateObjectBufferATI", "GL_ATI_vertex_array_object", glUpdateObjectBufferATI },
-  { "glUploadGpuMaskNVX", "GL_NVX_gpu_multicast2", glUploadGpuMaskNVX },
-  { "glUseProgram", "GL_VERSION_2_0", glUseProgram },
-  { "glUseProgramObjectARB", "GL_ARB_shader_objects", glUseProgramObjectARB },
-  { "glUseProgramStages", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glUseProgramStages },
-  { "glUseShaderProgramEXT", "GL_EXT_separate_shader_objects", glUseShaderProgramEXT },
-  { "glVDPAUFiniNV", "GL_NV_vdpau_interop", glVDPAUFiniNV },
-  { "glVDPAUGetSurfaceivNV", "GL_NV_vdpau_interop", glVDPAUGetSurfaceivNV },
-  { "glVDPAUInitNV", "GL_NV_vdpau_interop", glVDPAUInitNV },
-  { "glVDPAUIsSurfaceNV", "GL_NV_vdpau_interop", glVDPAUIsSurfaceNV },
-  { "glVDPAUMapSurfacesNV", "GL_NV_vdpau_interop", glVDPAUMapSurfacesNV },
-  { "glVDPAURegisterOutputSurfaceNV", "GL_NV_vdpau_interop", glVDPAURegisterOutputSurfaceNV },
-  { "glVDPAURegisterVideoSurfaceNV", "GL_NV_vdpau_interop", glVDPAURegisterVideoSurfaceNV },
-  { "glVDPAURegisterVideoSurfaceWithPictureStructureNV", "GL_NV_vdpau_interop2", glVDPAURegisterVideoSurfaceWithPictureStructureNV },
-  { "glVDPAUSurfaceAccessNV", "GL_NV_vdpau_interop", glVDPAUSurfaceAccessNV },
-  { "glVDPAUUnmapSurfacesNV", "GL_NV_vdpau_interop", glVDPAUUnmapSurfacesNV },
-  { "glVDPAUUnregisterSurfaceNV", "GL_NV_vdpau_interop", glVDPAUUnregisterSurfaceNV },
-  { "glValidateProgram", "GL_VERSION_2_0", glValidateProgram },
-  { "glValidateProgramARB", "GL_ARB_shader_objects", glValidateProgramARB },
-  { "glValidateProgramPipeline", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glValidateProgramPipeline },
-  { "glVariantArrayObjectATI", "GL_ATI_vertex_array_object", glVariantArrayObjectATI },
-  { "glVariantPointerEXT", "GL_EXT_vertex_shader", glVariantPointerEXT },
-  { "glVariantbvEXT", "GL_EXT_vertex_shader", glVariantbvEXT },
-  { "glVariantdvEXT", "GL_EXT_vertex_shader", glVariantdvEXT },
-  { "glVariantfvEXT", "GL_EXT_vertex_shader", glVariantfvEXT },
-  { "glVariantivEXT", "GL_EXT_vertex_shader", glVariantivEXT },
-  { "glVariantsvEXT", "GL_EXT_vertex_shader", glVariantsvEXT },
-  { "glVariantubvEXT", "GL_EXT_vertex_shader", glVariantubvEXT },
-  { "glVariantuivEXT", "GL_EXT_vertex_shader", glVariantuivEXT },
-  { "glVariantusvEXT", "GL_EXT_vertex_shader", glVariantusvEXT },
-  { "glVertex2bOES", "GL_OES_byte_coordinates", glVertex2bOES },
-  { "glVertex2bvOES", "GL_OES_byte_coordinates", glVertex2bvOES },
-  { "glVertex2hNV", "GL_NV_half_float", glVertex2hNV },
-  { "glVertex2hvNV", "GL_NV_half_float", glVertex2hvNV },
-  { "glVertex2xOES", "GL_OES_fixed_point", glVertex2xOES },
-  { "glVertex2xvOES", "GL_OES_fixed_point", glVertex2xvOES },
-  { "glVertex3bOES", "GL_OES_byte_coordinates", glVertex3bOES },
-  { "glVertex3bvOES", "GL_OES_byte_coordinates", glVertex3bvOES },
-  { "glVertex3hNV", "GL_NV_half_float", glVertex3hNV },
-  { "glVertex3hvNV", "GL_NV_half_float", glVertex3hvNV },
-  { "glVertex3xOES", "GL_OES_fixed_point", glVertex3xOES },
-  { "glVertex3xvOES", "GL_OES_fixed_point", glVertex3xvOES },
-  { "glVertex4bOES", "GL_OES_byte_coordinates", glVertex4bOES },
-  { "glVertex4bvOES", "GL_OES_byte_coordinates", glVertex4bvOES },
-  { "glVertex4hNV", "GL_NV_half_float", glVertex4hNV },
-  { "glVertex4hvNV", "GL_NV_half_float", glVertex4hvNV },
-  { "glVertex4xOES", "GL_OES_fixed_point", glVertex4xOES },
-  { "glVertex4xvOES", "GL_OES_fixed_point", glVertex4xvOES },
-  { "glVertexArrayAttribBinding", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayAttribBinding },
-  { "glVertexArrayAttribFormat", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayAttribFormat },
-  { "glVertexArrayAttribIFormat", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayAttribIFormat },
-  { "glVertexArrayAttribLFormat", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayAttribLFormat },
-  { "glVertexArrayBindVertexBufferEXT", "GL_EXT_direct_state_access", glVertexArrayBindVertexBufferEXT },
-  { "glVertexArrayBindingDivisor", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayBindingDivisor },
-  { "glVertexArrayColorOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayColorOffsetEXT },
-  { "glVertexArrayEdgeFlagOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayEdgeFlagOffsetEXT },
-  { "glVertexArrayElementBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayElementBuffer },
-  { "glVertexArrayFogCoordOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayFogCoordOffsetEXT },
-  { "glVertexArrayIndexOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayIndexOffsetEXT },
-  { "glVertexArrayMultiTexCoordOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayMultiTexCoordOffsetEXT },
-  { "glVertexArrayNormalOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayNormalOffsetEXT },
-  { "glVertexArrayParameteriAPPLE", "GL_APPLE_vertex_array_range", glVertexArrayParameteriAPPLE },
-  { "glVertexArrayRangeAPPLE", "GL_APPLE_vertex_array_range", glVertexArrayRangeAPPLE },
-  { "glVertexArrayRangeNV", "GL_NV_vertex_array_range", glVertexArrayRangeNV },
-  { "glVertexArraySecondaryColorOffsetEXT", "GL_EXT_direct_state_access", glVertexArraySecondaryColorOffsetEXT },
-  { "glVertexArrayTexCoordOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayTexCoordOffsetEXT },
-  { "glVertexArrayVertexAttribBindingEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribBindingEXT },
-  { "glVertexArrayVertexAttribDivisorEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribDivisorEXT },
-  { "glVertexArrayVertexAttribFormatEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribFormatEXT },
-  { "glVertexArrayVertexAttribIFormatEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribIFormatEXT },
-  { "glVertexArrayVertexAttribIOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribIOffsetEXT },
-  { "glVertexArrayVertexAttribLFormatEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribLFormatEXT },
-  { "glVertexArrayVertexAttribLOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribLOffsetEXT },
-  { "glVertexArrayVertexAttribOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribOffsetEXT },
-  { "glVertexArrayVertexBindingDivisorEXT", "GL_EXT_direct_state_access", glVertexArrayVertexBindingDivisorEXT },
-  { "glVertexArrayVertexBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayVertexBuffer },
-  { "glVertexArrayVertexBuffers", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayVertexBuffers },
-  { "glVertexArrayVertexOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayVertexOffsetEXT },
-  { "glVertexAttrib1d", "GL_VERSION_2_0", glVertexAttrib1d },
-  { "glVertexAttrib1dARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib1dARB },
-  { "glVertexAttrib1dNV", "GL_NV_vertex_program", glVertexAttrib1dNV },
-  { "glVertexAttrib1dv", "GL_VERSION_2_0", glVertexAttrib1dv },
-  { "glVertexAttrib1dvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib1dvARB },
-  { "glVertexAttrib1dvNV", "GL_NV_vertex_program", glVertexAttrib1dvNV },
-  { "glVertexAttrib1f", "GL_VERSION_2_0", glVertexAttrib1f },
-  { "glVertexAttrib1fARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib1fARB },
-  { "glVertexAttrib1fNV", "GL_NV_vertex_program", glVertexAttrib1fNV },
-  { "glVertexAttrib1fv", "GL_VERSION_2_0", glVertexAttrib1fv },
-  { "glVertexAttrib1fvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib1fvARB },
-  { "glVertexAttrib1fvNV", "GL_NV_vertex_program", glVertexAttrib1fvNV },
-  { "glVertexAttrib1hNV", "GL_NV_half_float", glVertexAttrib1hNV },
-  { "glVertexAttrib1hvNV", "GL_NV_half_float", glVertexAttrib1hvNV },
-  { "glVertexAttrib1s", "GL_VERSION_2_0", glVertexAttrib1s },
-  { "glVertexAttrib1sARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib1sARB },
-  { "glVertexAttrib1sNV", "GL_NV_vertex_program", glVertexAttrib1sNV },
-  { "glVertexAttrib1sv", "GL_VERSION_2_0", glVertexAttrib1sv },
-  { "glVertexAttrib1svARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib1svARB },
-  { "glVertexAttrib1svNV", "GL_NV_vertex_program", glVertexAttrib1svNV },
-  { "glVertexAttrib2d", "GL_VERSION_2_0", glVertexAttrib2d },
-  { "glVertexAttrib2dARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib2dARB },
-  { "glVertexAttrib2dNV", "GL_NV_vertex_program", glVertexAttrib2dNV },
-  { "glVertexAttrib2dv", "GL_VERSION_2_0", glVertexAttrib2dv },
-  { "glVertexAttrib2dvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib2dvARB },
-  { "glVertexAttrib2dvNV", "GL_NV_vertex_program", glVertexAttrib2dvNV },
-  { "glVertexAttrib2f", "GL_VERSION_2_0", glVertexAttrib2f },
-  { "glVertexAttrib2fARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib2fARB },
-  { "glVertexAttrib2fNV", "GL_NV_vertex_program", glVertexAttrib2fNV },
-  { "glVertexAttrib2fv", "GL_VERSION_2_0", glVertexAttrib2fv },
-  { "glVertexAttrib2fvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib2fvARB },
-  { "glVertexAttrib2fvNV", "GL_NV_vertex_program", glVertexAttrib2fvNV },
-  { "glVertexAttrib2hNV", "GL_NV_half_float", glVertexAttrib2hNV },
-  { "glVertexAttrib2hvNV", "GL_NV_half_float", glVertexAttrib2hvNV },
-  { "glVertexAttrib2s", "GL_VERSION_2_0", glVertexAttrib2s },
-  { "glVertexAttrib2sARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib2sARB },
-  { "glVertexAttrib2sNV", "GL_NV_vertex_program", glVertexAttrib2sNV },
-  { "glVertexAttrib2sv", "GL_VERSION_2_0", glVertexAttrib2sv },
-  { "glVertexAttrib2svARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib2svARB },
-  { "glVertexAttrib2svNV", "GL_NV_vertex_program", glVertexAttrib2svNV },
-  { "glVertexAttrib3d", "GL_VERSION_2_0", glVertexAttrib3d },
-  { "glVertexAttrib3dARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib3dARB },
-  { "glVertexAttrib3dNV", "GL_NV_vertex_program", glVertexAttrib3dNV },
-  { "glVertexAttrib3dv", "GL_VERSION_2_0", glVertexAttrib3dv },
-  { "glVertexAttrib3dvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib3dvARB },
-  { "glVertexAttrib3dvNV", "GL_NV_vertex_program", glVertexAttrib3dvNV },
-  { "glVertexAttrib3f", "GL_VERSION_2_0", glVertexAttrib3f },
-  { "glVertexAttrib3fARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib3fARB },
-  { "glVertexAttrib3fNV", "GL_NV_vertex_program", glVertexAttrib3fNV },
-  { "glVertexAttrib3fv", "GL_VERSION_2_0", glVertexAttrib3fv },
-  { "glVertexAttrib3fvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib3fvARB },
-  { "glVertexAttrib3fvNV", "GL_NV_vertex_program", glVertexAttrib3fvNV },
-  { "glVertexAttrib3hNV", "GL_NV_half_float", glVertexAttrib3hNV },
-  { "glVertexAttrib3hvNV", "GL_NV_half_float", glVertexAttrib3hvNV },
-  { "glVertexAttrib3s", "GL_VERSION_2_0", glVertexAttrib3s },
-  { "glVertexAttrib3sARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib3sARB },
-  { "glVertexAttrib3sNV", "GL_NV_vertex_program", glVertexAttrib3sNV },
-  { "glVertexAttrib3sv", "GL_VERSION_2_0", glVertexAttrib3sv },
-  { "glVertexAttrib3svARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib3svARB },
-  { "glVertexAttrib3svNV", "GL_NV_vertex_program", glVertexAttrib3svNV },
-  { "glVertexAttrib4Nbv", "GL_VERSION_2_0", glVertexAttrib4Nbv },
-  { "glVertexAttrib4NbvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NbvARB },
-  { "glVertexAttrib4Niv", "GL_VERSION_2_0", glVertexAttrib4Niv },
-  { "glVertexAttrib4NivARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NivARB },
-  { "glVertexAttrib4Nsv", "GL_VERSION_2_0", glVertexAttrib4Nsv },
-  { "glVertexAttrib4NsvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NsvARB },
-  { "glVertexAttrib4Nub", "GL_VERSION_2_0", glVertexAttrib4Nub },
-  { "glVertexAttrib4NubARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NubARB },
-  { "glVertexAttrib4Nubv", "GL_VERSION_2_0", glVertexAttrib4Nubv },
-  { "glVertexAttrib4NubvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NubvARB },
-  { "glVertexAttrib4Nuiv", "GL_VERSION_2_0", glVertexAttrib4Nuiv },
-  { "glVertexAttrib4NuivARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NuivARB },
-  { "glVertexAttrib4Nusv", "GL_VERSION_2_0", glVertexAttrib4Nusv },
-  { "glVertexAttrib4NusvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NusvARB },
-  { "glVertexAttrib4bv", "GL_VERSION_2_0", glVertexAttrib4bv },
-  { "glVertexAttrib4bvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4bvARB },
-  { "glVertexAttrib4d", "GL_VERSION_2_0", glVertexAttrib4d },
-  { "glVertexAttrib4dARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4dARB },
-  { "glVertexAttrib4dNV", "GL_NV_vertex_program", glVertexAttrib4dNV },
-  { "glVertexAttrib4dv", "GL_VERSION_2_0", glVertexAttrib4dv },
-  { "glVertexAttrib4dvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4dvARB },
-  { "glVertexAttrib4dvNV", "GL_NV_vertex_program", glVertexAttrib4dvNV },
-  { "glVertexAttrib4f", "GL_VERSION_2_0", glVertexAttrib4f },
-  { "glVertexAttrib4fARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4fARB },
-  { "glVertexAttrib4fNV", "GL_NV_vertex_program", glVertexAttrib4fNV },
-  { "glVertexAttrib4fv", "GL_VERSION_2_0", glVertexAttrib4fv },
-  { "glVertexAttrib4fvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4fvARB },
-  { "glVertexAttrib4fvNV", "GL_NV_vertex_program", glVertexAttrib4fvNV },
-  { "glVertexAttrib4hNV", "GL_NV_half_float", glVertexAttrib4hNV },
-  { "glVertexAttrib4hvNV", "GL_NV_half_float", glVertexAttrib4hvNV },
-  { "glVertexAttrib4iv", "GL_VERSION_2_0", glVertexAttrib4iv },
-  { "glVertexAttrib4ivARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4ivARB },
-  { "glVertexAttrib4s", "GL_VERSION_2_0", glVertexAttrib4s },
-  { "glVertexAttrib4sARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4sARB },
-  { "glVertexAttrib4sNV", "GL_NV_vertex_program", glVertexAttrib4sNV },
-  { "glVertexAttrib4sv", "GL_VERSION_2_0", glVertexAttrib4sv },
-  { "glVertexAttrib4svARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4svARB },
-  { "glVertexAttrib4svNV", "GL_NV_vertex_program", glVertexAttrib4svNV },
-  { "glVertexAttrib4ubNV", "GL_NV_vertex_program", glVertexAttrib4ubNV },
-  { "glVertexAttrib4ubv", "GL_VERSION_2_0", glVertexAttrib4ubv },
-  { "glVertexAttrib4ubvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4ubvARB },
-  { "glVertexAttrib4ubvNV", "GL_NV_vertex_program", glVertexAttrib4ubvNV },
-  { "glVertexAttrib4uiv", "GL_VERSION_2_0", glVertexAttrib4uiv },
-  { "glVertexAttrib4uivARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4uivARB },
-  { "glVertexAttrib4usv", "GL_VERSION_2_0", glVertexAttrib4usv },
-  { "glVertexAttrib4usvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4usvARB },
-  { "glVertexAttribArrayObjectATI", "GL_ATI_vertex_attrib_array_object", glVertexAttribArrayObjectATI },
-  { "glVertexAttribBinding", "GL_ARB_vertex_attrib_binding GL_VERSION_4_3", glVertexAttribBinding },
-  { "glVertexAttribDivisor", "GL_VERSION_3_3", glVertexAttribDivisor },
-  { "glVertexAttribDivisorARB", "GL_ARB_instanced_arrays", glVertexAttribDivisorARB },
-  { "glVertexAttribFormat", "GL_ARB_vertex_attrib_binding GL_VERSION_4_3", glVertexAttribFormat },
-  { "glVertexAttribFormatNV", "GL_NV_vertex_buffer_unified_memory", glVertexAttribFormatNV },
-  { "glVertexAttribI1i", "GL_VERSION_3_0", glVertexAttribI1i },
-  { "glVertexAttribI1iEXT", "GL_NV_vertex_program4", glVertexAttribI1iEXT },
-  { "glVertexAttribI1iv", "GL_VERSION_3_0", glVertexAttribI1iv },
-  { "glVertexAttribI1ivEXT", "GL_NV_vertex_program4", glVertexAttribI1ivEXT },
-  { "glVertexAttribI1ui", "GL_VERSION_3_0", glVertexAttribI1ui },
-  { "glVertexAttribI1uiEXT", "GL_NV_vertex_program4", glVertexAttribI1uiEXT },
-  { "glVertexAttribI1uiv", "GL_VERSION_3_0", glVertexAttribI1uiv },
-  { "glVertexAttribI1uivEXT", "GL_NV_vertex_program4", glVertexAttribI1uivEXT },
-  { "glVertexAttribI2i", "GL_VERSION_3_0", glVertexAttribI2i },
-  { "glVertexAttribI2iEXT", "GL_NV_vertex_program4", glVertexAttribI2iEXT },
-  { "glVertexAttribI2iv", "GL_VERSION_3_0", glVertexAttribI2iv },
-  { "glVertexAttribI2ivEXT", "GL_NV_vertex_program4", glVertexAttribI2ivEXT },
-  { "glVertexAttribI2ui", "GL_VERSION_3_0", glVertexAttribI2ui },
-  { "glVertexAttribI2uiEXT", "GL_NV_vertex_program4", glVertexAttribI2uiEXT },
-  { "glVertexAttribI2uiv", "GL_VERSION_3_0", glVertexAttribI2uiv },
-  { "glVertexAttribI2uivEXT", "GL_NV_vertex_program4", glVertexAttribI2uivEXT },
-  { "glVertexAttribI3i", "GL_VERSION_3_0", glVertexAttribI3i },
-  { "glVertexAttribI3iEXT", "GL_NV_vertex_program4", glVertexAttribI3iEXT },
-  { "glVertexAttribI3iv", "GL_VERSION_3_0", glVertexAttribI3iv },
-  { "glVertexAttribI3ivEXT", "GL_NV_vertex_program4", glVertexAttribI3ivEXT },
-  { "glVertexAttribI3ui", "GL_VERSION_3_0", glVertexAttribI3ui },
-  { "glVertexAttribI3uiEXT", "GL_NV_vertex_program4", glVertexAttribI3uiEXT },
-  { "glVertexAttribI3uiv", "GL_VERSION_3_0", glVertexAttribI3uiv },
-  { "glVertexAttribI3uivEXT", "GL_NV_vertex_program4", glVertexAttribI3uivEXT },
-  { "glVertexAttribI4bv", "GL_VERSION_3_0", glVertexAttribI4bv },
-  { "glVertexAttribI4bvEXT", "GL_NV_vertex_program4", glVertexAttribI4bvEXT },
-  { "glVertexAttribI4i", "GL_VERSION_3_0", glVertexAttribI4i },
-  { "glVertexAttribI4iEXT", "GL_NV_vertex_program4", glVertexAttribI4iEXT },
-  { "glVertexAttribI4iv", "GL_VERSION_3_0", glVertexAttribI4iv },
-  { "glVertexAttribI4ivEXT", "GL_NV_vertex_program4", glVertexAttribI4ivEXT },
-  { "glVertexAttribI4sv", "GL_VERSION_3_0", glVertexAttribI4sv },
-  { "glVertexAttribI4svEXT", "GL_NV_vertex_program4", glVertexAttribI4svEXT },
-  { "glVertexAttribI4ubv", "GL_VERSION_3_0", glVertexAttribI4ubv },
-  { "glVertexAttribI4ubvEXT", "GL_NV_vertex_program4", glVertexAttribI4ubvEXT },
-  { "glVertexAttribI4ui", "GL_VERSION_3_0", glVertexAttribI4ui },
-  { "glVertexAttribI4uiEXT", "GL_NV_vertex_program4", glVertexAttribI4uiEXT },
-  { "glVertexAttribI4uiv", "GL_VERSION_3_0", glVertexAttribI4uiv },
-  { "glVertexAttribI4uivEXT", "GL_NV_vertex_program4", glVertexAttribI4uivEXT },
-  { "glVertexAttribI4usv", "GL_VERSION_3_0", glVertexAttribI4usv },
-  { "glVertexAttribI4usvEXT", "GL_NV_vertex_program4", glVertexAttribI4usvEXT },
-  { "glVertexAttribIFormat", "GL_ARB_vertex_attrib_binding GL_VERSION_4_3", glVertexAttribIFormat },
-  { "glVertexAttribIFormatNV", "GL_NV_vertex_buffer_unified_memory", glVertexAttribIFormatNV },
-  { "glVertexAttribIPointer", "GL_VERSION_3_0", glVertexAttribIPointer },
-  { "glVertexAttribIPointerEXT", "GL_NV_vertex_program4", glVertexAttribIPointerEXT },
-  { "glVertexAttribL1d", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL1d },
-  { "glVertexAttribL1dEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL1dEXT },
-  { "glVertexAttribL1dv", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL1dv },
-  { "glVertexAttribL1dvEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL1dvEXT },
-  { "glVertexAttribL1i64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL1i64NV },
-  { "glVertexAttribL1i64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL1i64vNV },
-  { "glVertexAttribL1ui64ARB", "GL_ARB_bindless_texture", glVertexAttribL1ui64ARB },
-  { "glVertexAttribL1ui64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL1ui64NV },
-  { "glVertexAttribL1ui64vARB", "GL_ARB_bindless_texture", glVertexAttribL1ui64vARB },
-  { "glVertexAttribL1ui64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL1ui64vNV },
-  { "glVertexAttribL2d", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL2d },
-  { "glVertexAttribL2dEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL2dEXT },
-  { "glVertexAttribL2dv", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL2dv },
-  { "glVertexAttribL2dvEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL2dvEXT },
-  { "glVertexAttribL2i64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL2i64NV },
-  { "glVertexAttribL2i64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL2i64vNV },
-  { "glVertexAttribL2ui64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL2ui64NV },
-  { "glVertexAttribL2ui64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL2ui64vNV },
-  { "glVertexAttribL3d", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL3d },
-  { "glVertexAttribL3dEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL3dEXT },
-  { "glVertexAttribL3dv", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL3dv },
-  { "glVertexAttribL3dvEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL3dvEXT },
-  { "glVertexAttribL3i64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL3i64NV },
-  { "glVertexAttribL3i64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL3i64vNV },
-  { "glVertexAttribL3ui64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL3ui64NV },
-  { "glVertexAttribL3ui64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL3ui64vNV },
-  { "glVertexAttribL4d", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL4d },
-  { "glVertexAttribL4dEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL4dEXT },
-  { "glVertexAttribL4dv", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL4dv },
-  { "glVertexAttribL4dvEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL4dvEXT },
-  { "glVertexAttribL4i64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL4i64NV },
-  { "glVertexAttribL4i64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL4i64vNV },
-  { "glVertexAttribL4ui64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL4ui64NV },
-  { "glVertexAttribL4ui64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL4ui64vNV },
-  { "glVertexAttribLFormat", "GL_ARB_vertex_attrib_binding GL_VERSION_4_3", glVertexAttribLFormat },
-  { "glVertexAttribLFormatNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribLFormatNV },
-  { "glVertexAttribLPointer", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribLPointer },
-  { "glVertexAttribLPointerEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribLPointerEXT },
-  { "glVertexAttribP1ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP1ui },
-  { "glVertexAttribP1uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP1uiv },
-  { "glVertexAttribP2ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP2ui },
-  { "glVertexAttribP2uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP2uiv },
-  { "glVertexAttribP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP3ui },
-  { "glVertexAttribP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP3uiv },
-  { "glVertexAttribP4ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP4ui },
-  { "glVertexAttribP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP4uiv },
-  { "glVertexAttribParameteriAMD", "GL_AMD_interleaved_elements", glVertexAttribParameteriAMD },
-  { "glVertexAttribPointer", "GL_VERSION_2_0", glVertexAttribPointer },
-  { "glVertexAttribPointerARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttribPointerARB },
-  { "glVertexAttribPointerNV", "GL_NV_vertex_program", glVertexAttribPointerNV },
-  { "glVertexAttribs1dvNV", "GL_NV_vertex_program", glVertexAttribs1dvNV },
-  { "glVertexAttribs1fvNV", "GL_NV_vertex_program", glVertexAttribs1fvNV },
-  { "glVertexAttribs1hvNV", "GL_NV_half_float", glVertexAttribs1hvNV },
-  { "glVertexAttribs1svNV", "GL_NV_vertex_program", glVertexAttribs1svNV },
-  { "glVertexAttribs2dvNV", "GL_NV_vertex_program", glVertexAttribs2dvNV },
-  { "glVertexAttribs2fvNV", "GL_NV_vertex_program", glVertexAttribs2fvNV },
-  { "glVertexAttribs2hvNV", "GL_NV_half_float", glVertexAttribs2hvNV },
-  { "glVertexAttribs2svNV", "GL_NV_vertex_program", glVertexAttribs2svNV },
-  { "glVertexAttribs3dvNV", "GL_NV_vertex_program", glVertexAttribs3dvNV },
-  { "glVertexAttribs3fvNV", "GL_NV_vertex_program", glVertexAttribs3fvNV },
-  { "glVertexAttribs3hvNV", "GL_NV_half_float", glVertexAttribs3hvNV },
-  { "glVertexAttribs3svNV", "GL_NV_vertex_program", glVertexAttribs3svNV },
-  { "glVertexAttribs4dvNV", "GL_NV_vertex_program", glVertexAttribs4dvNV },
-  { "glVertexAttribs4fvNV", "GL_NV_vertex_program", glVertexAttribs4fvNV },
-  { "glVertexAttribs4hvNV", "GL_NV_half_float", glVertexAttribs4hvNV },
-  { "glVertexAttribs4svNV", "GL_NV_vertex_program", glVertexAttribs4svNV },
-  { "glVertexAttribs4ubvNV", "GL_NV_vertex_program", glVertexAttribs4ubvNV },
-  { "glVertexBindingDivisor", "GL_ARB_vertex_attrib_binding GL_VERSION_4_3", glVertexBindingDivisor },
-  { "glVertexBlendARB", "GL_ARB_vertex_blend", glVertexBlendARB },
-  { "glVertexBlendEnvfATI", "GL_ATI_vertex_streams", glVertexBlendEnvfATI },
-  { "glVertexBlendEnviATI", "GL_ATI_vertex_streams", glVertexBlendEnviATI },
-  { "glVertexFormatNV", "GL_NV_vertex_buffer_unified_memory", glVertexFormatNV },
-  { "glVertexP2ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexP2ui },
-  { "glVertexP2uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexP2uiv },
-  { "glVertexP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexP3ui },
-  { "glVertexP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexP3uiv },
-  { "glVertexP4ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexP4ui },
-  { "glVertexP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexP4uiv },
-  { "glVertexPointerEXT", "GL_EXT_vertex_array", glVertexPointerEXT },
-  { "glVertexPointerListIBM", "GL_IBM_vertex_array_lists", glVertexPointerListIBM },
-  { "glVertexPointervINTEL", "GL_INTEL_parallel_arrays", glVertexPointervINTEL },
-  { "glVertexStream1dATI", "GL_ATI_vertex_streams", glVertexStream1dATI },
-  { "glVertexStream1dvATI", "GL_ATI_vertex_streams", glVertexStream1dvATI },
-  { "glVertexStream1fATI", "GL_ATI_vertex_streams", glVertexStream1fATI },
-  { "glVertexStream1fvATI", "GL_ATI_vertex_streams", glVertexStream1fvATI },
-  { "glVertexStream1iATI", "GL_ATI_vertex_streams", glVertexStream1iATI },
-  { "glVertexStream1ivATI", "GL_ATI_vertex_streams", glVertexStream1ivATI },
-  { "glVertexStream1sATI", "GL_ATI_vertex_streams", glVertexStream1sATI },
-  { "glVertexStream1svATI", "GL_ATI_vertex_streams", glVertexStream1svATI },
-  { "glVertexStream2dATI", "GL_ATI_vertex_streams", glVertexStream2dATI },
-  { "glVertexStream2dvATI", "GL_ATI_vertex_streams", glVertexStream2dvATI },
-  { "glVertexStream2fATI", "GL_ATI_vertex_streams", glVertexStream2fATI },
-  { "glVertexStream2fvATI", "GL_ATI_vertex_streams", glVertexStream2fvATI },
-  { "glVertexStream2iATI", "GL_ATI_vertex_streams", glVertexStream2iATI },
-  { "glVertexStream2ivATI", "GL_ATI_vertex_streams", glVertexStream2ivATI },
-  { "glVertexStream2sATI", "GL_ATI_vertex_streams", glVertexStream2sATI },
-  { "glVertexStream2svATI", "GL_ATI_vertex_streams", glVertexStream2svATI },
-  { "glVertexStream3dATI", "GL_ATI_vertex_streams", glVertexStream3dATI },
-  { "glVertexStream3dvATI", "GL_ATI_vertex_streams", glVertexStream3dvATI },
-  { "glVertexStream3fATI", "GL_ATI_vertex_streams", glVertexStream3fATI },
-  { "glVertexStream3fvATI", "GL_ATI_vertex_streams", glVertexStream3fvATI },
-  { "glVertexStream3iATI", "GL_ATI_vertex_streams", glVertexStream3iATI },
-  { "glVertexStream3ivATI", "GL_ATI_vertex_streams", glVertexStream3ivATI },
-  { "glVertexStream3sATI", "GL_ATI_vertex_streams", glVertexStream3sATI },
-  { "glVertexStream3svATI", "GL_ATI_vertex_streams", glVertexStream3svATI },
-  { "glVertexStream4dATI", "GL_ATI_vertex_streams", glVertexStream4dATI },
-  { "glVertexStream4dvATI", "GL_ATI_vertex_streams", glVertexStream4dvATI },
-  { "glVertexStream4fATI", "GL_ATI_vertex_streams", glVertexStream4fATI },
-  { "glVertexStream4fvATI", "GL_ATI_vertex_streams", glVertexStream4fvATI },
-  { "glVertexStream4iATI", "GL_ATI_vertex_streams", glVertexStream4iATI },
-  { "glVertexStream4ivATI", "GL_ATI_vertex_streams", glVertexStream4ivATI },
-  { "glVertexStream4sATI", "GL_ATI_vertex_streams", glVertexStream4sATI },
-  { "glVertexStream4svATI", "GL_ATI_vertex_streams", glVertexStream4svATI },
-  { "glVertexWeightPointerEXT", "GL_EXT_vertex_weighting", glVertexWeightPointerEXT },
-  { "glVertexWeightfEXT", "GL_EXT_vertex_weighting", glVertexWeightfEXT },
-  { "glVertexWeightfvEXT", "GL_EXT_vertex_weighting", glVertexWeightfvEXT },
-  { "glVertexWeighthNV", "GL_NV_half_float", glVertexWeighthNV },
-  { "glVertexWeighthvNV", "GL_NV_half_float", glVertexWeighthvNV },
-  { "glVideoCaptureNV", "GL_NV_video_capture", glVideoCaptureNV },
-  { "glVideoCaptureStreamParameterdvNV", "GL_NV_video_capture", glVideoCaptureStreamParameterdvNV },
-  { "glVideoCaptureStreamParameterfvNV", "GL_NV_video_capture", glVideoCaptureStreamParameterfvNV },
-  { "glVideoCaptureStreamParameterivNV", "GL_NV_video_capture", glVideoCaptureStreamParameterivNV },
-  { "glViewportArrayv", "GL_ARB_viewport_array GL_VERSION_4_1", glViewportArrayv },
-  { "glViewportIndexedf", "GL_ARB_viewport_array GL_VERSION_4_1", glViewportIndexedf },
-  { "glViewportIndexedfv", "GL_ARB_viewport_array GL_VERSION_4_1", glViewportIndexedfv },
-  { "glViewportPositionWScaleNV", "GL_NV_clip_space_w_scaling", glViewportPositionWScaleNV },
-  { "glViewportSwizzleNV", "GL_NV_viewport_swizzle", glViewportSwizzleNV },
-  { "glWaitSemaphoreEXT", "GL_EXT_semaphore", glWaitSemaphoreEXT },
-  { "glWaitSemaphoreui64NVX", "GL_NVX_progress_fence", glWaitSemaphoreui64NVX },
-  { "glWaitSync", "GL_ARB_sync GL_VERSION_3_2", glWaitSync },
-  { "glWaitVkSemaphoreNV", "GL_NV_draw_vulkan_image", glWaitVkSemaphoreNV },
-  { "glWeightPathsNV", "GL_NV_path_rendering", glWeightPathsNV },
-  { "glWeightPointerARB", "GL_ARB_vertex_blend", glWeightPointerARB },
-  { "glWeightbvARB", "GL_ARB_vertex_blend", glWeightbvARB },
-  { "glWeightdvARB", "GL_ARB_vertex_blend", glWeightdvARB },
-  { "glWeightfvARB", "GL_ARB_vertex_blend", glWeightfvARB },
-  { "glWeightivARB", "GL_ARB_vertex_blend", glWeightivARB },
-  { "glWeightsvARB", "GL_ARB_vertex_blend", glWeightsvARB },
-  { "glWeightubvARB", "GL_ARB_vertex_blend", glWeightubvARB },
-  { "glWeightuivARB", "GL_ARB_vertex_blend", glWeightuivARB },
-  { "glWeightusvARB", "GL_ARB_vertex_blend", glWeightusvARB },
-  { "glWindowPos2d", "GL_VERSION_1_4", glWindowPos2d },
-  { "glWindowPos2dARB", "GL_ARB_window_pos", glWindowPos2dARB },
-  { "glWindowPos2dMESA", "GL_MESA_window_pos", glWindowPos2dMESA },
-  { "glWindowPos2dv", "GL_VERSION_1_4", glWindowPos2dv },
-  { "glWindowPos2dvARB", "GL_ARB_window_pos", glWindowPos2dvARB },
-  { "glWindowPos2dvMESA", "GL_MESA_window_pos", glWindowPos2dvMESA },
-  { "glWindowPos2f", "GL_VERSION_1_4", glWindowPos2f },
-  { "glWindowPos2fARB", "GL_ARB_window_pos", glWindowPos2fARB },
-  { "glWindowPos2fMESA", "GL_MESA_window_pos", glWindowPos2fMESA },
-  { "glWindowPos2fv", "GL_VERSION_1_4", glWindowPos2fv },
-  { "glWindowPos2fvARB", "GL_ARB_window_pos", glWindowPos2fvARB },
-  { "glWindowPos2fvMESA", "GL_MESA_window_pos", glWindowPos2fvMESA },
-  { "glWindowPos2i", "GL_VERSION_1_4", glWindowPos2i },
-  { "glWindowPos2iARB", "GL_ARB_window_pos", glWindowPos2iARB },
-  { "glWindowPos2iMESA", "GL_MESA_window_pos", glWindowPos2iMESA },
-  { "glWindowPos2iv", "GL_VERSION_1_4", glWindowPos2iv },
-  { "glWindowPos2ivARB", "GL_ARB_window_pos", glWindowPos2ivARB },
-  { "glWindowPos2ivMESA", "GL_MESA_window_pos", glWindowPos2ivMESA },
-  { "glWindowPos2s", "GL_VERSION_1_4", glWindowPos2s },
-  { "glWindowPos2sARB", "GL_ARB_window_pos", glWindowPos2sARB },
-  { "glWindowPos2sMESA", "GL_MESA_window_pos", glWindowPos2sMESA },
-  { "glWindowPos2sv", "GL_VERSION_1_4", glWindowPos2sv },
-  { "glWindowPos2svARB", "GL_ARB_window_pos", glWindowPos2svARB },
-  { "glWindowPos2svMESA", "GL_MESA_window_pos", glWindowPos2svMESA },
-  { "glWindowPos3d", "GL_VERSION_1_4", glWindowPos3d },
-  { "glWindowPos3dARB", "GL_ARB_window_pos", glWindowPos3dARB },
-  { "glWindowPos3dMESA", "GL_MESA_window_pos", glWindowPos3dMESA },
-  { "glWindowPos3dv", "GL_VERSION_1_4", glWindowPos3dv },
-  { "glWindowPos3dvARB", "GL_ARB_window_pos", glWindowPos3dvARB },
-  { "glWindowPos3dvMESA", "GL_MESA_window_pos", glWindowPos3dvMESA },
-  { "glWindowPos3f", "GL_VERSION_1_4", glWindowPos3f },
-  { "glWindowPos3fARB", "GL_ARB_window_pos", glWindowPos3fARB },
-  { "glWindowPos3fMESA", "GL_MESA_window_pos", glWindowPos3fMESA },
-  { "glWindowPos3fv", "GL_VERSION_1_4", glWindowPos3fv },
-  { "glWindowPos3fvARB", "GL_ARB_window_pos", glWindowPos3fvARB },
-  { "glWindowPos3fvMESA", "GL_MESA_window_pos", glWindowPos3fvMESA },
-  { "glWindowPos3i", "GL_VERSION_1_4", glWindowPos3i },
-  { "glWindowPos3iARB", "GL_ARB_window_pos", glWindowPos3iARB },
-  { "glWindowPos3iMESA", "GL_MESA_window_pos", glWindowPos3iMESA },
-  { "glWindowPos3iv", "GL_VERSION_1_4", glWindowPos3iv },
-  { "glWindowPos3ivARB", "GL_ARB_window_pos", glWindowPos3ivARB },
-  { "glWindowPos3ivMESA", "GL_MESA_window_pos", glWindowPos3ivMESA },
-  { "glWindowPos3s", "GL_VERSION_1_4", glWindowPos3s },
-  { "glWindowPos3sARB", "GL_ARB_window_pos", glWindowPos3sARB },
-  { "glWindowPos3sMESA", "GL_MESA_window_pos", glWindowPos3sMESA },
-  { "glWindowPos3sv", "GL_VERSION_1_4", glWindowPos3sv },
-  { "glWindowPos3svARB", "GL_ARB_window_pos", glWindowPos3svARB },
-  { "glWindowPos3svMESA", "GL_MESA_window_pos", glWindowPos3svMESA },
-  { "glWindowPos4dMESA", "GL_MESA_window_pos", glWindowPos4dMESA },
-  { "glWindowPos4dvMESA", "GL_MESA_window_pos", glWindowPos4dvMESA },
-  { "glWindowPos4fMESA", "GL_MESA_window_pos", glWindowPos4fMESA },
-  { "glWindowPos4fvMESA", "GL_MESA_window_pos", glWindowPos4fvMESA },
-  { "glWindowPos4iMESA", "GL_MESA_window_pos", glWindowPos4iMESA },
-  { "glWindowPos4ivMESA", "GL_MESA_window_pos", glWindowPos4ivMESA },
-  { "glWindowPos4sMESA", "GL_MESA_window_pos", glWindowPos4sMESA },
-  { "glWindowPos4svMESA", "GL_MESA_window_pos", glWindowPos4svMESA },
-  { "glWindowRectanglesEXT", "GL_EXT_window_rectangles", glWindowRectanglesEXT },
-  { "glWriteMaskEXT", "GL_EXT_vertex_shader", glWriteMaskEXT },
-  { "wglAllocateMemoryNV", "WGL_NV_vertex_array_range", wglAllocateMemoryNV },
-  { "wglBindTexImageARB", "WGL_ARB_render_texture", wglBindTexImageARB },
-  { "wglChoosePixelFormatARB", "WGL_ARB_pixel_format", wglChoosePixelFormatARB },
-  { "wglCreateContextAttribsARB", "WGL_ARB_create_context", wglCreateContextAttribsARB },
-  { "wglCreatePbufferARB", "WGL_ARB_pbuffer", wglCreatePbufferARB },
-  { "wglDestroyPbufferARB", "WGL_ARB_pbuffer", wglDestroyPbufferARB },
-  { "wglFreeMemoryNV", "WGL_NV_vertex_array_range", wglFreeMemoryNV },
-  { "wglGetCurrentReadDCARB", "WGL_ARB_make_current_read", wglGetCurrentReadDCARB },
-  { "wglGetExtensionsStringARB", "WGL_ARB_extensions_string", wglGetExtensionsStringARB },
-  { "wglGetExtensionsStringEXT", "WGL_EXT_extensions_string", wglGetExtensionsStringEXT },
-  { "wglGetPbufferDCARB", "WGL_ARB_pbuffer", wglGetPbufferDCARB },
-  { "wglGetPixelFormatAttribfvARB", "WGL_ARB_pixel_format", wglGetPixelFormatAttribfvARB },
-  { "wglGetPixelFormatAttribivARB", "WGL_ARB_pixel_format", wglGetPixelFormatAttribivARB },
-  { "wglGetSwapIntervalEXT", "WGL_EXT_swap_control", wglGetSwapIntervalEXT },
-  { "wglMakeContextCurrentARB", "WGL_ARB_make_current_read", wglMakeContextCurrentARB },
-  { "wglQueryCurrentRendererIntegerWINE", "WGL_WINE_query_renderer", wglQueryCurrentRendererIntegerWINE },
-  { "wglQueryCurrentRendererStringWINE", "WGL_WINE_query_renderer", wglQueryCurrentRendererStringWINE },
-  { "wglQueryPbufferARB", "WGL_ARB_pbuffer", wglQueryPbufferARB },
-  { "wglQueryRendererIntegerWINE", "WGL_WINE_query_renderer", wglQueryRendererIntegerWINE },
-  { "wglQueryRendererStringWINE", "WGL_WINE_query_renderer", wglQueryRendererStringWINE },
-  { "wglReleasePbufferDCARB", "WGL_ARB_pbuffer", wglReleasePbufferDCARB },
-  { "wglReleaseTexImageARB", "WGL_ARB_render_texture", wglReleaseTexImageARB },
-  { "wglSetPbufferAttribARB", "WGL_ARB_render_texture", wglSetPbufferAttribARB },
-  { "wglSetPixelFormatWINE", "WGL_WINE_pixel_format_passthrough", wglSetPixelFormatWINE },
-  { "wglSwapIntervalEXT", "WGL_EXT_swap_control", wglSwapIntervalEXT }
-};
diff --git a/dlls/opengl32/thunks.c b/dlls/opengl32/thunks.c
index d488d592f86..0a66e2a9186 100644
--- a/dlls/opengl32/thunks.c
+++ b/dlls/opengl32/thunks.c
@@ -11,6 +11,8 @@
 
 #include "unixlib.h"
 
+#include "opengl_ext.h"
+
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(opengl);
@@ -2693,3 +2695,24307 @@ void WINAPI glViewport( GLint x, GLint y, GLsizei width, GLsizei height )
     TRACE( "x %d, y %d, width %d, height %d\n", x, y, width, height );
     if ((status = UNIX_CALL( glViewport, &args ))) WARN( "glViewport returned %#x\n", status );
 }
+
+static void WINAPI glAccumxOES( GLenum op, GLfixed value )
+{
+    struct glAccumxOES_params args = { .op = op, .value = value, };
+    NTSTATUS status;
+    TRACE( "op %d, value %d\n", op, value );
+    if ((status = UNIX_CALL( glAccumxOES, &args ))) WARN( "glAccumxOES returned %#x\n", status );
+}
+
+static GLboolean WINAPI glAcquireKeyedMutexWin32EXT( GLuint memory, GLuint64 key, GLuint timeout )
+{
+    struct glAcquireKeyedMutexWin32EXT_params args = { .memory = memory, .key = key, .timeout = timeout, };
+    NTSTATUS status;
+    TRACE( "memory %d, key %s, timeout %d\n", memory, wine_dbgstr_longlong(key), timeout );
+    if ((status = UNIX_CALL( glAcquireKeyedMutexWin32EXT, &args ))) WARN( "glAcquireKeyedMutexWin32EXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glActiveProgramEXT( GLuint program )
+{
+    struct glActiveProgramEXT_params args = { .program = program, };
+    NTSTATUS status;
+    TRACE( "program %d\n", program );
+    if ((status = UNIX_CALL( glActiveProgramEXT, &args ))) WARN( "glActiveProgramEXT returned %#x\n", status );
+}
+
+static void WINAPI glActiveShaderProgram( GLuint pipeline, GLuint program )
+{
+    struct glActiveShaderProgram_params args = { .pipeline = pipeline, .program = program, };
+    NTSTATUS status;
+    TRACE( "pipeline %d, program %d\n", pipeline, program );
+    if ((status = UNIX_CALL( glActiveShaderProgram, &args ))) WARN( "glActiveShaderProgram returned %#x\n", status );
+}
+
+static void WINAPI glActiveStencilFaceEXT( GLenum face )
+{
+    struct glActiveStencilFaceEXT_params args = { .face = face, };
+    NTSTATUS status;
+    TRACE( "face %d\n", face );
+    if ((status = UNIX_CALL( glActiveStencilFaceEXT, &args ))) WARN( "glActiveStencilFaceEXT returned %#x\n", status );
+}
+
+static void WINAPI glActiveTexture( GLenum texture )
+{
+    struct glActiveTexture_params args = { .texture = texture, };
+    NTSTATUS status;
+    TRACE( "texture %d\n", texture );
+    if ((status = UNIX_CALL( glActiveTexture, &args ))) WARN( "glActiveTexture returned %#x\n", status );
+}
+
+static void WINAPI glActiveTextureARB( GLenum texture )
+{
+    struct glActiveTextureARB_params args = { .texture = texture, };
+    NTSTATUS status;
+    TRACE( "texture %d\n", texture );
+    if ((status = UNIX_CALL( glActiveTextureARB, &args ))) WARN( "glActiveTextureARB returned %#x\n", status );
+}
+
+static void WINAPI glActiveVaryingNV( GLuint program, const GLchar *name )
+{
+    struct glActiveVaryingNV_params args = { .program = program, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, name %p\n", program, name );
+    if ((status = UNIX_CALL( glActiveVaryingNV, &args ))) WARN( "glActiveVaryingNV returned %#x\n", status );
+}
+
+static void WINAPI glAlphaFragmentOp1ATI( GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod )
+{
+    struct glAlphaFragmentOp1ATI_params args = { .op = op, .dst = dst, .dstMod = dstMod, .arg1 = arg1, .arg1Rep = arg1Rep, .arg1Mod = arg1Mod, };
+    NTSTATUS status;
+    TRACE( "op %d, dst %d, dstMod %d, arg1 %d, arg1Rep %d, arg1Mod %d\n", op, dst, dstMod, arg1, arg1Rep, arg1Mod );
+    if ((status = UNIX_CALL( glAlphaFragmentOp1ATI, &args ))) WARN( "glAlphaFragmentOp1ATI returned %#x\n", status );
+}
+
+static void WINAPI glAlphaFragmentOp2ATI( GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod )
+{
+    struct glAlphaFragmentOp2ATI_params args = { .op = op, .dst = dst, .dstMod = dstMod, .arg1 = arg1, .arg1Rep = arg1Rep, .arg1Mod = arg1Mod, .arg2 = arg2, .arg2Rep = arg2Rep, .arg2Mod = arg2Mod, };
+    NTSTATUS status;
+    TRACE( "op %d, dst %d, dstMod %d, arg1 %d, arg1Rep %d, arg1Mod %d, arg2 %d, arg2Rep %d, arg2Mod %d\n", op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod );
+    if ((status = UNIX_CALL( glAlphaFragmentOp2ATI, &args ))) WARN( "glAlphaFragmentOp2ATI returned %#x\n", status );
+}
+
+static void WINAPI glAlphaFragmentOp3ATI( GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod )
+{
+    struct glAlphaFragmentOp3ATI_params args = { .op = op, .dst = dst, .dstMod = dstMod, .arg1 = arg1, .arg1Rep = arg1Rep, .arg1Mod = arg1Mod, .arg2 = arg2, .arg2Rep = arg2Rep, .arg2Mod = arg2Mod, .arg3 = arg3, .arg3Rep = arg3Rep, .arg3Mod = arg3Mod, };
+    NTSTATUS status;
+    TRACE( "op %d, dst %d, dstMod %d, arg1 %d, arg1Rep %d, arg1Mod %d, arg2 %d, arg2Rep %d, arg2Mod %d, arg3 %d, arg3Rep %d, arg3Mod %d\n", op, dst, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod );
+    if ((status = UNIX_CALL( glAlphaFragmentOp3ATI, &args ))) WARN( "glAlphaFragmentOp3ATI returned %#x\n", status );
+}
+
+static void WINAPI glAlphaFuncxOES( GLenum func, GLfixed ref )
+{
+    struct glAlphaFuncxOES_params args = { .func = func, .ref = ref, };
+    NTSTATUS status;
+    TRACE( "func %d, ref %d\n", func, ref );
+    if ((status = UNIX_CALL( glAlphaFuncxOES, &args ))) WARN( "glAlphaFuncxOES returned %#x\n", status );
+}
+
+static void WINAPI glAlphaToCoverageDitherControlNV( GLenum mode )
+{
+    struct glAlphaToCoverageDitherControlNV_params args = { .mode = mode, };
+    NTSTATUS status;
+    TRACE( "mode %d\n", mode );
+    if ((status = UNIX_CALL( glAlphaToCoverageDitherControlNV, &args ))) WARN( "glAlphaToCoverageDitherControlNV returned %#x\n", status );
+}
+
+static void WINAPI glApplyFramebufferAttachmentCMAAINTEL(void)
+{
+    struct glApplyFramebufferAttachmentCMAAINTEL_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glApplyFramebufferAttachmentCMAAINTEL, &args ))) WARN( "glApplyFramebufferAttachmentCMAAINTEL returned %#x\n", status );
+}
+
+static void WINAPI glApplyTextureEXT( GLenum mode )
+{
+    struct glApplyTextureEXT_params args = { .mode = mode, };
+    NTSTATUS status;
+    TRACE( "mode %d\n", mode );
+    if ((status = UNIX_CALL( glApplyTextureEXT, &args ))) WARN( "glApplyTextureEXT returned %#x\n", status );
+}
+
+static GLboolean WINAPI glAreProgramsResidentNV( GLsizei n, const GLuint *programs, GLboolean *residences )
+{
+    struct glAreProgramsResidentNV_params args = { .n = n, .programs = programs, .residences = residences, };
+    NTSTATUS status;
+    TRACE( "n %d, programs %p, residences %p\n", n, programs, residences );
+    if ((status = UNIX_CALL( glAreProgramsResidentNV, &args ))) WARN( "glAreProgramsResidentNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glAreTexturesResidentEXT( GLsizei n, const GLuint *textures, GLboolean *residences )
+{
+    struct glAreTexturesResidentEXT_params args = { .n = n, .textures = textures, .residences = residences, };
+    NTSTATUS status;
+    TRACE( "n %d, textures %p, residences %p\n", n, textures, residences );
+    if ((status = UNIX_CALL( glAreTexturesResidentEXT, &args ))) WARN( "glAreTexturesResidentEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glArrayElementEXT( GLint i )
+{
+    struct glArrayElementEXT_params args = { .i = i, };
+    NTSTATUS status;
+    TRACE( "i %d\n", i );
+    if ((status = UNIX_CALL( glArrayElementEXT, &args ))) WARN( "glArrayElementEXT returned %#x\n", status );
+}
+
+static void WINAPI glArrayObjectATI( GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset )
+{
+    struct glArrayObjectATI_params args = { .array = array, .size = size, .type = type, .stride = stride, .buffer = buffer, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "array %d, size %d, type %d, stride %d, buffer %d, offset %d\n", array, size, type, stride, buffer, offset );
+    if ((status = UNIX_CALL( glArrayObjectATI, &args ))) WARN( "glArrayObjectATI returned %#x\n", status );
+}
+
+static GLuint WINAPI glAsyncCopyBufferSubDataNVX( GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray )
+{
+    struct glAsyncCopyBufferSubDataNVX_params args = { .waitSemaphoreCount = waitSemaphoreCount, .waitSemaphoreArray = waitSemaphoreArray, .fenceValueArray = fenceValueArray, .readGpu = readGpu, .writeGpuMask = writeGpuMask, .readBuffer = readBuffer, .writeBuffer = writeBuffer, .readOffset = readOffset, .writeOffset = writeOffset, .size = size, .signalSemaphoreCount = signalSemaphoreCount, .signalSemaphoreArray = signalSemaphoreArray, .signalValueArray = signalValueArray, };
+    NTSTATUS status;
+    TRACE( "waitSemaphoreCount %d, waitSemaphoreArray %p, fenceValueArray %p, readGpu %d, writeGpuMask %d, readBuffer %d, writeBuffer %d, readOffset %ld, writeOffset %ld, size %ld, signalSemaphoreCount %d, signalSemaphoreArray %p, signalValueArray %p\n", waitSemaphoreCount, waitSemaphoreArray, fenceValueArray, readGpu, writeGpuMask, readBuffer, writeBuffer, readOffset, writeOffset, size, signalSemaphoreCount, signalSemaphoreArray, signalValueArray );
+    if ((status = UNIX_CALL( glAsyncCopyBufferSubDataNVX, &args ))) WARN( "glAsyncCopyBufferSubDataNVX returned %#x\n", status );
+    return args.ret;
+}
+
+static GLuint WINAPI glAsyncCopyImageSubDataNVX( GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray )
+{
+    struct glAsyncCopyImageSubDataNVX_params args = { .waitSemaphoreCount = waitSemaphoreCount, .waitSemaphoreArray = waitSemaphoreArray, .waitValueArray = waitValueArray, .srcGpu = srcGpu, .dstGpuMask = dstGpuMask, .srcName = srcName, .srcTarget = srcTarget, .srcLevel = srcLevel, .srcX = srcX, .srcY = srcY, .srcZ = srcZ, .dstName = dstName, .dstTarget = dstTarget, .dstLevel = dstLevel, .dstX = dstX, .dstY = dstY, .dstZ = dstZ, .srcWidth = srcWidth, .srcHeight = srcHeight, .srcDepth = srcDepth, .signalSemaphoreCount = signalSemaphoreCount, .signalSemaphoreArray = signalSemaphoreArray, .signalValueArray = signalValueArray, };
+    NTSTATUS status;
+    TRACE( "waitSemaphoreCount %d, waitSemaphoreArray %p, waitValueArray %p, srcGpu %d, dstGpuMask %d, srcName %d, srcTarget %d, srcLevel %d, srcX %d, srcY %d, srcZ %d, dstName %d, dstTarget %d, dstLevel %d, dstX %d, dstY %d, dstZ %d, srcWidth %d, srcHeight %d, srcDepth %d, signalSemaphoreCount %d, signalSemaphoreArray %p, signalValueArray %p\n", waitSemaphoreCount, waitSemaphoreArray, waitValueArray, srcGpu, dstGpuMask, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth, signalSemaphoreCount, signalSemaphoreArray, signalValueArray );
+    if ((status = UNIX_CALL( glAsyncCopyImageSubDataNVX, &args ))) WARN( "glAsyncCopyImageSubDataNVX returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glAsyncMarkerSGIX( GLuint marker )
+{
+    struct glAsyncMarkerSGIX_params args = { .marker = marker, };
+    NTSTATUS status;
+    TRACE( "marker %d\n", marker );
+    if ((status = UNIX_CALL( glAsyncMarkerSGIX, &args ))) WARN( "glAsyncMarkerSGIX returned %#x\n", status );
+}
+
+static void WINAPI glAttachObjectARB( GLhandleARB containerObj, GLhandleARB obj )
+{
+    struct glAttachObjectARB_params args = { .containerObj = containerObj, .obj = obj, };
+    NTSTATUS status;
+    TRACE( "containerObj %d, obj %d\n", containerObj, obj );
+    if ((status = UNIX_CALL( glAttachObjectARB, &args ))) WARN( "glAttachObjectARB returned %#x\n", status );
+}
+
+static void WINAPI glAttachShader( GLuint program, GLuint shader )
+{
+    struct glAttachShader_params args = { .program = program, .shader = shader, };
+    NTSTATUS status;
+    TRACE( "program %d, shader %d\n", program, shader );
+    if ((status = UNIX_CALL( glAttachShader, &args ))) WARN( "glAttachShader returned %#x\n", status );
+}
+
+static void WINAPI glBeginConditionalRender( GLuint id, GLenum mode )
+{
+    struct glBeginConditionalRender_params args = { .id = id, .mode = mode, };
+    NTSTATUS status;
+    TRACE( "id %d, mode %d\n", id, mode );
+    if ((status = UNIX_CALL( glBeginConditionalRender, &args ))) WARN( "glBeginConditionalRender returned %#x\n", status );
+}
+
+static void WINAPI glBeginConditionalRenderNV( GLuint id, GLenum mode )
+{
+    struct glBeginConditionalRenderNV_params args = { .id = id, .mode = mode, };
+    NTSTATUS status;
+    TRACE( "id %d, mode %d\n", id, mode );
+    if ((status = UNIX_CALL( glBeginConditionalRenderNV, &args ))) WARN( "glBeginConditionalRenderNV returned %#x\n", status );
+}
+
+static void WINAPI glBeginConditionalRenderNVX( GLuint id )
+{
+    struct glBeginConditionalRenderNVX_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glBeginConditionalRenderNVX, &args ))) WARN( "glBeginConditionalRenderNVX returned %#x\n", status );
+}
+
+static void WINAPI glBeginFragmentShaderATI(void)
+{
+    struct glBeginFragmentShaderATI_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glBeginFragmentShaderATI, &args ))) WARN( "glBeginFragmentShaderATI returned %#x\n", status );
+}
+
+static void WINAPI glBeginOcclusionQueryNV( GLuint id )
+{
+    struct glBeginOcclusionQueryNV_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glBeginOcclusionQueryNV, &args ))) WARN( "glBeginOcclusionQueryNV returned %#x\n", status );
+}
+
+static void WINAPI glBeginPerfMonitorAMD( GLuint monitor )
+{
+    struct glBeginPerfMonitorAMD_params args = { .monitor = monitor, };
+    NTSTATUS status;
+    TRACE( "monitor %d\n", monitor );
+    if ((status = UNIX_CALL( glBeginPerfMonitorAMD, &args ))) WARN( "glBeginPerfMonitorAMD returned %#x\n", status );
+}
+
+static void WINAPI glBeginPerfQueryINTEL( GLuint queryHandle )
+{
+    struct glBeginPerfQueryINTEL_params args = { .queryHandle = queryHandle, };
+    NTSTATUS status;
+    TRACE( "queryHandle %d\n", queryHandle );
+    if ((status = UNIX_CALL( glBeginPerfQueryINTEL, &args ))) WARN( "glBeginPerfQueryINTEL returned %#x\n", status );
+}
+
+static void WINAPI glBeginQuery( GLenum target, GLuint id )
+{
+    struct glBeginQuery_params args = { .target = target, .id = id, };
+    NTSTATUS status;
+    TRACE( "target %d, id %d\n", target, id );
+    if ((status = UNIX_CALL( glBeginQuery, &args ))) WARN( "glBeginQuery returned %#x\n", status );
+}
+
+static void WINAPI glBeginQueryARB( GLenum target, GLuint id )
+{
+    struct glBeginQueryARB_params args = { .target = target, .id = id, };
+    NTSTATUS status;
+    TRACE( "target %d, id %d\n", target, id );
+    if ((status = UNIX_CALL( glBeginQueryARB, &args ))) WARN( "glBeginQueryARB returned %#x\n", status );
+}
+
+static void WINAPI glBeginQueryIndexed( GLenum target, GLuint index, GLuint id )
+{
+    struct glBeginQueryIndexed_params args = { .target = target, .index = index, .id = id, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, id %d\n", target, index, id );
+    if ((status = UNIX_CALL( glBeginQueryIndexed, &args ))) WARN( "glBeginQueryIndexed returned %#x\n", status );
+}
+
+static void WINAPI glBeginTransformFeedback( GLenum primitiveMode )
+{
+    struct glBeginTransformFeedback_params args = { .primitiveMode = primitiveMode, };
+    NTSTATUS status;
+    TRACE( "primitiveMode %d\n", primitiveMode );
+    if ((status = UNIX_CALL( glBeginTransformFeedback, &args ))) WARN( "glBeginTransformFeedback returned %#x\n", status );
+}
+
+static void WINAPI glBeginTransformFeedbackEXT( GLenum primitiveMode )
+{
+    struct glBeginTransformFeedbackEXT_params args = { .primitiveMode = primitiveMode, };
+    NTSTATUS status;
+    TRACE( "primitiveMode %d\n", primitiveMode );
+    if ((status = UNIX_CALL( glBeginTransformFeedbackEXT, &args ))) WARN( "glBeginTransformFeedbackEXT returned %#x\n", status );
+}
+
+static void WINAPI glBeginTransformFeedbackNV( GLenum primitiveMode )
+{
+    struct glBeginTransformFeedbackNV_params args = { .primitiveMode = primitiveMode, };
+    NTSTATUS status;
+    TRACE( "primitiveMode %d\n", primitiveMode );
+    if ((status = UNIX_CALL( glBeginTransformFeedbackNV, &args ))) WARN( "glBeginTransformFeedbackNV returned %#x\n", status );
+}
+
+static void WINAPI glBeginVertexShaderEXT(void)
+{
+    struct glBeginVertexShaderEXT_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glBeginVertexShaderEXT, &args ))) WARN( "glBeginVertexShaderEXT returned %#x\n", status );
+}
+
+static void WINAPI glBeginVideoCaptureNV( GLuint video_capture_slot )
+{
+    struct glBeginVideoCaptureNV_params args = { .video_capture_slot = video_capture_slot, };
+    NTSTATUS status;
+    TRACE( "video_capture_slot %d\n", video_capture_slot );
+    if ((status = UNIX_CALL( glBeginVideoCaptureNV, &args ))) WARN( "glBeginVideoCaptureNV returned %#x\n", status );
+}
+
+static void WINAPI glBindAttribLocation( GLuint program, GLuint index, const GLchar *name )
+{
+    struct glBindAttribLocation_params args = { .program = program, .index = index, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, index %d, name %p\n", program, index, name );
+    if ((status = UNIX_CALL( glBindAttribLocation, &args ))) WARN( "glBindAttribLocation returned %#x\n", status );
+}
+
+static void WINAPI glBindAttribLocationARB( GLhandleARB programObj, GLuint index, const GLcharARB *name )
+{
+    struct glBindAttribLocationARB_params args = { .programObj = programObj, .index = index, .name = name, };
+    NTSTATUS status;
+    TRACE( "programObj %d, index %d, name %p\n", programObj, index, name );
+    if ((status = UNIX_CALL( glBindAttribLocationARB, &args ))) WARN( "glBindAttribLocationARB returned %#x\n", status );
+}
+
+static void WINAPI glBindBuffer( GLenum target, GLuint buffer )
+{
+    struct glBindBuffer_params args = { .target = target, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "target %d, buffer %d\n", target, buffer );
+    if ((status = UNIX_CALL( glBindBuffer, &args ))) WARN( "glBindBuffer returned %#x\n", status );
+}
+
+static void WINAPI glBindBufferARB( GLenum target, GLuint buffer )
+{
+    struct glBindBufferARB_params args = { .target = target, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "target %d, buffer %d\n", target, buffer );
+    if ((status = UNIX_CALL( glBindBufferARB, &args ))) WARN( "glBindBufferARB returned %#x\n", status );
+}
+
+static void WINAPI glBindBufferBase( GLenum target, GLuint index, GLuint buffer )
+{
+    struct glBindBufferBase_params args = { .target = target, .index = index, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, buffer %d\n", target, index, buffer );
+    if ((status = UNIX_CALL( glBindBufferBase, &args ))) WARN( "glBindBufferBase returned %#x\n", status );
+}
+
+static void WINAPI glBindBufferBaseEXT( GLenum target, GLuint index, GLuint buffer )
+{
+    struct glBindBufferBaseEXT_params args = { .target = target, .index = index, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, buffer %d\n", target, index, buffer );
+    if ((status = UNIX_CALL( glBindBufferBaseEXT, &args ))) WARN( "glBindBufferBaseEXT returned %#x\n", status );
+}
+
+static void WINAPI glBindBufferBaseNV( GLenum target, GLuint index, GLuint buffer )
+{
+    struct glBindBufferBaseNV_params args = { .target = target, .index = index, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, buffer %d\n", target, index, buffer );
+    if ((status = UNIX_CALL( glBindBufferBaseNV, &args ))) WARN( "glBindBufferBaseNV returned %#x\n", status );
+}
+
+static void WINAPI glBindBufferOffsetEXT( GLenum target, GLuint index, GLuint buffer, GLintptr offset )
+{
+    struct glBindBufferOffsetEXT_params args = { .target = target, .index = index, .buffer = buffer, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, buffer %d, offset %ld\n", target, index, buffer, offset );
+    if ((status = UNIX_CALL( glBindBufferOffsetEXT, &args ))) WARN( "glBindBufferOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glBindBufferOffsetNV( GLenum target, GLuint index, GLuint buffer, GLintptr offset )
+{
+    struct glBindBufferOffsetNV_params args = { .target = target, .index = index, .buffer = buffer, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, buffer %d, offset %ld\n", target, index, buffer, offset );
+    if ((status = UNIX_CALL( glBindBufferOffsetNV, &args ))) WARN( "glBindBufferOffsetNV returned %#x\n", status );
+}
+
+static void WINAPI glBindBufferRange( GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size )
+{
+    struct glBindBufferRange_params args = { .target = target, .index = index, .buffer = buffer, .offset = offset, .size = size, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, buffer %d, offset %ld, size %ld\n", target, index, buffer, offset, size );
+    if ((status = UNIX_CALL( glBindBufferRange, &args ))) WARN( "glBindBufferRange returned %#x\n", status );
+}
+
+static void WINAPI glBindBufferRangeEXT( GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size )
+{
+    struct glBindBufferRangeEXT_params args = { .target = target, .index = index, .buffer = buffer, .offset = offset, .size = size, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, buffer %d, offset %ld, size %ld\n", target, index, buffer, offset, size );
+    if ((status = UNIX_CALL( glBindBufferRangeEXT, &args ))) WARN( "glBindBufferRangeEXT returned %#x\n", status );
+}
+
+static void WINAPI glBindBufferRangeNV( GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size )
+{
+    struct glBindBufferRangeNV_params args = { .target = target, .index = index, .buffer = buffer, .offset = offset, .size = size, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, buffer %d, offset %ld, size %ld\n", target, index, buffer, offset, size );
+    if ((status = UNIX_CALL( glBindBufferRangeNV, &args ))) WARN( "glBindBufferRangeNV returned %#x\n", status );
+}
+
+static void WINAPI glBindBuffersBase( GLenum target, GLuint first, GLsizei count, const GLuint *buffers )
+{
+    struct glBindBuffersBase_params args = { .target = target, .first = first, .count = count, .buffers = buffers, };
+    NTSTATUS status;
+    TRACE( "target %d, first %d, count %d, buffers %p\n", target, first, count, buffers );
+    if ((status = UNIX_CALL( glBindBuffersBase, &args ))) WARN( "glBindBuffersBase returned %#x\n", status );
+}
+
+static void WINAPI glBindBuffersRange( GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes )
+{
+    struct glBindBuffersRange_params args = { .target = target, .first = first, .count = count, .buffers = buffers, .offsets = offsets, .sizes = sizes, };
+    NTSTATUS status;
+    TRACE( "target %d, first %d, count %d, buffers %p, offsets %p, sizes %p\n", target, first, count, buffers, offsets, sizes );
+    if ((status = UNIX_CALL( glBindBuffersRange, &args ))) WARN( "glBindBuffersRange returned %#x\n", status );
+}
+
+static void WINAPI glBindFragDataLocation( GLuint program, GLuint color, const GLchar *name )
+{
+    struct glBindFragDataLocation_params args = { .program = program, .color = color, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, color %d, name %p\n", program, color, name );
+    if ((status = UNIX_CALL( glBindFragDataLocation, &args ))) WARN( "glBindFragDataLocation returned %#x\n", status );
+}
+
+static void WINAPI glBindFragDataLocationEXT( GLuint program, GLuint color, const GLchar *name )
+{
+    struct glBindFragDataLocationEXT_params args = { .program = program, .color = color, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, color %d, name %p\n", program, color, name );
+    if ((status = UNIX_CALL( glBindFragDataLocationEXT, &args ))) WARN( "glBindFragDataLocationEXT returned %#x\n", status );
+}
+
+static void WINAPI glBindFragDataLocationIndexed( GLuint program, GLuint colorNumber, GLuint index, const GLchar *name )
+{
+    struct glBindFragDataLocationIndexed_params args = { .program = program, .colorNumber = colorNumber, .index = index, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, colorNumber %d, index %d, name %p\n", program, colorNumber, index, name );
+    if ((status = UNIX_CALL( glBindFragDataLocationIndexed, &args ))) WARN( "glBindFragDataLocationIndexed returned %#x\n", status );
+}
+
+static void WINAPI glBindFragmentShaderATI( GLuint id )
+{
+    struct glBindFragmentShaderATI_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glBindFragmentShaderATI, &args ))) WARN( "glBindFragmentShaderATI returned %#x\n", status );
+}
+
+static void WINAPI glBindFramebuffer( GLenum target, GLuint framebuffer )
+{
+    struct glBindFramebuffer_params args = { .target = target, .framebuffer = framebuffer, };
+    NTSTATUS status;
+    TRACE( "target %d, framebuffer %d\n", target, framebuffer );
+    if ((status = UNIX_CALL( glBindFramebuffer, &args ))) WARN( "glBindFramebuffer returned %#x\n", status );
+}
+
+static void WINAPI glBindFramebufferEXT( GLenum target, GLuint framebuffer )
+{
+    struct glBindFramebufferEXT_params args = { .target = target, .framebuffer = framebuffer, };
+    NTSTATUS status;
+    TRACE( "target %d, framebuffer %d\n", target, framebuffer );
+    if ((status = UNIX_CALL( glBindFramebufferEXT, &args ))) WARN( "glBindFramebufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glBindImageTexture( GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format )
+{
+    struct glBindImageTexture_params args = { .unit = unit, .texture = texture, .level = level, .layered = layered, .layer = layer, .access = access, .format = format, };
+    NTSTATUS status;
+    TRACE( "unit %d, texture %d, level %d, layered %d, layer %d, access %d, format %d\n", unit, texture, level, layered, layer, access, format );
+    if ((status = UNIX_CALL( glBindImageTexture, &args ))) WARN( "glBindImageTexture returned %#x\n", status );
+}
+
+static void WINAPI glBindImageTextureEXT( GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format )
+{
+    struct glBindImageTextureEXT_params args = { .index = index, .texture = texture, .level = level, .layered = layered, .layer = layer, .access = access, .format = format, };
+    NTSTATUS status;
+    TRACE( "index %d, texture %d, level %d, layered %d, layer %d, access %d, format %d\n", index, texture, level, layered, layer, access, format );
+    if ((status = UNIX_CALL( glBindImageTextureEXT, &args ))) WARN( "glBindImageTextureEXT returned %#x\n", status );
+}
+
+static void WINAPI glBindImageTextures( GLuint first, GLsizei count, const GLuint *textures )
+{
+    struct glBindImageTextures_params args = { .first = first, .count = count, .textures = textures, };
+    NTSTATUS status;
+    TRACE( "first %d, count %d, textures %p\n", first, count, textures );
+    if ((status = UNIX_CALL( glBindImageTextures, &args ))) WARN( "glBindImageTextures returned %#x\n", status );
+}
+
+static GLuint WINAPI glBindLightParameterEXT( GLenum light, GLenum value )
+{
+    struct glBindLightParameterEXT_params args = { .light = light, .value = value, };
+    NTSTATUS status;
+    TRACE( "light %d, value %d\n", light, value );
+    if ((status = UNIX_CALL( glBindLightParameterEXT, &args ))) WARN( "glBindLightParameterEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static GLuint WINAPI glBindMaterialParameterEXT( GLenum face, GLenum value )
+{
+    struct glBindMaterialParameterEXT_params args = { .face = face, .value = value, };
+    NTSTATUS status;
+    TRACE( "face %d, value %d\n", face, value );
+    if ((status = UNIX_CALL( glBindMaterialParameterEXT, &args ))) WARN( "glBindMaterialParameterEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glBindMultiTextureEXT( GLenum texunit, GLenum target, GLuint texture )
+{
+    struct glBindMultiTextureEXT_params args = { .texunit = texunit, .target = target, .texture = texture, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, texture %d\n", texunit, target, texture );
+    if ((status = UNIX_CALL( glBindMultiTextureEXT, &args ))) WARN( "glBindMultiTextureEXT returned %#x\n", status );
+}
+
+static GLuint WINAPI glBindParameterEXT( GLenum value )
+{
+    struct glBindParameterEXT_params args = { .value = value, };
+    NTSTATUS status;
+    TRACE( "value %d\n", value );
+    if ((status = UNIX_CALL( glBindParameterEXT, &args ))) WARN( "glBindParameterEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glBindProgramARB( GLenum target, GLuint program )
+{
+    struct glBindProgramARB_params args = { .target = target, .program = program, };
+    NTSTATUS status;
+    TRACE( "target %d, program %d\n", target, program );
+    if ((status = UNIX_CALL( glBindProgramARB, &args ))) WARN( "glBindProgramARB returned %#x\n", status );
+}
+
+static void WINAPI glBindProgramNV( GLenum target, GLuint id )
+{
+    struct glBindProgramNV_params args = { .target = target, .id = id, };
+    NTSTATUS status;
+    TRACE( "target %d, id %d\n", target, id );
+    if ((status = UNIX_CALL( glBindProgramNV, &args ))) WARN( "glBindProgramNV returned %#x\n", status );
+}
+
+static void WINAPI glBindProgramPipeline( GLuint pipeline )
+{
+    struct glBindProgramPipeline_params args = { .pipeline = pipeline, };
+    NTSTATUS status;
+    TRACE( "pipeline %d\n", pipeline );
+    if ((status = UNIX_CALL( glBindProgramPipeline, &args ))) WARN( "glBindProgramPipeline returned %#x\n", status );
+}
+
+static void WINAPI glBindRenderbuffer( GLenum target, GLuint renderbuffer )
+{
+    struct glBindRenderbuffer_params args = { .target = target, .renderbuffer = renderbuffer, };
+    NTSTATUS status;
+    TRACE( "target %d, renderbuffer %d\n", target, renderbuffer );
+    if ((status = UNIX_CALL( glBindRenderbuffer, &args ))) WARN( "glBindRenderbuffer returned %#x\n", status );
+}
+
+static void WINAPI glBindRenderbufferEXT( GLenum target, GLuint renderbuffer )
+{
+    struct glBindRenderbufferEXT_params args = { .target = target, .renderbuffer = renderbuffer, };
+    NTSTATUS status;
+    TRACE( "target %d, renderbuffer %d\n", target, renderbuffer );
+    if ((status = UNIX_CALL( glBindRenderbufferEXT, &args ))) WARN( "glBindRenderbufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glBindSampler( GLuint unit, GLuint sampler )
+{
+    struct glBindSampler_params args = { .unit = unit, .sampler = sampler, };
+    NTSTATUS status;
+    TRACE( "unit %d, sampler %d\n", unit, sampler );
+    if ((status = UNIX_CALL( glBindSampler, &args ))) WARN( "glBindSampler returned %#x\n", status );
+}
+
+static void WINAPI glBindSamplers( GLuint first, GLsizei count, const GLuint *samplers )
+{
+    struct glBindSamplers_params args = { .first = first, .count = count, .samplers = samplers, };
+    NTSTATUS status;
+    TRACE( "first %d, count %d, samplers %p\n", first, count, samplers );
+    if ((status = UNIX_CALL( glBindSamplers, &args ))) WARN( "glBindSamplers returned %#x\n", status );
+}
+
+static void WINAPI glBindShadingRateImageNV( GLuint texture )
+{
+    struct glBindShadingRateImageNV_params args = { .texture = texture, };
+    NTSTATUS status;
+    TRACE( "texture %d\n", texture );
+    if ((status = UNIX_CALL( glBindShadingRateImageNV, &args ))) WARN( "glBindShadingRateImageNV returned %#x\n", status );
+}
+
+static GLuint WINAPI glBindTexGenParameterEXT( GLenum unit, GLenum coord, GLenum value )
+{
+    struct glBindTexGenParameterEXT_params args = { .unit = unit, .coord = coord, .value = value, };
+    NTSTATUS status;
+    TRACE( "unit %d, coord %d, value %d\n", unit, coord, value );
+    if ((status = UNIX_CALL( glBindTexGenParameterEXT, &args ))) WARN( "glBindTexGenParameterEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glBindTextureEXT( GLenum target, GLuint texture )
+{
+    struct glBindTextureEXT_params args = { .target = target, .texture = texture, };
+    NTSTATUS status;
+    TRACE( "target %d, texture %d\n", target, texture );
+    if ((status = UNIX_CALL( glBindTextureEXT, &args ))) WARN( "glBindTextureEXT returned %#x\n", status );
+}
+
+static void WINAPI glBindTextureUnit( GLuint unit, GLuint texture )
+{
+    struct glBindTextureUnit_params args = { .unit = unit, .texture = texture, };
+    NTSTATUS status;
+    TRACE( "unit %d, texture %d\n", unit, texture );
+    if ((status = UNIX_CALL( glBindTextureUnit, &args ))) WARN( "glBindTextureUnit returned %#x\n", status );
+}
+
+static GLuint WINAPI glBindTextureUnitParameterEXT( GLenum unit, GLenum value )
+{
+    struct glBindTextureUnitParameterEXT_params args = { .unit = unit, .value = value, };
+    NTSTATUS status;
+    TRACE( "unit %d, value %d\n", unit, value );
+    if ((status = UNIX_CALL( glBindTextureUnitParameterEXT, &args ))) WARN( "glBindTextureUnitParameterEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glBindTextures( GLuint first, GLsizei count, const GLuint *textures )
+{
+    struct glBindTextures_params args = { .first = first, .count = count, .textures = textures, };
+    NTSTATUS status;
+    TRACE( "first %d, count %d, textures %p\n", first, count, textures );
+    if ((status = UNIX_CALL( glBindTextures, &args ))) WARN( "glBindTextures returned %#x\n", status );
+}
+
+static void WINAPI glBindTransformFeedback( GLenum target, GLuint id )
+{
+    struct glBindTransformFeedback_params args = { .target = target, .id = id, };
+    NTSTATUS status;
+    TRACE( "target %d, id %d\n", target, id );
+    if ((status = UNIX_CALL( glBindTransformFeedback, &args ))) WARN( "glBindTransformFeedback returned %#x\n", status );
+}
+
+static void WINAPI glBindTransformFeedbackNV( GLenum target, GLuint id )
+{
+    struct glBindTransformFeedbackNV_params args = { .target = target, .id = id, };
+    NTSTATUS status;
+    TRACE( "target %d, id %d\n", target, id );
+    if ((status = UNIX_CALL( glBindTransformFeedbackNV, &args ))) WARN( "glBindTransformFeedbackNV returned %#x\n", status );
+}
+
+static void WINAPI glBindVertexArray( GLuint array )
+{
+    struct glBindVertexArray_params args = { .array = array, };
+    NTSTATUS status;
+    TRACE( "array %d\n", array );
+    if ((status = UNIX_CALL( glBindVertexArray, &args ))) WARN( "glBindVertexArray returned %#x\n", status );
+}
+
+static void WINAPI glBindVertexArrayAPPLE( GLuint array )
+{
+    struct glBindVertexArrayAPPLE_params args = { .array = array, };
+    NTSTATUS status;
+    TRACE( "array %d\n", array );
+    if ((status = UNIX_CALL( glBindVertexArrayAPPLE, &args ))) WARN( "glBindVertexArrayAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glBindVertexBuffer( GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride )
+{
+    struct glBindVertexBuffer_params args = { .bindingindex = bindingindex, .buffer = buffer, .offset = offset, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "bindingindex %d, buffer %d, offset %ld, stride %d\n", bindingindex, buffer, offset, stride );
+    if ((status = UNIX_CALL( glBindVertexBuffer, &args ))) WARN( "glBindVertexBuffer returned %#x\n", status );
+}
+
+static void WINAPI glBindVertexBuffers( GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides )
+{
+    struct glBindVertexBuffers_params args = { .first = first, .count = count, .buffers = buffers, .offsets = offsets, .strides = strides, };
+    NTSTATUS status;
+    TRACE( "first %d, count %d, buffers %p, offsets %p, strides %p\n", first, count, buffers, offsets, strides );
+    if ((status = UNIX_CALL( glBindVertexBuffers, &args ))) WARN( "glBindVertexBuffers returned %#x\n", status );
+}
+
+static void WINAPI glBindVertexShaderEXT( GLuint id )
+{
+    struct glBindVertexShaderEXT_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glBindVertexShaderEXT, &args ))) WARN( "glBindVertexShaderEXT returned %#x\n", status );
+}
+
+static void WINAPI glBindVideoCaptureStreamBufferNV( GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset )
+{
+    struct glBindVideoCaptureStreamBufferNV_params args = { .video_capture_slot = video_capture_slot, .stream = stream, .frame_region = frame_region, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "video_capture_slot %d, stream %d, frame_region %d, offset %ld\n", video_capture_slot, stream, frame_region, offset );
+    if ((status = UNIX_CALL( glBindVideoCaptureStreamBufferNV, &args ))) WARN( "glBindVideoCaptureStreamBufferNV returned %#x\n", status );
+}
+
+static void WINAPI glBindVideoCaptureStreamTextureNV( GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture )
+{
+    struct glBindVideoCaptureStreamTextureNV_params args = { .video_capture_slot = video_capture_slot, .stream = stream, .frame_region = frame_region, .target = target, .texture = texture, };
+    NTSTATUS status;
+    TRACE( "video_capture_slot %d, stream %d, frame_region %d, target %d, texture %d\n", video_capture_slot, stream, frame_region, target, texture );
+    if ((status = UNIX_CALL( glBindVideoCaptureStreamTextureNV, &args ))) WARN( "glBindVideoCaptureStreamTextureNV returned %#x\n", status );
+}
+
+static void WINAPI glBinormal3bEXT( GLbyte bx, GLbyte by, GLbyte bz )
+{
+    struct glBinormal3bEXT_params args = { .bx = bx, .by = by, .bz = bz, };
+    NTSTATUS status;
+    TRACE( "bx %d, by %d, bz %d\n", bx, by, bz );
+    if ((status = UNIX_CALL( glBinormal3bEXT, &args ))) WARN( "glBinormal3bEXT returned %#x\n", status );
+}
+
+static void WINAPI glBinormal3bvEXT( const GLbyte *v )
+{
+    struct glBinormal3bvEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glBinormal3bvEXT, &args ))) WARN( "glBinormal3bvEXT returned %#x\n", status );
+}
+
+static void WINAPI glBinormal3dEXT( GLdouble bx, GLdouble by, GLdouble bz )
+{
+    struct glBinormal3dEXT_params args = { .bx = bx, .by = by, .bz = bz, };
+    NTSTATUS status;
+    TRACE( "bx %f, by %f, bz %f\n", bx, by, bz );
+    if ((status = UNIX_CALL( glBinormal3dEXT, &args ))) WARN( "glBinormal3dEXT returned %#x\n", status );
+}
+
+static void WINAPI glBinormal3dvEXT( const GLdouble *v )
+{
+    struct glBinormal3dvEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glBinormal3dvEXT, &args ))) WARN( "glBinormal3dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glBinormal3fEXT( GLfloat bx, GLfloat by, GLfloat bz )
+{
+    struct glBinormal3fEXT_params args = { .bx = bx, .by = by, .bz = bz, };
+    NTSTATUS status;
+    TRACE( "bx %f, by %f, bz %f\n", bx, by, bz );
+    if ((status = UNIX_CALL( glBinormal3fEXT, &args ))) WARN( "glBinormal3fEXT returned %#x\n", status );
+}
+
+static void WINAPI glBinormal3fvEXT( const GLfloat *v )
+{
+    struct glBinormal3fvEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glBinormal3fvEXT, &args ))) WARN( "glBinormal3fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glBinormal3iEXT( GLint bx, GLint by, GLint bz )
+{
+    struct glBinormal3iEXT_params args = { .bx = bx, .by = by, .bz = bz, };
+    NTSTATUS status;
+    TRACE( "bx %d, by %d, bz %d\n", bx, by, bz );
+    if ((status = UNIX_CALL( glBinormal3iEXT, &args ))) WARN( "glBinormal3iEXT returned %#x\n", status );
+}
+
+static void WINAPI glBinormal3ivEXT( const GLint *v )
+{
+    struct glBinormal3ivEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glBinormal3ivEXT, &args ))) WARN( "glBinormal3ivEXT returned %#x\n", status );
+}
+
+static void WINAPI glBinormal3sEXT( GLshort bx, GLshort by, GLshort bz )
+{
+    struct glBinormal3sEXT_params args = { .bx = bx, .by = by, .bz = bz, };
+    NTSTATUS status;
+    TRACE( "bx %d, by %d, bz %d\n", bx, by, bz );
+    if ((status = UNIX_CALL( glBinormal3sEXT, &args ))) WARN( "glBinormal3sEXT returned %#x\n", status );
+}
+
+static void WINAPI glBinormal3svEXT( const GLshort *v )
+{
+    struct glBinormal3svEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glBinormal3svEXT, &args ))) WARN( "glBinormal3svEXT returned %#x\n", status );
+}
+
+static void WINAPI glBinormalPointerEXT( GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glBinormalPointerEXT_params args = { .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "type %d, stride %d, pointer %p\n", type, stride, pointer );
+    if ((status = UNIX_CALL( glBinormalPointerEXT, &args ))) WARN( "glBinormalPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glBitmapxOES( GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap )
+{
+    struct glBitmapxOES_params args = { .width = width, .height = height, .xorig = xorig, .yorig = yorig, .xmove = xmove, .ymove = ymove, .bitmap = bitmap, };
+    NTSTATUS status;
+    TRACE( "width %d, height %d, xorig %d, yorig %d, xmove %d, ymove %d, bitmap %p\n", width, height, xorig, yorig, xmove, ymove, bitmap );
+    if ((status = UNIX_CALL( glBitmapxOES, &args ))) WARN( "glBitmapxOES returned %#x\n", status );
+}
+
+static void WINAPI glBlendBarrierKHR(void)
+{
+    struct glBlendBarrierKHR_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glBlendBarrierKHR, &args ))) WARN( "glBlendBarrierKHR returned %#x\n", status );
+}
+
+static void WINAPI glBlendBarrierNV(void)
+{
+    struct glBlendBarrierNV_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glBlendBarrierNV, &args ))) WARN( "glBlendBarrierNV returned %#x\n", status );
+}
+
+static void WINAPI glBlendColor( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha )
+{
+    struct glBlendColor_params args = { .red = red, .green = green, .blue = blue, .alpha = alpha, };
+    NTSTATUS status;
+    TRACE( "red %f, green %f, blue %f, alpha %f\n", red, green, blue, alpha );
+    if ((status = UNIX_CALL( glBlendColor, &args ))) WARN( "glBlendColor returned %#x\n", status );
+}
+
+static void WINAPI glBlendColorEXT( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha )
+{
+    struct glBlendColorEXT_params args = { .red = red, .green = green, .blue = blue, .alpha = alpha, };
+    NTSTATUS status;
+    TRACE( "red %f, green %f, blue %f, alpha %f\n", red, green, blue, alpha );
+    if ((status = UNIX_CALL( glBlendColorEXT, &args ))) WARN( "glBlendColorEXT returned %#x\n", status );
+}
+
+static void WINAPI glBlendColorxOES( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha )
+{
+    struct glBlendColorxOES_params args = { .red = red, .green = green, .blue = blue, .alpha = alpha, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d, alpha %d\n", red, green, blue, alpha );
+    if ((status = UNIX_CALL( glBlendColorxOES, &args ))) WARN( "glBlendColorxOES returned %#x\n", status );
+}
+
+static void WINAPI glBlendEquation( GLenum mode )
+{
+    struct glBlendEquation_params args = { .mode = mode, };
+    NTSTATUS status;
+    TRACE( "mode %d\n", mode );
+    if ((status = UNIX_CALL( glBlendEquation, &args ))) WARN( "glBlendEquation returned %#x\n", status );
+}
+
+static void WINAPI glBlendEquationEXT( GLenum mode )
+{
+    struct glBlendEquationEXT_params args = { .mode = mode, };
+    NTSTATUS status;
+    TRACE( "mode %d\n", mode );
+    if ((status = UNIX_CALL( glBlendEquationEXT, &args ))) WARN( "glBlendEquationEXT returned %#x\n", status );
+}
+
+static void WINAPI glBlendEquationIndexedAMD( GLuint buf, GLenum mode )
+{
+    struct glBlendEquationIndexedAMD_params args = { .buf = buf, .mode = mode, };
+    NTSTATUS status;
+    TRACE( "buf %d, mode %d\n", buf, mode );
+    if ((status = UNIX_CALL( glBlendEquationIndexedAMD, &args ))) WARN( "glBlendEquationIndexedAMD returned %#x\n", status );
+}
+
+static void WINAPI glBlendEquationSeparate( GLenum modeRGB, GLenum modeAlpha )
+{
+    struct glBlendEquationSeparate_params args = { .modeRGB = modeRGB, .modeAlpha = modeAlpha, };
+    NTSTATUS status;
+    TRACE( "modeRGB %d, modeAlpha %d\n", modeRGB, modeAlpha );
+    if ((status = UNIX_CALL( glBlendEquationSeparate, &args ))) WARN( "glBlendEquationSeparate returned %#x\n", status );
+}
+
+static void WINAPI glBlendEquationSeparateEXT( GLenum modeRGB, GLenum modeAlpha )
+{
+    struct glBlendEquationSeparateEXT_params args = { .modeRGB = modeRGB, .modeAlpha = modeAlpha, };
+    NTSTATUS status;
+    TRACE( "modeRGB %d, modeAlpha %d\n", modeRGB, modeAlpha );
+    if ((status = UNIX_CALL( glBlendEquationSeparateEXT, &args ))) WARN( "glBlendEquationSeparateEXT returned %#x\n", status );
+}
+
+static void WINAPI glBlendEquationSeparateIndexedAMD( GLuint buf, GLenum modeRGB, GLenum modeAlpha )
+{
+    struct glBlendEquationSeparateIndexedAMD_params args = { .buf = buf, .modeRGB = modeRGB, .modeAlpha = modeAlpha, };
+    NTSTATUS status;
+    TRACE( "buf %d, modeRGB %d, modeAlpha %d\n", buf, modeRGB, modeAlpha );
+    if ((status = UNIX_CALL( glBlendEquationSeparateIndexedAMD, &args ))) WARN( "glBlendEquationSeparateIndexedAMD returned %#x\n", status );
+}
+
+static void WINAPI glBlendEquationSeparatei( GLuint buf, GLenum modeRGB, GLenum modeAlpha )
+{
+    struct glBlendEquationSeparatei_params args = { .buf = buf, .modeRGB = modeRGB, .modeAlpha = modeAlpha, };
+    NTSTATUS status;
+    TRACE( "buf %d, modeRGB %d, modeAlpha %d\n", buf, modeRGB, modeAlpha );
+    if ((status = UNIX_CALL( glBlendEquationSeparatei, &args ))) WARN( "glBlendEquationSeparatei returned %#x\n", status );
+}
+
+static void WINAPI glBlendEquationSeparateiARB( GLuint buf, GLenum modeRGB, GLenum modeAlpha )
+{
+    struct glBlendEquationSeparateiARB_params args = { .buf = buf, .modeRGB = modeRGB, .modeAlpha = modeAlpha, };
+    NTSTATUS status;
+    TRACE( "buf %d, modeRGB %d, modeAlpha %d\n", buf, modeRGB, modeAlpha );
+    if ((status = UNIX_CALL( glBlendEquationSeparateiARB, &args ))) WARN( "glBlendEquationSeparateiARB returned %#x\n", status );
+}
+
+static void WINAPI glBlendEquationi( GLuint buf, GLenum mode )
+{
+    struct glBlendEquationi_params args = { .buf = buf, .mode = mode, };
+    NTSTATUS status;
+    TRACE( "buf %d, mode %d\n", buf, mode );
+    if ((status = UNIX_CALL( glBlendEquationi, &args ))) WARN( "glBlendEquationi returned %#x\n", status );
+}
+
+static void WINAPI glBlendEquationiARB( GLuint buf, GLenum mode )
+{
+    struct glBlendEquationiARB_params args = { .buf = buf, .mode = mode, };
+    NTSTATUS status;
+    TRACE( "buf %d, mode %d\n", buf, mode );
+    if ((status = UNIX_CALL( glBlendEquationiARB, &args ))) WARN( "glBlendEquationiARB returned %#x\n", status );
+}
+
+static void WINAPI glBlendFuncIndexedAMD( GLuint buf, GLenum src, GLenum dst )
+{
+    struct glBlendFuncIndexedAMD_params args = { .buf = buf, .src = src, .dst = dst, };
+    NTSTATUS status;
+    TRACE( "buf %d, src %d, dst %d\n", buf, src, dst );
+    if ((status = UNIX_CALL( glBlendFuncIndexedAMD, &args ))) WARN( "glBlendFuncIndexedAMD returned %#x\n", status );
+}
+
+static void WINAPI glBlendFuncSeparate( GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha )
+{
+    struct glBlendFuncSeparate_params args = { .sfactorRGB = sfactorRGB, .dfactorRGB = dfactorRGB, .sfactorAlpha = sfactorAlpha, .dfactorAlpha = dfactorAlpha, };
+    NTSTATUS status;
+    TRACE( "sfactorRGB %d, dfactorRGB %d, sfactorAlpha %d, dfactorAlpha %d\n", sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha );
+    if ((status = UNIX_CALL( glBlendFuncSeparate, &args ))) WARN( "glBlendFuncSeparate returned %#x\n", status );
+}
+
+static void WINAPI glBlendFuncSeparateEXT( GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha )
+{
+    struct glBlendFuncSeparateEXT_params args = { .sfactorRGB = sfactorRGB, .dfactorRGB = dfactorRGB, .sfactorAlpha = sfactorAlpha, .dfactorAlpha = dfactorAlpha, };
+    NTSTATUS status;
+    TRACE( "sfactorRGB %d, dfactorRGB %d, sfactorAlpha %d, dfactorAlpha %d\n", sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha );
+    if ((status = UNIX_CALL( glBlendFuncSeparateEXT, &args ))) WARN( "glBlendFuncSeparateEXT returned %#x\n", status );
+}
+
+static void WINAPI glBlendFuncSeparateINGR( GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha )
+{
+    struct glBlendFuncSeparateINGR_params args = { .sfactorRGB = sfactorRGB, .dfactorRGB = dfactorRGB, .sfactorAlpha = sfactorAlpha, .dfactorAlpha = dfactorAlpha, };
+    NTSTATUS status;
+    TRACE( "sfactorRGB %d, dfactorRGB %d, sfactorAlpha %d, dfactorAlpha %d\n", sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha );
+    if ((status = UNIX_CALL( glBlendFuncSeparateINGR, &args ))) WARN( "glBlendFuncSeparateINGR returned %#x\n", status );
+}
+
+static void WINAPI glBlendFuncSeparateIndexedAMD( GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha )
+{
+    struct glBlendFuncSeparateIndexedAMD_params args = { .buf = buf, .srcRGB = srcRGB, .dstRGB = dstRGB, .srcAlpha = srcAlpha, .dstAlpha = dstAlpha, };
+    NTSTATUS status;
+    TRACE( "buf %d, srcRGB %d, dstRGB %d, srcAlpha %d, dstAlpha %d\n", buf, srcRGB, dstRGB, srcAlpha, dstAlpha );
+    if ((status = UNIX_CALL( glBlendFuncSeparateIndexedAMD, &args ))) WARN( "glBlendFuncSeparateIndexedAMD returned %#x\n", status );
+}
+
+static void WINAPI glBlendFuncSeparatei( GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha )
+{
+    struct glBlendFuncSeparatei_params args = { .buf = buf, .srcRGB = srcRGB, .dstRGB = dstRGB, .srcAlpha = srcAlpha, .dstAlpha = dstAlpha, };
+    NTSTATUS status;
+    TRACE( "buf %d, srcRGB %d, dstRGB %d, srcAlpha %d, dstAlpha %d\n", buf, srcRGB, dstRGB, srcAlpha, dstAlpha );
+    if ((status = UNIX_CALL( glBlendFuncSeparatei, &args ))) WARN( "glBlendFuncSeparatei returned %#x\n", status );
+}
+
+static void WINAPI glBlendFuncSeparateiARB( GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha )
+{
+    struct glBlendFuncSeparateiARB_params args = { .buf = buf, .srcRGB = srcRGB, .dstRGB = dstRGB, .srcAlpha = srcAlpha, .dstAlpha = dstAlpha, };
+    NTSTATUS status;
+    TRACE( "buf %d, srcRGB %d, dstRGB %d, srcAlpha %d, dstAlpha %d\n", buf, srcRGB, dstRGB, srcAlpha, dstAlpha );
+    if ((status = UNIX_CALL( glBlendFuncSeparateiARB, &args ))) WARN( "glBlendFuncSeparateiARB returned %#x\n", status );
+}
+
+static void WINAPI glBlendFunci( GLuint buf, GLenum src, GLenum dst )
+{
+    struct glBlendFunci_params args = { .buf = buf, .src = src, .dst = dst, };
+    NTSTATUS status;
+    TRACE( "buf %d, src %d, dst %d\n", buf, src, dst );
+    if ((status = UNIX_CALL( glBlendFunci, &args ))) WARN( "glBlendFunci returned %#x\n", status );
+}
+
+static void WINAPI glBlendFunciARB( GLuint buf, GLenum src, GLenum dst )
+{
+    struct glBlendFunciARB_params args = { .buf = buf, .src = src, .dst = dst, };
+    NTSTATUS status;
+    TRACE( "buf %d, src %d, dst %d\n", buf, src, dst );
+    if ((status = UNIX_CALL( glBlendFunciARB, &args ))) WARN( "glBlendFunciARB returned %#x\n", status );
+}
+
+static void WINAPI glBlendParameteriNV( GLenum pname, GLint value )
+{
+    struct glBlendParameteriNV_params args = { .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "pname %d, value %d\n", pname, value );
+    if ((status = UNIX_CALL( glBlendParameteriNV, &args ))) WARN( "glBlendParameteriNV returned %#x\n", status );
+}
+
+static void WINAPI glBlitFramebuffer( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter )
+{
+    struct glBlitFramebuffer_params args = { .srcX0 = srcX0, .srcY0 = srcY0, .srcX1 = srcX1, .srcY1 = srcY1, .dstX0 = dstX0, .dstY0 = dstY0, .dstX1 = dstX1, .dstY1 = dstY1, .mask = mask, .filter = filter, };
+    NTSTATUS status;
+    TRACE( "srcX0 %d, srcY0 %d, srcX1 %d, srcY1 %d, dstX0 %d, dstY0 %d, dstX1 %d, dstY1 %d, mask %d, filter %d\n", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter );
+    if ((status = UNIX_CALL( glBlitFramebuffer, &args ))) WARN( "glBlitFramebuffer returned %#x\n", status );
+}
+
+static void WINAPI glBlitFramebufferEXT( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter )
+{
+    struct glBlitFramebufferEXT_params args = { .srcX0 = srcX0, .srcY0 = srcY0, .srcX1 = srcX1, .srcY1 = srcY1, .dstX0 = dstX0, .dstY0 = dstY0, .dstX1 = dstX1, .dstY1 = dstY1, .mask = mask, .filter = filter, };
+    NTSTATUS status;
+    TRACE( "srcX0 %d, srcY0 %d, srcX1 %d, srcY1 %d, dstX0 %d, dstY0 %d, dstX1 %d, dstY1 %d, mask %d, filter %d\n", srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter );
+    if ((status = UNIX_CALL( glBlitFramebufferEXT, &args ))) WARN( "glBlitFramebufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glBlitNamedFramebuffer( GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter )
+{
+    struct glBlitNamedFramebuffer_params args = { .readFramebuffer = readFramebuffer, .drawFramebuffer = drawFramebuffer, .srcX0 = srcX0, .srcY0 = srcY0, .srcX1 = srcX1, .srcY1 = srcY1, .dstX0 = dstX0, .dstY0 = dstY0, .dstX1 = dstX1, .dstY1 = dstY1, .mask = mask, .filter = filter, };
+    NTSTATUS status;
+    TRACE( "readFramebuffer %d, drawFramebuffer %d, srcX0 %d, srcY0 %d, srcX1 %d, srcY1 %d, dstX0 %d, dstY0 %d, dstX1 %d, dstY1 %d, mask %d, filter %d\n", readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter );
+    if ((status = UNIX_CALL( glBlitNamedFramebuffer, &args ))) WARN( "glBlitNamedFramebuffer returned %#x\n", status );
+}
+
+static void WINAPI glBufferAddressRangeNV( GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length )
+{
+    struct glBufferAddressRangeNV_params args = { .pname = pname, .index = index, .address = address, .length = length, };
+    NTSTATUS status;
+    TRACE( "pname %d, index %d, address %s, length %ld\n", pname, index, wine_dbgstr_longlong(address), length );
+    if ((status = UNIX_CALL( glBufferAddressRangeNV, &args ))) WARN( "glBufferAddressRangeNV returned %#x\n", status );
+}
+
+static void WINAPI glBufferAttachMemoryNV( GLenum target, GLuint memory, GLuint64 offset )
+{
+    struct glBufferAttachMemoryNV_params args = { .target = target, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "target %d, memory %d, offset %s\n", target, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glBufferAttachMemoryNV, &args ))) WARN( "glBufferAttachMemoryNV returned %#x\n", status );
+}
+
+static void WINAPI glBufferData( GLenum target, GLsizeiptr size, const void *data, GLenum usage )
+{
+    struct glBufferData_params args = { .target = target, .size = size, .data = data, .usage = usage, };
+    NTSTATUS status;
+    TRACE( "target %d, size %ld, data %p, usage %d\n", target, size, data, usage );
+    if ((status = UNIX_CALL( glBufferData, &args ))) WARN( "glBufferData returned %#x\n", status );
+}
+
+static void WINAPI glBufferDataARB( GLenum target, GLsizeiptrARB size, const void *data, GLenum usage )
+{
+    struct glBufferDataARB_params args = { .target = target, .size = size, .data = data, .usage = usage, };
+    NTSTATUS status;
+    TRACE( "target %d, size %ld, data %p, usage %d\n", target, size, data, usage );
+    if ((status = UNIX_CALL( glBufferDataARB, &args ))) WARN( "glBufferDataARB returned %#x\n", status );
+}
+
+static void WINAPI glBufferPageCommitmentARB( GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit )
+{
+    struct glBufferPageCommitmentARB_params args = { .target = target, .offset = offset, .size = size, .commit = commit, };
+    NTSTATUS status;
+    TRACE( "target %d, offset %ld, size %ld, commit %d\n", target, offset, size, commit );
+    if ((status = UNIX_CALL( glBufferPageCommitmentARB, &args ))) WARN( "glBufferPageCommitmentARB returned %#x\n", status );
+}
+
+static void WINAPI glBufferParameteriAPPLE( GLenum target, GLenum pname, GLint param )
+{
+    struct glBufferParameteriAPPLE_params args = { .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, param %d\n", target, pname, param );
+    if ((status = UNIX_CALL( glBufferParameteriAPPLE, &args ))) WARN( "glBufferParameteriAPPLE returned %#x\n", status );
+}
+
+static GLuint WINAPI glBufferRegionEnabled(void)
+{
+    struct glBufferRegionEnabled_params args = {0};
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glBufferRegionEnabled, &args ))) WARN( "glBufferRegionEnabled returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glBufferStorage( GLenum target, GLsizeiptr size, const void *data, GLbitfield flags )
+{
+    struct glBufferStorage_params args = { .target = target, .size = size, .data = data, .flags = flags, };
+    NTSTATUS status;
+    TRACE( "target %d, size %ld, data %p, flags %d\n", target, size, data, flags );
+    if ((status = UNIX_CALL( glBufferStorage, &args ))) WARN( "glBufferStorage returned %#x\n", status );
+}
+
+static void WINAPI glBufferStorageExternalEXT( GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags )
+{
+    struct glBufferStorageExternalEXT_params args = { .target = target, .offset = offset, .size = size, .clientBuffer = clientBuffer, .flags = flags, };
+    NTSTATUS status;
+    TRACE( "target %d, offset %ld, size %ld, clientBuffer %p, flags %d\n", target, offset, size, clientBuffer, flags );
+    if ((status = UNIX_CALL( glBufferStorageExternalEXT, &args ))) WARN( "glBufferStorageExternalEXT returned %#x\n", status );
+}
+
+static void WINAPI glBufferStorageMemEXT( GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset )
+{
+    struct glBufferStorageMemEXT_params args = { .target = target, .size = size, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "target %d, size %ld, memory %d, offset %s\n", target, size, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glBufferStorageMemEXT, &args ))) WARN( "glBufferStorageMemEXT returned %#x\n", status );
+}
+
+static void WINAPI glBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, const void *data )
+{
+    struct glBufferSubData_params args = { .target = target, .offset = offset, .size = size, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, offset %ld, size %ld, data %p\n", target, offset, size, data );
+    if ((status = UNIX_CALL( glBufferSubData, &args ))) WARN( "glBufferSubData returned %#x\n", status );
+}
+
+static void WINAPI glBufferSubDataARB( GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data )
+{
+    struct glBufferSubDataARB_params args = { .target = target, .offset = offset, .size = size, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, offset %ld, size %ld, data %p\n", target, offset, size, data );
+    if ((status = UNIX_CALL( glBufferSubDataARB, &args ))) WARN( "glBufferSubDataARB returned %#x\n", status );
+}
+
+static void WINAPI glCallCommandListNV( GLuint list )
+{
+    struct glCallCommandListNV_params args = { .list = list, };
+    NTSTATUS status;
+    TRACE( "list %d\n", list );
+    if ((status = UNIX_CALL( glCallCommandListNV, &args ))) WARN( "glCallCommandListNV returned %#x\n", status );
+}
+
+static GLenum WINAPI glCheckFramebufferStatus( GLenum target )
+{
+    struct glCheckFramebufferStatus_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glCheckFramebufferStatus, &args ))) WARN( "glCheckFramebufferStatus returned %#x\n", status );
+    return args.ret;
+}
+
+static GLenum WINAPI glCheckFramebufferStatusEXT( GLenum target )
+{
+    struct glCheckFramebufferStatusEXT_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glCheckFramebufferStatusEXT, &args ))) WARN( "glCheckFramebufferStatusEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static GLenum WINAPI glCheckNamedFramebufferStatus( GLuint framebuffer, GLenum target )
+{
+    struct glCheckNamedFramebufferStatus_params args = { .framebuffer = framebuffer, .target = target, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, target %d\n", framebuffer, target );
+    if ((status = UNIX_CALL( glCheckNamedFramebufferStatus, &args ))) WARN( "glCheckNamedFramebufferStatus returned %#x\n", status );
+    return args.ret;
+}
+
+static GLenum WINAPI glCheckNamedFramebufferStatusEXT( GLuint framebuffer, GLenum target )
+{
+    struct glCheckNamedFramebufferStatusEXT_params args = { .framebuffer = framebuffer, .target = target, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, target %d\n", framebuffer, target );
+    if ((status = UNIX_CALL( glCheckNamedFramebufferStatusEXT, &args ))) WARN( "glCheckNamedFramebufferStatusEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glClampColor( GLenum target, GLenum clamp )
+{
+    struct glClampColor_params args = { .target = target, .clamp = clamp, };
+    NTSTATUS status;
+    TRACE( "target %d, clamp %d\n", target, clamp );
+    if ((status = UNIX_CALL( glClampColor, &args ))) WARN( "glClampColor returned %#x\n", status );
+}
+
+static void WINAPI glClampColorARB( GLenum target, GLenum clamp )
+{
+    struct glClampColorARB_params args = { .target = target, .clamp = clamp, };
+    NTSTATUS status;
+    TRACE( "target %d, clamp %d\n", target, clamp );
+    if ((status = UNIX_CALL( glClampColorARB, &args ))) WARN( "glClampColorARB returned %#x\n", status );
+}
+
+static void WINAPI glClearAccumxOES( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha )
+{
+    struct glClearAccumxOES_params args = { .red = red, .green = green, .blue = blue, .alpha = alpha, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d, alpha %d\n", red, green, blue, alpha );
+    if ((status = UNIX_CALL( glClearAccumxOES, &args ))) WARN( "glClearAccumxOES returned %#x\n", status );
+}
+
+static void WINAPI glClearBufferData( GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data )
+{
+    struct glClearBufferData_params args = { .target = target, .internalformat = internalformat, .format = format, .type = type, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, format %d, type %d, data %p\n", target, internalformat, format, type, data );
+    if ((status = UNIX_CALL( glClearBufferData, &args ))) WARN( "glClearBufferData returned %#x\n", status );
+}
+
+static void WINAPI glClearBufferSubData( GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data )
+{
+    struct glClearBufferSubData_params args = { .target = target, .internalformat = internalformat, .offset = offset, .size = size, .format = format, .type = type, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, offset %ld, size %ld, format %d, type %d, data %p\n", target, internalformat, offset, size, format, type, data );
+    if ((status = UNIX_CALL( glClearBufferSubData, &args ))) WARN( "glClearBufferSubData returned %#x\n", status );
+}
+
+static void WINAPI glClearBufferfi( GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil )
+{
+    struct glClearBufferfi_params args = { .buffer = buffer, .drawbuffer = drawbuffer, .depth = depth, .stencil = stencil, };
+    NTSTATUS status;
+    TRACE( "buffer %d, drawbuffer %d, depth %f, stencil %d\n", buffer, drawbuffer, depth, stencil );
+    if ((status = UNIX_CALL( glClearBufferfi, &args ))) WARN( "glClearBufferfi returned %#x\n", status );
+}
+
+static void WINAPI glClearBufferfv( GLenum buffer, GLint drawbuffer, const GLfloat *value )
+{
+    struct glClearBufferfv_params args = { .buffer = buffer, .drawbuffer = drawbuffer, .value = value, };
+    NTSTATUS status;
+    TRACE( "buffer %d, drawbuffer %d, value %p\n", buffer, drawbuffer, value );
+    if ((status = UNIX_CALL( glClearBufferfv, &args ))) WARN( "glClearBufferfv returned %#x\n", status );
+}
+
+static void WINAPI glClearBufferiv( GLenum buffer, GLint drawbuffer, const GLint *value )
+{
+    struct glClearBufferiv_params args = { .buffer = buffer, .drawbuffer = drawbuffer, .value = value, };
+    NTSTATUS status;
+    TRACE( "buffer %d, drawbuffer %d, value %p\n", buffer, drawbuffer, value );
+    if ((status = UNIX_CALL( glClearBufferiv, &args ))) WARN( "glClearBufferiv returned %#x\n", status );
+}
+
+static void WINAPI glClearBufferuiv( GLenum buffer, GLint drawbuffer, const GLuint *value )
+{
+    struct glClearBufferuiv_params args = { .buffer = buffer, .drawbuffer = drawbuffer, .value = value, };
+    NTSTATUS status;
+    TRACE( "buffer %d, drawbuffer %d, value %p\n", buffer, drawbuffer, value );
+    if ((status = UNIX_CALL( glClearBufferuiv, &args ))) WARN( "glClearBufferuiv returned %#x\n", status );
+}
+
+static void WINAPI glClearColorIiEXT( GLint red, GLint green, GLint blue, GLint alpha )
+{
+    struct glClearColorIiEXT_params args = { .red = red, .green = green, .blue = blue, .alpha = alpha, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d, alpha %d\n", red, green, blue, alpha );
+    if ((status = UNIX_CALL( glClearColorIiEXT, &args ))) WARN( "glClearColorIiEXT returned %#x\n", status );
+}
+
+static void WINAPI glClearColorIuiEXT( GLuint red, GLuint green, GLuint blue, GLuint alpha )
+{
+    struct glClearColorIuiEXT_params args = { .red = red, .green = green, .blue = blue, .alpha = alpha, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d, alpha %d\n", red, green, blue, alpha );
+    if ((status = UNIX_CALL( glClearColorIuiEXT, &args ))) WARN( "glClearColorIuiEXT returned %#x\n", status );
+}
+
+static void WINAPI glClearColorxOES( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha )
+{
+    struct glClearColorxOES_params args = { .red = red, .green = green, .blue = blue, .alpha = alpha, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d, alpha %d\n", red, green, blue, alpha );
+    if ((status = UNIX_CALL( glClearColorxOES, &args ))) WARN( "glClearColorxOES returned %#x\n", status );
+}
+
+static void WINAPI glClearDepthdNV( GLdouble depth )
+{
+    struct glClearDepthdNV_params args = { .depth = depth, };
+    NTSTATUS status;
+    TRACE( "depth %f\n", depth );
+    if ((status = UNIX_CALL( glClearDepthdNV, &args ))) WARN( "glClearDepthdNV returned %#x\n", status );
+}
+
+static void WINAPI glClearDepthf( GLfloat d )
+{
+    struct glClearDepthf_params args = { .d = d, };
+    NTSTATUS status;
+    TRACE( "d %f\n", d );
+    if ((status = UNIX_CALL( glClearDepthf, &args ))) WARN( "glClearDepthf returned %#x\n", status );
+}
+
+static void WINAPI glClearDepthfOES( GLclampf depth )
+{
+    struct glClearDepthfOES_params args = { .depth = depth, };
+    NTSTATUS status;
+    TRACE( "depth %f\n", depth );
+    if ((status = UNIX_CALL( glClearDepthfOES, &args ))) WARN( "glClearDepthfOES returned %#x\n", status );
+}
+
+static void WINAPI glClearDepthxOES( GLfixed depth )
+{
+    struct glClearDepthxOES_params args = { .depth = depth, };
+    NTSTATUS status;
+    TRACE( "depth %d\n", depth );
+    if ((status = UNIX_CALL( glClearDepthxOES, &args ))) WARN( "glClearDepthxOES returned %#x\n", status );
+}
+
+static void WINAPI glClearNamedBufferData( GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data )
+{
+    struct glClearNamedBufferData_params args = { .buffer = buffer, .internalformat = internalformat, .format = format, .type = type, .data = data, };
+    NTSTATUS status;
+    TRACE( "buffer %d, internalformat %d, format %d, type %d, data %p\n", buffer, internalformat, format, type, data );
+    if ((status = UNIX_CALL( glClearNamedBufferData, &args ))) WARN( "glClearNamedBufferData returned %#x\n", status );
+}
+
+static void WINAPI glClearNamedBufferDataEXT( GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data )
+{
+    struct glClearNamedBufferDataEXT_params args = { .buffer = buffer, .internalformat = internalformat, .format = format, .type = type, .data = data, };
+    NTSTATUS status;
+    TRACE( "buffer %d, internalformat %d, format %d, type %d, data %p\n", buffer, internalformat, format, type, data );
+    if ((status = UNIX_CALL( glClearNamedBufferDataEXT, &args ))) WARN( "glClearNamedBufferDataEXT returned %#x\n", status );
+}
+
+static void WINAPI glClearNamedBufferSubData( GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data )
+{
+    struct glClearNamedBufferSubData_params args = { .buffer = buffer, .internalformat = internalformat, .offset = offset, .size = size, .format = format, .type = type, .data = data, };
+    NTSTATUS status;
+    TRACE( "buffer %d, internalformat %d, offset %ld, size %ld, format %d, type %d, data %p\n", buffer, internalformat, offset, size, format, type, data );
+    if ((status = UNIX_CALL( glClearNamedBufferSubData, &args ))) WARN( "glClearNamedBufferSubData returned %#x\n", status );
+}
+
+static void WINAPI glClearNamedBufferSubDataEXT( GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data )
+{
+    struct glClearNamedBufferSubDataEXT_params args = { .buffer = buffer, .internalformat = internalformat, .offset = offset, .size = size, .format = format, .type = type, .data = data, };
+    NTSTATUS status;
+    TRACE( "buffer %d, internalformat %d, offset %ld, size %ld, format %d, type %d, data %p\n", buffer, internalformat, offset, size, format, type, data );
+    if ((status = UNIX_CALL( glClearNamedBufferSubDataEXT, &args ))) WARN( "glClearNamedBufferSubDataEXT returned %#x\n", status );
+}
+
+static void WINAPI glClearNamedFramebufferfi( GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil )
+{
+    struct glClearNamedFramebufferfi_params args = { .framebuffer = framebuffer, .buffer = buffer, .drawbuffer = drawbuffer, .depth = depth, .stencil = stencil, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, buffer %d, drawbuffer %d, depth %f, stencil %d\n", framebuffer, buffer, drawbuffer, depth, stencil );
+    if ((status = UNIX_CALL( glClearNamedFramebufferfi, &args ))) WARN( "glClearNamedFramebufferfi returned %#x\n", status );
+}
+
+static void WINAPI glClearNamedFramebufferfv( GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value )
+{
+    struct glClearNamedFramebufferfv_params args = { .framebuffer = framebuffer, .buffer = buffer, .drawbuffer = drawbuffer, .value = value, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, buffer %d, drawbuffer %d, value %p\n", framebuffer, buffer, drawbuffer, value );
+    if ((status = UNIX_CALL( glClearNamedFramebufferfv, &args ))) WARN( "glClearNamedFramebufferfv returned %#x\n", status );
+}
+
+static void WINAPI glClearNamedFramebufferiv( GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value )
+{
+    struct glClearNamedFramebufferiv_params args = { .framebuffer = framebuffer, .buffer = buffer, .drawbuffer = drawbuffer, .value = value, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, buffer %d, drawbuffer %d, value %p\n", framebuffer, buffer, drawbuffer, value );
+    if ((status = UNIX_CALL( glClearNamedFramebufferiv, &args ))) WARN( "glClearNamedFramebufferiv returned %#x\n", status );
+}
+
+static void WINAPI glClearNamedFramebufferuiv( GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value )
+{
+    struct glClearNamedFramebufferuiv_params args = { .framebuffer = framebuffer, .buffer = buffer, .drawbuffer = drawbuffer, .value = value, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, buffer %d, drawbuffer %d, value %p\n", framebuffer, buffer, drawbuffer, value );
+    if ((status = UNIX_CALL( glClearNamedFramebufferuiv, &args ))) WARN( "glClearNamedFramebufferuiv returned %#x\n", status );
+}
+
+static void WINAPI glClearTexImage( GLuint texture, GLint level, GLenum format, GLenum type, const void *data )
+{
+    struct glClearTexImage_params args = { .texture = texture, .level = level, .format = format, .type = type, .data = data, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, format %d, type %d, data %p\n", texture, level, format, type, data );
+    if ((status = UNIX_CALL( glClearTexImage, &args ))) WARN( "glClearTexImage returned %#x\n", status );
+}
+
+static void WINAPI glClearTexSubImage( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data )
+{
+    struct glClearTexSubImage_params args = { .texture = texture, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .format = format, .type = type, .data = data, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, format %d, type %d, data %p\n", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data );
+    if ((status = UNIX_CALL( glClearTexSubImage, &args ))) WARN( "glClearTexSubImage returned %#x\n", status );
+}
+
+static void WINAPI glClientActiveTexture( GLenum texture )
+{
+    struct glClientActiveTexture_params args = { .texture = texture, };
+    NTSTATUS status;
+    TRACE( "texture %d\n", texture );
+    if ((status = UNIX_CALL( glClientActiveTexture, &args ))) WARN( "glClientActiveTexture returned %#x\n", status );
+}
+
+static void WINAPI glClientActiveTextureARB( GLenum texture )
+{
+    struct glClientActiveTextureARB_params args = { .texture = texture, };
+    NTSTATUS status;
+    TRACE( "texture %d\n", texture );
+    if ((status = UNIX_CALL( glClientActiveTextureARB, &args ))) WARN( "glClientActiveTextureARB returned %#x\n", status );
+}
+
+static void WINAPI glClientActiveVertexStreamATI( GLenum stream )
+{
+    struct glClientActiveVertexStreamATI_params args = { .stream = stream, };
+    NTSTATUS status;
+    TRACE( "stream %d\n", stream );
+    if ((status = UNIX_CALL( glClientActiveVertexStreamATI, &args ))) WARN( "glClientActiveVertexStreamATI returned %#x\n", status );
+}
+
+static void WINAPI glClientAttribDefaultEXT( GLbitfield mask )
+{
+    struct glClientAttribDefaultEXT_params args = { .mask = mask, };
+    NTSTATUS status;
+    TRACE( "mask %d\n", mask );
+    if ((status = UNIX_CALL( glClientAttribDefaultEXT, &args ))) WARN( "glClientAttribDefaultEXT returned %#x\n", status );
+}
+
+static void WINAPI glClientWaitSemaphoreui64NVX( GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray )
+{
+    struct glClientWaitSemaphoreui64NVX_params args = { .fenceObjectCount = fenceObjectCount, .semaphoreArray = semaphoreArray, .fenceValueArray = fenceValueArray, };
+    NTSTATUS status;
+    TRACE( "fenceObjectCount %d, semaphoreArray %p, fenceValueArray %p\n", fenceObjectCount, semaphoreArray, fenceValueArray );
+    if ((status = UNIX_CALL( glClientWaitSemaphoreui64NVX, &args ))) WARN( "glClientWaitSemaphoreui64NVX returned %#x\n", status );
+}
+
+static GLenum WINAPI glClientWaitSync( GLsync sync, GLbitfield flags, GLuint64 timeout )
+{
+    struct glClientWaitSync_params args = { .sync = sync, .flags = flags, .timeout = timeout, };
+    NTSTATUS status;
+    TRACE( "sync %p, flags %d, timeout %s\n", sync, flags, wine_dbgstr_longlong(timeout) );
+    if ((status = UNIX_CALL( glClientWaitSync, &args ))) WARN( "glClientWaitSync returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glClipControl( GLenum origin, GLenum depth )
+{
+    struct glClipControl_params args = { .origin = origin, .depth = depth, };
+    NTSTATUS status;
+    TRACE( "origin %d, depth %d\n", origin, depth );
+    if ((status = UNIX_CALL( glClipControl, &args ))) WARN( "glClipControl returned %#x\n", status );
+}
+
+static void WINAPI glClipPlanefOES( GLenum plane, const GLfloat *equation )
+{
+    struct glClipPlanefOES_params args = { .plane = plane, .equation = equation, };
+    NTSTATUS status;
+    TRACE( "plane %d, equation %p\n", plane, equation );
+    if ((status = UNIX_CALL( glClipPlanefOES, &args ))) WARN( "glClipPlanefOES returned %#x\n", status );
+}
+
+static void WINAPI glClipPlanexOES( GLenum plane, const GLfixed *equation )
+{
+    struct glClipPlanexOES_params args = { .plane = plane, .equation = equation, };
+    NTSTATUS status;
+    TRACE( "plane %d, equation %p\n", plane, equation );
+    if ((status = UNIX_CALL( glClipPlanexOES, &args ))) WARN( "glClipPlanexOES returned %#x\n", status );
+}
+
+static void WINAPI glColor3fVertex3fSUN( GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glColor3fVertex3fSUN_params args = { .r = r, .g = g, .b = b, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "r %f, g %f, b %f, x %f, y %f, z %f\n", r, g, b, x, y, z );
+    if ((status = UNIX_CALL( glColor3fVertex3fSUN, &args ))) WARN( "glColor3fVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glColor3fVertex3fvSUN( const GLfloat *c, const GLfloat *v )
+{
+    struct glColor3fVertex3fvSUN_params args = { .c = c, .v = v, };
+    NTSTATUS status;
+    TRACE( "c %p, v %p\n", c, v );
+    if ((status = UNIX_CALL( glColor3fVertex3fvSUN, &args ))) WARN( "glColor3fVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glColor3hNV( GLhalfNV red, GLhalfNV green, GLhalfNV blue )
+{
+    struct glColor3hNV_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glColor3hNV, &args ))) WARN( "glColor3hNV returned %#x\n", status );
+}
+
+static void WINAPI glColor3hvNV( const GLhalfNV *v )
+{
+    struct glColor3hvNV_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glColor3hvNV, &args ))) WARN( "glColor3hvNV returned %#x\n", status );
+}
+
+static void WINAPI glColor3xOES( GLfixed red, GLfixed green, GLfixed blue )
+{
+    struct glColor3xOES_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glColor3xOES, &args ))) WARN( "glColor3xOES returned %#x\n", status );
+}
+
+static void WINAPI glColor3xvOES( const GLfixed *components )
+{
+    struct glColor3xvOES_params args = { .components = components, };
+    NTSTATUS status;
+    TRACE( "components %p\n", components );
+    if ((status = UNIX_CALL( glColor3xvOES, &args ))) WARN( "glColor3xvOES returned %#x\n", status );
+}
+
+static void WINAPI glColor4fNormal3fVertex3fSUN( GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glColor4fNormal3fVertex3fSUN_params args = { .r = r, .g = g, .b = b, .a = a, .nx = nx, .ny = ny, .nz = nz, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "r %f, g %f, b %f, a %f, nx %f, ny %f, nz %f, x %f, y %f, z %f\n", r, g, b, a, nx, ny, nz, x, y, z );
+    if ((status = UNIX_CALL( glColor4fNormal3fVertex3fSUN, &args ))) WARN( "glColor4fNormal3fVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glColor4fNormal3fVertex3fvSUN( const GLfloat *c, const GLfloat *n, const GLfloat *v )
+{
+    struct glColor4fNormal3fVertex3fvSUN_params args = { .c = c, .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "c %p, n %p, v %p\n", c, n, v );
+    if ((status = UNIX_CALL( glColor4fNormal3fVertex3fvSUN, &args ))) WARN( "glColor4fNormal3fVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glColor4hNV( GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha )
+{
+    struct glColor4hNV_params args = { .red = red, .green = green, .blue = blue, .alpha = alpha, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d, alpha %d\n", red, green, blue, alpha );
+    if ((status = UNIX_CALL( glColor4hNV, &args ))) WARN( "glColor4hNV returned %#x\n", status );
+}
+
+static void WINAPI glColor4hvNV( const GLhalfNV *v )
+{
+    struct glColor4hvNV_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glColor4hvNV, &args ))) WARN( "glColor4hvNV returned %#x\n", status );
+}
+
+static void WINAPI glColor4ubVertex2fSUN( GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y )
+{
+    struct glColor4ubVertex2fSUN_params args = { .r = r, .g = g, .b = b, .a = a, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "r %d, g %d, b %d, a %d, x %f, y %f\n", r, g, b, a, x, y );
+    if ((status = UNIX_CALL( glColor4ubVertex2fSUN, &args ))) WARN( "glColor4ubVertex2fSUN returned %#x\n", status );
+}
+
+static void WINAPI glColor4ubVertex2fvSUN( const GLubyte *c, const GLfloat *v )
+{
+    struct glColor4ubVertex2fvSUN_params args = { .c = c, .v = v, };
+    NTSTATUS status;
+    TRACE( "c %p, v %p\n", c, v );
+    if ((status = UNIX_CALL( glColor4ubVertex2fvSUN, &args ))) WARN( "glColor4ubVertex2fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glColor4ubVertex3fSUN( GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glColor4ubVertex3fSUN_params args = { .r = r, .g = g, .b = b, .a = a, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "r %d, g %d, b %d, a %d, x %f, y %f, z %f\n", r, g, b, a, x, y, z );
+    if ((status = UNIX_CALL( glColor4ubVertex3fSUN, &args ))) WARN( "glColor4ubVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glColor4ubVertex3fvSUN( const GLubyte *c, const GLfloat *v )
+{
+    struct glColor4ubVertex3fvSUN_params args = { .c = c, .v = v, };
+    NTSTATUS status;
+    TRACE( "c %p, v %p\n", c, v );
+    if ((status = UNIX_CALL( glColor4ubVertex3fvSUN, &args ))) WARN( "glColor4ubVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glColor4xOES( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha )
+{
+    struct glColor4xOES_params args = { .red = red, .green = green, .blue = blue, .alpha = alpha, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d, alpha %d\n", red, green, blue, alpha );
+    if ((status = UNIX_CALL( glColor4xOES, &args ))) WARN( "glColor4xOES returned %#x\n", status );
+}
+
+static void WINAPI glColor4xvOES( const GLfixed *components )
+{
+    struct glColor4xvOES_params args = { .components = components, };
+    NTSTATUS status;
+    TRACE( "components %p\n", components );
+    if ((status = UNIX_CALL( glColor4xvOES, &args ))) WARN( "glColor4xvOES returned %#x\n", status );
+}
+
+static void WINAPI glColorFormatNV( GLint size, GLenum type, GLsizei stride )
+{
+    struct glColorFormatNV_params args = { .size = size, .type = type, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d\n", size, type, stride );
+    if ((status = UNIX_CALL( glColorFormatNV, &args ))) WARN( "glColorFormatNV returned %#x\n", status );
+}
+
+static void WINAPI glColorFragmentOp1ATI( GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod )
+{
+    struct glColorFragmentOp1ATI_params args = { .op = op, .dst = dst, .dstMask = dstMask, .dstMod = dstMod, .arg1 = arg1, .arg1Rep = arg1Rep, .arg1Mod = arg1Mod, };
+    NTSTATUS status;
+    TRACE( "op %d, dst %d, dstMask %d, dstMod %d, arg1 %d, arg1Rep %d, arg1Mod %d\n", op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod );
+    if ((status = UNIX_CALL( glColorFragmentOp1ATI, &args ))) WARN( "glColorFragmentOp1ATI returned %#x\n", status );
+}
+
+static void WINAPI glColorFragmentOp2ATI( GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod )
+{
+    struct glColorFragmentOp2ATI_params args = { .op = op, .dst = dst, .dstMask = dstMask, .dstMod = dstMod, .arg1 = arg1, .arg1Rep = arg1Rep, .arg1Mod = arg1Mod, .arg2 = arg2, .arg2Rep = arg2Rep, .arg2Mod = arg2Mod, };
+    NTSTATUS status;
+    TRACE( "op %d, dst %d, dstMask %d, dstMod %d, arg1 %d, arg1Rep %d, arg1Mod %d, arg2 %d, arg2Rep %d, arg2Mod %d\n", op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod );
+    if ((status = UNIX_CALL( glColorFragmentOp2ATI, &args ))) WARN( "glColorFragmentOp2ATI returned %#x\n", status );
+}
+
+static void WINAPI glColorFragmentOp3ATI( GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod )
+{
+    struct glColorFragmentOp3ATI_params args = { .op = op, .dst = dst, .dstMask = dstMask, .dstMod = dstMod, .arg1 = arg1, .arg1Rep = arg1Rep, .arg1Mod = arg1Mod, .arg2 = arg2, .arg2Rep = arg2Rep, .arg2Mod = arg2Mod, .arg3 = arg3, .arg3Rep = arg3Rep, .arg3Mod = arg3Mod, };
+    NTSTATUS status;
+    TRACE( "op %d, dst %d, dstMask %d, dstMod %d, arg1 %d, arg1Rep %d, arg1Mod %d, arg2 %d, arg2Rep %d, arg2Mod %d, arg3 %d, arg3Rep %d, arg3Mod %d\n", op, dst, dstMask, dstMod, arg1, arg1Rep, arg1Mod, arg2, arg2Rep, arg2Mod, arg3, arg3Rep, arg3Mod );
+    if ((status = UNIX_CALL( glColorFragmentOp3ATI, &args ))) WARN( "glColorFragmentOp3ATI returned %#x\n", status );
+}
+
+static void WINAPI glColorMaskIndexedEXT( GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a )
+{
+    struct glColorMaskIndexedEXT_params args = { .index = index, .r = r, .g = g, .b = b, .a = a, };
+    NTSTATUS status;
+    TRACE( "index %d, r %d, g %d, b %d, a %d\n", index, r, g, b, a );
+    if ((status = UNIX_CALL( glColorMaskIndexedEXT, &args ))) WARN( "glColorMaskIndexedEXT returned %#x\n", status );
+}
+
+static void WINAPI glColorMaski( GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a )
+{
+    struct glColorMaski_params args = { .index = index, .r = r, .g = g, .b = b, .a = a, };
+    NTSTATUS status;
+    TRACE( "index %d, r %d, g %d, b %d, a %d\n", index, r, g, b, a );
+    if ((status = UNIX_CALL( glColorMaski, &args ))) WARN( "glColorMaski returned %#x\n", status );
+}
+
+static void WINAPI glColorP3ui( GLenum type, GLuint color )
+{
+    struct glColorP3ui_params args = { .type = type, .color = color, };
+    NTSTATUS status;
+    TRACE( "type %d, color %d\n", type, color );
+    if ((status = UNIX_CALL( glColorP3ui, &args ))) WARN( "glColorP3ui returned %#x\n", status );
+}
+
+static void WINAPI glColorP3uiv( GLenum type, const GLuint *color )
+{
+    struct glColorP3uiv_params args = { .type = type, .color = color, };
+    NTSTATUS status;
+    TRACE( "type %d, color %p\n", type, color );
+    if ((status = UNIX_CALL( glColorP3uiv, &args ))) WARN( "glColorP3uiv returned %#x\n", status );
+}
+
+static void WINAPI glColorP4ui( GLenum type, GLuint color )
+{
+    struct glColorP4ui_params args = { .type = type, .color = color, };
+    NTSTATUS status;
+    TRACE( "type %d, color %d\n", type, color );
+    if ((status = UNIX_CALL( glColorP4ui, &args ))) WARN( "glColorP4ui returned %#x\n", status );
+}
+
+static void WINAPI glColorP4uiv( GLenum type, const GLuint *color )
+{
+    struct glColorP4uiv_params args = { .type = type, .color = color, };
+    NTSTATUS status;
+    TRACE( "type %d, color %p\n", type, color );
+    if ((status = UNIX_CALL( glColorP4uiv, &args ))) WARN( "glColorP4uiv returned %#x\n", status );
+}
+
+static void WINAPI glColorPointerEXT( GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer )
+{
+    struct glColorPointerEXT_params args = { .size = size, .type = type, .stride = stride, .count = count, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d, count %d, pointer %p\n", size, type, stride, count, pointer );
+    if ((status = UNIX_CALL( glColorPointerEXT, &args ))) WARN( "glColorPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glColorPointerListIBM( GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride )
+{
+    struct glColorPointerListIBM_params args = { .size = size, .type = type, .stride = stride, .pointer = pointer, .ptrstride = ptrstride, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d, pointer %p, ptrstride %d\n", size, type, stride, pointer, ptrstride );
+    if ((status = UNIX_CALL( glColorPointerListIBM, &args ))) WARN( "glColorPointerListIBM returned %#x\n", status );
+}
+
+static void WINAPI glColorPointervINTEL( GLint size, GLenum type, const void **pointer )
+{
+    struct glColorPointervINTEL_params args = { .size = size, .type = type, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, pointer %p\n", size, type, pointer );
+    if ((status = UNIX_CALL( glColorPointervINTEL, &args ))) WARN( "glColorPointervINTEL returned %#x\n", status );
+}
+
+static void WINAPI glColorSubTable( GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data )
+{
+    struct glColorSubTable_params args = { .target = target, .start = start, .count = count, .format = format, .type = type, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, start %d, count %d, format %d, type %d, data %p\n", target, start, count, format, type, data );
+    if ((status = UNIX_CALL( glColorSubTable, &args ))) WARN( "glColorSubTable returned %#x\n", status );
+}
+
+static void WINAPI glColorSubTableEXT( GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data )
+{
+    struct glColorSubTableEXT_params args = { .target = target, .start = start, .count = count, .format = format, .type = type, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, start %d, count %d, format %d, type %d, data %p\n", target, start, count, format, type, data );
+    if ((status = UNIX_CALL( glColorSubTableEXT, &args ))) WARN( "glColorSubTableEXT returned %#x\n", status );
+}
+
+static void WINAPI glColorTable( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table )
+{
+    struct glColorTable_params args = { .target = target, .internalformat = internalformat, .width = width, .format = format, .type = type, .table = table, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, width %d, format %d, type %d, table %p\n", target, internalformat, width, format, type, table );
+    if ((status = UNIX_CALL( glColorTable, &args ))) WARN( "glColorTable returned %#x\n", status );
+}
+
+static void WINAPI glColorTableEXT( GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table )
+{
+    struct glColorTableEXT_params args = { .target = target, .internalFormat = internalFormat, .width = width, .format = format, .type = type, .table = table, };
+    NTSTATUS status;
+    TRACE( "target %d, internalFormat %d, width %d, format %d, type %d, table %p\n", target, internalFormat, width, format, type, table );
+    if ((status = UNIX_CALL( glColorTableEXT, &args ))) WARN( "glColorTableEXT returned %#x\n", status );
+}
+
+static void WINAPI glColorTableParameterfv( GLenum target, GLenum pname, const GLfloat *params )
+{
+    struct glColorTableParameterfv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glColorTableParameterfv, &args ))) WARN( "glColorTableParameterfv returned %#x\n", status );
+}
+
+static void WINAPI glColorTableParameterfvSGI( GLenum target, GLenum pname, const GLfloat *params )
+{
+    struct glColorTableParameterfvSGI_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glColorTableParameterfvSGI, &args ))) WARN( "glColorTableParameterfvSGI returned %#x\n", status );
+}
+
+static void WINAPI glColorTableParameteriv( GLenum target, GLenum pname, const GLint *params )
+{
+    struct glColorTableParameteriv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glColorTableParameteriv, &args ))) WARN( "glColorTableParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glColorTableParameterivSGI( GLenum target, GLenum pname, const GLint *params )
+{
+    struct glColorTableParameterivSGI_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glColorTableParameterivSGI, &args ))) WARN( "glColorTableParameterivSGI returned %#x\n", status );
+}
+
+static void WINAPI glColorTableSGI( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table )
+{
+    struct glColorTableSGI_params args = { .target = target, .internalformat = internalformat, .width = width, .format = format, .type = type, .table = table, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, width %d, format %d, type %d, table %p\n", target, internalformat, width, format, type, table );
+    if ((status = UNIX_CALL( glColorTableSGI, &args ))) WARN( "glColorTableSGI returned %#x\n", status );
+}
+
+static void WINAPI glCombinerInputNV( GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage )
+{
+    struct glCombinerInputNV_params args = { .stage = stage, .portion = portion, .variable = variable, .input = input, .mapping = mapping, .componentUsage = componentUsage, };
+    NTSTATUS status;
+    TRACE( "stage %d, portion %d, variable %d, input %d, mapping %d, componentUsage %d\n", stage, portion, variable, input, mapping, componentUsage );
+    if ((status = UNIX_CALL( glCombinerInputNV, &args ))) WARN( "glCombinerInputNV returned %#x\n", status );
+}
+
+static void WINAPI glCombinerOutputNV( GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum )
+{
+    struct glCombinerOutputNV_params args = { .stage = stage, .portion = portion, .abOutput = abOutput, .cdOutput = cdOutput, .sumOutput = sumOutput, .scale = scale, .bias = bias, .abDotProduct = abDotProduct, .cdDotProduct = cdDotProduct, .muxSum = muxSum, };
+    NTSTATUS status;
+    TRACE( "stage %d, portion %d, abOutput %d, cdOutput %d, sumOutput %d, scale %d, bias %d, abDotProduct %d, cdDotProduct %d, muxSum %d\n", stage, portion, abOutput, cdOutput, sumOutput, scale, bias, abDotProduct, cdDotProduct, muxSum );
+    if ((status = UNIX_CALL( glCombinerOutputNV, &args ))) WARN( "glCombinerOutputNV returned %#x\n", status );
+}
+
+static void WINAPI glCombinerParameterfNV( GLenum pname, GLfloat param )
+{
+    struct glCombinerParameterfNV_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %f\n", pname, param );
+    if ((status = UNIX_CALL( glCombinerParameterfNV, &args ))) WARN( "glCombinerParameterfNV returned %#x\n", status );
+}
+
+static void WINAPI glCombinerParameterfvNV( GLenum pname, const GLfloat *params )
+{
+    struct glCombinerParameterfvNV_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glCombinerParameterfvNV, &args ))) WARN( "glCombinerParameterfvNV returned %#x\n", status );
+}
+
+static void WINAPI glCombinerParameteriNV( GLenum pname, GLint param )
+{
+    struct glCombinerParameteriNV_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glCombinerParameteriNV, &args ))) WARN( "glCombinerParameteriNV returned %#x\n", status );
+}
+
+static void WINAPI glCombinerParameterivNV( GLenum pname, const GLint *params )
+{
+    struct glCombinerParameterivNV_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glCombinerParameterivNV, &args ))) WARN( "glCombinerParameterivNV returned %#x\n", status );
+}
+
+static void WINAPI glCombinerStageParameterfvNV( GLenum stage, GLenum pname, const GLfloat *params )
+{
+    struct glCombinerStageParameterfvNV_params args = { .stage = stage, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "stage %d, pname %d, params %p\n", stage, pname, params );
+    if ((status = UNIX_CALL( glCombinerStageParameterfvNV, &args ))) WARN( "glCombinerStageParameterfvNV returned %#x\n", status );
+}
+
+static void WINAPI glCommandListSegmentsNV( GLuint list, GLuint segments )
+{
+    struct glCommandListSegmentsNV_params args = { .list = list, .segments = segments, };
+    NTSTATUS status;
+    TRACE( "list %d, segments %d\n", list, segments );
+    if ((status = UNIX_CALL( glCommandListSegmentsNV, &args ))) WARN( "glCommandListSegmentsNV returned %#x\n", status );
+}
+
+static void WINAPI glCompileCommandListNV( GLuint list )
+{
+    struct glCompileCommandListNV_params args = { .list = list, };
+    NTSTATUS status;
+    TRACE( "list %d\n", list );
+    if ((status = UNIX_CALL( glCompileCommandListNV, &args ))) WARN( "glCompileCommandListNV returned %#x\n", status );
+}
+
+static void WINAPI glCompileShader( GLuint shader )
+{
+    struct glCompileShader_params args = { .shader = shader, };
+    NTSTATUS status;
+    TRACE( "shader %d\n", shader );
+    if ((status = UNIX_CALL( glCompileShader, &args ))) WARN( "glCompileShader returned %#x\n", status );
+}
+
+static void WINAPI glCompileShaderARB( GLhandleARB shaderObj )
+{
+    struct glCompileShaderARB_params args = { .shaderObj = shaderObj, };
+    NTSTATUS status;
+    TRACE( "shaderObj %d\n", shaderObj );
+    if ((status = UNIX_CALL( glCompileShaderARB, &args ))) WARN( "glCompileShaderARB returned %#x\n", status );
+}
+
+static void WINAPI glCompileShaderIncludeARB( GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length )
+{
+    struct glCompileShaderIncludeARB_params args = { .shader = shader, .count = count, .path = path, .length = length, };
+    NTSTATUS status;
+    TRACE( "shader %d, count %d, path %p, length %p\n", shader, count, path, length );
+    if ((status = UNIX_CALL( glCompileShaderIncludeARB, &args ))) WARN( "glCompileShaderIncludeARB returned %#x\n", status );
+}
+
+static void WINAPI glCompressedMultiTexImage1DEXT( GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits )
+{
+    struct glCompressedMultiTexImage1DEXT_params args = { .texunit = texunit, .target = target, .level = level, .internalformat = internalformat, .width = width, .border = border, .imageSize = imageSize, .bits = bits, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, internalformat %d, width %d, border %d, imageSize %d, bits %p\n", texunit, target, level, internalformat, width, border, imageSize, bits );
+    if ((status = UNIX_CALL( glCompressedMultiTexImage1DEXT, &args ))) WARN( "glCompressedMultiTexImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCompressedMultiTexImage2DEXT( GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits )
+{
+    struct glCompressedMultiTexImage2DEXT_params args = { .texunit = texunit, .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .border = border, .imageSize = imageSize, .bits = bits, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, internalformat %d, width %d, height %d, border %d, imageSize %d, bits %p\n", texunit, target, level, internalformat, width, height, border, imageSize, bits );
+    if ((status = UNIX_CALL( glCompressedMultiTexImage2DEXT, &args ))) WARN( "glCompressedMultiTexImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCompressedMultiTexImage3DEXT( GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits )
+{
+    struct glCompressedMultiTexImage3DEXT_params args = { .texunit = texunit, .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .depth = depth, .border = border, .imageSize = imageSize, .bits = bits, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, internalformat %d, width %d, height %d, depth %d, border %d, imageSize %d, bits %p\n", texunit, target, level, internalformat, width, height, depth, border, imageSize, bits );
+    if ((status = UNIX_CALL( glCompressedMultiTexImage3DEXT, &args ))) WARN( "glCompressedMultiTexImage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCompressedMultiTexSubImage1DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits )
+{
+    struct glCompressedMultiTexSubImage1DEXT_params args = { .texunit = texunit, .target = target, .level = level, .xoffset = xoffset, .width = width, .format = format, .imageSize = imageSize, .bits = bits, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, xoffset %d, width %d, format %d, imageSize %d, bits %p\n", texunit, target, level, xoffset, width, format, imageSize, bits );
+    if ((status = UNIX_CALL( glCompressedMultiTexSubImage1DEXT, &args ))) WARN( "glCompressedMultiTexSubImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCompressedMultiTexSubImage2DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits )
+{
+    struct glCompressedMultiTexSubImage2DEXT_params args = { .texunit = texunit, .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .width = width, .height = height, .format = format, .imageSize = imageSize, .bits = bits, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, xoffset %d, yoffset %d, width %d, height %d, format %d, imageSize %d, bits %p\n", texunit, target, level, xoffset, yoffset, width, height, format, imageSize, bits );
+    if ((status = UNIX_CALL( glCompressedMultiTexSubImage2DEXT, &args ))) WARN( "glCompressedMultiTexSubImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCompressedMultiTexSubImage3DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits )
+{
+    struct glCompressedMultiTexSubImage3DEXT_params args = { .texunit = texunit, .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .format = format, .imageSize = imageSize, .bits = bits, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, format %d, imageSize %d, bits %p\n", texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits );
+    if ((status = UNIX_CALL( glCompressedMultiTexSubImage3DEXT, &args ))) WARN( "glCompressedMultiTexSubImage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTexImage1D_params args = { .target = target, .level = level, .internalformat = internalformat, .width = width, .border = border, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, internalformat %d, width %d, border %d, imageSize %d, data %p\n", target, level, internalformat, width, border, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTexImage1D, &args ))) WARN( "glCompressedTexImage1D returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTexImage1DARB( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTexImage1DARB_params args = { .target = target, .level = level, .internalformat = internalformat, .width = width, .border = border, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, internalformat %d, width %d, border %d, imageSize %d, data %p\n", target, level, internalformat, width, border, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTexImage1DARB, &args ))) WARN( "glCompressedTexImage1DARB returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTexImage2D_params args = { .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .border = border, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, internalformat %d, width %d, height %d, border %d, imageSize %d, data %p\n", target, level, internalformat, width, height, border, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTexImage2D, &args ))) WARN( "glCompressedTexImage2D returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTexImage2DARB( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTexImage2DARB_params args = { .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .border = border, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, internalformat %d, width %d, height %d, border %d, imageSize %d, data %p\n", target, level, internalformat, width, height, border, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTexImage2DARB, &args ))) WARN( "glCompressedTexImage2DARB returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTexImage3D_params args = { .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .depth = depth, .border = border, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, internalformat %d, width %d, height %d, depth %d, border %d, imageSize %d, data %p\n", target, level, internalformat, width, height, depth, border, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTexImage3D, &args ))) WARN( "glCompressedTexImage3D returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTexImage3DARB( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTexImage3DARB_params args = { .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .depth = depth, .border = border, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, internalformat %d, width %d, height %d, depth %d, border %d, imageSize %d, data %p\n", target, level, internalformat, width, height, depth, border, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTexImage3DARB, &args ))) WARN( "glCompressedTexImage3DARB returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTexSubImage1D_params args = { .target = target, .level = level, .xoffset = xoffset, .width = width, .format = format, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, width %d, format %d, imageSize %d, data %p\n", target, level, xoffset, width, format, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTexSubImage1D, &args ))) WARN( "glCompressedTexSubImage1D returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTexSubImage1DARB( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTexSubImage1DARB_params args = { .target = target, .level = level, .xoffset = xoffset, .width = width, .format = format, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, width %d, format %d, imageSize %d, data %p\n", target, level, xoffset, width, format, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTexSubImage1DARB, &args ))) WARN( "glCompressedTexSubImage1DARB returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTexSubImage2D_params args = { .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .width = width, .height = height, .format = format, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, yoffset %d, width %d, height %d, format %d, imageSize %d, data %p\n", target, level, xoffset, yoffset, width, height, format, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTexSubImage2D, &args ))) WARN( "glCompressedTexSubImage2D returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTexSubImage2DARB( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTexSubImage2DARB_params args = { .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .width = width, .height = height, .format = format, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, yoffset %d, width %d, height %d, format %d, imageSize %d, data %p\n", target, level, xoffset, yoffset, width, height, format, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTexSubImage2DARB, &args ))) WARN( "glCompressedTexSubImage2DARB returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTexSubImage3D_params args = { .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .format = format, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, format %d, imageSize %d, data %p\n", target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTexSubImage3D, &args ))) WARN( "glCompressedTexSubImage3D returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTexSubImage3DARB( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTexSubImage3DARB_params args = { .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .format = format, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, format %d, imageSize %d, data %p\n", target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTexSubImage3DARB, &args ))) WARN( "glCompressedTexSubImage3DARB returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTextureImage1DEXT( GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits )
+{
+    struct glCompressedTextureImage1DEXT_params args = { .texture = texture, .target = target, .level = level, .internalformat = internalformat, .width = width, .border = border, .imageSize = imageSize, .bits = bits, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, internalformat %d, width %d, border %d, imageSize %d, bits %p\n", texture, target, level, internalformat, width, border, imageSize, bits );
+    if ((status = UNIX_CALL( glCompressedTextureImage1DEXT, &args ))) WARN( "glCompressedTextureImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTextureImage2DEXT( GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits )
+{
+    struct glCompressedTextureImage2DEXT_params args = { .texture = texture, .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .border = border, .imageSize = imageSize, .bits = bits, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, internalformat %d, width %d, height %d, border %d, imageSize %d, bits %p\n", texture, target, level, internalformat, width, height, border, imageSize, bits );
+    if ((status = UNIX_CALL( glCompressedTextureImage2DEXT, &args ))) WARN( "glCompressedTextureImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTextureImage3DEXT( GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits )
+{
+    struct glCompressedTextureImage3DEXT_params args = { .texture = texture, .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .depth = depth, .border = border, .imageSize = imageSize, .bits = bits, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, internalformat %d, width %d, height %d, depth %d, border %d, imageSize %d, bits %p\n", texture, target, level, internalformat, width, height, depth, border, imageSize, bits );
+    if ((status = UNIX_CALL( glCompressedTextureImage3DEXT, &args ))) WARN( "glCompressedTextureImage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTextureSubImage1D( GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTextureSubImage1D_params args = { .texture = texture, .level = level, .xoffset = xoffset, .width = width, .format = format, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, width %d, format %d, imageSize %d, data %p\n", texture, level, xoffset, width, format, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTextureSubImage1D, &args ))) WARN( "glCompressedTextureSubImage1D returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTextureSubImage1DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits )
+{
+    struct glCompressedTextureSubImage1DEXT_params args = { .texture = texture, .target = target, .level = level, .xoffset = xoffset, .width = width, .format = format, .imageSize = imageSize, .bits = bits, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, xoffset %d, width %d, format %d, imageSize %d, bits %p\n", texture, target, level, xoffset, width, format, imageSize, bits );
+    if ((status = UNIX_CALL( glCompressedTextureSubImage1DEXT, &args ))) WARN( "glCompressedTextureSubImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTextureSubImage2D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTextureSubImage2D_params args = { .texture = texture, .level = level, .xoffset = xoffset, .yoffset = yoffset, .width = width, .height = height, .format = format, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, yoffset %d, width %d, height %d, format %d, imageSize %d, data %p\n", texture, level, xoffset, yoffset, width, height, format, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTextureSubImage2D, &args ))) WARN( "glCompressedTextureSubImage2D returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTextureSubImage2DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits )
+{
+    struct glCompressedTextureSubImage2DEXT_params args = { .texture = texture, .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .width = width, .height = height, .format = format, .imageSize = imageSize, .bits = bits, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, xoffset %d, yoffset %d, width %d, height %d, format %d, imageSize %d, bits %p\n", texture, target, level, xoffset, yoffset, width, height, format, imageSize, bits );
+    if ((status = UNIX_CALL( glCompressedTextureSubImage2DEXT, &args ))) WARN( "glCompressedTextureSubImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTextureSubImage3D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data )
+{
+    struct glCompressedTextureSubImage3D_params args = { .texture = texture, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .format = format, .imageSize = imageSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, format %d, imageSize %d, data %p\n", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data );
+    if ((status = UNIX_CALL( glCompressedTextureSubImage3D, &args ))) WARN( "glCompressedTextureSubImage3D returned %#x\n", status );
+}
+
+static void WINAPI glCompressedTextureSubImage3DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits )
+{
+    struct glCompressedTextureSubImage3DEXT_params args = { .texture = texture, .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .format = format, .imageSize = imageSize, .bits = bits, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, format %d, imageSize %d, bits %p\n", texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, bits );
+    if ((status = UNIX_CALL( glCompressedTextureSubImage3DEXT, &args ))) WARN( "glCompressedTextureSubImage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glConservativeRasterParameterfNV( GLenum pname, GLfloat value )
+{
+    struct glConservativeRasterParameterfNV_params args = { .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "pname %d, value %f\n", pname, value );
+    if ((status = UNIX_CALL( glConservativeRasterParameterfNV, &args ))) WARN( "glConservativeRasterParameterfNV returned %#x\n", status );
+}
+
+static void WINAPI glConservativeRasterParameteriNV( GLenum pname, GLint param )
+{
+    struct glConservativeRasterParameteriNV_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glConservativeRasterParameteriNV, &args ))) WARN( "glConservativeRasterParameteriNV returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionFilter1D( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image )
+{
+    struct glConvolutionFilter1D_params args = { .target = target, .internalformat = internalformat, .width = width, .format = format, .type = type, .image = image, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, width %d, format %d, type %d, image %p\n", target, internalformat, width, format, type, image );
+    if ((status = UNIX_CALL( glConvolutionFilter1D, &args ))) WARN( "glConvolutionFilter1D returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionFilter1DEXT( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image )
+{
+    struct glConvolutionFilter1DEXT_params args = { .target = target, .internalformat = internalformat, .width = width, .format = format, .type = type, .image = image, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, width %d, format %d, type %d, image %p\n", target, internalformat, width, format, type, image );
+    if ((status = UNIX_CALL( glConvolutionFilter1DEXT, &args ))) WARN( "glConvolutionFilter1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionFilter2D( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image )
+{
+    struct glConvolutionFilter2D_params args = { .target = target, .internalformat = internalformat, .width = width, .height = height, .format = format, .type = type, .image = image, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, width %d, height %d, format %d, type %d, image %p\n", target, internalformat, width, height, format, type, image );
+    if ((status = UNIX_CALL( glConvolutionFilter2D, &args ))) WARN( "glConvolutionFilter2D returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionFilter2DEXT( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image )
+{
+    struct glConvolutionFilter2DEXT_params args = { .target = target, .internalformat = internalformat, .width = width, .height = height, .format = format, .type = type, .image = image, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, width %d, height %d, format %d, type %d, image %p\n", target, internalformat, width, height, format, type, image );
+    if ((status = UNIX_CALL( glConvolutionFilter2DEXT, &args ))) WARN( "glConvolutionFilter2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionParameterf( GLenum target, GLenum pname, GLfloat params )
+{
+    struct glConvolutionParameterf_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %f\n", target, pname, params );
+    if ((status = UNIX_CALL( glConvolutionParameterf, &args ))) WARN( "glConvolutionParameterf returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionParameterfEXT( GLenum target, GLenum pname, GLfloat params )
+{
+    struct glConvolutionParameterfEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %f\n", target, pname, params );
+    if ((status = UNIX_CALL( glConvolutionParameterfEXT, &args ))) WARN( "glConvolutionParameterfEXT returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionParameterfv( GLenum target, GLenum pname, const GLfloat *params )
+{
+    struct glConvolutionParameterfv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glConvolutionParameterfv, &args ))) WARN( "glConvolutionParameterfv returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionParameterfvEXT( GLenum target, GLenum pname, const GLfloat *params )
+{
+    struct glConvolutionParameterfvEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glConvolutionParameterfvEXT, &args ))) WARN( "glConvolutionParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionParameteri( GLenum target, GLenum pname, GLint params )
+{
+    struct glConvolutionParameteri_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %d\n", target, pname, params );
+    if ((status = UNIX_CALL( glConvolutionParameteri, &args ))) WARN( "glConvolutionParameteri returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionParameteriEXT( GLenum target, GLenum pname, GLint params )
+{
+    struct glConvolutionParameteriEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %d\n", target, pname, params );
+    if ((status = UNIX_CALL( glConvolutionParameteriEXT, &args ))) WARN( "glConvolutionParameteriEXT returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionParameteriv( GLenum target, GLenum pname, const GLint *params )
+{
+    struct glConvolutionParameteriv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glConvolutionParameteriv, &args ))) WARN( "glConvolutionParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionParameterivEXT( GLenum target, GLenum pname, const GLint *params )
+{
+    struct glConvolutionParameterivEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glConvolutionParameterivEXT, &args ))) WARN( "glConvolutionParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionParameterxOES( GLenum target, GLenum pname, GLfixed param )
+{
+    struct glConvolutionParameterxOES_params args = { .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, param %d\n", target, pname, param );
+    if ((status = UNIX_CALL( glConvolutionParameterxOES, &args ))) WARN( "glConvolutionParameterxOES returned %#x\n", status );
+}
+
+static void WINAPI glConvolutionParameterxvOES( GLenum target, GLenum pname, const GLfixed *params )
+{
+    struct glConvolutionParameterxvOES_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glConvolutionParameterxvOES, &args ))) WARN( "glConvolutionParameterxvOES returned %#x\n", status );
+}
+
+static void WINAPI glCopyBufferSubData( GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size )
+{
+    struct glCopyBufferSubData_params args = { .readTarget = readTarget, .writeTarget = writeTarget, .readOffset = readOffset, .writeOffset = writeOffset, .size = size, };
+    NTSTATUS status;
+    TRACE( "readTarget %d, writeTarget %d, readOffset %ld, writeOffset %ld, size %ld\n", readTarget, writeTarget, readOffset, writeOffset, size );
+    if ((status = UNIX_CALL( glCopyBufferSubData, &args ))) WARN( "glCopyBufferSubData returned %#x\n", status );
+}
+
+static void WINAPI glCopyColorSubTable( GLenum target, GLsizei start, GLint x, GLint y, GLsizei width )
+{
+    struct glCopyColorSubTable_params args = { .target = target, .start = start, .x = x, .y = y, .width = width, };
+    NTSTATUS status;
+    TRACE( "target %d, start %d, x %d, y %d, width %d\n", target, start, x, y, width );
+    if ((status = UNIX_CALL( glCopyColorSubTable, &args ))) WARN( "glCopyColorSubTable returned %#x\n", status );
+}
+
+static void WINAPI glCopyColorSubTableEXT( GLenum target, GLsizei start, GLint x, GLint y, GLsizei width )
+{
+    struct glCopyColorSubTableEXT_params args = { .target = target, .start = start, .x = x, .y = y, .width = width, };
+    NTSTATUS status;
+    TRACE( "target %d, start %d, x %d, y %d, width %d\n", target, start, x, y, width );
+    if ((status = UNIX_CALL( glCopyColorSubTableEXT, &args ))) WARN( "glCopyColorSubTableEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyColorTable( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width )
+{
+    struct glCopyColorTable_params args = { .target = target, .internalformat = internalformat, .x = x, .y = y, .width = width, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, x %d, y %d, width %d\n", target, internalformat, x, y, width );
+    if ((status = UNIX_CALL( glCopyColorTable, &args ))) WARN( "glCopyColorTable returned %#x\n", status );
+}
+
+static void WINAPI glCopyColorTableSGI( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width )
+{
+    struct glCopyColorTableSGI_params args = { .target = target, .internalformat = internalformat, .x = x, .y = y, .width = width, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, x %d, y %d, width %d\n", target, internalformat, x, y, width );
+    if ((status = UNIX_CALL( glCopyColorTableSGI, &args ))) WARN( "glCopyColorTableSGI returned %#x\n", status );
+}
+
+static void WINAPI glCopyConvolutionFilter1D( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width )
+{
+    struct glCopyConvolutionFilter1D_params args = { .target = target, .internalformat = internalformat, .x = x, .y = y, .width = width, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, x %d, y %d, width %d\n", target, internalformat, x, y, width );
+    if ((status = UNIX_CALL( glCopyConvolutionFilter1D, &args ))) WARN( "glCopyConvolutionFilter1D returned %#x\n", status );
+}
+
+static void WINAPI glCopyConvolutionFilter1DEXT( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width )
+{
+    struct glCopyConvolutionFilter1DEXT_params args = { .target = target, .internalformat = internalformat, .x = x, .y = y, .width = width, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, x %d, y %d, width %d\n", target, internalformat, x, y, width );
+    if ((status = UNIX_CALL( glCopyConvolutionFilter1DEXT, &args ))) WARN( "glCopyConvolutionFilter1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyConvolutionFilter2D( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glCopyConvolutionFilter2D_params args = { .target = target, .internalformat = internalformat, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, x %d, y %d, width %d, height %d\n", target, internalformat, x, y, width, height );
+    if ((status = UNIX_CALL( glCopyConvolutionFilter2D, &args ))) WARN( "glCopyConvolutionFilter2D returned %#x\n", status );
+}
+
+static void WINAPI glCopyConvolutionFilter2DEXT( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glCopyConvolutionFilter2DEXT_params args = { .target = target, .internalformat = internalformat, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, x %d, y %d, width %d, height %d\n", target, internalformat, x, y, width, height );
+    if ((status = UNIX_CALL( glCopyConvolutionFilter2DEXT, &args ))) WARN( "glCopyConvolutionFilter2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyImageSubData( GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth )
+{
+    struct glCopyImageSubData_params args = { .srcName = srcName, .srcTarget = srcTarget, .srcLevel = srcLevel, .srcX = srcX, .srcY = srcY, .srcZ = srcZ, .dstName = dstName, .dstTarget = dstTarget, .dstLevel = dstLevel, .dstX = dstX, .dstY = dstY, .dstZ = dstZ, .srcWidth = srcWidth, .srcHeight = srcHeight, .srcDepth = srcDepth, };
+    NTSTATUS status;
+    TRACE( "srcName %d, srcTarget %d, srcLevel %d, srcX %d, srcY %d, srcZ %d, dstName %d, dstTarget %d, dstLevel %d, dstX %d, dstY %d, dstZ %d, srcWidth %d, srcHeight %d, srcDepth %d\n", srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth );
+    if ((status = UNIX_CALL( glCopyImageSubData, &args ))) WARN( "glCopyImageSubData returned %#x\n", status );
+}
+
+static void WINAPI glCopyImageSubDataNV( GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth )
+{
+    struct glCopyImageSubDataNV_params args = { .srcName = srcName, .srcTarget = srcTarget, .srcLevel = srcLevel, .srcX = srcX, .srcY = srcY, .srcZ = srcZ, .dstName = dstName, .dstTarget = dstTarget, .dstLevel = dstLevel, .dstX = dstX, .dstY = dstY, .dstZ = dstZ, .width = width, .height = height, .depth = depth, };
+    NTSTATUS status;
+    TRACE( "srcName %d, srcTarget %d, srcLevel %d, srcX %d, srcY %d, srcZ %d, dstName %d, dstTarget %d, dstLevel %d, dstX %d, dstY %d, dstZ %d, width %d, height %d, depth %d\n", srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth );
+    if ((status = UNIX_CALL( glCopyImageSubDataNV, &args ))) WARN( "glCopyImageSubDataNV returned %#x\n", status );
+}
+
+static void WINAPI glCopyMultiTexImage1DEXT( GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border )
+{
+    struct glCopyMultiTexImage1DEXT_params args = { .texunit = texunit, .target = target, .level = level, .internalformat = internalformat, .x = x, .y = y, .width = width, .border = border, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, internalformat %d, x %d, y %d, width %d, border %d\n", texunit, target, level, internalformat, x, y, width, border );
+    if ((status = UNIX_CALL( glCopyMultiTexImage1DEXT, &args ))) WARN( "glCopyMultiTexImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyMultiTexImage2DEXT( GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border )
+{
+    struct glCopyMultiTexImage2DEXT_params args = { .texunit = texunit, .target = target, .level = level, .internalformat = internalformat, .x = x, .y = y, .width = width, .height = height, .border = border, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, internalformat %d, x %d, y %d, width %d, height %d, border %d\n", texunit, target, level, internalformat, x, y, width, height, border );
+    if ((status = UNIX_CALL( glCopyMultiTexImage2DEXT, &args ))) WARN( "glCopyMultiTexImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyMultiTexSubImage1DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width )
+{
+    struct glCopyMultiTexSubImage1DEXT_params args = { .texunit = texunit, .target = target, .level = level, .xoffset = xoffset, .x = x, .y = y, .width = width, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, xoffset %d, x %d, y %d, width %d\n", texunit, target, level, xoffset, x, y, width );
+    if ((status = UNIX_CALL( glCopyMultiTexSubImage1DEXT, &args ))) WARN( "glCopyMultiTexSubImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyMultiTexSubImage2DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glCopyMultiTexSubImage2DEXT_params args = { .texunit = texunit, .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, xoffset %d, yoffset %d, x %d, y %d, width %d, height %d\n", texunit, target, level, xoffset, yoffset, x, y, width, height );
+    if ((status = UNIX_CALL( glCopyMultiTexSubImage2DEXT, &args ))) WARN( "glCopyMultiTexSubImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyMultiTexSubImage3DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glCopyMultiTexSubImage3DEXT_params args = { .texunit = texunit, .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, xoffset %d, yoffset %d, zoffset %d, x %d, y %d, width %d, height %d\n", texunit, target, level, xoffset, yoffset, zoffset, x, y, width, height );
+    if ((status = UNIX_CALL( glCopyMultiTexSubImage3DEXT, &args ))) WARN( "glCopyMultiTexSubImage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyNamedBufferSubData( GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size )
+{
+    struct glCopyNamedBufferSubData_params args = { .readBuffer = readBuffer, .writeBuffer = writeBuffer, .readOffset = readOffset, .writeOffset = writeOffset, .size = size, };
+    NTSTATUS status;
+    TRACE( "readBuffer %d, writeBuffer %d, readOffset %ld, writeOffset %ld, size %ld\n", readBuffer, writeBuffer, readOffset, writeOffset, size );
+    if ((status = UNIX_CALL( glCopyNamedBufferSubData, &args ))) WARN( "glCopyNamedBufferSubData returned %#x\n", status );
+}
+
+static void WINAPI glCopyPathNV( GLuint resultPath, GLuint srcPath )
+{
+    struct glCopyPathNV_params args = { .resultPath = resultPath, .srcPath = srcPath, };
+    NTSTATUS status;
+    TRACE( "resultPath %d, srcPath %d\n", resultPath, srcPath );
+    if ((status = UNIX_CALL( glCopyPathNV, &args ))) WARN( "glCopyPathNV returned %#x\n", status );
+}
+
+static void WINAPI glCopyTexImage1DEXT( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border )
+{
+    struct glCopyTexImage1DEXT_params args = { .target = target, .level = level, .internalformat = internalformat, .x = x, .y = y, .width = width, .border = border, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, internalformat %d, x %d, y %d, width %d, border %d\n", target, level, internalformat, x, y, width, border );
+    if ((status = UNIX_CALL( glCopyTexImage1DEXT, &args ))) WARN( "glCopyTexImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyTexImage2DEXT( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border )
+{
+    struct glCopyTexImage2DEXT_params args = { .target = target, .level = level, .internalformat = internalformat, .x = x, .y = y, .width = width, .height = height, .border = border, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, internalformat %d, x %d, y %d, width %d, height %d, border %d\n", target, level, internalformat, x, y, width, height, border );
+    if ((status = UNIX_CALL( glCopyTexImage2DEXT, &args ))) WARN( "glCopyTexImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyTexSubImage1DEXT( GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width )
+{
+    struct glCopyTexSubImage1DEXT_params args = { .target = target, .level = level, .xoffset = xoffset, .x = x, .y = y, .width = width, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, x %d, y %d, width %d\n", target, level, xoffset, x, y, width );
+    if ((status = UNIX_CALL( glCopyTexSubImage1DEXT, &args ))) WARN( "glCopyTexSubImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyTexSubImage2DEXT( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glCopyTexSubImage2DEXT_params args = { .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, yoffset %d, x %d, y %d, width %d, height %d\n", target, level, xoffset, yoffset, x, y, width, height );
+    if ((status = UNIX_CALL( glCopyTexSubImage2DEXT, &args ))) WARN( "glCopyTexSubImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glCopyTexSubImage3D_params args = { .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, yoffset %d, zoffset %d, x %d, y %d, width %d, height %d\n", target, level, xoffset, yoffset, zoffset, x, y, width, height );
+    if ((status = UNIX_CALL( glCopyTexSubImage3D, &args ))) WARN( "glCopyTexSubImage3D returned %#x\n", status );
+}
+
+static void WINAPI glCopyTexSubImage3DEXT( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glCopyTexSubImage3DEXT_params args = { .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, yoffset %d, zoffset %d, x %d, y %d, width %d, height %d\n", target, level, xoffset, yoffset, zoffset, x, y, width, height );
+    if ((status = UNIX_CALL( glCopyTexSubImage3DEXT, &args ))) WARN( "glCopyTexSubImage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyTextureImage1DEXT( GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border )
+{
+    struct glCopyTextureImage1DEXT_params args = { .texture = texture, .target = target, .level = level, .internalformat = internalformat, .x = x, .y = y, .width = width, .border = border, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, internalformat %d, x %d, y %d, width %d, border %d\n", texture, target, level, internalformat, x, y, width, border );
+    if ((status = UNIX_CALL( glCopyTextureImage1DEXT, &args ))) WARN( "glCopyTextureImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyTextureImage2DEXT( GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border )
+{
+    struct glCopyTextureImage2DEXT_params args = { .texture = texture, .target = target, .level = level, .internalformat = internalformat, .x = x, .y = y, .width = width, .height = height, .border = border, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, internalformat %d, x %d, y %d, width %d, height %d, border %d\n", texture, target, level, internalformat, x, y, width, height, border );
+    if ((status = UNIX_CALL( glCopyTextureImage2DEXT, &args ))) WARN( "glCopyTextureImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyTextureSubImage1D( GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width )
+{
+    struct glCopyTextureSubImage1D_params args = { .texture = texture, .level = level, .xoffset = xoffset, .x = x, .y = y, .width = width, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, x %d, y %d, width %d\n", texture, level, xoffset, x, y, width );
+    if ((status = UNIX_CALL( glCopyTextureSubImage1D, &args ))) WARN( "glCopyTextureSubImage1D returned %#x\n", status );
+}
+
+static void WINAPI glCopyTextureSubImage1DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width )
+{
+    struct glCopyTextureSubImage1DEXT_params args = { .texture = texture, .target = target, .level = level, .xoffset = xoffset, .x = x, .y = y, .width = width, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, xoffset %d, x %d, y %d, width %d\n", texture, target, level, xoffset, x, y, width );
+    if ((status = UNIX_CALL( glCopyTextureSubImage1DEXT, &args ))) WARN( "glCopyTextureSubImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyTextureSubImage2D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glCopyTextureSubImage2D_params args = { .texture = texture, .level = level, .xoffset = xoffset, .yoffset = yoffset, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, yoffset %d, x %d, y %d, width %d, height %d\n", texture, level, xoffset, yoffset, x, y, width, height );
+    if ((status = UNIX_CALL( glCopyTextureSubImage2D, &args ))) WARN( "glCopyTextureSubImage2D returned %#x\n", status );
+}
+
+static void WINAPI glCopyTextureSubImage2DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glCopyTextureSubImage2DEXT_params args = { .texture = texture, .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, xoffset %d, yoffset %d, x %d, y %d, width %d, height %d\n", texture, target, level, xoffset, yoffset, x, y, width, height );
+    if ((status = UNIX_CALL( glCopyTextureSubImage2DEXT, &args ))) WARN( "glCopyTextureSubImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCopyTextureSubImage3D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glCopyTextureSubImage3D_params args = { .texture = texture, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, yoffset %d, zoffset %d, x %d, y %d, width %d, height %d\n", texture, level, xoffset, yoffset, zoffset, x, y, width, height );
+    if ((status = UNIX_CALL( glCopyTextureSubImage3D, &args ))) WARN( "glCopyTextureSubImage3D returned %#x\n", status );
+}
+
+static void WINAPI glCopyTextureSubImage3DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glCopyTextureSubImage3DEXT_params args = { .texture = texture, .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, xoffset %d, yoffset %d, zoffset %d, x %d, y %d, width %d, height %d\n", texture, target, level, xoffset, yoffset, zoffset, x, y, width, height );
+    if ((status = UNIX_CALL( glCopyTextureSubImage3DEXT, &args ))) WARN( "glCopyTextureSubImage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glCoverFillPathInstancedNV( GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues )
+{
+    struct glCoverFillPathInstancedNV_params args = { .numPaths = numPaths, .pathNameType = pathNameType, .paths = paths, .pathBase = pathBase, .coverMode = coverMode, .transformType = transformType, .transformValues = transformValues, };
+    NTSTATUS status;
+    TRACE( "numPaths %d, pathNameType %d, paths %p, pathBase %d, coverMode %d, transformType %d, transformValues %p\n", numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues );
+    if ((status = UNIX_CALL( glCoverFillPathInstancedNV, &args ))) WARN( "glCoverFillPathInstancedNV returned %#x\n", status );
+}
+
+static void WINAPI glCoverFillPathNV( GLuint path, GLenum coverMode )
+{
+    struct glCoverFillPathNV_params args = { .path = path, .coverMode = coverMode, };
+    NTSTATUS status;
+    TRACE( "path %d, coverMode %d\n", path, coverMode );
+    if ((status = UNIX_CALL( glCoverFillPathNV, &args ))) WARN( "glCoverFillPathNV returned %#x\n", status );
+}
+
+static void WINAPI glCoverStrokePathInstancedNV( GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues )
+{
+    struct glCoverStrokePathInstancedNV_params args = { .numPaths = numPaths, .pathNameType = pathNameType, .paths = paths, .pathBase = pathBase, .coverMode = coverMode, .transformType = transformType, .transformValues = transformValues, };
+    NTSTATUS status;
+    TRACE( "numPaths %d, pathNameType %d, paths %p, pathBase %d, coverMode %d, transformType %d, transformValues %p\n", numPaths, pathNameType, paths, pathBase, coverMode, transformType, transformValues );
+    if ((status = UNIX_CALL( glCoverStrokePathInstancedNV, &args ))) WARN( "glCoverStrokePathInstancedNV returned %#x\n", status );
+}
+
+static void WINAPI glCoverStrokePathNV( GLuint path, GLenum coverMode )
+{
+    struct glCoverStrokePathNV_params args = { .path = path, .coverMode = coverMode, };
+    NTSTATUS status;
+    TRACE( "path %d, coverMode %d\n", path, coverMode );
+    if ((status = UNIX_CALL( glCoverStrokePathNV, &args ))) WARN( "glCoverStrokePathNV returned %#x\n", status );
+}
+
+static void WINAPI glCoverageModulationNV( GLenum components )
+{
+    struct glCoverageModulationNV_params args = { .components = components, };
+    NTSTATUS status;
+    TRACE( "components %d\n", components );
+    if ((status = UNIX_CALL( glCoverageModulationNV, &args ))) WARN( "glCoverageModulationNV returned %#x\n", status );
+}
+
+static void WINAPI glCoverageModulationTableNV( GLsizei n, const GLfloat *v )
+{
+    struct glCoverageModulationTableNV_params args = { .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "n %d, v %p\n", n, v );
+    if ((status = UNIX_CALL( glCoverageModulationTableNV, &args ))) WARN( "glCoverageModulationTableNV returned %#x\n", status );
+}
+
+static void WINAPI glCreateBuffers( GLsizei n, GLuint *buffers )
+{
+    struct glCreateBuffers_params args = { .n = n, .buffers = buffers, };
+    NTSTATUS status;
+    TRACE( "n %d, buffers %p\n", n, buffers );
+    if ((status = UNIX_CALL( glCreateBuffers, &args ))) WARN( "glCreateBuffers returned %#x\n", status );
+}
+
+static void WINAPI glCreateCommandListsNV( GLsizei n, GLuint *lists )
+{
+    struct glCreateCommandListsNV_params args = { .n = n, .lists = lists, };
+    NTSTATUS status;
+    TRACE( "n %d, lists %p\n", n, lists );
+    if ((status = UNIX_CALL( glCreateCommandListsNV, &args ))) WARN( "glCreateCommandListsNV returned %#x\n", status );
+}
+
+static void WINAPI glCreateFramebuffers( GLsizei n, GLuint *framebuffers )
+{
+    struct glCreateFramebuffers_params args = { .n = n, .framebuffers = framebuffers, };
+    NTSTATUS status;
+    TRACE( "n %d, framebuffers %p\n", n, framebuffers );
+    if ((status = UNIX_CALL( glCreateFramebuffers, &args ))) WARN( "glCreateFramebuffers returned %#x\n", status );
+}
+
+static void WINAPI glCreateMemoryObjectsEXT( GLsizei n, GLuint *memoryObjects )
+{
+    struct glCreateMemoryObjectsEXT_params args = { .n = n, .memoryObjects = memoryObjects, };
+    NTSTATUS status;
+    TRACE( "n %d, memoryObjects %p\n", n, memoryObjects );
+    if ((status = UNIX_CALL( glCreateMemoryObjectsEXT, &args ))) WARN( "glCreateMemoryObjectsEXT returned %#x\n", status );
+}
+
+static void WINAPI glCreatePerfQueryINTEL( GLuint queryId, GLuint *queryHandle )
+{
+    struct glCreatePerfQueryINTEL_params args = { .queryId = queryId, .queryHandle = queryHandle, };
+    NTSTATUS status;
+    TRACE( "queryId %d, queryHandle %p\n", queryId, queryHandle );
+    if ((status = UNIX_CALL( glCreatePerfQueryINTEL, &args ))) WARN( "glCreatePerfQueryINTEL returned %#x\n", status );
+}
+
+static GLuint WINAPI glCreateProgram(void)
+{
+    struct glCreateProgram_params args = {0};
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glCreateProgram, &args ))) WARN( "glCreateProgram returned %#x\n", status );
+    return args.ret;
+}
+
+static GLhandleARB WINAPI glCreateProgramObjectARB(void)
+{
+    struct glCreateProgramObjectARB_params args = {0};
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glCreateProgramObjectARB, &args ))) WARN( "glCreateProgramObjectARB returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glCreateProgramPipelines( GLsizei n, GLuint *pipelines )
+{
+    struct glCreateProgramPipelines_params args = { .n = n, .pipelines = pipelines, };
+    NTSTATUS status;
+    TRACE( "n %d, pipelines %p\n", n, pipelines );
+    if ((status = UNIX_CALL( glCreateProgramPipelines, &args ))) WARN( "glCreateProgramPipelines returned %#x\n", status );
+}
+
+static GLuint WINAPI glCreateProgressFenceNVX(void)
+{
+    struct glCreateProgressFenceNVX_params args = {0};
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glCreateProgressFenceNVX, &args ))) WARN( "glCreateProgressFenceNVX returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glCreateQueries( GLenum target, GLsizei n, GLuint *ids )
+{
+    struct glCreateQueries_params args = { .target = target, .n = n, .ids = ids, };
+    NTSTATUS status;
+    TRACE( "target %d, n %d, ids %p\n", target, n, ids );
+    if ((status = UNIX_CALL( glCreateQueries, &args ))) WARN( "glCreateQueries returned %#x\n", status );
+}
+
+static void WINAPI glCreateRenderbuffers( GLsizei n, GLuint *renderbuffers )
+{
+    struct glCreateRenderbuffers_params args = { .n = n, .renderbuffers = renderbuffers, };
+    NTSTATUS status;
+    TRACE( "n %d, renderbuffers %p\n", n, renderbuffers );
+    if ((status = UNIX_CALL( glCreateRenderbuffers, &args ))) WARN( "glCreateRenderbuffers returned %#x\n", status );
+}
+
+static void WINAPI glCreateSamplers( GLsizei n, GLuint *samplers )
+{
+    struct glCreateSamplers_params args = { .n = n, .samplers = samplers, };
+    NTSTATUS status;
+    TRACE( "n %d, samplers %p\n", n, samplers );
+    if ((status = UNIX_CALL( glCreateSamplers, &args ))) WARN( "glCreateSamplers returned %#x\n", status );
+}
+
+static GLuint WINAPI glCreateShader( GLenum type )
+{
+    struct glCreateShader_params args = { .type = type, };
+    NTSTATUS status;
+    TRACE( "type %d\n", type );
+    if ((status = UNIX_CALL( glCreateShader, &args ))) WARN( "glCreateShader returned %#x\n", status );
+    return args.ret;
+}
+
+static GLhandleARB WINAPI glCreateShaderObjectARB( GLenum shaderType )
+{
+    struct glCreateShaderObjectARB_params args = { .shaderType = shaderType, };
+    NTSTATUS status;
+    TRACE( "shaderType %d\n", shaderType );
+    if ((status = UNIX_CALL( glCreateShaderObjectARB, &args ))) WARN( "glCreateShaderObjectARB returned %#x\n", status );
+    return args.ret;
+}
+
+static GLuint WINAPI glCreateShaderProgramEXT( GLenum type, const GLchar *string )
+{
+    struct glCreateShaderProgramEXT_params args = { .type = type, .string = string, };
+    NTSTATUS status;
+    TRACE( "type %d, string %p\n", type, string );
+    if ((status = UNIX_CALL( glCreateShaderProgramEXT, &args ))) WARN( "glCreateShaderProgramEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static GLuint WINAPI glCreateShaderProgramv( GLenum type, GLsizei count, const GLchar *const*strings )
+{
+    struct glCreateShaderProgramv_params args = { .type = type, .count = count, .strings = strings, };
+    NTSTATUS status;
+    TRACE( "type %d, count %d, strings %p\n", type, count, strings );
+    if ((status = UNIX_CALL( glCreateShaderProgramv, &args ))) WARN( "glCreateShaderProgramv returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glCreateStatesNV( GLsizei n, GLuint *states )
+{
+    struct glCreateStatesNV_params args = { .n = n, .states = states, };
+    NTSTATUS status;
+    TRACE( "n %d, states %p\n", n, states );
+    if ((status = UNIX_CALL( glCreateStatesNV, &args ))) WARN( "glCreateStatesNV returned %#x\n", status );
+}
+
+static GLsync WINAPI glCreateSyncFromCLeventARB( struct _cl_context *context, struct _cl_event *event, GLbitfield flags )
+{
+    struct glCreateSyncFromCLeventARB_params args = { .context = context, .event = event, .flags = flags, };
+    NTSTATUS status;
+    TRACE( "context %p, event %p, flags %d\n", context, event, flags );
+    if ((status = UNIX_CALL( glCreateSyncFromCLeventARB, &args ))) WARN( "glCreateSyncFromCLeventARB returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glCreateTextures( GLenum target, GLsizei n, GLuint *textures )
+{
+    struct glCreateTextures_params args = { .target = target, .n = n, .textures = textures, };
+    NTSTATUS status;
+    TRACE( "target %d, n %d, textures %p\n", target, n, textures );
+    if ((status = UNIX_CALL( glCreateTextures, &args ))) WARN( "glCreateTextures returned %#x\n", status );
+}
+
+static void WINAPI glCreateTransformFeedbacks( GLsizei n, GLuint *ids )
+{
+    struct glCreateTransformFeedbacks_params args = { .n = n, .ids = ids, };
+    NTSTATUS status;
+    TRACE( "n %d, ids %p\n", n, ids );
+    if ((status = UNIX_CALL( glCreateTransformFeedbacks, &args ))) WARN( "glCreateTransformFeedbacks returned %#x\n", status );
+}
+
+static void WINAPI glCreateVertexArrays( GLsizei n, GLuint *arrays )
+{
+    struct glCreateVertexArrays_params args = { .n = n, .arrays = arrays, };
+    NTSTATUS status;
+    TRACE( "n %d, arrays %p\n", n, arrays );
+    if ((status = UNIX_CALL( glCreateVertexArrays, &args ))) WARN( "glCreateVertexArrays returned %#x\n", status );
+}
+
+static void WINAPI glCullParameterdvEXT( GLenum pname, GLdouble *params )
+{
+    struct glCullParameterdvEXT_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glCullParameterdvEXT, &args ))) WARN( "glCullParameterdvEXT returned %#x\n", status );
+}
+
+static void WINAPI glCullParameterfvEXT( GLenum pname, GLfloat *params )
+{
+    struct glCullParameterfvEXT_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glCullParameterfvEXT, &args ))) WARN( "glCullParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glCurrentPaletteMatrixARB( GLint index )
+{
+    struct glCurrentPaletteMatrixARB_params args = { .index = index, };
+    NTSTATUS status;
+    TRACE( "index %d\n", index );
+    if ((status = UNIX_CALL( glCurrentPaletteMatrixARB, &args ))) WARN( "glCurrentPaletteMatrixARB returned %#x\n", status );
+}
+
+static void WINAPI glDebugMessageControl( GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled )
+{
+    struct glDebugMessageControl_params args = { .source = source, .type = type, .severity = severity, .count = count, .ids = ids, .enabled = enabled, };
+    NTSTATUS status;
+    TRACE( "source %d, type %d, severity %d, count %d, ids %p, enabled %d\n", source, type, severity, count, ids, enabled );
+    if ((status = UNIX_CALL( glDebugMessageControl, &args ))) WARN( "glDebugMessageControl returned %#x\n", status );
+}
+
+static void WINAPI glDebugMessageControlARB( GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled )
+{
+    struct glDebugMessageControlARB_params args = { .source = source, .type = type, .severity = severity, .count = count, .ids = ids, .enabled = enabled, };
+    NTSTATUS status;
+    TRACE( "source %d, type %d, severity %d, count %d, ids %p, enabled %d\n", source, type, severity, count, ids, enabled );
+    if ((status = UNIX_CALL( glDebugMessageControlARB, &args ))) WARN( "glDebugMessageControlARB returned %#x\n", status );
+}
+
+static void WINAPI glDebugMessageEnableAMD( GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled )
+{
+    struct glDebugMessageEnableAMD_params args = { .category = category, .severity = severity, .count = count, .ids = ids, .enabled = enabled, };
+    NTSTATUS status;
+    TRACE( "category %d, severity %d, count %d, ids %p, enabled %d\n", category, severity, count, ids, enabled );
+    if ((status = UNIX_CALL( glDebugMessageEnableAMD, &args ))) WARN( "glDebugMessageEnableAMD returned %#x\n", status );
+}
+
+static void WINAPI glDebugMessageInsert( GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf )
+{
+    struct glDebugMessageInsert_params args = { .source = source, .type = type, .id = id, .severity = severity, .length = length, .buf = buf, };
+    NTSTATUS status;
+    TRACE( "source %d, type %d, id %d, severity %d, length %d, buf %p\n", source, type, id, severity, length, buf );
+    if ((status = UNIX_CALL( glDebugMessageInsert, &args ))) WARN( "glDebugMessageInsert returned %#x\n", status );
+}
+
+static void WINAPI glDebugMessageInsertAMD( GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf )
+{
+    struct glDebugMessageInsertAMD_params args = { .category = category, .severity = severity, .id = id, .length = length, .buf = buf, };
+    NTSTATUS status;
+    TRACE( "category %d, severity %d, id %d, length %d, buf %p\n", category, severity, id, length, buf );
+    if ((status = UNIX_CALL( glDebugMessageInsertAMD, &args ))) WARN( "glDebugMessageInsertAMD returned %#x\n", status );
+}
+
+static void WINAPI glDebugMessageInsertARB( GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf )
+{
+    struct glDebugMessageInsertARB_params args = { .source = source, .type = type, .id = id, .severity = severity, .length = length, .buf = buf, };
+    NTSTATUS status;
+    TRACE( "source %d, type %d, id %d, severity %d, length %d, buf %p\n", source, type, id, severity, length, buf );
+    if ((status = UNIX_CALL( glDebugMessageInsertARB, &args ))) WARN( "glDebugMessageInsertARB returned %#x\n", status );
+}
+
+static void WINAPI glDeformSGIX( GLbitfield mask )
+{
+    struct glDeformSGIX_params args = { .mask = mask, };
+    NTSTATUS status;
+    TRACE( "mask %d\n", mask );
+    if ((status = UNIX_CALL( glDeformSGIX, &args ))) WARN( "glDeformSGIX returned %#x\n", status );
+}
+
+static void WINAPI glDeformationMap3dSGIX( GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points )
+{
+    struct glDeformationMap3dSGIX_params args = { .target = target, .u1 = u1, .u2 = u2, .ustride = ustride, .uorder = uorder, .v1 = v1, .v2 = v2, .vstride = vstride, .vorder = vorder, .w1 = w1, .w2 = w2, .wstride = wstride, .worder = worder, .points = points, };
+    NTSTATUS status;
+    TRACE( "target %d, u1 %f, u2 %f, ustride %d, uorder %d, v1 %f, v2 %f, vstride %d, vorder %d, w1 %f, w2 %f, wstride %d, worder %d, points %p\n", target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points );
+    if ((status = UNIX_CALL( glDeformationMap3dSGIX, &args ))) WARN( "glDeformationMap3dSGIX returned %#x\n", status );
+}
+
+static void WINAPI glDeformationMap3fSGIX( GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points )
+{
+    struct glDeformationMap3fSGIX_params args = { .target = target, .u1 = u1, .u2 = u2, .ustride = ustride, .uorder = uorder, .v1 = v1, .v2 = v2, .vstride = vstride, .vorder = vorder, .w1 = w1, .w2 = w2, .wstride = wstride, .worder = worder, .points = points, };
+    NTSTATUS status;
+    TRACE( "target %d, u1 %f, u2 %f, ustride %d, uorder %d, v1 %f, v2 %f, vstride %d, vorder %d, w1 %f, w2 %f, wstride %d, worder %d, points %p\n", target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points );
+    if ((status = UNIX_CALL( glDeformationMap3fSGIX, &args ))) WARN( "glDeformationMap3fSGIX returned %#x\n", status );
+}
+
+static void WINAPI glDeleteAsyncMarkersSGIX( GLuint marker, GLsizei range )
+{
+    struct glDeleteAsyncMarkersSGIX_params args = { .marker = marker, .range = range, };
+    NTSTATUS status;
+    TRACE( "marker %d, range %d\n", marker, range );
+    if ((status = UNIX_CALL( glDeleteAsyncMarkersSGIX, &args ))) WARN( "glDeleteAsyncMarkersSGIX returned %#x\n", status );
+}
+
+static void WINAPI glDeleteBufferRegion( GLenum region )
+{
+    struct glDeleteBufferRegion_params args = { .region = region, };
+    NTSTATUS status;
+    TRACE( "region %d\n", region );
+    if ((status = UNIX_CALL( glDeleteBufferRegion, &args ))) WARN( "glDeleteBufferRegion returned %#x\n", status );
+}
+
+static void WINAPI glDeleteBuffers( GLsizei n, const GLuint *buffers )
+{
+    struct glDeleteBuffers_params args = { .n = n, .buffers = buffers, };
+    NTSTATUS status;
+    TRACE( "n %d, buffers %p\n", n, buffers );
+    if ((status = UNIX_CALL( glDeleteBuffers, &args ))) WARN( "glDeleteBuffers returned %#x\n", status );
+}
+
+static void WINAPI glDeleteBuffersARB( GLsizei n, const GLuint *buffers )
+{
+    struct glDeleteBuffersARB_params args = { .n = n, .buffers = buffers, };
+    NTSTATUS status;
+    TRACE( "n %d, buffers %p\n", n, buffers );
+    if ((status = UNIX_CALL( glDeleteBuffersARB, &args ))) WARN( "glDeleteBuffersARB returned %#x\n", status );
+}
+
+static void WINAPI glDeleteCommandListsNV( GLsizei n, const GLuint *lists )
+{
+    struct glDeleteCommandListsNV_params args = { .n = n, .lists = lists, };
+    NTSTATUS status;
+    TRACE( "n %d, lists %p\n", n, lists );
+    if ((status = UNIX_CALL( glDeleteCommandListsNV, &args ))) WARN( "glDeleteCommandListsNV returned %#x\n", status );
+}
+
+static void WINAPI glDeleteFencesAPPLE( GLsizei n, const GLuint *fences )
+{
+    struct glDeleteFencesAPPLE_params args = { .n = n, .fences = fences, };
+    NTSTATUS status;
+    TRACE( "n %d, fences %p\n", n, fences );
+    if ((status = UNIX_CALL( glDeleteFencesAPPLE, &args ))) WARN( "glDeleteFencesAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glDeleteFencesNV( GLsizei n, const GLuint *fences )
+{
+    struct glDeleteFencesNV_params args = { .n = n, .fences = fences, };
+    NTSTATUS status;
+    TRACE( "n %d, fences %p\n", n, fences );
+    if ((status = UNIX_CALL( glDeleteFencesNV, &args ))) WARN( "glDeleteFencesNV returned %#x\n", status );
+}
+
+static void WINAPI glDeleteFragmentShaderATI( GLuint id )
+{
+    struct glDeleteFragmentShaderATI_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glDeleteFragmentShaderATI, &args ))) WARN( "glDeleteFragmentShaderATI returned %#x\n", status );
+}
+
+static void WINAPI glDeleteFramebuffers( GLsizei n, const GLuint *framebuffers )
+{
+    struct glDeleteFramebuffers_params args = { .n = n, .framebuffers = framebuffers, };
+    NTSTATUS status;
+    TRACE( "n %d, framebuffers %p\n", n, framebuffers );
+    if ((status = UNIX_CALL( glDeleteFramebuffers, &args ))) WARN( "glDeleteFramebuffers returned %#x\n", status );
+}
+
+static void WINAPI glDeleteFramebuffersEXT( GLsizei n, const GLuint *framebuffers )
+{
+    struct glDeleteFramebuffersEXT_params args = { .n = n, .framebuffers = framebuffers, };
+    NTSTATUS status;
+    TRACE( "n %d, framebuffers %p\n", n, framebuffers );
+    if ((status = UNIX_CALL( glDeleteFramebuffersEXT, &args ))) WARN( "glDeleteFramebuffersEXT returned %#x\n", status );
+}
+
+static void WINAPI glDeleteMemoryObjectsEXT( GLsizei n, const GLuint *memoryObjects )
+{
+    struct glDeleteMemoryObjectsEXT_params args = { .n = n, .memoryObjects = memoryObjects, };
+    NTSTATUS status;
+    TRACE( "n %d, memoryObjects %p\n", n, memoryObjects );
+    if ((status = UNIX_CALL( glDeleteMemoryObjectsEXT, &args ))) WARN( "glDeleteMemoryObjectsEXT returned %#x\n", status );
+}
+
+static void WINAPI glDeleteNamedStringARB( GLint namelen, const GLchar *name )
+{
+    struct glDeleteNamedStringARB_params args = { .namelen = namelen, .name = name, };
+    NTSTATUS status;
+    TRACE( "namelen %d, name %p\n", namelen, name );
+    if ((status = UNIX_CALL( glDeleteNamedStringARB, &args ))) WARN( "glDeleteNamedStringARB returned %#x\n", status );
+}
+
+static void WINAPI glDeleteNamesAMD( GLenum identifier, GLuint num, const GLuint *names )
+{
+    struct glDeleteNamesAMD_params args = { .identifier = identifier, .num = num, .names = names, };
+    NTSTATUS status;
+    TRACE( "identifier %d, num %d, names %p\n", identifier, num, names );
+    if ((status = UNIX_CALL( glDeleteNamesAMD, &args ))) WARN( "glDeleteNamesAMD returned %#x\n", status );
+}
+
+static void WINAPI glDeleteObjectARB( GLhandleARB obj )
+{
+    struct glDeleteObjectARB_params args = { .obj = obj, };
+    NTSTATUS status;
+    TRACE( "obj %d\n", obj );
+    if ((status = UNIX_CALL( glDeleteObjectARB, &args ))) WARN( "glDeleteObjectARB returned %#x\n", status );
+}
+
+static void WINAPI glDeleteObjectBufferATI( GLuint buffer )
+{
+    struct glDeleteObjectBufferATI_params args = { .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "buffer %d\n", buffer );
+    if ((status = UNIX_CALL( glDeleteObjectBufferATI, &args ))) WARN( "glDeleteObjectBufferATI returned %#x\n", status );
+}
+
+static void WINAPI glDeleteOcclusionQueriesNV( GLsizei n, const GLuint *ids )
+{
+    struct glDeleteOcclusionQueriesNV_params args = { .n = n, .ids = ids, };
+    NTSTATUS status;
+    TRACE( "n %d, ids %p\n", n, ids );
+    if ((status = UNIX_CALL( glDeleteOcclusionQueriesNV, &args ))) WARN( "glDeleteOcclusionQueriesNV returned %#x\n", status );
+}
+
+static void WINAPI glDeletePathsNV( GLuint path, GLsizei range )
+{
+    struct glDeletePathsNV_params args = { .path = path, .range = range, };
+    NTSTATUS status;
+    TRACE( "path %d, range %d\n", path, range );
+    if ((status = UNIX_CALL( glDeletePathsNV, &args ))) WARN( "glDeletePathsNV returned %#x\n", status );
+}
+
+static void WINAPI glDeletePerfMonitorsAMD( GLsizei n, GLuint *monitors )
+{
+    struct glDeletePerfMonitorsAMD_params args = { .n = n, .monitors = monitors, };
+    NTSTATUS status;
+    TRACE( "n %d, monitors %p\n", n, monitors );
+    if ((status = UNIX_CALL( glDeletePerfMonitorsAMD, &args ))) WARN( "glDeletePerfMonitorsAMD returned %#x\n", status );
+}
+
+static void WINAPI glDeletePerfQueryINTEL( GLuint queryHandle )
+{
+    struct glDeletePerfQueryINTEL_params args = { .queryHandle = queryHandle, };
+    NTSTATUS status;
+    TRACE( "queryHandle %d\n", queryHandle );
+    if ((status = UNIX_CALL( glDeletePerfQueryINTEL, &args ))) WARN( "glDeletePerfQueryINTEL returned %#x\n", status );
+}
+
+static void WINAPI glDeleteProgram( GLuint program )
+{
+    struct glDeleteProgram_params args = { .program = program, };
+    NTSTATUS status;
+    TRACE( "program %d\n", program );
+    if ((status = UNIX_CALL( glDeleteProgram, &args ))) WARN( "glDeleteProgram returned %#x\n", status );
+}
+
+static void WINAPI glDeleteProgramPipelines( GLsizei n, const GLuint *pipelines )
+{
+    struct glDeleteProgramPipelines_params args = { .n = n, .pipelines = pipelines, };
+    NTSTATUS status;
+    TRACE( "n %d, pipelines %p\n", n, pipelines );
+    if ((status = UNIX_CALL( glDeleteProgramPipelines, &args ))) WARN( "glDeleteProgramPipelines returned %#x\n", status );
+}
+
+static void WINAPI glDeleteProgramsARB( GLsizei n, const GLuint *programs )
+{
+    struct glDeleteProgramsARB_params args = { .n = n, .programs = programs, };
+    NTSTATUS status;
+    TRACE( "n %d, programs %p\n", n, programs );
+    if ((status = UNIX_CALL( glDeleteProgramsARB, &args ))) WARN( "glDeleteProgramsARB returned %#x\n", status );
+}
+
+static void WINAPI glDeleteProgramsNV( GLsizei n, const GLuint *programs )
+{
+    struct glDeleteProgramsNV_params args = { .n = n, .programs = programs, };
+    NTSTATUS status;
+    TRACE( "n %d, programs %p\n", n, programs );
+    if ((status = UNIX_CALL( glDeleteProgramsNV, &args ))) WARN( "glDeleteProgramsNV returned %#x\n", status );
+}
+
+static void WINAPI glDeleteQueries( GLsizei n, const GLuint *ids )
+{
+    struct glDeleteQueries_params args = { .n = n, .ids = ids, };
+    NTSTATUS status;
+    TRACE( "n %d, ids %p\n", n, ids );
+    if ((status = UNIX_CALL( glDeleteQueries, &args ))) WARN( "glDeleteQueries returned %#x\n", status );
+}
+
+static void WINAPI glDeleteQueriesARB( GLsizei n, const GLuint *ids )
+{
+    struct glDeleteQueriesARB_params args = { .n = n, .ids = ids, };
+    NTSTATUS status;
+    TRACE( "n %d, ids %p\n", n, ids );
+    if ((status = UNIX_CALL( glDeleteQueriesARB, &args ))) WARN( "glDeleteQueriesARB returned %#x\n", status );
+}
+
+static void WINAPI glDeleteQueryResourceTagNV( GLsizei n, const GLint *tagIds )
+{
+    struct glDeleteQueryResourceTagNV_params args = { .n = n, .tagIds = tagIds, };
+    NTSTATUS status;
+    TRACE( "n %d, tagIds %p\n", n, tagIds );
+    if ((status = UNIX_CALL( glDeleteQueryResourceTagNV, &args ))) WARN( "glDeleteQueryResourceTagNV returned %#x\n", status );
+}
+
+static void WINAPI glDeleteRenderbuffers( GLsizei n, const GLuint *renderbuffers )
+{
+    struct glDeleteRenderbuffers_params args = { .n = n, .renderbuffers = renderbuffers, };
+    NTSTATUS status;
+    TRACE( "n %d, renderbuffers %p\n", n, renderbuffers );
+    if ((status = UNIX_CALL( glDeleteRenderbuffers, &args ))) WARN( "glDeleteRenderbuffers returned %#x\n", status );
+}
+
+static void WINAPI glDeleteRenderbuffersEXT( GLsizei n, const GLuint *renderbuffers )
+{
+    struct glDeleteRenderbuffersEXT_params args = { .n = n, .renderbuffers = renderbuffers, };
+    NTSTATUS status;
+    TRACE( "n %d, renderbuffers %p\n", n, renderbuffers );
+    if ((status = UNIX_CALL( glDeleteRenderbuffersEXT, &args ))) WARN( "glDeleteRenderbuffersEXT returned %#x\n", status );
+}
+
+static void WINAPI glDeleteSamplers( GLsizei count, const GLuint *samplers )
+{
+    struct glDeleteSamplers_params args = { .count = count, .samplers = samplers, };
+    NTSTATUS status;
+    TRACE( "count %d, samplers %p\n", count, samplers );
+    if ((status = UNIX_CALL( glDeleteSamplers, &args ))) WARN( "glDeleteSamplers returned %#x\n", status );
+}
+
+static void WINAPI glDeleteSemaphoresEXT( GLsizei n, const GLuint *semaphores )
+{
+    struct glDeleteSemaphoresEXT_params args = { .n = n, .semaphores = semaphores, };
+    NTSTATUS status;
+    TRACE( "n %d, semaphores %p\n", n, semaphores );
+    if ((status = UNIX_CALL( glDeleteSemaphoresEXT, &args ))) WARN( "glDeleteSemaphoresEXT returned %#x\n", status );
+}
+
+static void WINAPI glDeleteShader( GLuint shader )
+{
+    struct glDeleteShader_params args = { .shader = shader, };
+    NTSTATUS status;
+    TRACE( "shader %d\n", shader );
+    if ((status = UNIX_CALL( glDeleteShader, &args ))) WARN( "glDeleteShader returned %#x\n", status );
+}
+
+static void WINAPI glDeleteStatesNV( GLsizei n, const GLuint *states )
+{
+    struct glDeleteStatesNV_params args = { .n = n, .states = states, };
+    NTSTATUS status;
+    TRACE( "n %d, states %p\n", n, states );
+    if ((status = UNIX_CALL( glDeleteStatesNV, &args ))) WARN( "glDeleteStatesNV returned %#x\n", status );
+}
+
+static void WINAPI glDeleteSync( GLsync sync )
+{
+    struct glDeleteSync_params args = { .sync = sync, };
+    NTSTATUS status;
+    TRACE( "sync %p\n", sync );
+    if ((status = UNIX_CALL( glDeleteSync, &args ))) WARN( "glDeleteSync returned %#x\n", status );
+}
+
+static void WINAPI glDeleteTexturesEXT( GLsizei n, const GLuint *textures )
+{
+    struct glDeleteTexturesEXT_params args = { .n = n, .textures = textures, };
+    NTSTATUS status;
+    TRACE( "n %d, textures %p\n", n, textures );
+    if ((status = UNIX_CALL( glDeleteTexturesEXT, &args ))) WARN( "glDeleteTexturesEXT returned %#x\n", status );
+}
+
+static void WINAPI glDeleteTransformFeedbacks( GLsizei n, const GLuint *ids )
+{
+    struct glDeleteTransformFeedbacks_params args = { .n = n, .ids = ids, };
+    NTSTATUS status;
+    TRACE( "n %d, ids %p\n", n, ids );
+    if ((status = UNIX_CALL( glDeleteTransformFeedbacks, &args ))) WARN( "glDeleteTransformFeedbacks returned %#x\n", status );
+}
+
+static void WINAPI glDeleteTransformFeedbacksNV( GLsizei n, const GLuint *ids )
+{
+    struct glDeleteTransformFeedbacksNV_params args = { .n = n, .ids = ids, };
+    NTSTATUS status;
+    TRACE( "n %d, ids %p\n", n, ids );
+    if ((status = UNIX_CALL( glDeleteTransformFeedbacksNV, &args ))) WARN( "glDeleteTransformFeedbacksNV returned %#x\n", status );
+}
+
+static void WINAPI glDeleteVertexArrays( GLsizei n, const GLuint *arrays )
+{
+    struct glDeleteVertexArrays_params args = { .n = n, .arrays = arrays, };
+    NTSTATUS status;
+    TRACE( "n %d, arrays %p\n", n, arrays );
+    if ((status = UNIX_CALL( glDeleteVertexArrays, &args ))) WARN( "glDeleteVertexArrays returned %#x\n", status );
+}
+
+static void WINAPI glDeleteVertexArraysAPPLE( GLsizei n, const GLuint *arrays )
+{
+    struct glDeleteVertexArraysAPPLE_params args = { .n = n, .arrays = arrays, };
+    NTSTATUS status;
+    TRACE( "n %d, arrays %p\n", n, arrays );
+    if ((status = UNIX_CALL( glDeleteVertexArraysAPPLE, &args ))) WARN( "glDeleteVertexArraysAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glDeleteVertexShaderEXT( GLuint id )
+{
+    struct glDeleteVertexShaderEXT_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glDeleteVertexShaderEXT, &args ))) WARN( "glDeleteVertexShaderEXT returned %#x\n", status );
+}
+
+static void WINAPI glDepthBoundsEXT( GLclampd zmin, GLclampd zmax )
+{
+    struct glDepthBoundsEXT_params args = { .zmin = zmin, .zmax = zmax, };
+    NTSTATUS status;
+    TRACE( "zmin %f, zmax %f\n", zmin, zmax );
+    if ((status = UNIX_CALL( glDepthBoundsEXT, &args ))) WARN( "glDepthBoundsEXT returned %#x\n", status );
+}
+
+static void WINAPI glDepthBoundsdNV( GLdouble zmin, GLdouble zmax )
+{
+    struct glDepthBoundsdNV_params args = { .zmin = zmin, .zmax = zmax, };
+    NTSTATUS status;
+    TRACE( "zmin %f, zmax %f\n", zmin, zmax );
+    if ((status = UNIX_CALL( glDepthBoundsdNV, &args ))) WARN( "glDepthBoundsdNV returned %#x\n", status );
+}
+
+static void WINAPI glDepthRangeArraydvNV( GLuint first, GLsizei count, const GLdouble *v )
+{
+    struct glDepthRangeArraydvNV_params args = { .first = first, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "first %d, count %d, v %p\n", first, count, v );
+    if ((status = UNIX_CALL( glDepthRangeArraydvNV, &args ))) WARN( "glDepthRangeArraydvNV returned %#x\n", status );
+}
+
+static void WINAPI glDepthRangeArrayv( GLuint first, GLsizei count, const GLdouble *v )
+{
+    struct glDepthRangeArrayv_params args = { .first = first, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "first %d, count %d, v %p\n", first, count, v );
+    if ((status = UNIX_CALL( glDepthRangeArrayv, &args ))) WARN( "glDepthRangeArrayv returned %#x\n", status );
+}
+
+static void WINAPI glDepthRangeIndexed( GLuint index, GLdouble n, GLdouble f )
+{
+    struct glDepthRangeIndexed_params args = { .index = index, .n = n, .f = f, };
+    NTSTATUS status;
+    TRACE( "index %d, n %f, f %f\n", index, n, f );
+    if ((status = UNIX_CALL( glDepthRangeIndexed, &args ))) WARN( "glDepthRangeIndexed returned %#x\n", status );
+}
+
+static void WINAPI glDepthRangeIndexeddNV( GLuint index, GLdouble n, GLdouble f )
+{
+    struct glDepthRangeIndexeddNV_params args = { .index = index, .n = n, .f = f, };
+    NTSTATUS status;
+    TRACE( "index %d, n %f, f %f\n", index, n, f );
+    if ((status = UNIX_CALL( glDepthRangeIndexeddNV, &args ))) WARN( "glDepthRangeIndexeddNV returned %#x\n", status );
+}
+
+static void WINAPI glDepthRangedNV( GLdouble zNear, GLdouble zFar )
+{
+    struct glDepthRangedNV_params args = { .zNear = zNear, .zFar = zFar, };
+    NTSTATUS status;
+    TRACE( "zNear %f, zFar %f\n", zNear, zFar );
+    if ((status = UNIX_CALL( glDepthRangedNV, &args ))) WARN( "glDepthRangedNV returned %#x\n", status );
+}
+
+static void WINAPI glDepthRangef( GLfloat n, GLfloat f )
+{
+    struct glDepthRangef_params args = { .n = n, .f = f, };
+    NTSTATUS status;
+    TRACE( "n %f, f %f\n", n, f );
+    if ((status = UNIX_CALL( glDepthRangef, &args ))) WARN( "glDepthRangef returned %#x\n", status );
+}
+
+static void WINAPI glDepthRangefOES( GLclampf n, GLclampf f )
+{
+    struct glDepthRangefOES_params args = { .n = n, .f = f, };
+    NTSTATUS status;
+    TRACE( "n %f, f %f\n", n, f );
+    if ((status = UNIX_CALL( glDepthRangefOES, &args ))) WARN( "glDepthRangefOES returned %#x\n", status );
+}
+
+static void WINAPI glDepthRangexOES( GLfixed n, GLfixed f )
+{
+    struct glDepthRangexOES_params args = { .n = n, .f = f, };
+    NTSTATUS status;
+    TRACE( "n %d, f %d\n", n, f );
+    if ((status = UNIX_CALL( glDepthRangexOES, &args ))) WARN( "glDepthRangexOES returned %#x\n", status );
+}
+
+static void WINAPI glDetachObjectARB( GLhandleARB containerObj, GLhandleARB attachedObj )
+{
+    struct glDetachObjectARB_params args = { .containerObj = containerObj, .attachedObj = attachedObj, };
+    NTSTATUS status;
+    TRACE( "containerObj %d, attachedObj %d\n", containerObj, attachedObj );
+    if ((status = UNIX_CALL( glDetachObjectARB, &args ))) WARN( "glDetachObjectARB returned %#x\n", status );
+}
+
+static void WINAPI glDetachShader( GLuint program, GLuint shader )
+{
+    struct glDetachShader_params args = { .program = program, .shader = shader, };
+    NTSTATUS status;
+    TRACE( "program %d, shader %d\n", program, shader );
+    if ((status = UNIX_CALL( glDetachShader, &args ))) WARN( "glDetachShader returned %#x\n", status );
+}
+
+static void WINAPI glDetailTexFuncSGIS( GLenum target, GLsizei n, const GLfloat *points )
+{
+    struct glDetailTexFuncSGIS_params args = { .target = target, .n = n, .points = points, };
+    NTSTATUS status;
+    TRACE( "target %d, n %d, points %p\n", target, n, points );
+    if ((status = UNIX_CALL( glDetailTexFuncSGIS, &args ))) WARN( "glDetailTexFuncSGIS returned %#x\n", status );
+}
+
+static void WINAPI glDisableClientStateIndexedEXT( GLenum array, GLuint index )
+{
+    struct glDisableClientStateIndexedEXT_params args = { .array = array, .index = index, };
+    NTSTATUS status;
+    TRACE( "array %d, index %d\n", array, index );
+    if ((status = UNIX_CALL( glDisableClientStateIndexedEXT, &args ))) WARN( "glDisableClientStateIndexedEXT returned %#x\n", status );
+}
+
+static void WINAPI glDisableClientStateiEXT( GLenum array, GLuint index )
+{
+    struct glDisableClientStateiEXT_params args = { .array = array, .index = index, };
+    NTSTATUS status;
+    TRACE( "array %d, index %d\n", array, index );
+    if ((status = UNIX_CALL( glDisableClientStateiEXT, &args ))) WARN( "glDisableClientStateiEXT returned %#x\n", status );
+}
+
+static void WINAPI glDisableIndexedEXT( GLenum target, GLuint index )
+{
+    struct glDisableIndexedEXT_params args = { .target = target, .index = index, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d\n", target, index );
+    if ((status = UNIX_CALL( glDisableIndexedEXT, &args ))) WARN( "glDisableIndexedEXT returned %#x\n", status );
+}
+
+static void WINAPI glDisableVariantClientStateEXT( GLuint id )
+{
+    struct glDisableVariantClientStateEXT_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glDisableVariantClientStateEXT, &args ))) WARN( "glDisableVariantClientStateEXT returned %#x\n", status );
+}
+
+static void WINAPI glDisableVertexArrayAttrib( GLuint vaobj, GLuint index )
+{
+    struct glDisableVertexArrayAttrib_params args = { .vaobj = vaobj, .index = index, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, index %d\n", vaobj, index );
+    if ((status = UNIX_CALL( glDisableVertexArrayAttrib, &args ))) WARN( "glDisableVertexArrayAttrib returned %#x\n", status );
+}
+
+static void WINAPI glDisableVertexArrayAttribEXT( GLuint vaobj, GLuint index )
+{
+    struct glDisableVertexArrayAttribEXT_params args = { .vaobj = vaobj, .index = index, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, index %d\n", vaobj, index );
+    if ((status = UNIX_CALL( glDisableVertexArrayAttribEXT, &args ))) WARN( "glDisableVertexArrayAttribEXT returned %#x\n", status );
+}
+
+static void WINAPI glDisableVertexArrayEXT( GLuint vaobj, GLenum array )
+{
+    struct glDisableVertexArrayEXT_params args = { .vaobj = vaobj, .array = array, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, array %d\n", vaobj, array );
+    if ((status = UNIX_CALL( glDisableVertexArrayEXT, &args ))) WARN( "glDisableVertexArrayEXT returned %#x\n", status );
+}
+
+static void WINAPI glDisableVertexAttribAPPLE( GLuint index, GLenum pname )
+{
+    struct glDisableVertexAttribAPPLE_params args = { .index = index, .pname = pname, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d\n", index, pname );
+    if ((status = UNIX_CALL( glDisableVertexAttribAPPLE, &args ))) WARN( "glDisableVertexAttribAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glDisableVertexAttribArray( GLuint index )
+{
+    struct glDisableVertexAttribArray_params args = { .index = index, };
+    NTSTATUS status;
+    TRACE( "index %d\n", index );
+    if ((status = UNIX_CALL( glDisableVertexAttribArray, &args ))) WARN( "glDisableVertexAttribArray returned %#x\n", status );
+}
+
+static void WINAPI glDisableVertexAttribArrayARB( GLuint index )
+{
+    struct glDisableVertexAttribArrayARB_params args = { .index = index, };
+    NTSTATUS status;
+    TRACE( "index %d\n", index );
+    if ((status = UNIX_CALL( glDisableVertexAttribArrayARB, &args ))) WARN( "glDisableVertexAttribArrayARB returned %#x\n", status );
+}
+
+static void WINAPI glDisablei( GLenum target, GLuint index )
+{
+    struct glDisablei_params args = { .target = target, .index = index, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d\n", target, index );
+    if ((status = UNIX_CALL( glDisablei, &args ))) WARN( "glDisablei returned %#x\n", status );
+}
+
+static void WINAPI glDispatchCompute( GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z )
+{
+    struct glDispatchCompute_params args = { .num_groups_x = num_groups_x, .num_groups_y = num_groups_y, .num_groups_z = num_groups_z, };
+    NTSTATUS status;
+    TRACE( "num_groups_x %d, num_groups_y %d, num_groups_z %d\n", num_groups_x, num_groups_y, num_groups_z );
+    if ((status = UNIX_CALL( glDispatchCompute, &args ))) WARN( "glDispatchCompute returned %#x\n", status );
+}
+
+static void WINAPI glDispatchComputeGroupSizeARB( GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z )
+{
+    struct glDispatchComputeGroupSizeARB_params args = { .num_groups_x = num_groups_x, .num_groups_y = num_groups_y, .num_groups_z = num_groups_z, .group_size_x = group_size_x, .group_size_y = group_size_y, .group_size_z = group_size_z, };
+    NTSTATUS status;
+    TRACE( "num_groups_x %d, num_groups_y %d, num_groups_z %d, group_size_x %d, group_size_y %d, group_size_z %d\n", num_groups_x, num_groups_y, num_groups_z, group_size_x, group_size_y, group_size_z );
+    if ((status = UNIX_CALL( glDispatchComputeGroupSizeARB, &args ))) WARN( "glDispatchComputeGroupSizeARB returned %#x\n", status );
+}
+
+static void WINAPI glDispatchComputeIndirect( GLintptr indirect )
+{
+    struct glDispatchComputeIndirect_params args = { .indirect = indirect, };
+    NTSTATUS status;
+    TRACE( "indirect %ld\n", indirect );
+    if ((status = UNIX_CALL( glDispatchComputeIndirect, &args ))) WARN( "glDispatchComputeIndirect returned %#x\n", status );
+}
+
+static void WINAPI glDrawArraysEXT( GLenum mode, GLint first, GLsizei count )
+{
+    struct glDrawArraysEXT_params args = { .mode = mode, .first = first, .count = count, };
+    NTSTATUS status;
+    TRACE( "mode %d, first %d, count %d\n", mode, first, count );
+    if ((status = UNIX_CALL( glDrawArraysEXT, &args ))) WARN( "glDrawArraysEXT returned %#x\n", status );
+}
+
+static void WINAPI glDrawArraysIndirect( GLenum mode, const void *indirect )
+{
+    struct glDrawArraysIndirect_params args = { .mode = mode, .indirect = indirect, };
+    NTSTATUS status;
+    TRACE( "mode %d, indirect %p\n", mode, indirect );
+    if ((status = UNIX_CALL( glDrawArraysIndirect, &args ))) WARN( "glDrawArraysIndirect returned %#x\n", status );
+}
+
+static void WINAPI glDrawArraysInstanced( GLenum mode, GLint first, GLsizei count, GLsizei instancecount )
+{
+    struct glDrawArraysInstanced_params args = { .mode = mode, .first = first, .count = count, .instancecount = instancecount, };
+    NTSTATUS status;
+    TRACE( "mode %d, first %d, count %d, instancecount %d\n", mode, first, count, instancecount );
+    if ((status = UNIX_CALL( glDrawArraysInstanced, &args ))) WARN( "glDrawArraysInstanced returned %#x\n", status );
+}
+
+static void WINAPI glDrawArraysInstancedARB( GLenum mode, GLint first, GLsizei count, GLsizei primcount )
+{
+    struct glDrawArraysInstancedARB_params args = { .mode = mode, .first = first, .count = count, .primcount = primcount, };
+    NTSTATUS status;
+    TRACE( "mode %d, first %d, count %d, primcount %d\n", mode, first, count, primcount );
+    if ((status = UNIX_CALL( glDrawArraysInstancedARB, &args ))) WARN( "glDrawArraysInstancedARB returned %#x\n", status );
+}
+
+static void WINAPI glDrawArraysInstancedBaseInstance( GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance )
+{
+    struct glDrawArraysInstancedBaseInstance_params args = { .mode = mode, .first = first, .count = count, .instancecount = instancecount, .baseinstance = baseinstance, };
+    NTSTATUS status;
+    TRACE( "mode %d, first %d, count %d, instancecount %d, baseinstance %d\n", mode, first, count, instancecount, baseinstance );
+    if ((status = UNIX_CALL( glDrawArraysInstancedBaseInstance, &args ))) WARN( "glDrawArraysInstancedBaseInstance returned %#x\n", status );
+}
+
+static void WINAPI glDrawArraysInstancedEXT( GLenum mode, GLint start, GLsizei count, GLsizei primcount )
+{
+    struct glDrawArraysInstancedEXT_params args = { .mode = mode, .start = start, .count = count, .primcount = primcount, };
+    NTSTATUS status;
+    TRACE( "mode %d, start %d, count %d, primcount %d\n", mode, start, count, primcount );
+    if ((status = UNIX_CALL( glDrawArraysInstancedEXT, &args ))) WARN( "glDrawArraysInstancedEXT returned %#x\n", status );
+}
+
+static void WINAPI glDrawBufferRegion( GLenum region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest )
+{
+    struct glDrawBufferRegion_params args = { .region = region, .x = x, .y = y, .width = width, .height = height, .xDest = xDest, .yDest = yDest, };
+    NTSTATUS status;
+    TRACE( "region %d, x %d, y %d, width %d, height %d, xDest %d, yDest %d\n", region, x, y, width, height, xDest, yDest );
+    if ((status = UNIX_CALL( glDrawBufferRegion, &args ))) WARN( "glDrawBufferRegion returned %#x\n", status );
+}
+
+static void WINAPI glDrawBuffers( GLsizei n, const GLenum *bufs )
+{
+    struct glDrawBuffers_params args = { .n = n, .bufs = bufs, };
+    NTSTATUS status;
+    TRACE( "n %d, bufs %p\n", n, bufs );
+    if ((status = UNIX_CALL( glDrawBuffers, &args ))) WARN( "glDrawBuffers returned %#x\n", status );
+}
+
+static void WINAPI glDrawBuffersARB( GLsizei n, const GLenum *bufs )
+{
+    struct glDrawBuffersARB_params args = { .n = n, .bufs = bufs, };
+    NTSTATUS status;
+    TRACE( "n %d, bufs %p\n", n, bufs );
+    if ((status = UNIX_CALL( glDrawBuffersARB, &args ))) WARN( "glDrawBuffersARB returned %#x\n", status );
+}
+
+static void WINAPI glDrawBuffersATI( GLsizei n, const GLenum *bufs )
+{
+    struct glDrawBuffersATI_params args = { .n = n, .bufs = bufs, };
+    NTSTATUS status;
+    TRACE( "n %d, bufs %p\n", n, bufs );
+    if ((status = UNIX_CALL( glDrawBuffersATI, &args ))) WARN( "glDrawBuffersATI returned %#x\n", status );
+}
+
+static void WINAPI glDrawCommandsAddressNV( GLenum primitiveMode, const GLuint64 *indirects, const GLsizei *sizes, GLuint count )
+{
+    struct glDrawCommandsAddressNV_params args = { .primitiveMode = primitiveMode, .indirects = indirects, .sizes = sizes, .count = count, };
+    NTSTATUS status;
+    TRACE( "primitiveMode %d, indirects %p, sizes %p, count %d\n", primitiveMode, indirects, sizes, count );
+    if ((status = UNIX_CALL( glDrawCommandsAddressNV, &args ))) WARN( "glDrawCommandsAddressNV returned %#x\n", status );
+}
+
+static void WINAPI glDrawCommandsNV( GLenum primitiveMode, GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, GLuint count )
+{
+    struct glDrawCommandsNV_params args = { .primitiveMode = primitiveMode, .buffer = buffer, .indirects = indirects, .sizes = sizes, .count = count, };
+    NTSTATUS status;
+    TRACE( "primitiveMode %d, buffer %d, indirects %p, sizes %p, count %d\n", primitiveMode, buffer, indirects, sizes, count );
+    if ((status = UNIX_CALL( glDrawCommandsNV, &args ))) WARN( "glDrawCommandsNV returned %#x\n", status );
+}
+
+static void WINAPI glDrawCommandsStatesAddressNV( const GLuint64 *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count )
+{
+    struct glDrawCommandsStatesAddressNV_params args = { .indirects = indirects, .sizes = sizes, .states = states, .fbos = fbos, .count = count, };
+    NTSTATUS status;
+    TRACE( "indirects %p, sizes %p, states %p, fbos %p, count %d\n", indirects, sizes, states, fbos, count );
+    if ((status = UNIX_CALL( glDrawCommandsStatesAddressNV, &args ))) WARN( "glDrawCommandsStatesAddressNV returned %#x\n", status );
+}
+
+static void WINAPI glDrawCommandsStatesNV( GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count )
+{
+    struct glDrawCommandsStatesNV_params args = { .buffer = buffer, .indirects = indirects, .sizes = sizes, .states = states, .fbos = fbos, .count = count, };
+    NTSTATUS status;
+    TRACE( "buffer %d, indirects %p, sizes %p, states %p, fbos %p, count %d\n", buffer, indirects, sizes, states, fbos, count );
+    if ((status = UNIX_CALL( glDrawCommandsStatesNV, &args ))) WARN( "glDrawCommandsStatesNV returned %#x\n", status );
+}
+
+static void WINAPI glDrawElementArrayAPPLE( GLenum mode, GLint first, GLsizei count )
+{
+    struct glDrawElementArrayAPPLE_params args = { .mode = mode, .first = first, .count = count, };
+    NTSTATUS status;
+    TRACE( "mode %d, first %d, count %d\n", mode, first, count );
+    if ((status = UNIX_CALL( glDrawElementArrayAPPLE, &args ))) WARN( "glDrawElementArrayAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glDrawElementArrayATI( GLenum mode, GLsizei count )
+{
+    struct glDrawElementArrayATI_params args = { .mode = mode, .count = count, };
+    NTSTATUS status;
+    TRACE( "mode %d, count %d\n", mode, count );
+    if ((status = UNIX_CALL( glDrawElementArrayATI, &args ))) WARN( "glDrawElementArrayATI returned %#x\n", status );
+}
+
+static void WINAPI glDrawElementsBaseVertex( GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex )
+{
+    struct glDrawElementsBaseVertex_params args = { .mode = mode, .count = count, .type = type, .indices = indices, .basevertex = basevertex, };
+    NTSTATUS status;
+    TRACE( "mode %d, count %d, type %d, indices %p, basevertex %d\n", mode, count, type, indices, basevertex );
+    if ((status = UNIX_CALL( glDrawElementsBaseVertex, &args ))) WARN( "glDrawElementsBaseVertex returned %#x\n", status );
+}
+
+static void WINAPI glDrawElementsIndirect( GLenum mode, GLenum type, const void *indirect )
+{
+    struct glDrawElementsIndirect_params args = { .mode = mode, .type = type, .indirect = indirect, };
+    NTSTATUS status;
+    TRACE( "mode %d, type %d, indirect %p\n", mode, type, indirect );
+    if ((status = UNIX_CALL( glDrawElementsIndirect, &args ))) WARN( "glDrawElementsIndirect returned %#x\n", status );
+}
+
+static void WINAPI glDrawElementsInstanced( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount )
+{
+    struct glDrawElementsInstanced_params args = { .mode = mode, .count = count, .type = type, .indices = indices, .instancecount = instancecount, };
+    NTSTATUS status;
+    TRACE( "mode %d, count %d, type %d, indices %p, instancecount %d\n", mode, count, type, indices, instancecount );
+    if ((status = UNIX_CALL( glDrawElementsInstanced, &args ))) WARN( "glDrawElementsInstanced returned %#x\n", status );
+}
+
+static void WINAPI glDrawElementsInstancedARB( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount )
+{
+    struct glDrawElementsInstancedARB_params args = { .mode = mode, .count = count, .type = type, .indices = indices, .primcount = primcount, };
+    NTSTATUS status;
+    TRACE( "mode %d, count %d, type %d, indices %p, primcount %d\n", mode, count, type, indices, primcount );
+    if ((status = UNIX_CALL( glDrawElementsInstancedARB, &args ))) WARN( "glDrawElementsInstancedARB returned %#x\n", status );
+}
+
+static void WINAPI glDrawElementsInstancedBaseInstance( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance )
+{
+    struct glDrawElementsInstancedBaseInstance_params args = { .mode = mode, .count = count, .type = type, .indices = indices, .instancecount = instancecount, .baseinstance = baseinstance, };
+    NTSTATUS status;
+    TRACE( "mode %d, count %d, type %d, indices %p, instancecount %d, baseinstance %d\n", mode, count, type, indices, instancecount, baseinstance );
+    if ((status = UNIX_CALL( glDrawElementsInstancedBaseInstance, &args ))) WARN( "glDrawElementsInstancedBaseInstance returned %#x\n", status );
+}
+
+static void WINAPI glDrawElementsInstancedBaseVertex( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex )
+{
+    struct glDrawElementsInstancedBaseVertex_params args = { .mode = mode, .count = count, .type = type, .indices = indices, .instancecount = instancecount, .basevertex = basevertex, };
+    NTSTATUS status;
+    TRACE( "mode %d, count %d, type %d, indices %p, instancecount %d, basevertex %d\n", mode, count, type, indices, instancecount, basevertex );
+    if ((status = UNIX_CALL( glDrawElementsInstancedBaseVertex, &args ))) WARN( "glDrawElementsInstancedBaseVertex returned %#x\n", status );
+}
+
+static void WINAPI glDrawElementsInstancedBaseVertexBaseInstance( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance )
+{
+    struct glDrawElementsInstancedBaseVertexBaseInstance_params args = { .mode = mode, .count = count, .type = type, .indices = indices, .instancecount = instancecount, .basevertex = basevertex, .baseinstance = baseinstance, };
+    NTSTATUS status;
+    TRACE( "mode %d, count %d, type %d, indices %p, instancecount %d, basevertex %d, baseinstance %d\n", mode, count, type, indices, instancecount, basevertex, baseinstance );
+    if ((status = UNIX_CALL( glDrawElementsInstancedBaseVertexBaseInstance, &args ))) WARN( "glDrawElementsInstancedBaseVertexBaseInstance returned %#x\n", status );
+}
+
+static void WINAPI glDrawElementsInstancedEXT( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount )
+{
+    struct glDrawElementsInstancedEXT_params args = { .mode = mode, .count = count, .type = type, .indices = indices, .primcount = primcount, };
+    NTSTATUS status;
+    TRACE( "mode %d, count %d, type %d, indices %p, primcount %d\n", mode, count, type, indices, primcount );
+    if ((status = UNIX_CALL( glDrawElementsInstancedEXT, &args ))) WARN( "glDrawElementsInstancedEXT returned %#x\n", status );
+}
+
+static void WINAPI glDrawMeshArraysSUN( GLenum mode, GLint first, GLsizei count, GLsizei width )
+{
+    struct glDrawMeshArraysSUN_params args = { .mode = mode, .first = first, .count = count, .width = width, };
+    NTSTATUS status;
+    TRACE( "mode %d, first %d, count %d, width %d\n", mode, first, count, width );
+    if ((status = UNIX_CALL( glDrawMeshArraysSUN, &args ))) WARN( "glDrawMeshArraysSUN returned %#x\n", status );
+}
+
+static void WINAPI glDrawMeshTasksIndirectNV( GLintptr indirect )
+{
+    struct glDrawMeshTasksIndirectNV_params args = { .indirect = indirect, };
+    NTSTATUS status;
+    TRACE( "indirect %ld\n", indirect );
+    if ((status = UNIX_CALL( glDrawMeshTasksIndirectNV, &args ))) WARN( "glDrawMeshTasksIndirectNV returned %#x\n", status );
+}
+
+static void WINAPI glDrawMeshTasksNV( GLuint first, GLuint count )
+{
+    struct glDrawMeshTasksNV_params args = { .first = first, .count = count, };
+    NTSTATUS status;
+    TRACE( "first %d, count %d\n", first, count );
+    if ((status = UNIX_CALL( glDrawMeshTasksNV, &args ))) WARN( "glDrawMeshTasksNV returned %#x\n", status );
+}
+
+static void WINAPI glDrawRangeElementArrayAPPLE( GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count )
+{
+    struct glDrawRangeElementArrayAPPLE_params args = { .mode = mode, .start = start, .end = end, .first = first, .count = count, };
+    NTSTATUS status;
+    TRACE( "mode %d, start %d, end %d, first %d, count %d\n", mode, start, end, first, count );
+    if ((status = UNIX_CALL( glDrawRangeElementArrayAPPLE, &args ))) WARN( "glDrawRangeElementArrayAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glDrawRangeElementArrayATI( GLenum mode, GLuint start, GLuint end, GLsizei count )
+{
+    struct glDrawRangeElementArrayATI_params args = { .mode = mode, .start = start, .end = end, .count = count, };
+    NTSTATUS status;
+    TRACE( "mode %d, start %d, end %d, count %d\n", mode, start, end, count );
+    if ((status = UNIX_CALL( glDrawRangeElementArrayATI, &args ))) WARN( "glDrawRangeElementArrayATI returned %#x\n", status );
+}
+
+static void WINAPI glDrawRangeElements( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices )
+{
+    struct glDrawRangeElements_params args = { .mode = mode, .start = start, .end = end, .count = count, .type = type, .indices = indices, };
+    NTSTATUS status;
+    TRACE( "mode %d, start %d, end %d, count %d, type %d, indices %p\n", mode, start, end, count, type, indices );
+    if ((status = UNIX_CALL( glDrawRangeElements, &args ))) WARN( "glDrawRangeElements returned %#x\n", status );
+}
+
+static void WINAPI glDrawRangeElementsBaseVertex( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex )
+{
+    struct glDrawRangeElementsBaseVertex_params args = { .mode = mode, .start = start, .end = end, .count = count, .type = type, .indices = indices, .basevertex = basevertex, };
+    NTSTATUS status;
+    TRACE( "mode %d, start %d, end %d, count %d, type %d, indices %p, basevertex %d\n", mode, start, end, count, type, indices, basevertex );
+    if ((status = UNIX_CALL( glDrawRangeElementsBaseVertex, &args ))) WARN( "glDrawRangeElementsBaseVertex returned %#x\n", status );
+}
+
+static void WINAPI glDrawRangeElementsEXT( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices )
+{
+    struct glDrawRangeElementsEXT_params args = { .mode = mode, .start = start, .end = end, .count = count, .type = type, .indices = indices, };
+    NTSTATUS status;
+    TRACE( "mode %d, start %d, end %d, count %d, type %d, indices %p\n", mode, start, end, count, type, indices );
+    if ((status = UNIX_CALL( glDrawRangeElementsEXT, &args ))) WARN( "glDrawRangeElementsEXT returned %#x\n", status );
+}
+
+static void WINAPI glDrawTextureNV( GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1 )
+{
+    struct glDrawTextureNV_params args = { .texture = texture, .sampler = sampler, .x0 = x0, .y0 = y0, .x1 = x1, .y1 = y1, .z = z, .s0 = s0, .t0 = t0, .s1 = s1, .t1 = t1, };
+    NTSTATUS status;
+    TRACE( "texture %d, sampler %d, x0 %f, y0 %f, x1 %f, y1 %f, z %f, s0 %f, t0 %f, s1 %f, t1 %f\n", texture, sampler, x0, y0, x1, y1, z, s0, t0, s1, t1 );
+    if ((status = UNIX_CALL( glDrawTextureNV, &args ))) WARN( "glDrawTextureNV returned %#x\n", status );
+}
+
+static void WINAPI glDrawTransformFeedback( GLenum mode, GLuint id )
+{
+    struct glDrawTransformFeedback_params args = { .mode = mode, .id = id, };
+    NTSTATUS status;
+    TRACE( "mode %d, id %d\n", mode, id );
+    if ((status = UNIX_CALL( glDrawTransformFeedback, &args ))) WARN( "glDrawTransformFeedback returned %#x\n", status );
+}
+
+static void WINAPI glDrawTransformFeedbackInstanced( GLenum mode, GLuint id, GLsizei instancecount )
+{
+    struct glDrawTransformFeedbackInstanced_params args = { .mode = mode, .id = id, .instancecount = instancecount, };
+    NTSTATUS status;
+    TRACE( "mode %d, id %d, instancecount %d\n", mode, id, instancecount );
+    if ((status = UNIX_CALL( glDrawTransformFeedbackInstanced, &args ))) WARN( "glDrawTransformFeedbackInstanced returned %#x\n", status );
+}
+
+static void WINAPI glDrawTransformFeedbackNV( GLenum mode, GLuint id )
+{
+    struct glDrawTransformFeedbackNV_params args = { .mode = mode, .id = id, };
+    NTSTATUS status;
+    TRACE( "mode %d, id %d\n", mode, id );
+    if ((status = UNIX_CALL( glDrawTransformFeedbackNV, &args ))) WARN( "glDrawTransformFeedbackNV returned %#x\n", status );
+}
+
+static void WINAPI glDrawTransformFeedbackStream( GLenum mode, GLuint id, GLuint stream )
+{
+    struct glDrawTransformFeedbackStream_params args = { .mode = mode, .id = id, .stream = stream, };
+    NTSTATUS status;
+    TRACE( "mode %d, id %d, stream %d\n", mode, id, stream );
+    if ((status = UNIX_CALL( glDrawTransformFeedbackStream, &args ))) WARN( "glDrawTransformFeedbackStream returned %#x\n", status );
+}
+
+static void WINAPI glDrawTransformFeedbackStreamInstanced( GLenum mode, GLuint id, GLuint stream, GLsizei instancecount )
+{
+    struct glDrawTransformFeedbackStreamInstanced_params args = { .mode = mode, .id = id, .stream = stream, .instancecount = instancecount, };
+    NTSTATUS status;
+    TRACE( "mode %d, id %d, stream %d, instancecount %d\n", mode, id, stream, instancecount );
+    if ((status = UNIX_CALL( glDrawTransformFeedbackStreamInstanced, &args ))) WARN( "glDrawTransformFeedbackStreamInstanced returned %#x\n", status );
+}
+
+static void WINAPI glDrawVkImageNV( GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1 )
+{
+    struct glDrawVkImageNV_params args = { .vkImage = vkImage, .sampler = sampler, .x0 = x0, .y0 = y0, .x1 = x1, .y1 = y1, .z = z, .s0 = s0, .t0 = t0, .s1 = s1, .t1 = t1, };
+    NTSTATUS status;
+    TRACE( "vkImage %s, sampler %d, x0 %f, y0 %f, x1 %f, y1 %f, z %f, s0 %f, t0 %f, s1 %f, t1 %f\n", wine_dbgstr_longlong(vkImage), sampler, x0, y0, x1, y1, z, s0, t0, s1, t1 );
+    if ((status = UNIX_CALL( glDrawVkImageNV, &args ))) WARN( "glDrawVkImageNV returned %#x\n", status );
+}
+
+static void WINAPI glEGLImageTargetTexStorageEXT( GLenum target, GLeglImageOES image, const GLint* attrib_list )
+{
+    struct glEGLImageTargetTexStorageEXT_params args = { .target = target, .image = image, .attrib_list = attrib_list, };
+    NTSTATUS status;
+    TRACE( "target %d, image %p, attrib_list %p\n", target, image, attrib_list );
+    if ((status = UNIX_CALL( glEGLImageTargetTexStorageEXT, &args ))) WARN( "glEGLImageTargetTexStorageEXT returned %#x\n", status );
+}
+
+static void WINAPI glEGLImageTargetTextureStorageEXT( GLuint texture, GLeglImageOES image, const GLint* attrib_list )
+{
+    struct glEGLImageTargetTextureStorageEXT_params args = { .texture = texture, .image = image, .attrib_list = attrib_list, };
+    NTSTATUS status;
+    TRACE( "texture %d, image %p, attrib_list %p\n", texture, image, attrib_list );
+    if ((status = UNIX_CALL( glEGLImageTargetTextureStorageEXT, &args ))) WARN( "glEGLImageTargetTextureStorageEXT returned %#x\n", status );
+}
+
+static void WINAPI glEdgeFlagFormatNV( GLsizei stride )
+{
+    struct glEdgeFlagFormatNV_params args = { .stride = stride, };
+    NTSTATUS status;
+    TRACE( "stride %d\n", stride );
+    if ((status = UNIX_CALL( glEdgeFlagFormatNV, &args ))) WARN( "glEdgeFlagFormatNV returned %#x\n", status );
+}
+
+static void WINAPI glEdgeFlagPointerEXT( GLsizei stride, GLsizei count, const GLboolean *pointer )
+{
+    struct glEdgeFlagPointerEXT_params args = { .stride = stride, .count = count, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "stride %d, count %d, pointer %p\n", stride, count, pointer );
+    if ((status = UNIX_CALL( glEdgeFlagPointerEXT, &args ))) WARN( "glEdgeFlagPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glEdgeFlagPointerListIBM( GLint stride, const GLboolean **pointer, GLint ptrstride )
+{
+    struct glEdgeFlagPointerListIBM_params args = { .stride = stride, .pointer = pointer, .ptrstride = ptrstride, };
+    NTSTATUS status;
+    TRACE( "stride %d, pointer %p, ptrstride %d\n", stride, pointer, ptrstride );
+    if ((status = UNIX_CALL( glEdgeFlagPointerListIBM, &args ))) WARN( "glEdgeFlagPointerListIBM returned %#x\n", status );
+}
+
+static void WINAPI glElementPointerAPPLE( GLenum type, const void *pointer )
+{
+    struct glElementPointerAPPLE_params args = { .type = type, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "type %d, pointer %p\n", type, pointer );
+    if ((status = UNIX_CALL( glElementPointerAPPLE, &args ))) WARN( "glElementPointerAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glElementPointerATI( GLenum type, const void *pointer )
+{
+    struct glElementPointerATI_params args = { .type = type, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "type %d, pointer %p\n", type, pointer );
+    if ((status = UNIX_CALL( glElementPointerATI, &args ))) WARN( "glElementPointerATI returned %#x\n", status );
+}
+
+static void WINAPI glEnableClientStateIndexedEXT( GLenum array, GLuint index )
+{
+    struct glEnableClientStateIndexedEXT_params args = { .array = array, .index = index, };
+    NTSTATUS status;
+    TRACE( "array %d, index %d\n", array, index );
+    if ((status = UNIX_CALL( glEnableClientStateIndexedEXT, &args ))) WARN( "glEnableClientStateIndexedEXT returned %#x\n", status );
+}
+
+static void WINAPI glEnableClientStateiEXT( GLenum array, GLuint index )
+{
+    struct glEnableClientStateiEXT_params args = { .array = array, .index = index, };
+    NTSTATUS status;
+    TRACE( "array %d, index %d\n", array, index );
+    if ((status = UNIX_CALL( glEnableClientStateiEXT, &args ))) WARN( "glEnableClientStateiEXT returned %#x\n", status );
+}
+
+static void WINAPI glEnableIndexedEXT( GLenum target, GLuint index )
+{
+    struct glEnableIndexedEXT_params args = { .target = target, .index = index, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d\n", target, index );
+    if ((status = UNIX_CALL( glEnableIndexedEXT, &args ))) WARN( "glEnableIndexedEXT returned %#x\n", status );
+}
+
+static void WINAPI glEnableVariantClientStateEXT( GLuint id )
+{
+    struct glEnableVariantClientStateEXT_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glEnableVariantClientStateEXT, &args ))) WARN( "glEnableVariantClientStateEXT returned %#x\n", status );
+}
+
+static void WINAPI glEnableVertexArrayAttrib( GLuint vaobj, GLuint index )
+{
+    struct glEnableVertexArrayAttrib_params args = { .vaobj = vaobj, .index = index, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, index %d\n", vaobj, index );
+    if ((status = UNIX_CALL( glEnableVertexArrayAttrib, &args ))) WARN( "glEnableVertexArrayAttrib returned %#x\n", status );
+}
+
+static void WINAPI glEnableVertexArrayAttribEXT( GLuint vaobj, GLuint index )
+{
+    struct glEnableVertexArrayAttribEXT_params args = { .vaobj = vaobj, .index = index, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, index %d\n", vaobj, index );
+    if ((status = UNIX_CALL( glEnableVertexArrayAttribEXT, &args ))) WARN( "glEnableVertexArrayAttribEXT returned %#x\n", status );
+}
+
+static void WINAPI glEnableVertexArrayEXT( GLuint vaobj, GLenum array )
+{
+    struct glEnableVertexArrayEXT_params args = { .vaobj = vaobj, .array = array, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, array %d\n", vaobj, array );
+    if ((status = UNIX_CALL( glEnableVertexArrayEXT, &args ))) WARN( "glEnableVertexArrayEXT returned %#x\n", status );
+}
+
+static void WINAPI glEnableVertexAttribAPPLE( GLuint index, GLenum pname )
+{
+    struct glEnableVertexAttribAPPLE_params args = { .index = index, .pname = pname, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d\n", index, pname );
+    if ((status = UNIX_CALL( glEnableVertexAttribAPPLE, &args ))) WARN( "glEnableVertexAttribAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glEnableVertexAttribArray( GLuint index )
+{
+    struct glEnableVertexAttribArray_params args = { .index = index, };
+    NTSTATUS status;
+    TRACE( "index %d\n", index );
+    if ((status = UNIX_CALL( glEnableVertexAttribArray, &args ))) WARN( "glEnableVertexAttribArray returned %#x\n", status );
+}
+
+static void WINAPI glEnableVertexAttribArrayARB( GLuint index )
+{
+    struct glEnableVertexAttribArrayARB_params args = { .index = index, };
+    NTSTATUS status;
+    TRACE( "index %d\n", index );
+    if ((status = UNIX_CALL( glEnableVertexAttribArrayARB, &args ))) WARN( "glEnableVertexAttribArrayARB returned %#x\n", status );
+}
+
+static void WINAPI glEnablei( GLenum target, GLuint index )
+{
+    struct glEnablei_params args = { .target = target, .index = index, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d\n", target, index );
+    if ((status = UNIX_CALL( glEnablei, &args ))) WARN( "glEnablei returned %#x\n", status );
+}
+
+static void WINAPI glEndConditionalRender(void)
+{
+    struct glEndConditionalRender_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glEndConditionalRender, &args ))) WARN( "glEndConditionalRender returned %#x\n", status );
+}
+
+static void WINAPI glEndConditionalRenderNV(void)
+{
+    struct glEndConditionalRenderNV_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glEndConditionalRenderNV, &args ))) WARN( "glEndConditionalRenderNV returned %#x\n", status );
+}
+
+static void WINAPI glEndConditionalRenderNVX(void)
+{
+    struct glEndConditionalRenderNVX_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glEndConditionalRenderNVX, &args ))) WARN( "glEndConditionalRenderNVX returned %#x\n", status );
+}
+
+static void WINAPI glEndFragmentShaderATI(void)
+{
+    struct glEndFragmentShaderATI_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glEndFragmentShaderATI, &args ))) WARN( "glEndFragmentShaderATI returned %#x\n", status );
+}
+
+static void WINAPI glEndOcclusionQueryNV(void)
+{
+    struct glEndOcclusionQueryNV_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glEndOcclusionQueryNV, &args ))) WARN( "glEndOcclusionQueryNV returned %#x\n", status );
+}
+
+static void WINAPI glEndPerfMonitorAMD( GLuint monitor )
+{
+    struct glEndPerfMonitorAMD_params args = { .monitor = monitor, };
+    NTSTATUS status;
+    TRACE( "monitor %d\n", monitor );
+    if ((status = UNIX_CALL( glEndPerfMonitorAMD, &args ))) WARN( "glEndPerfMonitorAMD returned %#x\n", status );
+}
+
+static void WINAPI glEndPerfQueryINTEL( GLuint queryHandle )
+{
+    struct glEndPerfQueryINTEL_params args = { .queryHandle = queryHandle, };
+    NTSTATUS status;
+    TRACE( "queryHandle %d\n", queryHandle );
+    if ((status = UNIX_CALL( glEndPerfQueryINTEL, &args ))) WARN( "glEndPerfQueryINTEL returned %#x\n", status );
+}
+
+static void WINAPI glEndQuery( GLenum target )
+{
+    struct glEndQuery_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glEndQuery, &args ))) WARN( "glEndQuery returned %#x\n", status );
+}
+
+static void WINAPI glEndQueryARB( GLenum target )
+{
+    struct glEndQueryARB_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glEndQueryARB, &args ))) WARN( "glEndQueryARB returned %#x\n", status );
+}
+
+static void WINAPI glEndQueryIndexed( GLenum target, GLuint index )
+{
+    struct glEndQueryIndexed_params args = { .target = target, .index = index, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d\n", target, index );
+    if ((status = UNIX_CALL( glEndQueryIndexed, &args ))) WARN( "glEndQueryIndexed returned %#x\n", status );
+}
+
+static void WINAPI glEndTransformFeedback(void)
+{
+    struct glEndTransformFeedback_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glEndTransformFeedback, &args ))) WARN( "glEndTransformFeedback returned %#x\n", status );
+}
+
+static void WINAPI glEndTransformFeedbackEXT(void)
+{
+    struct glEndTransformFeedbackEXT_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glEndTransformFeedbackEXT, &args ))) WARN( "glEndTransformFeedbackEXT returned %#x\n", status );
+}
+
+static void WINAPI glEndTransformFeedbackNV(void)
+{
+    struct glEndTransformFeedbackNV_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glEndTransformFeedbackNV, &args ))) WARN( "glEndTransformFeedbackNV returned %#x\n", status );
+}
+
+static void WINAPI glEndVertexShaderEXT(void)
+{
+    struct glEndVertexShaderEXT_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glEndVertexShaderEXT, &args ))) WARN( "glEndVertexShaderEXT returned %#x\n", status );
+}
+
+static void WINAPI glEndVideoCaptureNV( GLuint video_capture_slot )
+{
+    struct glEndVideoCaptureNV_params args = { .video_capture_slot = video_capture_slot, };
+    NTSTATUS status;
+    TRACE( "video_capture_slot %d\n", video_capture_slot );
+    if ((status = UNIX_CALL( glEndVideoCaptureNV, &args ))) WARN( "glEndVideoCaptureNV returned %#x\n", status );
+}
+
+static void WINAPI glEvalCoord1xOES( GLfixed u )
+{
+    struct glEvalCoord1xOES_params args = { .u = u, };
+    NTSTATUS status;
+    TRACE( "u %d\n", u );
+    if ((status = UNIX_CALL( glEvalCoord1xOES, &args ))) WARN( "glEvalCoord1xOES returned %#x\n", status );
+}
+
+static void WINAPI glEvalCoord1xvOES( const GLfixed *coords )
+{
+    struct glEvalCoord1xvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glEvalCoord1xvOES, &args ))) WARN( "glEvalCoord1xvOES returned %#x\n", status );
+}
+
+static void WINAPI glEvalCoord2xOES( GLfixed u, GLfixed v )
+{
+    struct glEvalCoord2xOES_params args = { .u = u, .v = v, };
+    NTSTATUS status;
+    TRACE( "u %d, v %d\n", u, v );
+    if ((status = UNIX_CALL( glEvalCoord2xOES, &args ))) WARN( "glEvalCoord2xOES returned %#x\n", status );
+}
+
+static void WINAPI glEvalCoord2xvOES( const GLfixed *coords )
+{
+    struct glEvalCoord2xvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glEvalCoord2xvOES, &args ))) WARN( "glEvalCoord2xvOES returned %#x\n", status );
+}
+
+static void WINAPI glEvalMapsNV( GLenum target, GLenum mode )
+{
+    struct glEvalMapsNV_params args = { .target = target, .mode = mode, };
+    NTSTATUS status;
+    TRACE( "target %d, mode %d\n", target, mode );
+    if ((status = UNIX_CALL( glEvalMapsNV, &args ))) WARN( "glEvalMapsNV returned %#x\n", status );
+}
+
+static void WINAPI glEvaluateDepthValuesARB(void)
+{
+    struct glEvaluateDepthValuesARB_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glEvaluateDepthValuesARB, &args ))) WARN( "glEvaluateDepthValuesARB returned %#x\n", status );
+}
+
+static void WINAPI glExecuteProgramNV( GLenum target, GLuint id, const GLfloat *params )
+{
+    struct glExecuteProgramNV_params args = { .target = target, .id = id, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, id %d, params %p\n", target, id, params );
+    if ((status = UNIX_CALL( glExecuteProgramNV, &args ))) WARN( "glExecuteProgramNV returned %#x\n", status );
+}
+
+static void WINAPI glExtractComponentEXT( GLuint res, GLuint src, GLuint num )
+{
+    struct glExtractComponentEXT_params args = { .res = res, .src = src, .num = num, };
+    NTSTATUS status;
+    TRACE( "res %d, src %d, num %d\n", res, src, num );
+    if ((status = UNIX_CALL( glExtractComponentEXT, &args ))) WARN( "glExtractComponentEXT returned %#x\n", status );
+}
+
+static void WINAPI glFeedbackBufferxOES( GLsizei n, GLenum type, const GLfixed *buffer )
+{
+    struct glFeedbackBufferxOES_params args = { .n = n, .type = type, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "n %d, type %d, buffer %p\n", n, type, buffer );
+    if ((status = UNIX_CALL( glFeedbackBufferxOES, &args ))) WARN( "glFeedbackBufferxOES returned %#x\n", status );
+}
+
+static GLsync WINAPI glFenceSync( GLenum condition, GLbitfield flags )
+{
+    struct glFenceSync_params args = { .condition = condition, .flags = flags, };
+    NTSTATUS status;
+    TRACE( "condition %d, flags %d\n", condition, flags );
+    if ((status = UNIX_CALL( glFenceSync, &args ))) WARN( "glFenceSync returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glFinalCombinerInputNV( GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage )
+{
+    struct glFinalCombinerInputNV_params args = { .variable = variable, .input = input, .mapping = mapping, .componentUsage = componentUsage, };
+    NTSTATUS status;
+    TRACE( "variable %d, input %d, mapping %d, componentUsage %d\n", variable, input, mapping, componentUsage );
+    if ((status = UNIX_CALL( glFinalCombinerInputNV, &args ))) WARN( "glFinalCombinerInputNV returned %#x\n", status );
+}
+
+static GLint WINAPI glFinishAsyncSGIX( GLuint *markerp )
+{
+    struct glFinishAsyncSGIX_params args = { .markerp = markerp, };
+    NTSTATUS status;
+    TRACE( "markerp %p\n", markerp );
+    if ((status = UNIX_CALL( glFinishAsyncSGIX, &args ))) WARN( "glFinishAsyncSGIX returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glFinishFenceAPPLE( GLuint fence )
+{
+    struct glFinishFenceAPPLE_params args = { .fence = fence, };
+    NTSTATUS status;
+    TRACE( "fence %d\n", fence );
+    if ((status = UNIX_CALL( glFinishFenceAPPLE, &args ))) WARN( "glFinishFenceAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glFinishFenceNV( GLuint fence )
+{
+    struct glFinishFenceNV_params args = { .fence = fence, };
+    NTSTATUS status;
+    TRACE( "fence %d\n", fence );
+    if ((status = UNIX_CALL( glFinishFenceNV, &args ))) WARN( "glFinishFenceNV returned %#x\n", status );
+}
+
+static void WINAPI glFinishObjectAPPLE( GLenum object, GLint name )
+{
+    struct glFinishObjectAPPLE_params args = { .object = object, .name = name, };
+    NTSTATUS status;
+    TRACE( "object %d, name %d\n", object, name );
+    if ((status = UNIX_CALL( glFinishObjectAPPLE, &args ))) WARN( "glFinishObjectAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glFinishTextureSUNX(void)
+{
+    struct glFinishTextureSUNX_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glFinishTextureSUNX, &args ))) WARN( "glFinishTextureSUNX returned %#x\n", status );
+}
+
+static void WINAPI glFlushMappedBufferRange( GLenum target, GLintptr offset, GLsizeiptr length )
+{
+    struct glFlushMappedBufferRange_params args = { .target = target, .offset = offset, .length = length, };
+    NTSTATUS status;
+    TRACE( "target %d, offset %ld, length %ld\n", target, offset, length );
+    if ((status = UNIX_CALL( glFlushMappedBufferRange, &args ))) WARN( "glFlushMappedBufferRange returned %#x\n", status );
+}
+
+static void WINAPI glFlushMappedBufferRangeAPPLE( GLenum target, GLintptr offset, GLsizeiptr size )
+{
+    struct glFlushMappedBufferRangeAPPLE_params args = { .target = target, .offset = offset, .size = size, };
+    NTSTATUS status;
+    TRACE( "target %d, offset %ld, size %ld\n", target, offset, size );
+    if ((status = UNIX_CALL( glFlushMappedBufferRangeAPPLE, &args ))) WARN( "glFlushMappedBufferRangeAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glFlushMappedNamedBufferRange( GLuint buffer, GLintptr offset, GLsizeiptr length )
+{
+    struct glFlushMappedNamedBufferRange_params args = { .buffer = buffer, .offset = offset, .length = length, };
+    NTSTATUS status;
+    TRACE( "buffer %d, offset %ld, length %ld\n", buffer, offset, length );
+    if ((status = UNIX_CALL( glFlushMappedNamedBufferRange, &args ))) WARN( "glFlushMappedNamedBufferRange returned %#x\n", status );
+}
+
+static void WINAPI glFlushMappedNamedBufferRangeEXT( GLuint buffer, GLintptr offset, GLsizeiptr length )
+{
+    struct glFlushMappedNamedBufferRangeEXT_params args = { .buffer = buffer, .offset = offset, .length = length, };
+    NTSTATUS status;
+    TRACE( "buffer %d, offset %ld, length %ld\n", buffer, offset, length );
+    if ((status = UNIX_CALL( glFlushMappedNamedBufferRangeEXT, &args ))) WARN( "glFlushMappedNamedBufferRangeEXT returned %#x\n", status );
+}
+
+static void WINAPI glFlushPixelDataRangeNV( GLenum target )
+{
+    struct glFlushPixelDataRangeNV_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glFlushPixelDataRangeNV, &args ))) WARN( "glFlushPixelDataRangeNV returned %#x\n", status );
+}
+
+static void WINAPI glFlushRasterSGIX(void)
+{
+    struct glFlushRasterSGIX_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glFlushRasterSGIX, &args ))) WARN( "glFlushRasterSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFlushStaticDataIBM( GLenum target )
+{
+    struct glFlushStaticDataIBM_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glFlushStaticDataIBM, &args ))) WARN( "glFlushStaticDataIBM returned %#x\n", status );
+}
+
+static void WINAPI glFlushVertexArrayRangeAPPLE( GLsizei length, void *pointer )
+{
+    struct glFlushVertexArrayRangeAPPLE_params args = { .length = length, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "length %d, pointer %p\n", length, pointer );
+    if ((status = UNIX_CALL( glFlushVertexArrayRangeAPPLE, &args ))) WARN( "glFlushVertexArrayRangeAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glFlushVertexArrayRangeNV(void)
+{
+    struct glFlushVertexArrayRangeNV_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glFlushVertexArrayRangeNV, &args ))) WARN( "glFlushVertexArrayRangeNV returned %#x\n", status );
+}
+
+static void WINAPI glFogCoordFormatNV( GLenum type, GLsizei stride )
+{
+    struct glFogCoordFormatNV_params args = { .type = type, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "type %d, stride %d\n", type, stride );
+    if ((status = UNIX_CALL( glFogCoordFormatNV, &args ))) WARN( "glFogCoordFormatNV returned %#x\n", status );
+}
+
+static void WINAPI glFogCoordPointer( GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glFogCoordPointer_params args = { .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "type %d, stride %d, pointer %p\n", type, stride, pointer );
+    if ((status = UNIX_CALL( glFogCoordPointer, &args ))) WARN( "glFogCoordPointer returned %#x\n", status );
+}
+
+static void WINAPI glFogCoordPointerEXT( GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glFogCoordPointerEXT_params args = { .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "type %d, stride %d, pointer %p\n", type, stride, pointer );
+    if ((status = UNIX_CALL( glFogCoordPointerEXT, &args ))) WARN( "glFogCoordPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glFogCoordPointerListIBM( GLenum type, GLint stride, const void **pointer, GLint ptrstride )
+{
+    struct glFogCoordPointerListIBM_params args = { .type = type, .stride = stride, .pointer = pointer, .ptrstride = ptrstride, };
+    NTSTATUS status;
+    TRACE( "type %d, stride %d, pointer %p, ptrstride %d\n", type, stride, pointer, ptrstride );
+    if ((status = UNIX_CALL( glFogCoordPointerListIBM, &args ))) WARN( "glFogCoordPointerListIBM returned %#x\n", status );
+}
+
+static void WINAPI glFogCoordd( GLdouble coord )
+{
+    struct glFogCoordd_params args = { .coord = coord, };
+    NTSTATUS status;
+    TRACE( "coord %f\n", coord );
+    if ((status = UNIX_CALL( glFogCoordd, &args ))) WARN( "glFogCoordd returned %#x\n", status );
+}
+
+static void WINAPI glFogCoorddEXT( GLdouble coord )
+{
+    struct glFogCoorddEXT_params args = { .coord = coord, };
+    NTSTATUS status;
+    TRACE( "coord %f\n", coord );
+    if ((status = UNIX_CALL( glFogCoorddEXT, &args ))) WARN( "glFogCoorddEXT returned %#x\n", status );
+}
+
+static void WINAPI glFogCoorddv( const GLdouble *coord )
+{
+    struct glFogCoorddv_params args = { .coord = coord, };
+    NTSTATUS status;
+    TRACE( "coord %p\n", coord );
+    if ((status = UNIX_CALL( glFogCoorddv, &args ))) WARN( "glFogCoorddv returned %#x\n", status );
+}
+
+static void WINAPI glFogCoorddvEXT( const GLdouble *coord )
+{
+    struct glFogCoorddvEXT_params args = { .coord = coord, };
+    NTSTATUS status;
+    TRACE( "coord %p\n", coord );
+    if ((status = UNIX_CALL( glFogCoorddvEXT, &args ))) WARN( "glFogCoorddvEXT returned %#x\n", status );
+}
+
+static void WINAPI glFogCoordf( GLfloat coord )
+{
+    struct glFogCoordf_params args = { .coord = coord, };
+    NTSTATUS status;
+    TRACE( "coord %f\n", coord );
+    if ((status = UNIX_CALL( glFogCoordf, &args ))) WARN( "glFogCoordf returned %#x\n", status );
+}
+
+static void WINAPI glFogCoordfEXT( GLfloat coord )
+{
+    struct glFogCoordfEXT_params args = { .coord = coord, };
+    NTSTATUS status;
+    TRACE( "coord %f\n", coord );
+    if ((status = UNIX_CALL( glFogCoordfEXT, &args ))) WARN( "glFogCoordfEXT returned %#x\n", status );
+}
+
+static void WINAPI glFogCoordfv( const GLfloat *coord )
+{
+    struct glFogCoordfv_params args = { .coord = coord, };
+    NTSTATUS status;
+    TRACE( "coord %p\n", coord );
+    if ((status = UNIX_CALL( glFogCoordfv, &args ))) WARN( "glFogCoordfv returned %#x\n", status );
+}
+
+static void WINAPI glFogCoordfvEXT( const GLfloat *coord )
+{
+    struct glFogCoordfvEXT_params args = { .coord = coord, };
+    NTSTATUS status;
+    TRACE( "coord %p\n", coord );
+    if ((status = UNIX_CALL( glFogCoordfvEXT, &args ))) WARN( "glFogCoordfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glFogCoordhNV( GLhalfNV fog )
+{
+    struct glFogCoordhNV_params args = { .fog = fog, };
+    NTSTATUS status;
+    TRACE( "fog %d\n", fog );
+    if ((status = UNIX_CALL( glFogCoordhNV, &args ))) WARN( "glFogCoordhNV returned %#x\n", status );
+}
+
+static void WINAPI glFogCoordhvNV( const GLhalfNV *fog )
+{
+    struct glFogCoordhvNV_params args = { .fog = fog, };
+    NTSTATUS status;
+    TRACE( "fog %p\n", fog );
+    if ((status = UNIX_CALL( glFogCoordhvNV, &args ))) WARN( "glFogCoordhvNV returned %#x\n", status );
+}
+
+static void WINAPI glFogFuncSGIS( GLsizei n, const GLfloat *points )
+{
+    struct glFogFuncSGIS_params args = { .n = n, .points = points, };
+    NTSTATUS status;
+    TRACE( "n %d, points %p\n", n, points );
+    if ((status = UNIX_CALL( glFogFuncSGIS, &args ))) WARN( "glFogFuncSGIS returned %#x\n", status );
+}
+
+static void WINAPI glFogxOES( GLenum pname, GLfixed param )
+{
+    struct glFogxOES_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glFogxOES, &args ))) WARN( "glFogxOES returned %#x\n", status );
+}
+
+static void WINAPI glFogxvOES( GLenum pname, const GLfixed *param )
+{
+    struct glFogxvOES_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %p\n", pname, param );
+    if ((status = UNIX_CALL( glFogxvOES, &args ))) WARN( "glFogxvOES returned %#x\n", status );
+}
+
+static void WINAPI glFragmentColorMaterialSGIX( GLenum face, GLenum mode )
+{
+    struct glFragmentColorMaterialSGIX_params args = { .face = face, .mode = mode, };
+    NTSTATUS status;
+    TRACE( "face %d, mode %d\n", face, mode );
+    if ((status = UNIX_CALL( glFragmentColorMaterialSGIX, &args ))) WARN( "glFragmentColorMaterialSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFragmentCoverageColorNV( GLuint color )
+{
+    struct glFragmentCoverageColorNV_params args = { .color = color, };
+    NTSTATUS status;
+    TRACE( "color %d\n", color );
+    if ((status = UNIX_CALL( glFragmentCoverageColorNV, &args ))) WARN( "glFragmentCoverageColorNV returned %#x\n", status );
+}
+
+static void WINAPI glFragmentLightModelfSGIX( GLenum pname, GLfloat param )
+{
+    struct glFragmentLightModelfSGIX_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %f\n", pname, param );
+    if ((status = UNIX_CALL( glFragmentLightModelfSGIX, &args ))) WARN( "glFragmentLightModelfSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFragmentLightModelfvSGIX( GLenum pname, const GLfloat *params )
+{
+    struct glFragmentLightModelfvSGIX_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glFragmentLightModelfvSGIX, &args ))) WARN( "glFragmentLightModelfvSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFragmentLightModeliSGIX( GLenum pname, GLint param )
+{
+    struct glFragmentLightModeliSGIX_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glFragmentLightModeliSGIX, &args ))) WARN( "glFragmentLightModeliSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFragmentLightModelivSGIX( GLenum pname, const GLint *params )
+{
+    struct glFragmentLightModelivSGIX_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glFragmentLightModelivSGIX, &args ))) WARN( "glFragmentLightModelivSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFragmentLightfSGIX( GLenum light, GLenum pname, GLfloat param )
+{
+    struct glFragmentLightfSGIX_params args = { .light = light, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "light %d, pname %d, param %f\n", light, pname, param );
+    if ((status = UNIX_CALL( glFragmentLightfSGIX, &args ))) WARN( "glFragmentLightfSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFragmentLightfvSGIX( GLenum light, GLenum pname, const GLfloat *params )
+{
+    struct glFragmentLightfvSGIX_params args = { .light = light, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "light %d, pname %d, params %p\n", light, pname, params );
+    if ((status = UNIX_CALL( glFragmentLightfvSGIX, &args ))) WARN( "glFragmentLightfvSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFragmentLightiSGIX( GLenum light, GLenum pname, GLint param )
+{
+    struct glFragmentLightiSGIX_params args = { .light = light, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "light %d, pname %d, param %d\n", light, pname, param );
+    if ((status = UNIX_CALL( glFragmentLightiSGIX, &args ))) WARN( "glFragmentLightiSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFragmentLightivSGIX( GLenum light, GLenum pname, const GLint *params )
+{
+    struct glFragmentLightivSGIX_params args = { .light = light, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "light %d, pname %d, params %p\n", light, pname, params );
+    if ((status = UNIX_CALL( glFragmentLightivSGIX, &args ))) WARN( "glFragmentLightivSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFragmentMaterialfSGIX( GLenum face, GLenum pname, GLfloat param )
+{
+    struct glFragmentMaterialfSGIX_params args = { .face = face, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "face %d, pname %d, param %f\n", face, pname, param );
+    if ((status = UNIX_CALL( glFragmentMaterialfSGIX, &args ))) WARN( "glFragmentMaterialfSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFragmentMaterialfvSGIX( GLenum face, GLenum pname, const GLfloat *params )
+{
+    struct glFragmentMaterialfvSGIX_params args = { .face = face, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "face %d, pname %d, params %p\n", face, pname, params );
+    if ((status = UNIX_CALL( glFragmentMaterialfvSGIX, &args ))) WARN( "glFragmentMaterialfvSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFragmentMaterialiSGIX( GLenum face, GLenum pname, GLint param )
+{
+    struct glFragmentMaterialiSGIX_params args = { .face = face, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "face %d, pname %d, param %d\n", face, pname, param );
+    if ((status = UNIX_CALL( glFragmentMaterialiSGIX, &args ))) WARN( "glFragmentMaterialiSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFragmentMaterialivSGIX( GLenum face, GLenum pname, const GLint *params )
+{
+    struct glFragmentMaterialivSGIX_params args = { .face = face, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "face %d, pname %d, params %p\n", face, pname, params );
+    if ((status = UNIX_CALL( glFragmentMaterialivSGIX, &args ))) WARN( "glFragmentMaterialivSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFrameTerminatorGREMEDY(void)
+{
+    struct glFrameTerminatorGREMEDY_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glFrameTerminatorGREMEDY, &args ))) WARN( "glFrameTerminatorGREMEDY returned %#x\n", status );
+}
+
+static void WINAPI glFrameZoomSGIX( GLint factor )
+{
+    struct glFrameZoomSGIX_params args = { .factor = factor, };
+    NTSTATUS status;
+    TRACE( "factor %d\n", factor );
+    if ((status = UNIX_CALL( glFrameZoomSGIX, &args ))) WARN( "glFrameZoomSGIX returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferDrawBufferEXT( GLuint framebuffer, GLenum mode )
+{
+    struct glFramebufferDrawBufferEXT_params args = { .framebuffer = framebuffer, .mode = mode, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, mode %d\n", framebuffer, mode );
+    if ((status = UNIX_CALL( glFramebufferDrawBufferEXT, &args ))) WARN( "glFramebufferDrawBufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferDrawBuffersEXT( GLuint framebuffer, GLsizei n, const GLenum *bufs )
+{
+    struct glFramebufferDrawBuffersEXT_params args = { .framebuffer = framebuffer, .n = n, .bufs = bufs, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, n %d, bufs %p\n", framebuffer, n, bufs );
+    if ((status = UNIX_CALL( glFramebufferDrawBuffersEXT, &args ))) WARN( "glFramebufferDrawBuffersEXT returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferFetchBarrierEXT(void)
+{
+    struct glFramebufferFetchBarrierEXT_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glFramebufferFetchBarrierEXT, &args ))) WARN( "glFramebufferFetchBarrierEXT returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferParameteri( GLenum target, GLenum pname, GLint param )
+{
+    struct glFramebufferParameteri_params args = { .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, param %d\n", target, pname, param );
+    if ((status = UNIX_CALL( glFramebufferParameteri, &args ))) WARN( "glFramebufferParameteri returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferParameteriMESA( GLenum target, GLenum pname, GLint param )
+{
+    struct glFramebufferParameteriMESA_params args = { .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, param %d\n", target, pname, param );
+    if ((status = UNIX_CALL( glFramebufferParameteriMESA, &args ))) WARN( "glFramebufferParameteriMESA returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferReadBufferEXT( GLuint framebuffer, GLenum mode )
+{
+    struct glFramebufferReadBufferEXT_params args = { .framebuffer = framebuffer, .mode = mode, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, mode %d\n", framebuffer, mode );
+    if ((status = UNIX_CALL( glFramebufferReadBufferEXT, &args ))) WARN( "glFramebufferReadBufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferRenderbuffer( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer )
+{
+    struct glFramebufferRenderbuffer_params args = { .target = target, .attachment = attachment, .renderbuffertarget = renderbuffertarget, .renderbuffer = renderbuffer, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, renderbuffertarget %d, renderbuffer %d\n", target, attachment, renderbuffertarget, renderbuffer );
+    if ((status = UNIX_CALL( glFramebufferRenderbuffer, &args ))) WARN( "glFramebufferRenderbuffer returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferRenderbufferEXT( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer )
+{
+    struct glFramebufferRenderbufferEXT_params args = { .target = target, .attachment = attachment, .renderbuffertarget = renderbuffertarget, .renderbuffer = renderbuffer, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, renderbuffertarget %d, renderbuffer %d\n", target, attachment, renderbuffertarget, renderbuffer );
+    if ((status = UNIX_CALL( glFramebufferRenderbufferEXT, &args ))) WARN( "glFramebufferRenderbufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferSampleLocationsfvARB( GLenum target, GLuint start, GLsizei count, const GLfloat *v )
+{
+    struct glFramebufferSampleLocationsfvARB_params args = { .target = target, .start = start, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, start %d, count %d, v %p\n", target, start, count, v );
+    if ((status = UNIX_CALL( glFramebufferSampleLocationsfvARB, &args ))) WARN( "glFramebufferSampleLocationsfvARB returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferSampleLocationsfvNV( GLenum target, GLuint start, GLsizei count, const GLfloat *v )
+{
+    struct glFramebufferSampleLocationsfvNV_params args = { .target = target, .start = start, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, start %d, count %d, v %p\n", target, start, count, v );
+    if ((status = UNIX_CALL( glFramebufferSampleLocationsfvNV, &args ))) WARN( "glFramebufferSampleLocationsfvNV returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferSamplePositionsfvAMD( GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat *values )
+{
+    struct glFramebufferSamplePositionsfvAMD_params args = { .target = target, .numsamples = numsamples, .pixelindex = pixelindex, .values = values, };
+    NTSTATUS status;
+    TRACE( "target %d, numsamples %d, pixelindex %d, values %p\n", target, numsamples, pixelindex, values );
+    if ((status = UNIX_CALL( glFramebufferSamplePositionsfvAMD, &args ))) WARN( "glFramebufferSamplePositionsfvAMD returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTexture( GLenum target, GLenum attachment, GLuint texture, GLint level )
+{
+    struct glFramebufferTexture_params args = { .target = target, .attachment = attachment, .texture = texture, .level = level, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, texture %d, level %d\n", target, attachment, texture, level );
+    if ((status = UNIX_CALL( glFramebufferTexture, &args ))) WARN( "glFramebufferTexture returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTexture1D( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level )
+{
+    struct glFramebufferTexture1D_params args = { .target = target, .attachment = attachment, .textarget = textarget, .texture = texture, .level = level, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, textarget %d, texture %d, level %d\n", target, attachment, textarget, texture, level );
+    if ((status = UNIX_CALL( glFramebufferTexture1D, &args ))) WARN( "glFramebufferTexture1D returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTexture1DEXT( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level )
+{
+    struct glFramebufferTexture1DEXT_params args = { .target = target, .attachment = attachment, .textarget = textarget, .texture = texture, .level = level, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, textarget %d, texture %d, level %d\n", target, attachment, textarget, texture, level );
+    if ((status = UNIX_CALL( glFramebufferTexture1DEXT, &args ))) WARN( "glFramebufferTexture1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTexture2D( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level )
+{
+    struct glFramebufferTexture2D_params args = { .target = target, .attachment = attachment, .textarget = textarget, .texture = texture, .level = level, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, textarget %d, texture %d, level %d\n", target, attachment, textarget, texture, level );
+    if ((status = UNIX_CALL( glFramebufferTexture2D, &args ))) WARN( "glFramebufferTexture2D returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTexture2DEXT( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level )
+{
+    struct glFramebufferTexture2DEXT_params args = { .target = target, .attachment = attachment, .textarget = textarget, .texture = texture, .level = level, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, textarget %d, texture %d, level %d\n", target, attachment, textarget, texture, level );
+    if ((status = UNIX_CALL( glFramebufferTexture2DEXT, &args ))) WARN( "glFramebufferTexture2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTexture3D( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset )
+{
+    struct glFramebufferTexture3D_params args = { .target = target, .attachment = attachment, .textarget = textarget, .texture = texture, .level = level, .zoffset = zoffset, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, textarget %d, texture %d, level %d, zoffset %d\n", target, attachment, textarget, texture, level, zoffset );
+    if ((status = UNIX_CALL( glFramebufferTexture3D, &args ))) WARN( "glFramebufferTexture3D returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTexture3DEXT( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset )
+{
+    struct glFramebufferTexture3DEXT_params args = { .target = target, .attachment = attachment, .textarget = textarget, .texture = texture, .level = level, .zoffset = zoffset, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, textarget %d, texture %d, level %d, zoffset %d\n", target, attachment, textarget, texture, level, zoffset );
+    if ((status = UNIX_CALL( glFramebufferTexture3DEXT, &args ))) WARN( "glFramebufferTexture3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTextureARB( GLenum target, GLenum attachment, GLuint texture, GLint level )
+{
+    struct glFramebufferTextureARB_params args = { .target = target, .attachment = attachment, .texture = texture, .level = level, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, texture %d, level %d\n", target, attachment, texture, level );
+    if ((status = UNIX_CALL( glFramebufferTextureARB, &args ))) WARN( "glFramebufferTextureARB returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTextureEXT( GLenum target, GLenum attachment, GLuint texture, GLint level )
+{
+    struct glFramebufferTextureEXT_params args = { .target = target, .attachment = attachment, .texture = texture, .level = level, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, texture %d, level %d\n", target, attachment, texture, level );
+    if ((status = UNIX_CALL( glFramebufferTextureEXT, &args ))) WARN( "glFramebufferTextureEXT returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTextureFaceARB( GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face )
+{
+    struct glFramebufferTextureFaceARB_params args = { .target = target, .attachment = attachment, .texture = texture, .level = level, .face = face, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, texture %d, level %d, face %d\n", target, attachment, texture, level, face );
+    if ((status = UNIX_CALL( glFramebufferTextureFaceARB, &args ))) WARN( "glFramebufferTextureFaceARB returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTextureFaceEXT( GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face )
+{
+    struct glFramebufferTextureFaceEXT_params args = { .target = target, .attachment = attachment, .texture = texture, .level = level, .face = face, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, texture %d, level %d, face %d\n", target, attachment, texture, level, face );
+    if ((status = UNIX_CALL( glFramebufferTextureFaceEXT, &args ))) WARN( "glFramebufferTextureFaceEXT returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTextureLayer( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer )
+{
+    struct glFramebufferTextureLayer_params args = { .target = target, .attachment = attachment, .texture = texture, .level = level, .layer = layer, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, texture %d, level %d, layer %d\n", target, attachment, texture, level, layer );
+    if ((status = UNIX_CALL( glFramebufferTextureLayer, &args ))) WARN( "glFramebufferTextureLayer returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTextureLayerARB( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer )
+{
+    struct glFramebufferTextureLayerARB_params args = { .target = target, .attachment = attachment, .texture = texture, .level = level, .layer = layer, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, texture %d, level %d, layer %d\n", target, attachment, texture, level, layer );
+    if ((status = UNIX_CALL( glFramebufferTextureLayerARB, &args ))) WARN( "glFramebufferTextureLayerARB returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTextureLayerEXT( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer )
+{
+    struct glFramebufferTextureLayerEXT_params args = { .target = target, .attachment = attachment, .texture = texture, .level = level, .layer = layer, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, texture %d, level %d, layer %d\n", target, attachment, texture, level, layer );
+    if ((status = UNIX_CALL( glFramebufferTextureLayerEXT, &args ))) WARN( "glFramebufferTextureLayerEXT returned %#x\n", status );
+}
+
+static void WINAPI glFramebufferTextureMultiviewOVR( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews )
+{
+    struct glFramebufferTextureMultiviewOVR_params args = { .target = target, .attachment = attachment, .texture = texture, .level = level, .baseViewIndex = baseViewIndex, .numViews = numViews, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, texture %d, level %d, baseViewIndex %d, numViews %d\n", target, attachment, texture, level, baseViewIndex, numViews );
+    if ((status = UNIX_CALL( glFramebufferTextureMultiviewOVR, &args ))) WARN( "glFramebufferTextureMultiviewOVR returned %#x\n", status );
+}
+
+static void WINAPI glFreeObjectBufferATI( GLuint buffer )
+{
+    struct glFreeObjectBufferATI_params args = { .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "buffer %d\n", buffer );
+    if ((status = UNIX_CALL( glFreeObjectBufferATI, &args ))) WARN( "glFreeObjectBufferATI returned %#x\n", status );
+}
+
+static void WINAPI glFrustumfOES( GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f )
+{
+    struct glFrustumfOES_params args = { .l = l, .r = r, .b = b, .t = t, .n = n, .f = f, };
+    NTSTATUS status;
+    TRACE( "l %f, r %f, b %f, t %f, n %f, f %f\n", l, r, b, t, n, f );
+    if ((status = UNIX_CALL( glFrustumfOES, &args ))) WARN( "glFrustumfOES returned %#x\n", status );
+}
+
+static void WINAPI glFrustumxOES( GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f )
+{
+    struct glFrustumxOES_params args = { .l = l, .r = r, .b = b, .t = t, .n = n, .f = f, };
+    NTSTATUS status;
+    TRACE( "l %d, r %d, b %d, t %d, n %d, f %d\n", l, r, b, t, n, f );
+    if ((status = UNIX_CALL( glFrustumxOES, &args ))) WARN( "glFrustumxOES returned %#x\n", status );
+}
+
+static GLuint WINAPI glGenAsyncMarkersSGIX( GLsizei range )
+{
+    struct glGenAsyncMarkersSGIX_params args = { .range = range, };
+    NTSTATUS status;
+    TRACE( "range %d\n", range );
+    if ((status = UNIX_CALL( glGenAsyncMarkersSGIX, &args ))) WARN( "glGenAsyncMarkersSGIX returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGenBuffers( GLsizei n, GLuint *buffers )
+{
+    struct glGenBuffers_params args = { .n = n, .buffers = buffers, };
+    NTSTATUS status;
+    TRACE( "n %d, buffers %p\n", n, buffers );
+    if ((status = UNIX_CALL( glGenBuffers, &args ))) WARN( "glGenBuffers returned %#x\n", status );
+}
+
+static void WINAPI glGenBuffersARB( GLsizei n, GLuint *buffers )
+{
+    struct glGenBuffersARB_params args = { .n = n, .buffers = buffers, };
+    NTSTATUS status;
+    TRACE( "n %d, buffers %p\n", n, buffers );
+    if ((status = UNIX_CALL( glGenBuffersARB, &args ))) WARN( "glGenBuffersARB returned %#x\n", status );
+}
+
+static void WINAPI glGenFencesAPPLE( GLsizei n, GLuint *fences )
+{
+    struct glGenFencesAPPLE_params args = { .n = n, .fences = fences, };
+    NTSTATUS status;
+    TRACE( "n %d, fences %p\n", n, fences );
+    if ((status = UNIX_CALL( glGenFencesAPPLE, &args ))) WARN( "glGenFencesAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glGenFencesNV( GLsizei n, GLuint *fences )
+{
+    struct glGenFencesNV_params args = { .n = n, .fences = fences, };
+    NTSTATUS status;
+    TRACE( "n %d, fences %p\n", n, fences );
+    if ((status = UNIX_CALL( glGenFencesNV, &args ))) WARN( "glGenFencesNV returned %#x\n", status );
+}
+
+static GLuint WINAPI glGenFragmentShadersATI( GLuint range )
+{
+    struct glGenFragmentShadersATI_params args = { .range = range, };
+    NTSTATUS status;
+    TRACE( "range %d\n", range );
+    if ((status = UNIX_CALL( glGenFragmentShadersATI, &args ))) WARN( "glGenFragmentShadersATI returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGenFramebuffers( GLsizei n, GLuint *framebuffers )
+{
+    struct glGenFramebuffers_params args = { .n = n, .framebuffers = framebuffers, };
+    NTSTATUS status;
+    TRACE( "n %d, framebuffers %p\n", n, framebuffers );
+    if ((status = UNIX_CALL( glGenFramebuffers, &args ))) WARN( "glGenFramebuffers returned %#x\n", status );
+}
+
+static void WINAPI glGenFramebuffersEXT( GLsizei n, GLuint *framebuffers )
+{
+    struct glGenFramebuffersEXT_params args = { .n = n, .framebuffers = framebuffers, };
+    NTSTATUS status;
+    TRACE( "n %d, framebuffers %p\n", n, framebuffers );
+    if ((status = UNIX_CALL( glGenFramebuffersEXT, &args ))) WARN( "glGenFramebuffersEXT returned %#x\n", status );
+}
+
+static void WINAPI glGenNamesAMD( GLenum identifier, GLuint num, GLuint *names )
+{
+    struct glGenNamesAMD_params args = { .identifier = identifier, .num = num, .names = names, };
+    NTSTATUS status;
+    TRACE( "identifier %d, num %d, names %p\n", identifier, num, names );
+    if ((status = UNIX_CALL( glGenNamesAMD, &args ))) WARN( "glGenNamesAMD returned %#x\n", status );
+}
+
+static void WINAPI glGenOcclusionQueriesNV( GLsizei n, GLuint *ids )
+{
+    struct glGenOcclusionQueriesNV_params args = { .n = n, .ids = ids, };
+    NTSTATUS status;
+    TRACE( "n %d, ids %p\n", n, ids );
+    if ((status = UNIX_CALL( glGenOcclusionQueriesNV, &args ))) WARN( "glGenOcclusionQueriesNV returned %#x\n", status );
+}
+
+static GLuint WINAPI glGenPathsNV( GLsizei range )
+{
+    struct glGenPathsNV_params args = { .range = range, };
+    NTSTATUS status;
+    TRACE( "range %d\n", range );
+    if ((status = UNIX_CALL( glGenPathsNV, &args ))) WARN( "glGenPathsNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGenPerfMonitorsAMD( GLsizei n, GLuint *monitors )
+{
+    struct glGenPerfMonitorsAMD_params args = { .n = n, .monitors = monitors, };
+    NTSTATUS status;
+    TRACE( "n %d, monitors %p\n", n, monitors );
+    if ((status = UNIX_CALL( glGenPerfMonitorsAMD, &args ))) WARN( "glGenPerfMonitorsAMD returned %#x\n", status );
+}
+
+static void WINAPI glGenProgramPipelines( GLsizei n, GLuint *pipelines )
+{
+    struct glGenProgramPipelines_params args = { .n = n, .pipelines = pipelines, };
+    NTSTATUS status;
+    TRACE( "n %d, pipelines %p\n", n, pipelines );
+    if ((status = UNIX_CALL( glGenProgramPipelines, &args ))) WARN( "glGenProgramPipelines returned %#x\n", status );
+}
+
+static void WINAPI glGenProgramsARB( GLsizei n, GLuint *programs )
+{
+    struct glGenProgramsARB_params args = { .n = n, .programs = programs, };
+    NTSTATUS status;
+    TRACE( "n %d, programs %p\n", n, programs );
+    if ((status = UNIX_CALL( glGenProgramsARB, &args ))) WARN( "glGenProgramsARB returned %#x\n", status );
+}
+
+static void WINAPI glGenProgramsNV( GLsizei n, GLuint *programs )
+{
+    struct glGenProgramsNV_params args = { .n = n, .programs = programs, };
+    NTSTATUS status;
+    TRACE( "n %d, programs %p\n", n, programs );
+    if ((status = UNIX_CALL( glGenProgramsNV, &args ))) WARN( "glGenProgramsNV returned %#x\n", status );
+}
+
+static void WINAPI glGenQueries( GLsizei n, GLuint *ids )
+{
+    struct glGenQueries_params args = { .n = n, .ids = ids, };
+    NTSTATUS status;
+    TRACE( "n %d, ids %p\n", n, ids );
+    if ((status = UNIX_CALL( glGenQueries, &args ))) WARN( "glGenQueries returned %#x\n", status );
+}
+
+static void WINAPI glGenQueriesARB( GLsizei n, GLuint *ids )
+{
+    struct glGenQueriesARB_params args = { .n = n, .ids = ids, };
+    NTSTATUS status;
+    TRACE( "n %d, ids %p\n", n, ids );
+    if ((status = UNIX_CALL( glGenQueriesARB, &args ))) WARN( "glGenQueriesARB returned %#x\n", status );
+}
+
+static void WINAPI glGenQueryResourceTagNV( GLsizei n, GLint *tagIds )
+{
+    struct glGenQueryResourceTagNV_params args = { .n = n, .tagIds = tagIds, };
+    NTSTATUS status;
+    TRACE( "n %d, tagIds %p\n", n, tagIds );
+    if ((status = UNIX_CALL( glGenQueryResourceTagNV, &args ))) WARN( "glGenQueryResourceTagNV returned %#x\n", status );
+}
+
+static void WINAPI glGenRenderbuffers( GLsizei n, GLuint *renderbuffers )
+{
+    struct glGenRenderbuffers_params args = { .n = n, .renderbuffers = renderbuffers, };
+    NTSTATUS status;
+    TRACE( "n %d, renderbuffers %p\n", n, renderbuffers );
+    if ((status = UNIX_CALL( glGenRenderbuffers, &args ))) WARN( "glGenRenderbuffers returned %#x\n", status );
+}
+
+static void WINAPI glGenRenderbuffersEXT( GLsizei n, GLuint *renderbuffers )
+{
+    struct glGenRenderbuffersEXT_params args = { .n = n, .renderbuffers = renderbuffers, };
+    NTSTATUS status;
+    TRACE( "n %d, renderbuffers %p\n", n, renderbuffers );
+    if ((status = UNIX_CALL( glGenRenderbuffersEXT, &args ))) WARN( "glGenRenderbuffersEXT returned %#x\n", status );
+}
+
+static void WINAPI glGenSamplers( GLsizei count, GLuint *samplers )
+{
+    struct glGenSamplers_params args = { .count = count, .samplers = samplers, };
+    NTSTATUS status;
+    TRACE( "count %d, samplers %p\n", count, samplers );
+    if ((status = UNIX_CALL( glGenSamplers, &args ))) WARN( "glGenSamplers returned %#x\n", status );
+}
+
+static void WINAPI glGenSemaphoresEXT( GLsizei n, GLuint *semaphores )
+{
+    struct glGenSemaphoresEXT_params args = { .n = n, .semaphores = semaphores, };
+    NTSTATUS status;
+    TRACE( "n %d, semaphores %p\n", n, semaphores );
+    if ((status = UNIX_CALL( glGenSemaphoresEXT, &args ))) WARN( "glGenSemaphoresEXT returned %#x\n", status );
+}
+
+static GLuint WINAPI glGenSymbolsEXT( GLenum datatype, GLenum storagetype, GLenum range, GLuint components )
+{
+    struct glGenSymbolsEXT_params args = { .datatype = datatype, .storagetype = storagetype, .range = range, .components = components, };
+    NTSTATUS status;
+    TRACE( "datatype %d, storagetype %d, range %d, components %d\n", datatype, storagetype, range, components );
+    if ((status = UNIX_CALL( glGenSymbolsEXT, &args ))) WARN( "glGenSymbolsEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGenTexturesEXT( GLsizei n, GLuint *textures )
+{
+    struct glGenTexturesEXT_params args = { .n = n, .textures = textures, };
+    NTSTATUS status;
+    TRACE( "n %d, textures %p\n", n, textures );
+    if ((status = UNIX_CALL( glGenTexturesEXT, &args ))) WARN( "glGenTexturesEXT returned %#x\n", status );
+}
+
+static void WINAPI glGenTransformFeedbacks( GLsizei n, GLuint *ids )
+{
+    struct glGenTransformFeedbacks_params args = { .n = n, .ids = ids, };
+    NTSTATUS status;
+    TRACE( "n %d, ids %p\n", n, ids );
+    if ((status = UNIX_CALL( glGenTransformFeedbacks, &args ))) WARN( "glGenTransformFeedbacks returned %#x\n", status );
+}
+
+static void WINAPI glGenTransformFeedbacksNV( GLsizei n, GLuint *ids )
+{
+    struct glGenTransformFeedbacksNV_params args = { .n = n, .ids = ids, };
+    NTSTATUS status;
+    TRACE( "n %d, ids %p\n", n, ids );
+    if ((status = UNIX_CALL( glGenTransformFeedbacksNV, &args ))) WARN( "glGenTransformFeedbacksNV returned %#x\n", status );
+}
+
+static void WINAPI glGenVertexArrays( GLsizei n, GLuint *arrays )
+{
+    struct glGenVertexArrays_params args = { .n = n, .arrays = arrays, };
+    NTSTATUS status;
+    TRACE( "n %d, arrays %p\n", n, arrays );
+    if ((status = UNIX_CALL( glGenVertexArrays, &args ))) WARN( "glGenVertexArrays returned %#x\n", status );
+}
+
+static void WINAPI glGenVertexArraysAPPLE( GLsizei n, GLuint *arrays )
+{
+    struct glGenVertexArraysAPPLE_params args = { .n = n, .arrays = arrays, };
+    NTSTATUS status;
+    TRACE( "n %d, arrays %p\n", n, arrays );
+    if ((status = UNIX_CALL( glGenVertexArraysAPPLE, &args ))) WARN( "glGenVertexArraysAPPLE returned %#x\n", status );
+}
+
+static GLuint WINAPI glGenVertexShadersEXT( GLuint range )
+{
+    struct glGenVertexShadersEXT_params args = { .range = range, };
+    NTSTATUS status;
+    TRACE( "range %d\n", range );
+    if ((status = UNIX_CALL( glGenVertexShadersEXT, &args ))) WARN( "glGenVertexShadersEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGenerateMipmap( GLenum target )
+{
+    struct glGenerateMipmap_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glGenerateMipmap, &args ))) WARN( "glGenerateMipmap returned %#x\n", status );
+}
+
+static void WINAPI glGenerateMipmapEXT( GLenum target )
+{
+    struct glGenerateMipmapEXT_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glGenerateMipmapEXT, &args ))) WARN( "glGenerateMipmapEXT returned %#x\n", status );
+}
+
+static void WINAPI glGenerateMultiTexMipmapEXT( GLenum texunit, GLenum target )
+{
+    struct glGenerateMultiTexMipmapEXT_params args = { .texunit = texunit, .target = target, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d\n", texunit, target );
+    if ((status = UNIX_CALL( glGenerateMultiTexMipmapEXT, &args ))) WARN( "glGenerateMultiTexMipmapEXT returned %#x\n", status );
+}
+
+static void WINAPI glGenerateTextureMipmap( GLuint texture )
+{
+    struct glGenerateTextureMipmap_params args = { .texture = texture, };
+    NTSTATUS status;
+    TRACE( "texture %d\n", texture );
+    if ((status = UNIX_CALL( glGenerateTextureMipmap, &args ))) WARN( "glGenerateTextureMipmap returned %#x\n", status );
+}
+
+static void WINAPI glGenerateTextureMipmapEXT( GLuint texture, GLenum target )
+{
+    struct glGenerateTextureMipmapEXT_params args = { .texture = texture, .target = target, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d\n", texture, target );
+    if ((status = UNIX_CALL( glGenerateTextureMipmapEXT, &args ))) WARN( "glGenerateTextureMipmapEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetActiveAtomicCounterBufferiv( GLuint program, GLuint bufferIndex, GLenum pname, GLint *params )
+{
+    struct glGetActiveAtomicCounterBufferiv_params args = { .program = program, .bufferIndex = bufferIndex, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, bufferIndex %d, pname %d, params %p\n", program, bufferIndex, pname, params );
+    if ((status = UNIX_CALL( glGetActiveAtomicCounterBufferiv, &args ))) WARN( "glGetActiveAtomicCounterBufferiv returned %#x\n", status );
+}
+
+static void WINAPI glGetActiveAttrib( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name )
+{
+    struct glGetActiveAttrib_params args = { .program = program, .index = index, .bufSize = bufSize, .length = length, .size = size, .type = type, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, index %d, bufSize %d, length %p, size %p, type %p, name %p\n", program, index, bufSize, length, size, type, name );
+    if ((status = UNIX_CALL( glGetActiveAttrib, &args ))) WARN( "glGetActiveAttrib returned %#x\n", status );
+}
+
+static void WINAPI glGetActiveAttribARB( GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name )
+{
+    struct glGetActiveAttribARB_params args = { .programObj = programObj, .index = index, .maxLength = maxLength, .length = length, .size = size, .type = type, .name = name, };
+    NTSTATUS status;
+    TRACE( "programObj %d, index %d, maxLength %d, length %p, size %p, type %p, name %p\n", programObj, index, maxLength, length, size, type, name );
+    if ((status = UNIX_CALL( glGetActiveAttribARB, &args ))) WARN( "glGetActiveAttribARB returned %#x\n", status );
+}
+
+static void WINAPI glGetActiveSubroutineName( GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name )
+{
+    struct glGetActiveSubroutineName_params args = { .program = program, .shadertype = shadertype, .index = index, .bufSize = bufSize, .length = length, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, shadertype %d, index %d, bufSize %d, length %p, name %p\n", program, shadertype, index, bufSize, length, name );
+    if ((status = UNIX_CALL( glGetActiveSubroutineName, &args ))) WARN( "glGetActiveSubroutineName returned %#x\n", status );
+}
+
+static void WINAPI glGetActiveSubroutineUniformName( GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name )
+{
+    struct glGetActiveSubroutineUniformName_params args = { .program = program, .shadertype = shadertype, .index = index, .bufSize = bufSize, .length = length, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, shadertype %d, index %d, bufSize %d, length %p, name %p\n", program, shadertype, index, bufSize, length, name );
+    if ((status = UNIX_CALL( glGetActiveSubroutineUniformName, &args ))) WARN( "glGetActiveSubroutineUniformName returned %#x\n", status );
+}
+
+static void WINAPI glGetActiveSubroutineUniformiv( GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values )
+{
+    struct glGetActiveSubroutineUniformiv_params args = { .program = program, .shadertype = shadertype, .index = index, .pname = pname, .values = values, };
+    NTSTATUS status;
+    TRACE( "program %d, shadertype %d, index %d, pname %d, values %p\n", program, shadertype, index, pname, values );
+    if ((status = UNIX_CALL( glGetActiveSubroutineUniformiv, &args ))) WARN( "glGetActiveSubroutineUniformiv returned %#x\n", status );
+}
+
+static void WINAPI glGetActiveUniform( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name )
+{
+    struct glGetActiveUniform_params args = { .program = program, .index = index, .bufSize = bufSize, .length = length, .size = size, .type = type, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, index %d, bufSize %d, length %p, size %p, type %p, name %p\n", program, index, bufSize, length, size, type, name );
+    if ((status = UNIX_CALL( glGetActiveUniform, &args ))) WARN( "glGetActiveUniform returned %#x\n", status );
+}
+
+static void WINAPI glGetActiveUniformARB( GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name )
+{
+    struct glGetActiveUniformARB_params args = { .programObj = programObj, .index = index, .maxLength = maxLength, .length = length, .size = size, .type = type, .name = name, };
+    NTSTATUS status;
+    TRACE( "programObj %d, index %d, maxLength %d, length %p, size %p, type %p, name %p\n", programObj, index, maxLength, length, size, type, name );
+    if ((status = UNIX_CALL( glGetActiveUniformARB, &args ))) WARN( "glGetActiveUniformARB returned %#x\n", status );
+}
+
+static void WINAPI glGetActiveUniformBlockName( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName )
+{
+    struct glGetActiveUniformBlockName_params args = { .program = program, .uniformBlockIndex = uniformBlockIndex, .bufSize = bufSize, .length = length, .uniformBlockName = uniformBlockName, };
+    NTSTATUS status;
+    TRACE( "program %d, uniformBlockIndex %d, bufSize %d, length %p, uniformBlockName %p\n", program, uniformBlockIndex, bufSize, length, uniformBlockName );
+    if ((status = UNIX_CALL( glGetActiveUniformBlockName, &args ))) WARN( "glGetActiveUniformBlockName returned %#x\n", status );
+}
+
+static void WINAPI glGetActiveUniformBlockiv( GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params )
+{
+    struct glGetActiveUniformBlockiv_params args = { .program = program, .uniformBlockIndex = uniformBlockIndex, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, uniformBlockIndex %d, pname %d, params %p\n", program, uniformBlockIndex, pname, params );
+    if ((status = UNIX_CALL( glGetActiveUniformBlockiv, &args ))) WARN( "glGetActiveUniformBlockiv returned %#x\n", status );
+}
+
+static void WINAPI glGetActiveUniformName( GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName )
+{
+    struct glGetActiveUniformName_params args = { .program = program, .uniformIndex = uniformIndex, .bufSize = bufSize, .length = length, .uniformName = uniformName, };
+    NTSTATUS status;
+    TRACE( "program %d, uniformIndex %d, bufSize %d, length %p, uniformName %p\n", program, uniformIndex, bufSize, length, uniformName );
+    if ((status = UNIX_CALL( glGetActiveUniformName, &args ))) WARN( "glGetActiveUniformName returned %#x\n", status );
+}
+
+static void WINAPI glGetActiveUniformsiv( GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params )
+{
+    struct glGetActiveUniformsiv_params args = { .program = program, .uniformCount = uniformCount, .uniformIndices = uniformIndices, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, uniformCount %d, uniformIndices %p, pname %d, params %p\n", program, uniformCount, uniformIndices, pname, params );
+    if ((status = UNIX_CALL( glGetActiveUniformsiv, &args ))) WARN( "glGetActiveUniformsiv returned %#x\n", status );
+}
+
+static void WINAPI glGetActiveVaryingNV( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name )
+{
+    struct glGetActiveVaryingNV_params args = { .program = program, .index = index, .bufSize = bufSize, .length = length, .size = size, .type = type, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, index %d, bufSize %d, length %p, size %p, type %p, name %p\n", program, index, bufSize, length, size, type, name );
+    if ((status = UNIX_CALL( glGetActiveVaryingNV, &args ))) WARN( "glGetActiveVaryingNV returned %#x\n", status );
+}
+
+static void WINAPI glGetArrayObjectfvATI( GLenum array, GLenum pname, GLfloat *params )
+{
+    struct glGetArrayObjectfvATI_params args = { .array = array, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "array %d, pname %d, params %p\n", array, pname, params );
+    if ((status = UNIX_CALL( glGetArrayObjectfvATI, &args ))) WARN( "glGetArrayObjectfvATI returned %#x\n", status );
+}
+
+static void WINAPI glGetArrayObjectivATI( GLenum array, GLenum pname, GLint *params )
+{
+    struct glGetArrayObjectivATI_params args = { .array = array, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "array %d, pname %d, params %p\n", array, pname, params );
+    if ((status = UNIX_CALL( glGetArrayObjectivATI, &args ))) WARN( "glGetArrayObjectivATI returned %#x\n", status );
+}
+
+static void WINAPI glGetAttachedObjectsARB( GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj )
+{
+    struct glGetAttachedObjectsARB_params args = { .containerObj = containerObj, .maxCount = maxCount, .count = count, .obj = obj, };
+    NTSTATUS status;
+    TRACE( "containerObj %d, maxCount %d, count %p, obj %p\n", containerObj, maxCount, count, obj );
+    if ((status = UNIX_CALL( glGetAttachedObjectsARB, &args ))) WARN( "glGetAttachedObjectsARB returned %#x\n", status );
+}
+
+static void WINAPI glGetAttachedShaders( GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders )
+{
+    struct glGetAttachedShaders_params args = { .program = program, .maxCount = maxCount, .count = count, .shaders = shaders, };
+    NTSTATUS status;
+    TRACE( "program %d, maxCount %d, count %p, shaders %p\n", program, maxCount, count, shaders );
+    if ((status = UNIX_CALL( glGetAttachedShaders, &args ))) WARN( "glGetAttachedShaders returned %#x\n", status );
+}
+
+static GLint WINAPI glGetAttribLocation( GLuint program, const GLchar *name )
+{
+    struct glGetAttribLocation_params args = { .program = program, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, name %p\n", program, name );
+    if ((status = UNIX_CALL( glGetAttribLocation, &args ))) WARN( "glGetAttribLocation returned %#x\n", status );
+    return args.ret;
+}
+
+static GLint WINAPI glGetAttribLocationARB( GLhandleARB programObj, const GLcharARB *name )
+{
+    struct glGetAttribLocationARB_params args = { .programObj = programObj, .name = name, };
+    NTSTATUS status;
+    TRACE( "programObj %d, name %p\n", programObj, name );
+    if ((status = UNIX_CALL( glGetAttribLocationARB, &args ))) WARN( "glGetAttribLocationARB returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetBooleanIndexedvEXT( GLenum target, GLuint index, GLboolean *data )
+{
+    struct glGetBooleanIndexedvEXT_params args = { .target = target, .index = index, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, data %p\n", target, index, data );
+    if ((status = UNIX_CALL( glGetBooleanIndexedvEXT, &args ))) WARN( "glGetBooleanIndexedvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetBooleani_v( GLenum target, GLuint index, GLboolean *data )
+{
+    struct glGetBooleani_v_params args = { .target = target, .index = index, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, data %p\n", target, index, data );
+    if ((status = UNIX_CALL( glGetBooleani_v, &args ))) WARN( "glGetBooleani_v returned %#x\n", status );
+}
+
+static void WINAPI glGetBufferParameteri64v( GLenum target, GLenum pname, GLint64 *params )
+{
+    struct glGetBufferParameteri64v_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetBufferParameteri64v, &args ))) WARN( "glGetBufferParameteri64v returned %#x\n", status );
+}
+
+static void WINAPI glGetBufferParameteriv( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetBufferParameteriv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetBufferParameteriv, &args ))) WARN( "glGetBufferParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetBufferParameterivARB( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetBufferParameterivARB_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetBufferParameterivARB, &args ))) WARN( "glGetBufferParameterivARB returned %#x\n", status );
+}
+
+static void WINAPI glGetBufferParameterui64vNV( GLenum target, GLenum pname, GLuint64EXT *params )
+{
+    struct glGetBufferParameterui64vNV_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetBufferParameterui64vNV, &args ))) WARN( "glGetBufferParameterui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glGetBufferPointerv( GLenum target, GLenum pname, void **params )
+{
+    struct glGetBufferPointerv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetBufferPointerv, &args ))) WARN( "glGetBufferPointerv returned %#x\n", status );
+}
+
+static void WINAPI glGetBufferPointervARB( GLenum target, GLenum pname, void **params )
+{
+    struct glGetBufferPointervARB_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetBufferPointervARB, &args ))) WARN( "glGetBufferPointervARB returned %#x\n", status );
+}
+
+static void WINAPI glGetBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, void *data )
+{
+    struct glGetBufferSubData_params args = { .target = target, .offset = offset, .size = size, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, offset %ld, size %ld, data %p\n", target, offset, size, data );
+    if ((status = UNIX_CALL( glGetBufferSubData, &args ))) WARN( "glGetBufferSubData returned %#x\n", status );
+}
+
+static void WINAPI glGetBufferSubDataARB( GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data )
+{
+    struct glGetBufferSubDataARB_params args = { .target = target, .offset = offset, .size = size, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, offset %ld, size %ld, data %p\n", target, offset, size, data );
+    if ((status = UNIX_CALL( glGetBufferSubDataARB, &args ))) WARN( "glGetBufferSubDataARB returned %#x\n", status );
+}
+
+static void WINAPI glGetClipPlanefOES( GLenum plane, GLfloat *equation )
+{
+    struct glGetClipPlanefOES_params args = { .plane = plane, .equation = equation, };
+    NTSTATUS status;
+    TRACE( "plane %d, equation %p\n", plane, equation );
+    if ((status = UNIX_CALL( glGetClipPlanefOES, &args ))) WARN( "glGetClipPlanefOES returned %#x\n", status );
+}
+
+static void WINAPI glGetClipPlanexOES( GLenum plane, GLfixed *equation )
+{
+    struct glGetClipPlanexOES_params args = { .plane = plane, .equation = equation, };
+    NTSTATUS status;
+    TRACE( "plane %d, equation %p\n", plane, equation );
+    if ((status = UNIX_CALL( glGetClipPlanexOES, &args ))) WARN( "glGetClipPlanexOES returned %#x\n", status );
+}
+
+static void WINAPI glGetColorTable( GLenum target, GLenum format, GLenum type, void *table )
+{
+    struct glGetColorTable_params args = { .target = target, .format = format, .type = type, .table = table, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, type %d, table %p\n", target, format, type, table );
+    if ((status = UNIX_CALL( glGetColorTable, &args ))) WARN( "glGetColorTable returned %#x\n", status );
+}
+
+static void WINAPI glGetColorTableEXT( GLenum target, GLenum format, GLenum type, void *data )
+{
+    struct glGetColorTableEXT_params args = { .target = target, .format = format, .type = type, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, type %d, data %p\n", target, format, type, data );
+    if ((status = UNIX_CALL( glGetColorTableEXT, &args ))) WARN( "glGetColorTableEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetColorTableParameterfv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetColorTableParameterfv, &args ))) WARN( "glGetColorTableParameterfv returned %#x\n", status );
+}
+
+static void WINAPI glGetColorTableParameterfvEXT( GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetColorTableParameterfvEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetColorTableParameterfvEXT, &args ))) WARN( "glGetColorTableParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetColorTableParameterfvSGI( GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetColorTableParameterfvSGI_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetColorTableParameterfvSGI, &args ))) WARN( "glGetColorTableParameterfvSGI returned %#x\n", status );
+}
+
+static void WINAPI glGetColorTableParameteriv( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetColorTableParameteriv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetColorTableParameteriv, &args ))) WARN( "glGetColorTableParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetColorTableParameterivEXT( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetColorTableParameterivEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetColorTableParameterivEXT, &args ))) WARN( "glGetColorTableParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetColorTableParameterivSGI( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetColorTableParameterivSGI_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetColorTableParameterivSGI, &args ))) WARN( "glGetColorTableParameterivSGI returned %#x\n", status );
+}
+
+static void WINAPI glGetColorTableSGI( GLenum target, GLenum format, GLenum type, void *table )
+{
+    struct glGetColorTableSGI_params args = { .target = target, .format = format, .type = type, .table = table, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, type %d, table %p\n", target, format, type, table );
+    if ((status = UNIX_CALL( glGetColorTableSGI, &args ))) WARN( "glGetColorTableSGI returned %#x\n", status );
+}
+
+static void WINAPI glGetCombinerInputParameterfvNV( GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params )
+{
+    struct glGetCombinerInputParameterfvNV_params args = { .stage = stage, .portion = portion, .variable = variable, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "stage %d, portion %d, variable %d, pname %d, params %p\n", stage, portion, variable, pname, params );
+    if ((status = UNIX_CALL( glGetCombinerInputParameterfvNV, &args ))) WARN( "glGetCombinerInputParameterfvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetCombinerInputParameterivNV( GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params )
+{
+    struct glGetCombinerInputParameterivNV_params args = { .stage = stage, .portion = portion, .variable = variable, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "stage %d, portion %d, variable %d, pname %d, params %p\n", stage, portion, variable, pname, params );
+    if ((status = UNIX_CALL( glGetCombinerInputParameterivNV, &args ))) WARN( "glGetCombinerInputParameterivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetCombinerOutputParameterfvNV( GLenum stage, GLenum portion, GLenum pname, GLfloat *params )
+{
+    struct glGetCombinerOutputParameterfvNV_params args = { .stage = stage, .portion = portion, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "stage %d, portion %d, pname %d, params %p\n", stage, portion, pname, params );
+    if ((status = UNIX_CALL( glGetCombinerOutputParameterfvNV, &args ))) WARN( "glGetCombinerOutputParameterfvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetCombinerOutputParameterivNV( GLenum stage, GLenum portion, GLenum pname, GLint *params )
+{
+    struct glGetCombinerOutputParameterivNV_params args = { .stage = stage, .portion = portion, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "stage %d, portion %d, pname %d, params %p\n", stage, portion, pname, params );
+    if ((status = UNIX_CALL( glGetCombinerOutputParameterivNV, &args ))) WARN( "glGetCombinerOutputParameterivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetCombinerStageParameterfvNV( GLenum stage, GLenum pname, GLfloat *params )
+{
+    struct glGetCombinerStageParameterfvNV_params args = { .stage = stage, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "stage %d, pname %d, params %p\n", stage, pname, params );
+    if ((status = UNIX_CALL( glGetCombinerStageParameterfvNV, &args ))) WARN( "glGetCombinerStageParameterfvNV returned %#x\n", status );
+}
+
+static GLuint WINAPI glGetCommandHeaderNV( GLenum tokenID, GLuint size )
+{
+    struct glGetCommandHeaderNV_params args = { .tokenID = tokenID, .size = size, };
+    NTSTATUS status;
+    TRACE( "tokenID %d, size %d\n", tokenID, size );
+    if ((status = UNIX_CALL( glGetCommandHeaderNV, &args ))) WARN( "glGetCommandHeaderNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetCompressedMultiTexImageEXT( GLenum texunit, GLenum target, GLint lod, void *img )
+{
+    struct glGetCompressedMultiTexImageEXT_params args = { .texunit = texunit, .target = target, .lod = lod, .img = img, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, lod %d, img %p\n", texunit, target, lod, img );
+    if ((status = UNIX_CALL( glGetCompressedMultiTexImageEXT, &args ))) WARN( "glGetCompressedMultiTexImageEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetCompressedTexImage( GLenum target, GLint level, void *img )
+{
+    struct glGetCompressedTexImage_params args = { .target = target, .level = level, .img = img, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, img %p\n", target, level, img );
+    if ((status = UNIX_CALL( glGetCompressedTexImage, &args ))) WARN( "glGetCompressedTexImage returned %#x\n", status );
+}
+
+static void WINAPI glGetCompressedTexImageARB( GLenum target, GLint level, void *img )
+{
+    struct glGetCompressedTexImageARB_params args = { .target = target, .level = level, .img = img, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, img %p\n", target, level, img );
+    if ((status = UNIX_CALL( glGetCompressedTexImageARB, &args ))) WARN( "glGetCompressedTexImageARB returned %#x\n", status );
+}
+
+static void WINAPI glGetCompressedTextureImage( GLuint texture, GLint level, GLsizei bufSize, void *pixels )
+{
+    struct glGetCompressedTextureImage_params args = { .texture = texture, .level = level, .bufSize = bufSize, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, bufSize %d, pixels %p\n", texture, level, bufSize, pixels );
+    if ((status = UNIX_CALL( glGetCompressedTextureImage, &args ))) WARN( "glGetCompressedTextureImage returned %#x\n", status );
+}
+
+static void WINAPI glGetCompressedTextureImageEXT( GLuint texture, GLenum target, GLint lod, void *img )
+{
+    struct glGetCompressedTextureImageEXT_params args = { .texture = texture, .target = target, .lod = lod, .img = img, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, lod %d, img %p\n", texture, target, lod, img );
+    if ((status = UNIX_CALL( glGetCompressedTextureImageEXT, &args ))) WARN( "glGetCompressedTextureImageEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetCompressedTextureSubImage( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels )
+{
+    struct glGetCompressedTextureSubImage_params args = { .texture = texture, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .bufSize = bufSize, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, bufSize %d, pixels %p\n", texture, level, xoffset, yoffset, zoffset, width, height, depth, bufSize, pixels );
+    if ((status = UNIX_CALL( glGetCompressedTextureSubImage, &args ))) WARN( "glGetCompressedTextureSubImage returned %#x\n", status );
+}
+
+static void WINAPI glGetConvolutionFilter( GLenum target, GLenum format, GLenum type, void *image )
+{
+    struct glGetConvolutionFilter_params args = { .target = target, .format = format, .type = type, .image = image, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, type %d, image %p\n", target, format, type, image );
+    if ((status = UNIX_CALL( glGetConvolutionFilter, &args ))) WARN( "glGetConvolutionFilter returned %#x\n", status );
+}
+
+static void WINAPI glGetConvolutionFilterEXT( GLenum target, GLenum format, GLenum type, void *image )
+{
+    struct glGetConvolutionFilterEXT_params args = { .target = target, .format = format, .type = type, .image = image, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, type %d, image %p\n", target, format, type, image );
+    if ((status = UNIX_CALL( glGetConvolutionFilterEXT, &args ))) WARN( "glGetConvolutionFilterEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetConvolutionParameterfv( GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetConvolutionParameterfv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetConvolutionParameterfv, &args ))) WARN( "glGetConvolutionParameterfv returned %#x\n", status );
+}
+
+static void WINAPI glGetConvolutionParameterfvEXT( GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetConvolutionParameterfvEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetConvolutionParameterfvEXT, &args ))) WARN( "glGetConvolutionParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetConvolutionParameteriv( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetConvolutionParameteriv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetConvolutionParameteriv, &args ))) WARN( "glGetConvolutionParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetConvolutionParameterivEXT( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetConvolutionParameterivEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetConvolutionParameterivEXT, &args ))) WARN( "glGetConvolutionParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetConvolutionParameterxvOES( GLenum target, GLenum pname, GLfixed *params )
+{
+    struct glGetConvolutionParameterxvOES_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetConvolutionParameterxvOES, &args ))) WARN( "glGetConvolutionParameterxvOES returned %#x\n", status );
+}
+
+static void WINAPI glGetCoverageModulationTableNV( GLsizei bufSize, GLfloat *v )
+{
+    struct glGetCoverageModulationTableNV_params args = { .bufSize = bufSize, .v = v, };
+    NTSTATUS status;
+    TRACE( "bufSize %d, v %p\n", bufSize, v );
+    if ((status = UNIX_CALL( glGetCoverageModulationTableNV, &args ))) WARN( "glGetCoverageModulationTableNV returned %#x\n", status );
+}
+
+static GLuint WINAPI glGetDebugMessageLog( GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog )
+{
+    struct glGetDebugMessageLog_params args = { .count = count, .bufSize = bufSize, .sources = sources, .types = types, .ids = ids, .severities = severities, .lengths = lengths, .messageLog = messageLog, };
+    NTSTATUS status;
+    TRACE( "count %d, bufSize %d, sources %p, types %p, ids %p, severities %p, lengths %p, messageLog %p\n", count, bufSize, sources, types, ids, severities, lengths, messageLog );
+    if ((status = UNIX_CALL( glGetDebugMessageLog, &args ))) WARN( "glGetDebugMessageLog returned %#x\n", status );
+    return args.ret;
+}
+
+static GLuint WINAPI glGetDebugMessageLogAMD( GLuint count, GLsizei bufSize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message )
+{
+    struct glGetDebugMessageLogAMD_params args = { .count = count, .bufSize = bufSize, .categories = categories, .severities = severities, .ids = ids, .lengths = lengths, .message = message, };
+    NTSTATUS status;
+    TRACE( "count %d, bufSize %d, categories %p, severities %p, ids %p, lengths %p, message %p\n", count, bufSize, categories, severities, ids, lengths, message );
+    if ((status = UNIX_CALL( glGetDebugMessageLogAMD, &args ))) WARN( "glGetDebugMessageLogAMD returned %#x\n", status );
+    return args.ret;
+}
+
+static GLuint WINAPI glGetDebugMessageLogARB( GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog )
+{
+    struct glGetDebugMessageLogARB_params args = { .count = count, .bufSize = bufSize, .sources = sources, .types = types, .ids = ids, .severities = severities, .lengths = lengths, .messageLog = messageLog, };
+    NTSTATUS status;
+    TRACE( "count %d, bufSize %d, sources %p, types %p, ids %p, severities %p, lengths %p, messageLog %p\n", count, bufSize, sources, types, ids, severities, lengths, messageLog );
+    if ((status = UNIX_CALL( glGetDebugMessageLogARB, &args ))) WARN( "glGetDebugMessageLogARB returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetDetailTexFuncSGIS( GLenum target, GLfloat *points )
+{
+    struct glGetDetailTexFuncSGIS_params args = { .target = target, .points = points, };
+    NTSTATUS status;
+    TRACE( "target %d, points %p\n", target, points );
+    if ((status = UNIX_CALL( glGetDetailTexFuncSGIS, &args ))) WARN( "glGetDetailTexFuncSGIS returned %#x\n", status );
+}
+
+static void WINAPI glGetDoubleIndexedvEXT( GLenum target, GLuint index, GLdouble *data )
+{
+    struct glGetDoubleIndexedvEXT_params args = { .target = target, .index = index, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, data %p\n", target, index, data );
+    if ((status = UNIX_CALL( glGetDoubleIndexedvEXT, &args ))) WARN( "glGetDoubleIndexedvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetDoublei_v( GLenum target, GLuint index, GLdouble *data )
+{
+    struct glGetDoublei_v_params args = { .target = target, .index = index, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, data %p\n", target, index, data );
+    if ((status = UNIX_CALL( glGetDoublei_v, &args ))) WARN( "glGetDoublei_v returned %#x\n", status );
+}
+
+static void WINAPI glGetDoublei_vEXT( GLenum pname, GLuint index, GLdouble *params )
+{
+    struct glGetDoublei_vEXT_params args = { .pname = pname, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, index %d, params %p\n", pname, index, params );
+    if ((status = UNIX_CALL( glGetDoublei_vEXT, &args ))) WARN( "glGetDoublei_vEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetFenceivNV( GLuint fence, GLenum pname, GLint *params )
+{
+    struct glGetFenceivNV_params args = { .fence = fence, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "fence %d, pname %d, params %p\n", fence, pname, params );
+    if ((status = UNIX_CALL( glGetFenceivNV, &args ))) WARN( "glGetFenceivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetFinalCombinerInputParameterfvNV( GLenum variable, GLenum pname, GLfloat *params )
+{
+    struct glGetFinalCombinerInputParameterfvNV_params args = { .variable = variable, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "variable %d, pname %d, params %p\n", variable, pname, params );
+    if ((status = UNIX_CALL( glGetFinalCombinerInputParameterfvNV, &args ))) WARN( "glGetFinalCombinerInputParameterfvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetFinalCombinerInputParameterivNV( GLenum variable, GLenum pname, GLint *params )
+{
+    struct glGetFinalCombinerInputParameterivNV_params args = { .variable = variable, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "variable %d, pname %d, params %p\n", variable, pname, params );
+    if ((status = UNIX_CALL( glGetFinalCombinerInputParameterivNV, &args ))) WARN( "glGetFinalCombinerInputParameterivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetFirstPerfQueryIdINTEL( GLuint *queryId )
+{
+    struct glGetFirstPerfQueryIdINTEL_params args = { .queryId = queryId, };
+    NTSTATUS status;
+    TRACE( "queryId %p\n", queryId );
+    if ((status = UNIX_CALL( glGetFirstPerfQueryIdINTEL, &args ))) WARN( "glGetFirstPerfQueryIdINTEL returned %#x\n", status );
+}
+
+static void WINAPI glGetFixedvOES( GLenum pname, GLfixed *params )
+{
+    struct glGetFixedvOES_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glGetFixedvOES, &args ))) WARN( "glGetFixedvOES returned %#x\n", status );
+}
+
+static void WINAPI glGetFloatIndexedvEXT( GLenum target, GLuint index, GLfloat *data )
+{
+    struct glGetFloatIndexedvEXT_params args = { .target = target, .index = index, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, data %p\n", target, index, data );
+    if ((status = UNIX_CALL( glGetFloatIndexedvEXT, &args ))) WARN( "glGetFloatIndexedvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetFloati_v( GLenum target, GLuint index, GLfloat *data )
+{
+    struct glGetFloati_v_params args = { .target = target, .index = index, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, data %p\n", target, index, data );
+    if ((status = UNIX_CALL( glGetFloati_v, &args ))) WARN( "glGetFloati_v returned %#x\n", status );
+}
+
+static void WINAPI glGetFloati_vEXT( GLenum pname, GLuint index, GLfloat *params )
+{
+    struct glGetFloati_vEXT_params args = { .pname = pname, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, index %d, params %p\n", pname, index, params );
+    if ((status = UNIX_CALL( glGetFloati_vEXT, &args ))) WARN( "glGetFloati_vEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetFogFuncSGIS( GLfloat *points )
+{
+    struct glGetFogFuncSGIS_params args = { .points = points, };
+    NTSTATUS status;
+    TRACE( "points %p\n", points );
+    if ((status = UNIX_CALL( glGetFogFuncSGIS, &args ))) WARN( "glGetFogFuncSGIS returned %#x\n", status );
+}
+
+static GLint WINAPI glGetFragDataIndex( GLuint program, const GLchar *name )
+{
+    struct glGetFragDataIndex_params args = { .program = program, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, name %p\n", program, name );
+    if ((status = UNIX_CALL( glGetFragDataIndex, &args ))) WARN( "glGetFragDataIndex returned %#x\n", status );
+    return args.ret;
+}
+
+static GLint WINAPI glGetFragDataLocation( GLuint program, const GLchar *name )
+{
+    struct glGetFragDataLocation_params args = { .program = program, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, name %p\n", program, name );
+    if ((status = UNIX_CALL( glGetFragDataLocation, &args ))) WARN( "glGetFragDataLocation returned %#x\n", status );
+    return args.ret;
+}
+
+static GLint WINAPI glGetFragDataLocationEXT( GLuint program, const GLchar *name )
+{
+    struct glGetFragDataLocationEXT_params args = { .program = program, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, name %p\n", program, name );
+    if ((status = UNIX_CALL( glGetFragDataLocationEXT, &args ))) WARN( "glGetFragDataLocationEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetFragmentLightfvSGIX( GLenum light, GLenum pname, GLfloat *params )
+{
+    struct glGetFragmentLightfvSGIX_params args = { .light = light, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "light %d, pname %d, params %p\n", light, pname, params );
+    if ((status = UNIX_CALL( glGetFragmentLightfvSGIX, &args ))) WARN( "glGetFragmentLightfvSGIX returned %#x\n", status );
+}
+
+static void WINAPI glGetFragmentLightivSGIX( GLenum light, GLenum pname, GLint *params )
+{
+    struct glGetFragmentLightivSGIX_params args = { .light = light, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "light %d, pname %d, params %p\n", light, pname, params );
+    if ((status = UNIX_CALL( glGetFragmentLightivSGIX, &args ))) WARN( "glGetFragmentLightivSGIX returned %#x\n", status );
+}
+
+static void WINAPI glGetFragmentMaterialfvSGIX( GLenum face, GLenum pname, GLfloat *params )
+{
+    struct glGetFragmentMaterialfvSGIX_params args = { .face = face, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "face %d, pname %d, params %p\n", face, pname, params );
+    if ((status = UNIX_CALL( glGetFragmentMaterialfvSGIX, &args ))) WARN( "glGetFragmentMaterialfvSGIX returned %#x\n", status );
+}
+
+static void WINAPI glGetFragmentMaterialivSGIX( GLenum face, GLenum pname, GLint *params )
+{
+    struct glGetFragmentMaterialivSGIX_params args = { .face = face, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "face %d, pname %d, params %p\n", face, pname, params );
+    if ((status = UNIX_CALL( glGetFragmentMaterialivSGIX, &args ))) WARN( "glGetFragmentMaterialivSGIX returned %#x\n", status );
+}
+
+static void WINAPI glGetFramebufferAttachmentParameteriv( GLenum target, GLenum attachment, GLenum pname, GLint *params )
+{
+    struct glGetFramebufferAttachmentParameteriv_params args = { .target = target, .attachment = attachment, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, pname %d, params %p\n", target, attachment, pname, params );
+    if ((status = UNIX_CALL( glGetFramebufferAttachmentParameteriv, &args ))) WARN( "glGetFramebufferAttachmentParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetFramebufferAttachmentParameterivEXT( GLenum target, GLenum attachment, GLenum pname, GLint *params )
+{
+    struct glGetFramebufferAttachmentParameterivEXT_params args = { .target = target, .attachment = attachment, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, attachment %d, pname %d, params %p\n", target, attachment, pname, params );
+    if ((status = UNIX_CALL( glGetFramebufferAttachmentParameterivEXT, &args ))) WARN( "glGetFramebufferAttachmentParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetFramebufferParameterfvAMD( GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values )
+{
+    struct glGetFramebufferParameterfvAMD_params args = { .target = target, .pname = pname, .numsamples = numsamples, .pixelindex = pixelindex, .size = size, .values = values, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, numsamples %d, pixelindex %d, size %d, values %p\n", target, pname, numsamples, pixelindex, size, values );
+    if ((status = UNIX_CALL( glGetFramebufferParameterfvAMD, &args ))) WARN( "glGetFramebufferParameterfvAMD returned %#x\n", status );
+}
+
+static void WINAPI glGetFramebufferParameteriv( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetFramebufferParameteriv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetFramebufferParameteriv, &args ))) WARN( "glGetFramebufferParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetFramebufferParameterivEXT( GLuint framebuffer, GLenum pname, GLint *params )
+{
+    struct glGetFramebufferParameterivEXT_params args = { .framebuffer = framebuffer, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, pname %d, params %p\n", framebuffer, pname, params );
+    if ((status = UNIX_CALL( glGetFramebufferParameterivEXT, &args ))) WARN( "glGetFramebufferParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetFramebufferParameterivMESA( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetFramebufferParameterivMESA_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetFramebufferParameterivMESA, &args ))) WARN( "glGetFramebufferParameterivMESA returned %#x\n", status );
+}
+
+static GLenum WINAPI glGetGraphicsResetStatus(void)
+{
+    struct glGetGraphicsResetStatus_params args = {0};
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glGetGraphicsResetStatus, &args ))) WARN( "glGetGraphicsResetStatus returned %#x\n", status );
+    return args.ret;
+}
+
+static GLenum WINAPI glGetGraphicsResetStatusARB(void)
+{
+    struct glGetGraphicsResetStatusARB_params args = {0};
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glGetGraphicsResetStatusARB, &args ))) WARN( "glGetGraphicsResetStatusARB returned %#x\n", status );
+    return args.ret;
+}
+
+static GLhandleARB WINAPI glGetHandleARB( GLenum pname )
+{
+    struct glGetHandleARB_params args = { .pname = pname, };
+    NTSTATUS status;
+    TRACE( "pname %d\n", pname );
+    if ((status = UNIX_CALL( glGetHandleARB, &args ))) WARN( "glGetHandleARB returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetHistogram( GLenum target, GLboolean reset, GLenum format, GLenum type, void *values )
+{
+    struct glGetHistogram_params args = { .target = target, .reset = reset, .format = format, .type = type, .values = values, };
+    NTSTATUS status;
+    TRACE( "target %d, reset %d, format %d, type %d, values %p\n", target, reset, format, type, values );
+    if ((status = UNIX_CALL( glGetHistogram, &args ))) WARN( "glGetHistogram returned %#x\n", status );
+}
+
+static void WINAPI glGetHistogramEXT( GLenum target, GLboolean reset, GLenum format, GLenum type, void *values )
+{
+    struct glGetHistogramEXT_params args = { .target = target, .reset = reset, .format = format, .type = type, .values = values, };
+    NTSTATUS status;
+    TRACE( "target %d, reset %d, format %d, type %d, values %p\n", target, reset, format, type, values );
+    if ((status = UNIX_CALL( glGetHistogramEXT, &args ))) WARN( "glGetHistogramEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetHistogramParameterfv( GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetHistogramParameterfv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetHistogramParameterfv, &args ))) WARN( "glGetHistogramParameterfv returned %#x\n", status );
+}
+
+static void WINAPI glGetHistogramParameterfvEXT( GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetHistogramParameterfvEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetHistogramParameterfvEXT, &args ))) WARN( "glGetHistogramParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetHistogramParameteriv( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetHistogramParameteriv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetHistogramParameteriv, &args ))) WARN( "glGetHistogramParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetHistogramParameterivEXT( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetHistogramParameterivEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetHistogramParameterivEXT, &args ))) WARN( "glGetHistogramParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetHistogramParameterxvOES( GLenum target, GLenum pname, GLfixed *params )
+{
+    struct glGetHistogramParameterxvOES_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetHistogramParameterxvOES, &args ))) WARN( "glGetHistogramParameterxvOES returned %#x\n", status );
+}
+
+static GLuint64 WINAPI glGetImageHandleARB( GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format )
+{
+    struct glGetImageHandleARB_params args = { .texture = texture, .level = level, .layered = layered, .layer = layer, .format = format, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, layered %d, layer %d, format %d\n", texture, level, layered, layer, format );
+    if ((status = UNIX_CALL( glGetImageHandleARB, &args ))) WARN( "glGetImageHandleARB returned %#x\n", status );
+    return args.ret;
+}
+
+static GLuint64 WINAPI glGetImageHandleNV( GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format )
+{
+    struct glGetImageHandleNV_params args = { .texture = texture, .level = level, .layered = layered, .layer = layer, .format = format, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, layered %d, layer %d, format %d\n", texture, level, layered, layer, format );
+    if ((status = UNIX_CALL( glGetImageHandleNV, &args ))) WARN( "glGetImageHandleNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetImageTransformParameterfvHP( GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetImageTransformParameterfvHP_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetImageTransformParameterfvHP, &args ))) WARN( "glGetImageTransformParameterfvHP returned %#x\n", status );
+}
+
+static void WINAPI glGetImageTransformParameterivHP( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetImageTransformParameterivHP_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetImageTransformParameterivHP, &args ))) WARN( "glGetImageTransformParameterivHP returned %#x\n", status );
+}
+
+static void WINAPI glGetInfoLogARB( GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog )
+{
+    struct glGetInfoLogARB_params args = { .obj = obj, .maxLength = maxLength, .length = length, .infoLog = infoLog, };
+    NTSTATUS status;
+    TRACE( "obj %d, maxLength %d, length %p, infoLog %p\n", obj, maxLength, length, infoLog );
+    if ((status = UNIX_CALL( glGetInfoLogARB, &args ))) WARN( "glGetInfoLogARB returned %#x\n", status );
+}
+
+static GLint WINAPI glGetInstrumentsSGIX(void)
+{
+    struct glGetInstrumentsSGIX_params args = {0};
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glGetInstrumentsSGIX, &args ))) WARN( "glGetInstrumentsSGIX returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetInteger64i_v( GLenum target, GLuint index, GLint64 *data )
+{
+    struct glGetInteger64i_v_params args = { .target = target, .index = index, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, data %p\n", target, index, data );
+    if ((status = UNIX_CALL( glGetInteger64i_v, &args ))) WARN( "glGetInteger64i_v returned %#x\n", status );
+}
+
+static void WINAPI glGetInteger64v( GLenum pname, GLint64 *data )
+{
+    struct glGetInteger64v_params args = { .pname = pname, .data = data, };
+    NTSTATUS status;
+    TRACE( "pname %d, data %p\n", pname, data );
+    if ((status = UNIX_CALL( glGetInteger64v, &args ))) WARN( "glGetInteger64v returned %#x\n", status );
+}
+
+static void WINAPI glGetIntegerIndexedvEXT( GLenum target, GLuint index, GLint *data )
+{
+    struct glGetIntegerIndexedvEXT_params args = { .target = target, .index = index, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, data %p\n", target, index, data );
+    if ((status = UNIX_CALL( glGetIntegerIndexedvEXT, &args ))) WARN( "glGetIntegerIndexedvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetIntegeri_v( GLenum target, GLuint index, GLint *data )
+{
+    struct glGetIntegeri_v_params args = { .target = target, .index = index, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, data %p\n", target, index, data );
+    if ((status = UNIX_CALL( glGetIntegeri_v, &args ))) WARN( "glGetIntegeri_v returned %#x\n", status );
+}
+
+static void WINAPI glGetIntegerui64i_vNV( GLenum value, GLuint index, GLuint64EXT *result )
+{
+    struct glGetIntegerui64i_vNV_params args = { .value = value, .index = index, .result = result, };
+    NTSTATUS status;
+    TRACE( "value %d, index %d, result %p\n", value, index, result );
+    if ((status = UNIX_CALL( glGetIntegerui64i_vNV, &args ))) WARN( "glGetIntegerui64i_vNV returned %#x\n", status );
+}
+
+static void WINAPI glGetIntegerui64vNV( GLenum value, GLuint64EXT *result )
+{
+    struct glGetIntegerui64vNV_params args = { .value = value, .result = result, };
+    NTSTATUS status;
+    TRACE( "value %d, result %p\n", value, result );
+    if ((status = UNIX_CALL( glGetIntegerui64vNV, &args ))) WARN( "glGetIntegerui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glGetInternalformatSampleivNV( GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params )
+{
+    struct glGetInternalformatSampleivNV_params args = { .target = target, .internalformat = internalformat, .samples = samples, .pname = pname, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, samples %d, pname %d, count %d, params %p\n", target, internalformat, samples, pname, count, params );
+    if ((status = UNIX_CALL( glGetInternalformatSampleivNV, &args ))) WARN( "glGetInternalformatSampleivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetInternalformati64v( GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 *params )
+{
+    struct glGetInternalformati64v_params args = { .target = target, .internalformat = internalformat, .pname = pname, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, pname %d, count %d, params %p\n", target, internalformat, pname, count, params );
+    if ((status = UNIX_CALL( glGetInternalformati64v, &args ))) WARN( "glGetInternalformati64v returned %#x\n", status );
+}
+
+static void WINAPI glGetInternalformativ( GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params )
+{
+    struct glGetInternalformativ_params args = { .target = target, .internalformat = internalformat, .pname = pname, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, pname %d, count %d, params %p\n", target, internalformat, pname, count, params );
+    if ((status = UNIX_CALL( glGetInternalformativ, &args ))) WARN( "glGetInternalformativ returned %#x\n", status );
+}
+
+static void WINAPI glGetInvariantBooleanvEXT( GLuint id, GLenum value, GLboolean *data )
+{
+    struct glGetInvariantBooleanvEXT_params args = { .id = id, .value = value, .data = data, };
+    NTSTATUS status;
+    TRACE( "id %d, value %d, data %p\n", id, value, data );
+    if ((status = UNIX_CALL( glGetInvariantBooleanvEXT, &args ))) WARN( "glGetInvariantBooleanvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetInvariantFloatvEXT( GLuint id, GLenum value, GLfloat *data )
+{
+    struct glGetInvariantFloatvEXT_params args = { .id = id, .value = value, .data = data, };
+    NTSTATUS status;
+    TRACE( "id %d, value %d, data %p\n", id, value, data );
+    if ((status = UNIX_CALL( glGetInvariantFloatvEXT, &args ))) WARN( "glGetInvariantFloatvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetInvariantIntegervEXT( GLuint id, GLenum value, GLint *data )
+{
+    struct glGetInvariantIntegervEXT_params args = { .id = id, .value = value, .data = data, };
+    NTSTATUS status;
+    TRACE( "id %d, value %d, data %p\n", id, value, data );
+    if ((status = UNIX_CALL( glGetInvariantIntegervEXT, &args ))) WARN( "glGetInvariantIntegervEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetLightxOES( GLenum light, GLenum pname, GLfixed *params )
+{
+    struct glGetLightxOES_params args = { .light = light, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "light %d, pname %d, params %p\n", light, pname, params );
+    if ((status = UNIX_CALL( glGetLightxOES, &args ))) WARN( "glGetLightxOES returned %#x\n", status );
+}
+
+static void WINAPI glGetListParameterfvSGIX( GLuint list, GLenum pname, GLfloat *params )
+{
+    struct glGetListParameterfvSGIX_params args = { .list = list, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "list %d, pname %d, params %p\n", list, pname, params );
+    if ((status = UNIX_CALL( glGetListParameterfvSGIX, &args ))) WARN( "glGetListParameterfvSGIX returned %#x\n", status );
+}
+
+static void WINAPI glGetListParameterivSGIX( GLuint list, GLenum pname, GLint *params )
+{
+    struct glGetListParameterivSGIX_params args = { .list = list, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "list %d, pname %d, params %p\n", list, pname, params );
+    if ((status = UNIX_CALL( glGetListParameterivSGIX, &args ))) WARN( "glGetListParameterivSGIX returned %#x\n", status );
+}
+
+static void WINAPI glGetLocalConstantBooleanvEXT( GLuint id, GLenum value, GLboolean *data )
+{
+    struct glGetLocalConstantBooleanvEXT_params args = { .id = id, .value = value, .data = data, };
+    NTSTATUS status;
+    TRACE( "id %d, value %d, data %p\n", id, value, data );
+    if ((status = UNIX_CALL( glGetLocalConstantBooleanvEXT, &args ))) WARN( "glGetLocalConstantBooleanvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetLocalConstantFloatvEXT( GLuint id, GLenum value, GLfloat *data )
+{
+    struct glGetLocalConstantFloatvEXT_params args = { .id = id, .value = value, .data = data, };
+    NTSTATUS status;
+    TRACE( "id %d, value %d, data %p\n", id, value, data );
+    if ((status = UNIX_CALL( glGetLocalConstantFloatvEXT, &args ))) WARN( "glGetLocalConstantFloatvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetLocalConstantIntegervEXT( GLuint id, GLenum value, GLint *data )
+{
+    struct glGetLocalConstantIntegervEXT_params args = { .id = id, .value = value, .data = data, };
+    NTSTATUS status;
+    TRACE( "id %d, value %d, data %p\n", id, value, data );
+    if ((status = UNIX_CALL( glGetLocalConstantIntegervEXT, &args ))) WARN( "glGetLocalConstantIntegervEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMapAttribParameterfvNV( GLenum target, GLuint index, GLenum pname, GLfloat *params )
+{
+    struct glGetMapAttribParameterfvNV_params args = { .target = target, .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, pname %d, params %p\n", target, index, pname, params );
+    if ((status = UNIX_CALL( glGetMapAttribParameterfvNV, &args ))) WARN( "glGetMapAttribParameterfvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetMapAttribParameterivNV( GLenum target, GLuint index, GLenum pname, GLint *params )
+{
+    struct glGetMapAttribParameterivNV_params args = { .target = target, .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, pname %d, params %p\n", target, index, pname, params );
+    if ((status = UNIX_CALL( glGetMapAttribParameterivNV, &args ))) WARN( "glGetMapAttribParameterivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetMapControlPointsNV( GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points )
+{
+    struct glGetMapControlPointsNV_params args = { .target = target, .index = index, .type = type, .ustride = ustride, .vstride = vstride, .packed = packed, .points = points, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, type %d, ustride %d, vstride %d, packed %d, points %p\n", target, index, type, ustride, vstride, packed, points );
+    if ((status = UNIX_CALL( glGetMapControlPointsNV, &args ))) WARN( "glGetMapControlPointsNV returned %#x\n", status );
+}
+
+static void WINAPI glGetMapParameterfvNV( GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetMapParameterfvNV_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetMapParameterfvNV, &args ))) WARN( "glGetMapParameterfvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetMapParameterivNV( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetMapParameterivNV_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetMapParameterivNV, &args ))) WARN( "glGetMapParameterivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetMapxvOES( GLenum target, GLenum query, GLfixed *v )
+{
+    struct glGetMapxvOES_params args = { .target = target, .query = query, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, query %d, v %p\n", target, query, v );
+    if ((status = UNIX_CALL( glGetMapxvOES, &args ))) WARN( "glGetMapxvOES returned %#x\n", status );
+}
+
+static void WINAPI glGetMaterialxOES( GLenum face, GLenum pname, GLfixed param )
+{
+    struct glGetMaterialxOES_params args = { .face = face, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "face %d, pname %d, param %d\n", face, pname, param );
+    if ((status = UNIX_CALL( glGetMaterialxOES, &args ))) WARN( "glGetMaterialxOES returned %#x\n", status );
+}
+
+static void WINAPI glGetMemoryObjectDetachedResourcesuivNV( GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params )
+{
+    struct glGetMemoryObjectDetachedResourcesuivNV_params args = { .memory = memory, .pname = pname, .first = first, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "memory %d, pname %d, first %d, count %d, params %p\n", memory, pname, first, count, params );
+    if ((status = UNIX_CALL( glGetMemoryObjectDetachedResourcesuivNV, &args ))) WARN( "glGetMemoryObjectDetachedResourcesuivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetMemoryObjectParameterivEXT( GLuint memoryObject, GLenum pname, GLint *params )
+{
+    struct glGetMemoryObjectParameterivEXT_params args = { .memoryObject = memoryObject, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "memoryObject %d, pname %d, params %p\n", memoryObject, pname, params );
+    if ((status = UNIX_CALL( glGetMemoryObjectParameterivEXT, &args ))) WARN( "glGetMemoryObjectParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMinmax( GLenum target, GLboolean reset, GLenum format, GLenum type, void *values )
+{
+    struct glGetMinmax_params args = { .target = target, .reset = reset, .format = format, .type = type, .values = values, };
+    NTSTATUS status;
+    TRACE( "target %d, reset %d, format %d, type %d, values %p\n", target, reset, format, type, values );
+    if ((status = UNIX_CALL( glGetMinmax, &args ))) WARN( "glGetMinmax returned %#x\n", status );
+}
+
+static void WINAPI glGetMinmaxEXT( GLenum target, GLboolean reset, GLenum format, GLenum type, void *values )
+{
+    struct glGetMinmaxEXT_params args = { .target = target, .reset = reset, .format = format, .type = type, .values = values, };
+    NTSTATUS status;
+    TRACE( "target %d, reset %d, format %d, type %d, values %p\n", target, reset, format, type, values );
+    if ((status = UNIX_CALL( glGetMinmaxEXT, &args ))) WARN( "glGetMinmaxEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMinmaxParameterfv( GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetMinmaxParameterfv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetMinmaxParameterfv, &args ))) WARN( "glGetMinmaxParameterfv returned %#x\n", status );
+}
+
+static void WINAPI glGetMinmaxParameterfvEXT( GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetMinmaxParameterfvEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetMinmaxParameterfvEXT, &args ))) WARN( "glGetMinmaxParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMinmaxParameteriv( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetMinmaxParameteriv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetMinmaxParameteriv, &args ))) WARN( "glGetMinmaxParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetMinmaxParameterivEXT( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetMinmaxParameterivEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetMinmaxParameterivEXT, &args ))) WARN( "glGetMinmaxParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMultiTexEnvfvEXT( GLenum texunit, GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetMultiTexEnvfvEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, params %p\n", texunit, target, pname, params );
+    if ((status = UNIX_CALL( glGetMultiTexEnvfvEXT, &args ))) WARN( "glGetMultiTexEnvfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMultiTexEnvivEXT( GLenum texunit, GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetMultiTexEnvivEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, params %p\n", texunit, target, pname, params );
+    if ((status = UNIX_CALL( glGetMultiTexEnvivEXT, &args ))) WARN( "glGetMultiTexEnvivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMultiTexGendvEXT( GLenum texunit, GLenum coord, GLenum pname, GLdouble *params )
+{
+    struct glGetMultiTexGendvEXT_params args = { .texunit = texunit, .coord = coord, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, coord %d, pname %d, params %p\n", texunit, coord, pname, params );
+    if ((status = UNIX_CALL( glGetMultiTexGendvEXT, &args ))) WARN( "glGetMultiTexGendvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMultiTexGenfvEXT( GLenum texunit, GLenum coord, GLenum pname, GLfloat *params )
+{
+    struct glGetMultiTexGenfvEXT_params args = { .texunit = texunit, .coord = coord, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, coord %d, pname %d, params %p\n", texunit, coord, pname, params );
+    if ((status = UNIX_CALL( glGetMultiTexGenfvEXT, &args ))) WARN( "glGetMultiTexGenfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMultiTexGenivEXT( GLenum texunit, GLenum coord, GLenum pname, GLint *params )
+{
+    struct glGetMultiTexGenivEXT_params args = { .texunit = texunit, .coord = coord, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, coord %d, pname %d, params %p\n", texunit, coord, pname, params );
+    if ((status = UNIX_CALL( glGetMultiTexGenivEXT, &args ))) WARN( "glGetMultiTexGenivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMultiTexImageEXT( GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels )
+{
+    struct glGetMultiTexImageEXT_params args = { .texunit = texunit, .target = target, .level = level, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, format %d, type %d, pixels %p\n", texunit, target, level, format, type, pixels );
+    if ((status = UNIX_CALL( glGetMultiTexImageEXT, &args ))) WARN( "glGetMultiTexImageEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMultiTexLevelParameterfvEXT( GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params )
+{
+    struct glGetMultiTexLevelParameterfvEXT_params args = { .texunit = texunit, .target = target, .level = level, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, pname %d, params %p\n", texunit, target, level, pname, params );
+    if ((status = UNIX_CALL( glGetMultiTexLevelParameterfvEXT, &args ))) WARN( "glGetMultiTexLevelParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMultiTexLevelParameterivEXT( GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params )
+{
+    struct glGetMultiTexLevelParameterivEXT_params args = { .texunit = texunit, .target = target, .level = level, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, pname %d, params %p\n", texunit, target, level, pname, params );
+    if ((status = UNIX_CALL( glGetMultiTexLevelParameterivEXT, &args ))) WARN( "glGetMultiTexLevelParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMultiTexParameterIivEXT( GLenum texunit, GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetMultiTexParameterIivEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, params %p\n", texunit, target, pname, params );
+    if ((status = UNIX_CALL( glGetMultiTexParameterIivEXT, &args ))) WARN( "glGetMultiTexParameterIivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMultiTexParameterIuivEXT( GLenum texunit, GLenum target, GLenum pname, GLuint *params )
+{
+    struct glGetMultiTexParameterIuivEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, params %p\n", texunit, target, pname, params );
+    if ((status = UNIX_CALL( glGetMultiTexParameterIuivEXT, &args ))) WARN( "glGetMultiTexParameterIuivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMultiTexParameterfvEXT( GLenum texunit, GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetMultiTexParameterfvEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, params %p\n", texunit, target, pname, params );
+    if ((status = UNIX_CALL( glGetMultiTexParameterfvEXT, &args ))) WARN( "glGetMultiTexParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMultiTexParameterivEXT( GLenum texunit, GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetMultiTexParameterivEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, params %p\n", texunit, target, pname, params );
+    if ((status = UNIX_CALL( glGetMultiTexParameterivEXT, &args ))) WARN( "glGetMultiTexParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetMultisamplefv( GLenum pname, GLuint index, GLfloat *val )
+{
+    struct glGetMultisamplefv_params args = { .pname = pname, .index = index, .val = val, };
+    NTSTATUS status;
+    TRACE( "pname %d, index %d, val %p\n", pname, index, val );
+    if ((status = UNIX_CALL( glGetMultisamplefv, &args ))) WARN( "glGetMultisamplefv returned %#x\n", status );
+}
+
+static void WINAPI glGetMultisamplefvNV( GLenum pname, GLuint index, GLfloat *val )
+{
+    struct glGetMultisamplefvNV_params args = { .pname = pname, .index = index, .val = val, };
+    NTSTATUS status;
+    TRACE( "pname %d, index %d, val %p\n", pname, index, val );
+    if ((status = UNIX_CALL( glGetMultisamplefvNV, &args ))) WARN( "glGetMultisamplefvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedBufferParameteri64v( GLuint buffer, GLenum pname, GLint64 *params )
+{
+    struct glGetNamedBufferParameteri64v_params args = { .buffer = buffer, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "buffer %d, pname %d, params %p\n", buffer, pname, params );
+    if ((status = UNIX_CALL( glGetNamedBufferParameteri64v, &args ))) WARN( "glGetNamedBufferParameteri64v returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedBufferParameteriv( GLuint buffer, GLenum pname, GLint *params )
+{
+    struct glGetNamedBufferParameteriv_params args = { .buffer = buffer, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "buffer %d, pname %d, params %p\n", buffer, pname, params );
+    if ((status = UNIX_CALL( glGetNamedBufferParameteriv, &args ))) WARN( "glGetNamedBufferParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedBufferParameterivEXT( GLuint buffer, GLenum pname, GLint *params )
+{
+    struct glGetNamedBufferParameterivEXT_params args = { .buffer = buffer, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "buffer %d, pname %d, params %p\n", buffer, pname, params );
+    if ((status = UNIX_CALL( glGetNamedBufferParameterivEXT, &args ))) WARN( "glGetNamedBufferParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedBufferParameterui64vNV( GLuint buffer, GLenum pname, GLuint64EXT *params )
+{
+    struct glGetNamedBufferParameterui64vNV_params args = { .buffer = buffer, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "buffer %d, pname %d, params %p\n", buffer, pname, params );
+    if ((status = UNIX_CALL( glGetNamedBufferParameterui64vNV, &args ))) WARN( "glGetNamedBufferParameterui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedBufferPointerv( GLuint buffer, GLenum pname, void **params )
+{
+    struct glGetNamedBufferPointerv_params args = { .buffer = buffer, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "buffer %d, pname %d, params %p\n", buffer, pname, params );
+    if ((status = UNIX_CALL( glGetNamedBufferPointerv, &args ))) WARN( "glGetNamedBufferPointerv returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedBufferPointervEXT( GLuint buffer, GLenum pname, void **params )
+{
+    struct glGetNamedBufferPointervEXT_params args = { .buffer = buffer, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "buffer %d, pname %d, params %p\n", buffer, pname, params );
+    if ((status = UNIX_CALL( glGetNamedBufferPointervEXT, &args ))) WARN( "glGetNamedBufferPointervEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedBufferSubData( GLuint buffer, GLintptr offset, GLsizeiptr size, void *data )
+{
+    struct glGetNamedBufferSubData_params args = { .buffer = buffer, .offset = offset, .size = size, .data = data, };
+    NTSTATUS status;
+    TRACE( "buffer %d, offset %ld, size %ld, data %p\n", buffer, offset, size, data );
+    if ((status = UNIX_CALL( glGetNamedBufferSubData, &args ))) WARN( "glGetNamedBufferSubData returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedBufferSubDataEXT( GLuint buffer, GLintptr offset, GLsizeiptr size, void *data )
+{
+    struct glGetNamedBufferSubDataEXT_params args = { .buffer = buffer, .offset = offset, .size = size, .data = data, };
+    NTSTATUS status;
+    TRACE( "buffer %d, offset %ld, size %ld, data %p\n", buffer, offset, size, data );
+    if ((status = UNIX_CALL( glGetNamedBufferSubDataEXT, &args ))) WARN( "glGetNamedBufferSubDataEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedFramebufferAttachmentParameteriv( GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params )
+{
+    struct glGetNamedFramebufferAttachmentParameteriv_params args = { .framebuffer = framebuffer, .attachment = attachment, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, attachment %d, pname %d, params %p\n", framebuffer, attachment, pname, params );
+    if ((status = UNIX_CALL( glGetNamedFramebufferAttachmentParameteriv, &args ))) WARN( "glGetNamedFramebufferAttachmentParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedFramebufferAttachmentParameterivEXT( GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params )
+{
+    struct glGetNamedFramebufferAttachmentParameterivEXT_params args = { .framebuffer = framebuffer, .attachment = attachment, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, attachment %d, pname %d, params %p\n", framebuffer, attachment, pname, params );
+    if ((status = UNIX_CALL( glGetNamedFramebufferAttachmentParameterivEXT, &args ))) WARN( "glGetNamedFramebufferAttachmentParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedFramebufferParameterfvAMD( GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values )
+{
+    struct glGetNamedFramebufferParameterfvAMD_params args = { .framebuffer = framebuffer, .pname = pname, .numsamples = numsamples, .pixelindex = pixelindex, .size = size, .values = values, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, pname %d, numsamples %d, pixelindex %d, size %d, values %p\n", framebuffer, pname, numsamples, pixelindex, size, values );
+    if ((status = UNIX_CALL( glGetNamedFramebufferParameterfvAMD, &args ))) WARN( "glGetNamedFramebufferParameterfvAMD returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedFramebufferParameteriv( GLuint framebuffer, GLenum pname, GLint *param )
+{
+    struct glGetNamedFramebufferParameteriv_params args = { .framebuffer = framebuffer, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, pname %d, param %p\n", framebuffer, pname, param );
+    if ((status = UNIX_CALL( glGetNamedFramebufferParameteriv, &args ))) WARN( "glGetNamedFramebufferParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedFramebufferParameterivEXT( GLuint framebuffer, GLenum pname, GLint *params )
+{
+    struct glGetNamedFramebufferParameterivEXT_params args = { .framebuffer = framebuffer, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, pname %d, params %p\n", framebuffer, pname, params );
+    if ((status = UNIX_CALL( glGetNamedFramebufferParameterivEXT, &args ))) WARN( "glGetNamedFramebufferParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedProgramLocalParameterIivEXT( GLuint program, GLenum target, GLuint index, GLint *params )
+{
+    struct glGetNamedProgramLocalParameterIivEXT_params args = { .program = program, .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, params %p\n", program, target, index, params );
+    if ((status = UNIX_CALL( glGetNamedProgramLocalParameterIivEXT, &args ))) WARN( "glGetNamedProgramLocalParameterIivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedProgramLocalParameterIuivEXT( GLuint program, GLenum target, GLuint index, GLuint *params )
+{
+    struct glGetNamedProgramLocalParameterIuivEXT_params args = { .program = program, .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, params %p\n", program, target, index, params );
+    if ((status = UNIX_CALL( glGetNamedProgramLocalParameterIuivEXT, &args ))) WARN( "glGetNamedProgramLocalParameterIuivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedProgramLocalParameterdvEXT( GLuint program, GLenum target, GLuint index, GLdouble *params )
+{
+    struct glGetNamedProgramLocalParameterdvEXT_params args = { .program = program, .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, params %p\n", program, target, index, params );
+    if ((status = UNIX_CALL( glGetNamedProgramLocalParameterdvEXT, &args ))) WARN( "glGetNamedProgramLocalParameterdvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedProgramLocalParameterfvEXT( GLuint program, GLenum target, GLuint index, GLfloat *params )
+{
+    struct glGetNamedProgramLocalParameterfvEXT_params args = { .program = program, .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, params %p\n", program, target, index, params );
+    if ((status = UNIX_CALL( glGetNamedProgramLocalParameterfvEXT, &args ))) WARN( "glGetNamedProgramLocalParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedProgramStringEXT( GLuint program, GLenum target, GLenum pname, void *string )
+{
+    struct glGetNamedProgramStringEXT_params args = { .program = program, .target = target, .pname = pname, .string = string, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, pname %d, string %p\n", program, target, pname, string );
+    if ((status = UNIX_CALL( glGetNamedProgramStringEXT, &args ))) WARN( "glGetNamedProgramStringEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedProgramivEXT( GLuint program, GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetNamedProgramivEXT_params args = { .program = program, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, pname %d, params %p\n", program, target, pname, params );
+    if ((status = UNIX_CALL( glGetNamedProgramivEXT, &args ))) WARN( "glGetNamedProgramivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedRenderbufferParameteriv( GLuint renderbuffer, GLenum pname, GLint *params )
+{
+    struct glGetNamedRenderbufferParameteriv_params args = { .renderbuffer = renderbuffer, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "renderbuffer %d, pname %d, params %p\n", renderbuffer, pname, params );
+    if ((status = UNIX_CALL( glGetNamedRenderbufferParameteriv, &args ))) WARN( "glGetNamedRenderbufferParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedRenderbufferParameterivEXT( GLuint renderbuffer, GLenum pname, GLint *params )
+{
+    struct glGetNamedRenderbufferParameterivEXT_params args = { .renderbuffer = renderbuffer, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "renderbuffer %d, pname %d, params %p\n", renderbuffer, pname, params );
+    if ((status = UNIX_CALL( glGetNamedRenderbufferParameterivEXT, &args ))) WARN( "glGetNamedRenderbufferParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedStringARB( GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string )
+{
+    struct glGetNamedStringARB_params args = { .namelen = namelen, .name = name, .bufSize = bufSize, .stringlen = stringlen, .string = string, };
+    NTSTATUS status;
+    TRACE( "namelen %d, name %p, bufSize %d, stringlen %p, string %p\n", namelen, name, bufSize, stringlen, string );
+    if ((status = UNIX_CALL( glGetNamedStringARB, &args ))) WARN( "glGetNamedStringARB returned %#x\n", status );
+}
+
+static void WINAPI glGetNamedStringivARB( GLint namelen, const GLchar *name, GLenum pname, GLint *params )
+{
+    struct glGetNamedStringivARB_params args = { .namelen = namelen, .name = name, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "namelen %d, name %p, pname %d, params %p\n", namelen, name, pname, params );
+    if ((status = UNIX_CALL( glGetNamedStringivARB, &args ))) WARN( "glGetNamedStringivARB returned %#x\n", status );
+}
+
+static void WINAPI glGetNextPerfQueryIdINTEL( GLuint queryId, GLuint *nextQueryId )
+{
+    struct glGetNextPerfQueryIdINTEL_params args = { .queryId = queryId, .nextQueryId = nextQueryId, };
+    NTSTATUS status;
+    TRACE( "queryId %d, nextQueryId %p\n", queryId, nextQueryId );
+    if ((status = UNIX_CALL( glGetNextPerfQueryIdINTEL, &args ))) WARN( "glGetNextPerfQueryIdINTEL returned %#x\n", status );
+}
+
+static void WINAPI glGetObjectBufferfvATI( GLuint buffer, GLenum pname, GLfloat *params )
+{
+    struct glGetObjectBufferfvATI_params args = { .buffer = buffer, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "buffer %d, pname %d, params %p\n", buffer, pname, params );
+    if ((status = UNIX_CALL( glGetObjectBufferfvATI, &args ))) WARN( "glGetObjectBufferfvATI returned %#x\n", status );
+}
+
+static void WINAPI glGetObjectBufferivATI( GLuint buffer, GLenum pname, GLint *params )
+{
+    struct glGetObjectBufferivATI_params args = { .buffer = buffer, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "buffer %d, pname %d, params %p\n", buffer, pname, params );
+    if ((status = UNIX_CALL( glGetObjectBufferivATI, &args ))) WARN( "glGetObjectBufferivATI returned %#x\n", status );
+}
+
+static void WINAPI glGetObjectLabel( GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label )
+{
+    struct glGetObjectLabel_params args = { .identifier = identifier, .name = name, .bufSize = bufSize, .length = length, .label = label, };
+    NTSTATUS status;
+    TRACE( "identifier %d, name %d, bufSize %d, length %p, label %p\n", identifier, name, bufSize, length, label );
+    if ((status = UNIX_CALL( glGetObjectLabel, &args ))) WARN( "glGetObjectLabel returned %#x\n", status );
+}
+
+static void WINAPI glGetObjectLabelEXT( GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label )
+{
+    struct glGetObjectLabelEXT_params args = { .type = type, .object = object, .bufSize = bufSize, .length = length, .label = label, };
+    NTSTATUS status;
+    TRACE( "type %d, object %d, bufSize %d, length %p, label %p\n", type, object, bufSize, length, label );
+    if ((status = UNIX_CALL( glGetObjectLabelEXT, &args ))) WARN( "glGetObjectLabelEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetObjectParameterfvARB( GLhandleARB obj, GLenum pname, GLfloat *params )
+{
+    struct glGetObjectParameterfvARB_params args = { .obj = obj, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "obj %d, pname %d, params %p\n", obj, pname, params );
+    if ((status = UNIX_CALL( glGetObjectParameterfvARB, &args ))) WARN( "glGetObjectParameterfvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetObjectParameterivAPPLE( GLenum objectType, GLuint name, GLenum pname, GLint *params )
+{
+    struct glGetObjectParameterivAPPLE_params args = { .objectType = objectType, .name = name, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "objectType %d, name %d, pname %d, params %p\n", objectType, name, pname, params );
+    if ((status = UNIX_CALL( glGetObjectParameterivAPPLE, &args ))) WARN( "glGetObjectParameterivAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glGetObjectParameterivARB( GLhandleARB obj, GLenum pname, GLint *params )
+{
+    struct glGetObjectParameterivARB_params args = { .obj = obj, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "obj %d, pname %d, params %p\n", obj, pname, params );
+    if ((status = UNIX_CALL( glGetObjectParameterivARB, &args ))) WARN( "glGetObjectParameterivARB returned %#x\n", status );
+}
+
+static void WINAPI glGetObjectPtrLabel( const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label )
+{
+    struct glGetObjectPtrLabel_params args = { .ptr = ptr, .bufSize = bufSize, .length = length, .label = label, };
+    NTSTATUS status;
+    TRACE( "ptr %p, bufSize %d, length %p, label %p\n", ptr, bufSize, length, label );
+    if ((status = UNIX_CALL( glGetObjectPtrLabel, &args ))) WARN( "glGetObjectPtrLabel returned %#x\n", status );
+}
+
+static void WINAPI glGetOcclusionQueryivNV( GLuint id, GLenum pname, GLint *params )
+{
+    struct glGetOcclusionQueryivNV_params args = { .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, params %p\n", id, pname, params );
+    if ((status = UNIX_CALL( glGetOcclusionQueryivNV, &args ))) WARN( "glGetOcclusionQueryivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetOcclusionQueryuivNV( GLuint id, GLenum pname, GLuint *params )
+{
+    struct glGetOcclusionQueryuivNV_params args = { .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, params %p\n", id, pname, params );
+    if ((status = UNIX_CALL( glGetOcclusionQueryuivNV, &args ))) WARN( "glGetOcclusionQueryuivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetPathColorGenfvNV( GLenum color, GLenum pname, GLfloat *value )
+{
+    struct glGetPathColorGenfvNV_params args = { .color = color, .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "color %d, pname %d, value %p\n", color, pname, value );
+    if ((status = UNIX_CALL( glGetPathColorGenfvNV, &args ))) WARN( "glGetPathColorGenfvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetPathColorGenivNV( GLenum color, GLenum pname, GLint *value )
+{
+    struct glGetPathColorGenivNV_params args = { .color = color, .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "color %d, pname %d, value %p\n", color, pname, value );
+    if ((status = UNIX_CALL( glGetPathColorGenivNV, &args ))) WARN( "glGetPathColorGenivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetPathCommandsNV( GLuint path, GLubyte *commands )
+{
+    struct glGetPathCommandsNV_params args = { .path = path, .commands = commands, };
+    NTSTATUS status;
+    TRACE( "path %d, commands %p\n", path, commands );
+    if ((status = UNIX_CALL( glGetPathCommandsNV, &args ))) WARN( "glGetPathCommandsNV returned %#x\n", status );
+}
+
+static void WINAPI glGetPathCoordsNV( GLuint path, GLfloat *coords )
+{
+    struct glGetPathCoordsNV_params args = { .path = path, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "path %d, coords %p\n", path, coords );
+    if ((status = UNIX_CALL( glGetPathCoordsNV, &args ))) WARN( "glGetPathCoordsNV returned %#x\n", status );
+}
+
+static void WINAPI glGetPathDashArrayNV( GLuint path, GLfloat *dashArray )
+{
+    struct glGetPathDashArrayNV_params args = { .path = path, .dashArray = dashArray, };
+    NTSTATUS status;
+    TRACE( "path %d, dashArray %p\n", path, dashArray );
+    if ((status = UNIX_CALL( glGetPathDashArrayNV, &args ))) WARN( "glGetPathDashArrayNV returned %#x\n", status );
+}
+
+static GLfloat WINAPI glGetPathLengthNV( GLuint path, GLsizei startSegment, GLsizei numSegments )
+{
+    struct glGetPathLengthNV_params args = { .path = path, .startSegment = startSegment, .numSegments = numSegments, };
+    NTSTATUS status;
+    TRACE( "path %d, startSegment %d, numSegments %d\n", path, startSegment, numSegments );
+    if ((status = UNIX_CALL( glGetPathLengthNV, &args ))) WARN( "glGetPathLengthNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetPathMetricRangeNV( GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics )
+{
+    struct glGetPathMetricRangeNV_params args = { .metricQueryMask = metricQueryMask, .firstPathName = firstPathName, .numPaths = numPaths, .stride = stride, .metrics = metrics, };
+    NTSTATUS status;
+    TRACE( "metricQueryMask %d, firstPathName %d, numPaths %d, stride %d, metrics %p\n", metricQueryMask, firstPathName, numPaths, stride, metrics );
+    if ((status = UNIX_CALL( glGetPathMetricRangeNV, &args ))) WARN( "glGetPathMetricRangeNV returned %#x\n", status );
+}
+
+static void WINAPI glGetPathMetricsNV( GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics )
+{
+    struct glGetPathMetricsNV_params args = { .metricQueryMask = metricQueryMask, .numPaths = numPaths, .pathNameType = pathNameType, .paths = paths, .pathBase = pathBase, .stride = stride, .metrics = metrics, };
+    NTSTATUS status;
+    TRACE( "metricQueryMask %d, numPaths %d, pathNameType %d, paths %p, pathBase %d, stride %d, metrics %p\n", metricQueryMask, numPaths, pathNameType, paths, pathBase, stride, metrics );
+    if ((status = UNIX_CALL( glGetPathMetricsNV, &args ))) WARN( "glGetPathMetricsNV returned %#x\n", status );
+}
+
+static void WINAPI glGetPathParameterfvNV( GLuint path, GLenum pname, GLfloat *value )
+{
+    struct glGetPathParameterfvNV_params args = { .path = path, .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "path %d, pname %d, value %p\n", path, pname, value );
+    if ((status = UNIX_CALL( glGetPathParameterfvNV, &args ))) WARN( "glGetPathParameterfvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetPathParameterivNV( GLuint path, GLenum pname, GLint *value )
+{
+    struct glGetPathParameterivNV_params args = { .path = path, .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "path %d, pname %d, value %p\n", path, pname, value );
+    if ((status = UNIX_CALL( glGetPathParameterivNV, &args ))) WARN( "glGetPathParameterivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetPathSpacingNV( GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing )
+{
+    struct glGetPathSpacingNV_params args = { .pathListMode = pathListMode, .numPaths = numPaths, .pathNameType = pathNameType, .paths = paths, .pathBase = pathBase, .advanceScale = advanceScale, .kerningScale = kerningScale, .transformType = transformType, .returnedSpacing = returnedSpacing, };
+    NTSTATUS status;
+    TRACE( "pathListMode %d, numPaths %d, pathNameType %d, paths %p, pathBase %d, advanceScale %f, kerningScale %f, transformType %d, returnedSpacing %p\n", pathListMode, numPaths, pathNameType, paths, pathBase, advanceScale, kerningScale, transformType, returnedSpacing );
+    if ((status = UNIX_CALL( glGetPathSpacingNV, &args ))) WARN( "glGetPathSpacingNV returned %#x\n", status );
+}
+
+static void WINAPI glGetPathTexGenfvNV( GLenum texCoordSet, GLenum pname, GLfloat *value )
+{
+    struct glGetPathTexGenfvNV_params args = { .texCoordSet = texCoordSet, .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "texCoordSet %d, pname %d, value %p\n", texCoordSet, pname, value );
+    if ((status = UNIX_CALL( glGetPathTexGenfvNV, &args ))) WARN( "glGetPathTexGenfvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetPathTexGenivNV( GLenum texCoordSet, GLenum pname, GLint *value )
+{
+    struct glGetPathTexGenivNV_params args = { .texCoordSet = texCoordSet, .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "texCoordSet %d, pname %d, value %p\n", texCoordSet, pname, value );
+    if ((status = UNIX_CALL( glGetPathTexGenivNV, &args ))) WARN( "glGetPathTexGenivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetPerfCounterInfoINTEL( GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue )
+{
+    struct glGetPerfCounterInfoINTEL_params args = { .queryId = queryId, .counterId = counterId, .counterNameLength = counterNameLength, .counterName = counterName, .counterDescLength = counterDescLength, .counterDesc = counterDesc, .counterOffset = counterOffset, .counterDataSize = counterDataSize, .counterTypeEnum = counterTypeEnum, .counterDataTypeEnum = counterDataTypeEnum, .rawCounterMaxValue = rawCounterMaxValue, };
+    NTSTATUS status;
+    TRACE( "queryId %d, counterId %d, counterNameLength %d, counterName %p, counterDescLength %d, counterDesc %p, counterOffset %p, counterDataSize %p, counterTypeEnum %p, counterDataTypeEnum %p, rawCounterMaxValue %p\n", queryId, counterId, counterNameLength, counterName, counterDescLength, counterDesc, counterOffset, counterDataSize, counterTypeEnum, counterDataTypeEnum, rawCounterMaxValue );
+    if ((status = UNIX_CALL( glGetPerfCounterInfoINTEL, &args ))) WARN( "glGetPerfCounterInfoINTEL returned %#x\n", status );
+}
+
+static void WINAPI glGetPerfMonitorCounterDataAMD( GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten )
+{
+    struct glGetPerfMonitorCounterDataAMD_params args = { .monitor = monitor, .pname = pname, .dataSize = dataSize, .data = data, .bytesWritten = bytesWritten, };
+    NTSTATUS status;
+    TRACE( "monitor %d, pname %d, dataSize %d, data %p, bytesWritten %p\n", monitor, pname, dataSize, data, bytesWritten );
+    if ((status = UNIX_CALL( glGetPerfMonitorCounterDataAMD, &args ))) WARN( "glGetPerfMonitorCounterDataAMD returned %#x\n", status );
+}
+
+static void WINAPI glGetPerfMonitorCounterInfoAMD( GLuint group, GLuint counter, GLenum pname, void *data )
+{
+    struct glGetPerfMonitorCounterInfoAMD_params args = { .group = group, .counter = counter, .pname = pname, .data = data, };
+    NTSTATUS status;
+    TRACE( "group %d, counter %d, pname %d, data %p\n", group, counter, pname, data );
+    if ((status = UNIX_CALL( glGetPerfMonitorCounterInfoAMD, &args ))) WARN( "glGetPerfMonitorCounterInfoAMD returned %#x\n", status );
+}
+
+static void WINAPI glGetPerfMonitorCounterStringAMD( GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString )
+{
+    struct glGetPerfMonitorCounterStringAMD_params args = { .group = group, .counter = counter, .bufSize = bufSize, .length = length, .counterString = counterString, };
+    NTSTATUS status;
+    TRACE( "group %d, counter %d, bufSize %d, length %p, counterString %p\n", group, counter, bufSize, length, counterString );
+    if ((status = UNIX_CALL( glGetPerfMonitorCounterStringAMD, &args ))) WARN( "glGetPerfMonitorCounterStringAMD returned %#x\n", status );
+}
+
+static void WINAPI glGetPerfMonitorCountersAMD( GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters )
+{
+    struct glGetPerfMonitorCountersAMD_params args = { .group = group, .numCounters = numCounters, .maxActiveCounters = maxActiveCounters, .counterSize = counterSize, .counters = counters, };
+    NTSTATUS status;
+    TRACE( "group %d, numCounters %p, maxActiveCounters %p, counterSize %d, counters %p\n", group, numCounters, maxActiveCounters, counterSize, counters );
+    if ((status = UNIX_CALL( glGetPerfMonitorCountersAMD, &args ))) WARN( "glGetPerfMonitorCountersAMD returned %#x\n", status );
+}
+
+static void WINAPI glGetPerfMonitorGroupStringAMD( GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString )
+{
+    struct glGetPerfMonitorGroupStringAMD_params args = { .group = group, .bufSize = bufSize, .length = length, .groupString = groupString, };
+    NTSTATUS status;
+    TRACE( "group %d, bufSize %d, length %p, groupString %p\n", group, bufSize, length, groupString );
+    if ((status = UNIX_CALL( glGetPerfMonitorGroupStringAMD, &args ))) WARN( "glGetPerfMonitorGroupStringAMD returned %#x\n", status );
+}
+
+static void WINAPI glGetPerfMonitorGroupsAMD( GLint *numGroups, GLsizei groupsSize, GLuint *groups )
+{
+    struct glGetPerfMonitorGroupsAMD_params args = { .numGroups = numGroups, .groupsSize = groupsSize, .groups = groups, };
+    NTSTATUS status;
+    TRACE( "numGroups %p, groupsSize %d, groups %p\n", numGroups, groupsSize, groups );
+    if ((status = UNIX_CALL( glGetPerfMonitorGroupsAMD, &args ))) WARN( "glGetPerfMonitorGroupsAMD returned %#x\n", status );
+}
+
+static void WINAPI glGetPerfQueryDataINTEL( GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten )
+{
+    struct glGetPerfQueryDataINTEL_params args = { .queryHandle = queryHandle, .flags = flags, .dataSize = dataSize, .data = data, .bytesWritten = bytesWritten, };
+    NTSTATUS status;
+    TRACE( "queryHandle %d, flags %d, dataSize %d, data %p, bytesWritten %p\n", queryHandle, flags, dataSize, data, bytesWritten );
+    if ((status = UNIX_CALL( glGetPerfQueryDataINTEL, &args ))) WARN( "glGetPerfQueryDataINTEL returned %#x\n", status );
+}
+
+static void WINAPI glGetPerfQueryIdByNameINTEL( GLchar *queryName, GLuint *queryId )
+{
+    struct glGetPerfQueryIdByNameINTEL_params args = { .queryName = queryName, .queryId = queryId, };
+    NTSTATUS status;
+    TRACE( "queryName %p, queryId %p\n", queryName, queryId );
+    if ((status = UNIX_CALL( glGetPerfQueryIdByNameINTEL, &args ))) WARN( "glGetPerfQueryIdByNameINTEL returned %#x\n", status );
+}
+
+static void WINAPI glGetPerfQueryInfoINTEL( GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask )
+{
+    struct glGetPerfQueryInfoINTEL_params args = { .queryId = queryId, .queryNameLength = queryNameLength, .queryName = queryName, .dataSize = dataSize, .noCounters = noCounters, .noInstances = noInstances, .capsMask = capsMask, };
+    NTSTATUS status;
+    TRACE( "queryId %d, queryNameLength %d, queryName %p, dataSize %p, noCounters %p, noInstances %p, capsMask %p\n", queryId, queryNameLength, queryName, dataSize, noCounters, noInstances, capsMask );
+    if ((status = UNIX_CALL( glGetPerfQueryInfoINTEL, &args ))) WARN( "glGetPerfQueryInfoINTEL returned %#x\n", status );
+}
+
+static void WINAPI glGetPixelMapxv( GLenum map, GLint size, GLfixed *values )
+{
+    struct glGetPixelMapxv_params args = { .map = map, .size = size, .values = values, };
+    NTSTATUS status;
+    TRACE( "map %d, size %d, values %p\n", map, size, values );
+    if ((status = UNIX_CALL( glGetPixelMapxv, &args ))) WARN( "glGetPixelMapxv returned %#x\n", status );
+}
+
+static void WINAPI glGetPixelTexGenParameterfvSGIS( GLenum pname, GLfloat *params )
+{
+    struct glGetPixelTexGenParameterfvSGIS_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glGetPixelTexGenParameterfvSGIS, &args ))) WARN( "glGetPixelTexGenParameterfvSGIS returned %#x\n", status );
+}
+
+static void WINAPI glGetPixelTexGenParameterivSGIS( GLenum pname, GLint *params )
+{
+    struct glGetPixelTexGenParameterivSGIS_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glGetPixelTexGenParameterivSGIS, &args ))) WARN( "glGetPixelTexGenParameterivSGIS returned %#x\n", status );
+}
+
+static void WINAPI glGetPixelTransformParameterfvEXT( GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetPixelTransformParameterfvEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetPixelTransformParameterfvEXT, &args ))) WARN( "glGetPixelTransformParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetPixelTransformParameterivEXT( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetPixelTransformParameterivEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetPixelTransformParameterivEXT, &args ))) WARN( "glGetPixelTransformParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetPointerIndexedvEXT( GLenum target, GLuint index, void **data )
+{
+    struct glGetPointerIndexedvEXT_params args = { .target = target, .index = index, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, data %p\n", target, index, data );
+    if ((status = UNIX_CALL( glGetPointerIndexedvEXT, &args ))) WARN( "glGetPointerIndexedvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetPointeri_vEXT( GLenum pname, GLuint index, void **params )
+{
+    struct glGetPointeri_vEXT_params args = { .pname = pname, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, index %d, params %p\n", pname, index, params );
+    if ((status = UNIX_CALL( glGetPointeri_vEXT, &args ))) WARN( "glGetPointeri_vEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetPointervEXT( GLenum pname, void **params )
+{
+    struct glGetPointervEXT_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glGetPointervEXT, &args ))) WARN( "glGetPointervEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramBinary( GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary )
+{
+    struct glGetProgramBinary_params args = { .program = program, .bufSize = bufSize, .length = length, .binaryFormat = binaryFormat, .binary = binary, };
+    NTSTATUS status;
+    TRACE( "program %d, bufSize %d, length %p, binaryFormat %p, binary %p\n", program, bufSize, length, binaryFormat, binary );
+    if ((status = UNIX_CALL( glGetProgramBinary, &args ))) WARN( "glGetProgramBinary returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramEnvParameterIivNV( GLenum target, GLuint index, GLint *params )
+{
+    struct glGetProgramEnvParameterIivNV_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glGetProgramEnvParameterIivNV, &args ))) WARN( "glGetProgramEnvParameterIivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramEnvParameterIuivNV( GLenum target, GLuint index, GLuint *params )
+{
+    struct glGetProgramEnvParameterIuivNV_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glGetProgramEnvParameterIuivNV, &args ))) WARN( "glGetProgramEnvParameterIuivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramEnvParameterdvARB( GLenum target, GLuint index, GLdouble *params )
+{
+    struct glGetProgramEnvParameterdvARB_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glGetProgramEnvParameterdvARB, &args ))) WARN( "glGetProgramEnvParameterdvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramEnvParameterfvARB( GLenum target, GLuint index, GLfloat *params )
+{
+    struct glGetProgramEnvParameterfvARB_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glGetProgramEnvParameterfvARB, &args ))) WARN( "glGetProgramEnvParameterfvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramInfoLog( GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog )
+{
+    struct glGetProgramInfoLog_params args = { .program = program, .bufSize = bufSize, .length = length, .infoLog = infoLog, };
+    NTSTATUS status;
+    TRACE( "program %d, bufSize %d, length %p, infoLog %p\n", program, bufSize, length, infoLog );
+    if ((status = UNIX_CALL( glGetProgramInfoLog, &args ))) WARN( "glGetProgramInfoLog returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramInterfaceiv( GLuint program, GLenum programInterface, GLenum pname, GLint *params )
+{
+    struct glGetProgramInterfaceiv_params args = { .program = program, .programInterface = programInterface, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, programInterface %d, pname %d, params %p\n", program, programInterface, pname, params );
+    if ((status = UNIX_CALL( glGetProgramInterfaceiv, &args ))) WARN( "glGetProgramInterfaceiv returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramLocalParameterIivNV( GLenum target, GLuint index, GLint *params )
+{
+    struct glGetProgramLocalParameterIivNV_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glGetProgramLocalParameterIivNV, &args ))) WARN( "glGetProgramLocalParameterIivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramLocalParameterIuivNV( GLenum target, GLuint index, GLuint *params )
+{
+    struct glGetProgramLocalParameterIuivNV_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glGetProgramLocalParameterIuivNV, &args ))) WARN( "glGetProgramLocalParameterIuivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramLocalParameterdvARB( GLenum target, GLuint index, GLdouble *params )
+{
+    struct glGetProgramLocalParameterdvARB_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glGetProgramLocalParameterdvARB, &args ))) WARN( "glGetProgramLocalParameterdvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramLocalParameterfvARB( GLenum target, GLuint index, GLfloat *params )
+{
+    struct glGetProgramLocalParameterfvARB_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glGetProgramLocalParameterfvARB, &args ))) WARN( "glGetProgramLocalParameterfvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramNamedParameterdvNV( GLuint id, GLsizei len, const GLubyte *name, GLdouble *params )
+{
+    struct glGetProgramNamedParameterdvNV_params args = { .id = id, .len = len, .name = name, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, len %d, name %p, params %p\n", id, len, name, params );
+    if ((status = UNIX_CALL( glGetProgramNamedParameterdvNV, &args ))) WARN( "glGetProgramNamedParameterdvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramNamedParameterfvNV( GLuint id, GLsizei len, const GLubyte *name, GLfloat *params )
+{
+    struct glGetProgramNamedParameterfvNV_params args = { .id = id, .len = len, .name = name, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, len %d, name %p, params %p\n", id, len, name, params );
+    if ((status = UNIX_CALL( glGetProgramNamedParameterfvNV, &args ))) WARN( "glGetProgramNamedParameterfvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramParameterdvNV( GLenum target, GLuint index, GLenum pname, GLdouble *params )
+{
+    struct glGetProgramParameterdvNV_params args = { .target = target, .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, pname %d, params %p\n", target, index, pname, params );
+    if ((status = UNIX_CALL( glGetProgramParameterdvNV, &args ))) WARN( "glGetProgramParameterdvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramParameterfvNV( GLenum target, GLuint index, GLenum pname, GLfloat *params )
+{
+    struct glGetProgramParameterfvNV_params args = { .target = target, .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, pname %d, params %p\n", target, index, pname, params );
+    if ((status = UNIX_CALL( glGetProgramParameterfvNV, &args ))) WARN( "glGetProgramParameterfvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramPipelineInfoLog( GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog )
+{
+    struct glGetProgramPipelineInfoLog_params args = { .pipeline = pipeline, .bufSize = bufSize, .length = length, .infoLog = infoLog, };
+    NTSTATUS status;
+    TRACE( "pipeline %d, bufSize %d, length %p, infoLog %p\n", pipeline, bufSize, length, infoLog );
+    if ((status = UNIX_CALL( glGetProgramPipelineInfoLog, &args ))) WARN( "glGetProgramPipelineInfoLog returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramPipelineiv( GLuint pipeline, GLenum pname, GLint *params )
+{
+    struct glGetProgramPipelineiv_params args = { .pipeline = pipeline, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pipeline %d, pname %d, params %p\n", pipeline, pname, params );
+    if ((status = UNIX_CALL( glGetProgramPipelineiv, &args ))) WARN( "glGetProgramPipelineiv returned %#x\n", status );
+}
+
+static GLuint WINAPI glGetProgramResourceIndex( GLuint program, GLenum programInterface, const GLchar *name )
+{
+    struct glGetProgramResourceIndex_params args = { .program = program, .programInterface = programInterface, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, programInterface %d, name %p\n", program, programInterface, name );
+    if ((status = UNIX_CALL( glGetProgramResourceIndex, &args ))) WARN( "glGetProgramResourceIndex returned %#x\n", status );
+    return args.ret;
+}
+
+static GLint WINAPI glGetProgramResourceLocation( GLuint program, GLenum programInterface, const GLchar *name )
+{
+    struct glGetProgramResourceLocation_params args = { .program = program, .programInterface = programInterface, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, programInterface %d, name %p\n", program, programInterface, name );
+    if ((status = UNIX_CALL( glGetProgramResourceLocation, &args ))) WARN( "glGetProgramResourceLocation returned %#x\n", status );
+    return args.ret;
+}
+
+static GLint WINAPI glGetProgramResourceLocationIndex( GLuint program, GLenum programInterface, const GLchar *name )
+{
+    struct glGetProgramResourceLocationIndex_params args = { .program = program, .programInterface = programInterface, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, programInterface %d, name %p\n", program, programInterface, name );
+    if ((status = UNIX_CALL( glGetProgramResourceLocationIndex, &args ))) WARN( "glGetProgramResourceLocationIndex returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetProgramResourceName( GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name )
+{
+    struct glGetProgramResourceName_params args = { .program = program, .programInterface = programInterface, .index = index, .bufSize = bufSize, .length = length, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, programInterface %d, index %d, bufSize %d, length %p, name %p\n", program, programInterface, index, bufSize, length, name );
+    if ((status = UNIX_CALL( glGetProgramResourceName, &args ))) WARN( "glGetProgramResourceName returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramResourcefvNV( GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params )
+{
+    struct glGetProgramResourcefvNV_params args = { .program = program, .programInterface = programInterface, .index = index, .propCount = propCount, .props = props, .count = count, .length = length, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, programInterface %d, index %d, propCount %d, props %p, count %d, length %p, params %p\n", program, programInterface, index, propCount, props, count, length, params );
+    if ((status = UNIX_CALL( glGetProgramResourcefvNV, &args ))) WARN( "glGetProgramResourcefvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramResourceiv( GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params )
+{
+    struct glGetProgramResourceiv_params args = { .program = program, .programInterface = programInterface, .index = index, .propCount = propCount, .props = props, .count = count, .length = length, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, programInterface %d, index %d, propCount %d, props %p, count %d, length %p, params %p\n", program, programInterface, index, propCount, props, count, length, params );
+    if ((status = UNIX_CALL( glGetProgramResourceiv, &args ))) WARN( "glGetProgramResourceiv returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramStageiv( GLuint program, GLenum shadertype, GLenum pname, GLint *values )
+{
+    struct glGetProgramStageiv_params args = { .program = program, .shadertype = shadertype, .pname = pname, .values = values, };
+    NTSTATUS status;
+    TRACE( "program %d, shadertype %d, pname %d, values %p\n", program, shadertype, pname, values );
+    if ((status = UNIX_CALL( glGetProgramStageiv, &args ))) WARN( "glGetProgramStageiv returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramStringARB( GLenum target, GLenum pname, void *string )
+{
+    struct glGetProgramStringARB_params args = { .target = target, .pname = pname, .string = string, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, string %p\n", target, pname, string );
+    if ((status = UNIX_CALL( glGetProgramStringARB, &args ))) WARN( "glGetProgramStringARB returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramStringNV( GLuint id, GLenum pname, GLubyte *program )
+{
+    struct glGetProgramStringNV_params args = { .id = id, .pname = pname, .program = program, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, program %p\n", id, pname, program );
+    if ((status = UNIX_CALL( glGetProgramStringNV, &args ))) WARN( "glGetProgramStringNV returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramSubroutineParameteruivNV( GLenum target, GLuint index, GLuint *param )
+{
+    struct glGetProgramSubroutineParameteruivNV_params args = { .target = target, .index = index, .param = param, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, param %p\n", target, index, param );
+    if ((status = UNIX_CALL( glGetProgramSubroutineParameteruivNV, &args ))) WARN( "glGetProgramSubroutineParameteruivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramiv( GLuint program, GLenum pname, GLint *params )
+{
+    struct glGetProgramiv_params args = { .program = program, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, pname %d, params %p\n", program, pname, params );
+    if ((status = UNIX_CALL( glGetProgramiv, &args ))) WARN( "glGetProgramiv returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramivARB( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetProgramivARB_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetProgramivARB, &args ))) WARN( "glGetProgramivARB returned %#x\n", status );
+}
+
+static void WINAPI glGetProgramivNV( GLuint id, GLenum pname, GLint *params )
+{
+    struct glGetProgramivNV_params args = { .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, params %p\n", id, pname, params );
+    if ((status = UNIX_CALL( glGetProgramivNV, &args ))) WARN( "glGetProgramivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryBufferObjecti64v( GLuint id, GLuint buffer, GLenum pname, GLintptr offset )
+{
+    struct glGetQueryBufferObjecti64v_params args = { .id = id, .buffer = buffer, .pname = pname, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "id %d, buffer %d, pname %d, offset %ld\n", id, buffer, pname, offset );
+    if ((status = UNIX_CALL( glGetQueryBufferObjecti64v, &args ))) WARN( "glGetQueryBufferObjecti64v returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryBufferObjectiv( GLuint id, GLuint buffer, GLenum pname, GLintptr offset )
+{
+    struct glGetQueryBufferObjectiv_params args = { .id = id, .buffer = buffer, .pname = pname, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "id %d, buffer %d, pname %d, offset %ld\n", id, buffer, pname, offset );
+    if ((status = UNIX_CALL( glGetQueryBufferObjectiv, &args ))) WARN( "glGetQueryBufferObjectiv returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryBufferObjectui64v( GLuint id, GLuint buffer, GLenum pname, GLintptr offset )
+{
+    struct glGetQueryBufferObjectui64v_params args = { .id = id, .buffer = buffer, .pname = pname, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "id %d, buffer %d, pname %d, offset %ld\n", id, buffer, pname, offset );
+    if ((status = UNIX_CALL( glGetQueryBufferObjectui64v, &args ))) WARN( "glGetQueryBufferObjectui64v returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryBufferObjectuiv( GLuint id, GLuint buffer, GLenum pname, GLintptr offset )
+{
+    struct glGetQueryBufferObjectuiv_params args = { .id = id, .buffer = buffer, .pname = pname, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "id %d, buffer %d, pname %d, offset %ld\n", id, buffer, pname, offset );
+    if ((status = UNIX_CALL( glGetQueryBufferObjectuiv, &args ))) WARN( "glGetQueryBufferObjectuiv returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryIndexediv( GLenum target, GLuint index, GLenum pname, GLint *params )
+{
+    struct glGetQueryIndexediv_params args = { .target = target, .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, pname %d, params %p\n", target, index, pname, params );
+    if ((status = UNIX_CALL( glGetQueryIndexediv, &args ))) WARN( "glGetQueryIndexediv returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryObjecti64v( GLuint id, GLenum pname, GLint64 *params )
+{
+    struct glGetQueryObjecti64v_params args = { .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, params %p\n", id, pname, params );
+    if ((status = UNIX_CALL( glGetQueryObjecti64v, &args ))) WARN( "glGetQueryObjecti64v returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryObjecti64vEXT( GLuint id, GLenum pname, GLint64 *params )
+{
+    struct glGetQueryObjecti64vEXT_params args = { .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, params %p\n", id, pname, params );
+    if ((status = UNIX_CALL( glGetQueryObjecti64vEXT, &args ))) WARN( "glGetQueryObjecti64vEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryObjectiv( GLuint id, GLenum pname, GLint *params )
+{
+    struct glGetQueryObjectiv_params args = { .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, params %p\n", id, pname, params );
+    if ((status = UNIX_CALL( glGetQueryObjectiv, &args ))) WARN( "glGetQueryObjectiv returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryObjectivARB( GLuint id, GLenum pname, GLint *params )
+{
+    struct glGetQueryObjectivARB_params args = { .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, params %p\n", id, pname, params );
+    if ((status = UNIX_CALL( glGetQueryObjectivARB, &args ))) WARN( "glGetQueryObjectivARB returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryObjectui64v( GLuint id, GLenum pname, GLuint64 *params )
+{
+    struct glGetQueryObjectui64v_params args = { .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, params %p\n", id, pname, params );
+    if ((status = UNIX_CALL( glGetQueryObjectui64v, &args ))) WARN( "glGetQueryObjectui64v returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryObjectui64vEXT( GLuint id, GLenum pname, GLuint64 *params )
+{
+    struct glGetQueryObjectui64vEXT_params args = { .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, params %p\n", id, pname, params );
+    if ((status = UNIX_CALL( glGetQueryObjectui64vEXT, &args ))) WARN( "glGetQueryObjectui64vEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryObjectuiv( GLuint id, GLenum pname, GLuint *params )
+{
+    struct glGetQueryObjectuiv_params args = { .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, params %p\n", id, pname, params );
+    if ((status = UNIX_CALL( glGetQueryObjectuiv, &args ))) WARN( "glGetQueryObjectuiv returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryObjectuivARB( GLuint id, GLenum pname, GLuint *params )
+{
+    struct glGetQueryObjectuivARB_params args = { .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, params %p\n", id, pname, params );
+    if ((status = UNIX_CALL( glGetQueryObjectuivARB, &args ))) WARN( "glGetQueryObjectuivARB returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryiv( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetQueryiv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetQueryiv, &args ))) WARN( "glGetQueryiv returned %#x\n", status );
+}
+
+static void WINAPI glGetQueryivARB( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetQueryivARB_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetQueryivARB, &args ))) WARN( "glGetQueryivARB returned %#x\n", status );
+}
+
+static void WINAPI glGetRenderbufferParameteriv( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetRenderbufferParameteriv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetRenderbufferParameteriv, &args ))) WARN( "glGetRenderbufferParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetRenderbufferParameterivEXT( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetRenderbufferParameterivEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetRenderbufferParameterivEXT, &args ))) WARN( "glGetRenderbufferParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetSamplerParameterIiv( GLuint sampler, GLenum pname, GLint *params )
+{
+    struct glGetSamplerParameterIiv_params args = { .sampler = sampler, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "sampler %d, pname %d, params %p\n", sampler, pname, params );
+    if ((status = UNIX_CALL( glGetSamplerParameterIiv, &args ))) WARN( "glGetSamplerParameterIiv returned %#x\n", status );
+}
+
+static void WINAPI glGetSamplerParameterIuiv( GLuint sampler, GLenum pname, GLuint *params )
+{
+    struct glGetSamplerParameterIuiv_params args = { .sampler = sampler, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "sampler %d, pname %d, params %p\n", sampler, pname, params );
+    if ((status = UNIX_CALL( glGetSamplerParameterIuiv, &args ))) WARN( "glGetSamplerParameterIuiv returned %#x\n", status );
+}
+
+static void WINAPI glGetSamplerParameterfv( GLuint sampler, GLenum pname, GLfloat *params )
+{
+    struct glGetSamplerParameterfv_params args = { .sampler = sampler, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "sampler %d, pname %d, params %p\n", sampler, pname, params );
+    if ((status = UNIX_CALL( glGetSamplerParameterfv, &args ))) WARN( "glGetSamplerParameterfv returned %#x\n", status );
+}
+
+static void WINAPI glGetSamplerParameteriv( GLuint sampler, GLenum pname, GLint *params )
+{
+    struct glGetSamplerParameteriv_params args = { .sampler = sampler, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "sampler %d, pname %d, params %p\n", sampler, pname, params );
+    if ((status = UNIX_CALL( glGetSamplerParameteriv, &args ))) WARN( "glGetSamplerParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetSemaphoreParameterui64vEXT( GLuint semaphore, GLenum pname, GLuint64 *params )
+{
+    struct glGetSemaphoreParameterui64vEXT_params args = { .semaphore = semaphore, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "semaphore %d, pname %d, params %p\n", semaphore, pname, params );
+    if ((status = UNIX_CALL( glGetSemaphoreParameterui64vEXT, &args ))) WARN( "glGetSemaphoreParameterui64vEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetSeparableFilter( GLenum target, GLenum format, GLenum type, void *row, void *column, void *span )
+{
+    struct glGetSeparableFilter_params args = { .target = target, .format = format, .type = type, .row = row, .column = column, .span = span, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, type %d, row %p, column %p, span %p\n", target, format, type, row, column, span );
+    if ((status = UNIX_CALL( glGetSeparableFilter, &args ))) WARN( "glGetSeparableFilter returned %#x\n", status );
+}
+
+static void WINAPI glGetSeparableFilterEXT( GLenum target, GLenum format, GLenum type, void *row, void *column, void *span )
+{
+    struct glGetSeparableFilterEXT_params args = { .target = target, .format = format, .type = type, .row = row, .column = column, .span = span, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, type %d, row %p, column %p, span %p\n", target, format, type, row, column, span );
+    if ((status = UNIX_CALL( glGetSeparableFilterEXT, &args ))) WARN( "glGetSeparableFilterEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetShaderInfoLog( GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog )
+{
+    struct glGetShaderInfoLog_params args = { .shader = shader, .bufSize = bufSize, .length = length, .infoLog = infoLog, };
+    NTSTATUS status;
+    TRACE( "shader %d, bufSize %d, length %p, infoLog %p\n", shader, bufSize, length, infoLog );
+    if ((status = UNIX_CALL( glGetShaderInfoLog, &args ))) WARN( "glGetShaderInfoLog returned %#x\n", status );
+}
+
+static void WINAPI glGetShaderPrecisionFormat( GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision )
+{
+    struct glGetShaderPrecisionFormat_params args = { .shadertype = shadertype, .precisiontype = precisiontype, .range = range, .precision = precision, };
+    NTSTATUS status;
+    TRACE( "shadertype %d, precisiontype %d, range %p, precision %p\n", shadertype, precisiontype, range, precision );
+    if ((status = UNIX_CALL( glGetShaderPrecisionFormat, &args ))) WARN( "glGetShaderPrecisionFormat returned %#x\n", status );
+}
+
+static void WINAPI glGetShaderSource( GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source )
+{
+    struct glGetShaderSource_params args = { .shader = shader, .bufSize = bufSize, .length = length, .source = source, };
+    NTSTATUS status;
+    TRACE( "shader %d, bufSize %d, length %p, source %p\n", shader, bufSize, length, source );
+    if ((status = UNIX_CALL( glGetShaderSource, &args ))) WARN( "glGetShaderSource returned %#x\n", status );
+}
+
+static void WINAPI glGetShaderSourceARB( GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source )
+{
+    struct glGetShaderSourceARB_params args = { .obj = obj, .maxLength = maxLength, .length = length, .source = source, };
+    NTSTATUS status;
+    TRACE( "obj %d, maxLength %d, length %p, source %p\n", obj, maxLength, length, source );
+    if ((status = UNIX_CALL( glGetShaderSourceARB, &args ))) WARN( "glGetShaderSourceARB returned %#x\n", status );
+}
+
+static void WINAPI glGetShaderiv( GLuint shader, GLenum pname, GLint *params )
+{
+    struct glGetShaderiv_params args = { .shader = shader, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "shader %d, pname %d, params %p\n", shader, pname, params );
+    if ((status = UNIX_CALL( glGetShaderiv, &args ))) WARN( "glGetShaderiv returned %#x\n", status );
+}
+
+static void WINAPI glGetShadingRateImagePaletteNV( GLuint viewport, GLuint entry, GLenum *rate )
+{
+    struct glGetShadingRateImagePaletteNV_params args = { .viewport = viewport, .entry = entry, .rate = rate, };
+    NTSTATUS status;
+    TRACE( "viewport %d, entry %d, rate %p\n", viewport, entry, rate );
+    if ((status = UNIX_CALL( glGetShadingRateImagePaletteNV, &args ))) WARN( "glGetShadingRateImagePaletteNV returned %#x\n", status );
+}
+
+static void WINAPI glGetShadingRateSampleLocationivNV( GLenum rate, GLuint samples, GLuint index, GLint *location )
+{
+    struct glGetShadingRateSampleLocationivNV_params args = { .rate = rate, .samples = samples, .index = index, .location = location, };
+    NTSTATUS status;
+    TRACE( "rate %d, samples %d, index %d, location %p\n", rate, samples, index, location );
+    if ((status = UNIX_CALL( glGetShadingRateSampleLocationivNV, &args ))) WARN( "glGetShadingRateSampleLocationivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetSharpenTexFuncSGIS( GLenum target, GLfloat *points )
+{
+    struct glGetSharpenTexFuncSGIS_params args = { .target = target, .points = points, };
+    NTSTATUS status;
+    TRACE( "target %d, points %p\n", target, points );
+    if ((status = UNIX_CALL( glGetSharpenTexFuncSGIS, &args ))) WARN( "glGetSharpenTexFuncSGIS returned %#x\n", status );
+}
+
+static GLushort WINAPI glGetStageIndexNV( GLenum shadertype )
+{
+    struct glGetStageIndexNV_params args = { .shadertype = shadertype, };
+    NTSTATUS status;
+    TRACE( "shadertype %d\n", shadertype );
+    if ((status = UNIX_CALL( glGetStageIndexNV, &args ))) WARN( "glGetStageIndexNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLuint WINAPI glGetSubroutineIndex( GLuint program, GLenum shadertype, const GLchar *name )
+{
+    struct glGetSubroutineIndex_params args = { .program = program, .shadertype = shadertype, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, shadertype %d, name %p\n", program, shadertype, name );
+    if ((status = UNIX_CALL( glGetSubroutineIndex, &args ))) WARN( "glGetSubroutineIndex returned %#x\n", status );
+    return args.ret;
+}
+
+static GLint WINAPI glGetSubroutineUniformLocation( GLuint program, GLenum shadertype, const GLchar *name )
+{
+    struct glGetSubroutineUniformLocation_params args = { .program = program, .shadertype = shadertype, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, shadertype %d, name %p\n", program, shadertype, name );
+    if ((status = UNIX_CALL( glGetSubroutineUniformLocation, &args ))) WARN( "glGetSubroutineUniformLocation returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetSynciv( GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values )
+{
+    struct glGetSynciv_params args = { .sync = sync, .pname = pname, .count = count, .length = length, .values = values, };
+    NTSTATUS status;
+    TRACE( "sync %p, pname %d, count %d, length %p, values %p\n", sync, pname, count, length, values );
+    if ((status = UNIX_CALL( glGetSynciv, &args ))) WARN( "glGetSynciv returned %#x\n", status );
+}
+
+static void WINAPI glGetTexBumpParameterfvATI( GLenum pname, GLfloat *param )
+{
+    struct glGetTexBumpParameterfvATI_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %p\n", pname, param );
+    if ((status = UNIX_CALL( glGetTexBumpParameterfvATI, &args ))) WARN( "glGetTexBumpParameterfvATI returned %#x\n", status );
+}
+
+static void WINAPI glGetTexBumpParameterivATI( GLenum pname, GLint *param )
+{
+    struct glGetTexBumpParameterivATI_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %p\n", pname, param );
+    if ((status = UNIX_CALL( glGetTexBumpParameterivATI, &args ))) WARN( "glGetTexBumpParameterivATI returned %#x\n", status );
+}
+
+static void WINAPI glGetTexEnvxvOES( GLenum target, GLenum pname, GLfixed *params )
+{
+    struct glGetTexEnvxvOES_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetTexEnvxvOES, &args ))) WARN( "glGetTexEnvxvOES returned %#x\n", status );
+}
+
+static void WINAPI glGetTexFilterFuncSGIS( GLenum target, GLenum filter, GLfloat *weights )
+{
+    struct glGetTexFilterFuncSGIS_params args = { .target = target, .filter = filter, .weights = weights, };
+    NTSTATUS status;
+    TRACE( "target %d, filter %d, weights %p\n", target, filter, weights );
+    if ((status = UNIX_CALL( glGetTexFilterFuncSGIS, &args ))) WARN( "glGetTexFilterFuncSGIS returned %#x\n", status );
+}
+
+static void WINAPI glGetTexGenxvOES( GLenum coord, GLenum pname, GLfixed *params )
+{
+    struct glGetTexGenxvOES_params args = { .coord = coord, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "coord %d, pname %d, params %p\n", coord, pname, params );
+    if ((status = UNIX_CALL( glGetTexGenxvOES, &args ))) WARN( "glGetTexGenxvOES returned %#x\n", status );
+}
+
+static void WINAPI glGetTexLevelParameterxvOES( GLenum target, GLint level, GLenum pname, GLfixed *params )
+{
+    struct glGetTexLevelParameterxvOES_params args = { .target = target, .level = level, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, pname %d, params %p\n", target, level, pname, params );
+    if ((status = UNIX_CALL( glGetTexLevelParameterxvOES, &args ))) WARN( "glGetTexLevelParameterxvOES returned %#x\n", status );
+}
+
+static void WINAPI glGetTexParameterIiv( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetTexParameterIiv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetTexParameterIiv, &args ))) WARN( "glGetTexParameterIiv returned %#x\n", status );
+}
+
+static void WINAPI glGetTexParameterIivEXT( GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetTexParameterIivEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetTexParameterIivEXT, &args ))) WARN( "glGetTexParameterIivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetTexParameterIuiv( GLenum target, GLenum pname, GLuint *params )
+{
+    struct glGetTexParameterIuiv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetTexParameterIuiv, &args ))) WARN( "glGetTexParameterIuiv returned %#x\n", status );
+}
+
+static void WINAPI glGetTexParameterIuivEXT( GLenum target, GLenum pname, GLuint *params )
+{
+    struct glGetTexParameterIuivEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetTexParameterIuivEXT, &args ))) WARN( "glGetTexParameterIuivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetTexParameterPointervAPPLE( GLenum target, GLenum pname, void **params )
+{
+    struct glGetTexParameterPointervAPPLE_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetTexParameterPointervAPPLE, &args ))) WARN( "glGetTexParameterPointervAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glGetTexParameterxvOES( GLenum target, GLenum pname, GLfixed *params )
+{
+    struct glGetTexParameterxvOES_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glGetTexParameterxvOES, &args ))) WARN( "glGetTexParameterxvOES returned %#x\n", status );
+}
+
+static GLuint64 WINAPI glGetTextureHandleARB( GLuint texture )
+{
+    struct glGetTextureHandleARB_params args = { .texture = texture, };
+    NTSTATUS status;
+    TRACE( "texture %d\n", texture );
+    if ((status = UNIX_CALL( glGetTextureHandleARB, &args ))) WARN( "glGetTextureHandleARB returned %#x\n", status );
+    return args.ret;
+}
+
+static GLuint64 WINAPI glGetTextureHandleNV( GLuint texture )
+{
+    struct glGetTextureHandleNV_params args = { .texture = texture, };
+    NTSTATUS status;
+    TRACE( "texture %d\n", texture );
+    if ((status = UNIX_CALL( glGetTextureHandleNV, &args ))) WARN( "glGetTextureHandleNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetTextureImage( GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels )
+{
+    struct glGetTextureImage_params args = { .texture = texture, .level = level, .format = format, .type = type, .bufSize = bufSize, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, format %d, type %d, bufSize %d, pixels %p\n", texture, level, format, type, bufSize, pixels );
+    if ((status = UNIX_CALL( glGetTextureImage, &args ))) WARN( "glGetTextureImage returned %#x\n", status );
+}
+
+static void WINAPI glGetTextureImageEXT( GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels )
+{
+    struct glGetTextureImageEXT_params args = { .texture = texture, .target = target, .level = level, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, format %d, type %d, pixels %p\n", texture, target, level, format, type, pixels );
+    if ((status = UNIX_CALL( glGetTextureImageEXT, &args ))) WARN( "glGetTextureImageEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetTextureLevelParameterfv( GLuint texture, GLint level, GLenum pname, GLfloat *params )
+{
+    struct glGetTextureLevelParameterfv_params args = { .texture = texture, .level = level, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, pname %d, params %p\n", texture, level, pname, params );
+    if ((status = UNIX_CALL( glGetTextureLevelParameterfv, &args ))) WARN( "glGetTextureLevelParameterfv returned %#x\n", status );
+}
+
+static void WINAPI glGetTextureLevelParameterfvEXT( GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params )
+{
+    struct glGetTextureLevelParameterfvEXT_params args = { .texture = texture, .target = target, .level = level, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, pname %d, params %p\n", texture, target, level, pname, params );
+    if ((status = UNIX_CALL( glGetTextureLevelParameterfvEXT, &args ))) WARN( "glGetTextureLevelParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetTextureLevelParameteriv( GLuint texture, GLint level, GLenum pname, GLint *params )
+{
+    struct glGetTextureLevelParameteriv_params args = { .texture = texture, .level = level, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, pname %d, params %p\n", texture, level, pname, params );
+    if ((status = UNIX_CALL( glGetTextureLevelParameteriv, &args ))) WARN( "glGetTextureLevelParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetTextureLevelParameterivEXT( GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params )
+{
+    struct glGetTextureLevelParameterivEXT_params args = { .texture = texture, .target = target, .level = level, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, pname %d, params %p\n", texture, target, level, pname, params );
+    if ((status = UNIX_CALL( glGetTextureLevelParameterivEXT, &args ))) WARN( "glGetTextureLevelParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetTextureParameterIiv( GLuint texture, GLenum pname, GLint *params )
+{
+    struct glGetTextureParameterIiv_params args = { .texture = texture, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, pname %d, params %p\n", texture, pname, params );
+    if ((status = UNIX_CALL( glGetTextureParameterIiv, &args ))) WARN( "glGetTextureParameterIiv returned %#x\n", status );
+}
+
+static void WINAPI glGetTextureParameterIivEXT( GLuint texture, GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetTextureParameterIivEXT_params args = { .texture = texture, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, pname %d, params %p\n", texture, target, pname, params );
+    if ((status = UNIX_CALL( glGetTextureParameterIivEXT, &args ))) WARN( "glGetTextureParameterIivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetTextureParameterIuiv( GLuint texture, GLenum pname, GLuint *params )
+{
+    struct glGetTextureParameterIuiv_params args = { .texture = texture, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, pname %d, params %p\n", texture, pname, params );
+    if ((status = UNIX_CALL( glGetTextureParameterIuiv, &args ))) WARN( "glGetTextureParameterIuiv returned %#x\n", status );
+}
+
+static void WINAPI glGetTextureParameterIuivEXT( GLuint texture, GLenum target, GLenum pname, GLuint *params )
+{
+    struct glGetTextureParameterIuivEXT_params args = { .texture = texture, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, pname %d, params %p\n", texture, target, pname, params );
+    if ((status = UNIX_CALL( glGetTextureParameterIuivEXT, &args ))) WARN( "glGetTextureParameterIuivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetTextureParameterfv( GLuint texture, GLenum pname, GLfloat *params )
+{
+    struct glGetTextureParameterfv_params args = { .texture = texture, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, pname %d, params %p\n", texture, pname, params );
+    if ((status = UNIX_CALL( glGetTextureParameterfv, &args ))) WARN( "glGetTextureParameterfv returned %#x\n", status );
+}
+
+static void WINAPI glGetTextureParameterfvEXT( GLuint texture, GLenum target, GLenum pname, GLfloat *params )
+{
+    struct glGetTextureParameterfvEXT_params args = { .texture = texture, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, pname %d, params %p\n", texture, target, pname, params );
+    if ((status = UNIX_CALL( glGetTextureParameterfvEXT, &args ))) WARN( "glGetTextureParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetTextureParameteriv( GLuint texture, GLenum pname, GLint *params )
+{
+    struct glGetTextureParameteriv_params args = { .texture = texture, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, pname %d, params %p\n", texture, pname, params );
+    if ((status = UNIX_CALL( glGetTextureParameteriv, &args ))) WARN( "glGetTextureParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glGetTextureParameterivEXT( GLuint texture, GLenum target, GLenum pname, GLint *params )
+{
+    struct glGetTextureParameterivEXT_params args = { .texture = texture, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, pname %d, params %p\n", texture, target, pname, params );
+    if ((status = UNIX_CALL( glGetTextureParameterivEXT, &args ))) WARN( "glGetTextureParameterivEXT returned %#x\n", status );
+}
+
+static GLuint64 WINAPI glGetTextureSamplerHandleARB( GLuint texture, GLuint sampler )
+{
+    struct glGetTextureSamplerHandleARB_params args = { .texture = texture, .sampler = sampler, };
+    NTSTATUS status;
+    TRACE( "texture %d, sampler %d\n", texture, sampler );
+    if ((status = UNIX_CALL( glGetTextureSamplerHandleARB, &args ))) WARN( "glGetTextureSamplerHandleARB returned %#x\n", status );
+    return args.ret;
+}
+
+static GLuint64 WINAPI glGetTextureSamplerHandleNV( GLuint texture, GLuint sampler )
+{
+    struct glGetTextureSamplerHandleNV_params args = { .texture = texture, .sampler = sampler, };
+    NTSTATUS status;
+    TRACE( "texture %d, sampler %d\n", texture, sampler );
+    if ((status = UNIX_CALL( glGetTextureSamplerHandleNV, &args ))) WARN( "glGetTextureSamplerHandleNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetTextureSubImage( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels )
+{
+    struct glGetTextureSubImage_params args = { .texture = texture, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .format = format, .type = type, .bufSize = bufSize, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, format %d, type %d, bufSize %d, pixels %p\n", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bufSize, pixels );
+    if ((status = UNIX_CALL( glGetTextureSubImage, &args ))) WARN( "glGetTextureSubImage returned %#x\n", status );
+}
+
+static void WINAPI glGetTrackMatrixivNV( GLenum target, GLuint address, GLenum pname, GLint *params )
+{
+    struct glGetTrackMatrixivNV_params args = { .target = target, .address = address, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, address %d, pname %d, params %p\n", target, address, pname, params );
+    if ((status = UNIX_CALL( glGetTrackMatrixivNV, &args ))) WARN( "glGetTrackMatrixivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetTransformFeedbackVarying( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name )
+{
+    struct glGetTransformFeedbackVarying_params args = { .program = program, .index = index, .bufSize = bufSize, .length = length, .size = size, .type = type, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, index %d, bufSize %d, length %p, size %p, type %p, name %p\n", program, index, bufSize, length, size, type, name );
+    if ((status = UNIX_CALL( glGetTransformFeedbackVarying, &args ))) WARN( "glGetTransformFeedbackVarying returned %#x\n", status );
+}
+
+static void WINAPI glGetTransformFeedbackVaryingEXT( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name )
+{
+    struct glGetTransformFeedbackVaryingEXT_params args = { .program = program, .index = index, .bufSize = bufSize, .length = length, .size = size, .type = type, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, index %d, bufSize %d, length %p, size %p, type %p, name %p\n", program, index, bufSize, length, size, type, name );
+    if ((status = UNIX_CALL( glGetTransformFeedbackVaryingEXT, &args ))) WARN( "glGetTransformFeedbackVaryingEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetTransformFeedbackVaryingNV( GLuint program, GLuint index, GLint *location )
+{
+    struct glGetTransformFeedbackVaryingNV_params args = { .program = program, .index = index, .location = location, };
+    NTSTATUS status;
+    TRACE( "program %d, index %d, location %p\n", program, index, location );
+    if ((status = UNIX_CALL( glGetTransformFeedbackVaryingNV, &args ))) WARN( "glGetTransformFeedbackVaryingNV returned %#x\n", status );
+}
+
+static void WINAPI glGetTransformFeedbacki64_v( GLuint xfb, GLenum pname, GLuint index, GLint64 *param )
+{
+    struct glGetTransformFeedbacki64_v_params args = { .xfb = xfb, .pname = pname, .index = index, .param = param, };
+    NTSTATUS status;
+    TRACE( "xfb %d, pname %d, index %d, param %p\n", xfb, pname, index, param );
+    if ((status = UNIX_CALL( glGetTransformFeedbacki64_v, &args ))) WARN( "glGetTransformFeedbacki64_v returned %#x\n", status );
+}
+
+static void WINAPI glGetTransformFeedbacki_v( GLuint xfb, GLenum pname, GLuint index, GLint *param )
+{
+    struct glGetTransformFeedbacki_v_params args = { .xfb = xfb, .pname = pname, .index = index, .param = param, };
+    NTSTATUS status;
+    TRACE( "xfb %d, pname %d, index %d, param %p\n", xfb, pname, index, param );
+    if ((status = UNIX_CALL( glGetTransformFeedbacki_v, &args ))) WARN( "glGetTransformFeedbacki_v returned %#x\n", status );
+}
+
+static void WINAPI glGetTransformFeedbackiv( GLuint xfb, GLenum pname, GLint *param )
+{
+    struct glGetTransformFeedbackiv_params args = { .xfb = xfb, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "xfb %d, pname %d, param %p\n", xfb, pname, param );
+    if ((status = UNIX_CALL( glGetTransformFeedbackiv, &args ))) WARN( "glGetTransformFeedbackiv returned %#x\n", status );
+}
+
+static GLuint WINAPI glGetUniformBlockIndex( GLuint program, const GLchar *uniformBlockName )
+{
+    struct glGetUniformBlockIndex_params args = { .program = program, .uniformBlockName = uniformBlockName, };
+    NTSTATUS status;
+    TRACE( "program %d, uniformBlockName %p\n", program, uniformBlockName );
+    if ((status = UNIX_CALL( glGetUniformBlockIndex, &args ))) WARN( "glGetUniformBlockIndex returned %#x\n", status );
+    return args.ret;
+}
+
+static GLint WINAPI glGetUniformBufferSizeEXT( GLuint program, GLint location )
+{
+    struct glGetUniformBufferSizeEXT_params args = { .program = program, .location = location, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d\n", program, location );
+    if ((status = UNIX_CALL( glGetUniformBufferSizeEXT, &args ))) WARN( "glGetUniformBufferSizeEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetUniformIndices( GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices )
+{
+    struct glGetUniformIndices_params args = { .program = program, .uniformCount = uniformCount, .uniformNames = uniformNames, .uniformIndices = uniformIndices, };
+    NTSTATUS status;
+    TRACE( "program %d, uniformCount %d, uniformNames %p, uniformIndices %p\n", program, uniformCount, uniformNames, uniformIndices );
+    if ((status = UNIX_CALL( glGetUniformIndices, &args ))) WARN( "glGetUniformIndices returned %#x\n", status );
+}
+
+static GLint WINAPI glGetUniformLocation( GLuint program, const GLchar *name )
+{
+    struct glGetUniformLocation_params args = { .program = program, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, name %p\n", program, name );
+    if ((status = UNIX_CALL( glGetUniformLocation, &args ))) WARN( "glGetUniformLocation returned %#x\n", status );
+    return args.ret;
+}
+
+static GLint WINAPI glGetUniformLocationARB( GLhandleARB programObj, const GLcharARB *name )
+{
+    struct glGetUniformLocationARB_params args = { .programObj = programObj, .name = name, };
+    NTSTATUS status;
+    TRACE( "programObj %d, name %p\n", programObj, name );
+    if ((status = UNIX_CALL( glGetUniformLocationARB, &args ))) WARN( "glGetUniformLocationARB returned %#x\n", status );
+    return args.ret;
+}
+
+static GLintptr WINAPI glGetUniformOffsetEXT( GLuint program, GLint location )
+{
+    struct glGetUniformOffsetEXT_params args = { .program = program, .location = location, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d\n", program, location );
+    if ((status = UNIX_CALL( glGetUniformOffsetEXT, &args ))) WARN( "glGetUniformOffsetEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetUniformSubroutineuiv( GLenum shadertype, GLint location, GLuint *params )
+{
+    struct glGetUniformSubroutineuiv_params args = { .shadertype = shadertype, .location = location, .params = params, };
+    NTSTATUS status;
+    TRACE( "shadertype %d, location %d, params %p\n", shadertype, location, params );
+    if ((status = UNIX_CALL( glGetUniformSubroutineuiv, &args ))) WARN( "glGetUniformSubroutineuiv returned %#x\n", status );
+}
+
+static void WINAPI glGetUniformdv( GLuint program, GLint location, GLdouble *params )
+{
+    struct glGetUniformdv_params args = { .program = program, .location = location, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, params %p\n", program, location, params );
+    if ((status = UNIX_CALL( glGetUniformdv, &args ))) WARN( "glGetUniformdv returned %#x\n", status );
+}
+
+static void WINAPI glGetUniformfv( GLuint program, GLint location, GLfloat *params )
+{
+    struct glGetUniformfv_params args = { .program = program, .location = location, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, params %p\n", program, location, params );
+    if ((status = UNIX_CALL( glGetUniformfv, &args ))) WARN( "glGetUniformfv returned %#x\n", status );
+}
+
+static void WINAPI glGetUniformfvARB( GLhandleARB programObj, GLint location, GLfloat *params )
+{
+    struct glGetUniformfvARB_params args = { .programObj = programObj, .location = location, .params = params, };
+    NTSTATUS status;
+    TRACE( "programObj %d, location %d, params %p\n", programObj, location, params );
+    if ((status = UNIX_CALL( glGetUniformfvARB, &args ))) WARN( "glGetUniformfvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetUniformi64vARB( GLuint program, GLint location, GLint64 *params )
+{
+    struct glGetUniformi64vARB_params args = { .program = program, .location = location, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, params %p\n", program, location, params );
+    if ((status = UNIX_CALL( glGetUniformi64vARB, &args ))) WARN( "glGetUniformi64vARB returned %#x\n", status );
+}
+
+static void WINAPI glGetUniformi64vNV( GLuint program, GLint location, GLint64EXT *params )
+{
+    struct glGetUniformi64vNV_params args = { .program = program, .location = location, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, params %p\n", program, location, params );
+    if ((status = UNIX_CALL( glGetUniformi64vNV, &args ))) WARN( "glGetUniformi64vNV returned %#x\n", status );
+}
+
+static void WINAPI glGetUniformiv( GLuint program, GLint location, GLint *params )
+{
+    struct glGetUniformiv_params args = { .program = program, .location = location, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, params %p\n", program, location, params );
+    if ((status = UNIX_CALL( glGetUniformiv, &args ))) WARN( "glGetUniformiv returned %#x\n", status );
+}
+
+static void WINAPI glGetUniformivARB( GLhandleARB programObj, GLint location, GLint *params )
+{
+    struct glGetUniformivARB_params args = { .programObj = programObj, .location = location, .params = params, };
+    NTSTATUS status;
+    TRACE( "programObj %d, location %d, params %p\n", programObj, location, params );
+    if ((status = UNIX_CALL( glGetUniformivARB, &args ))) WARN( "glGetUniformivARB returned %#x\n", status );
+}
+
+static void WINAPI glGetUniformui64vARB( GLuint program, GLint location, GLuint64 *params )
+{
+    struct glGetUniformui64vARB_params args = { .program = program, .location = location, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, params %p\n", program, location, params );
+    if ((status = UNIX_CALL( glGetUniformui64vARB, &args ))) WARN( "glGetUniformui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glGetUniformui64vNV( GLuint program, GLint location, GLuint64EXT *params )
+{
+    struct glGetUniformui64vNV_params args = { .program = program, .location = location, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, params %p\n", program, location, params );
+    if ((status = UNIX_CALL( glGetUniformui64vNV, &args ))) WARN( "glGetUniformui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glGetUniformuiv( GLuint program, GLint location, GLuint *params )
+{
+    struct glGetUniformuiv_params args = { .program = program, .location = location, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, params %p\n", program, location, params );
+    if ((status = UNIX_CALL( glGetUniformuiv, &args ))) WARN( "glGetUniformuiv returned %#x\n", status );
+}
+
+static void WINAPI glGetUniformuivEXT( GLuint program, GLint location, GLuint *params )
+{
+    struct glGetUniformuivEXT_params args = { .program = program, .location = location, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, params %p\n", program, location, params );
+    if ((status = UNIX_CALL( glGetUniformuivEXT, &args ))) WARN( "glGetUniformuivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetUnsignedBytei_vEXT( GLenum target, GLuint index, GLubyte *data )
+{
+    struct glGetUnsignedBytei_vEXT_params args = { .target = target, .index = index, .data = data, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, data %p\n", target, index, data );
+    if ((status = UNIX_CALL( glGetUnsignedBytei_vEXT, &args ))) WARN( "glGetUnsignedBytei_vEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetUnsignedBytevEXT( GLenum pname, GLubyte *data )
+{
+    struct glGetUnsignedBytevEXT_params args = { .pname = pname, .data = data, };
+    NTSTATUS status;
+    TRACE( "pname %d, data %p\n", pname, data );
+    if ((status = UNIX_CALL( glGetUnsignedBytevEXT, &args ))) WARN( "glGetUnsignedBytevEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetVariantArrayObjectfvATI( GLuint id, GLenum pname, GLfloat *params )
+{
+    struct glGetVariantArrayObjectfvATI_params args = { .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, params %p\n", id, pname, params );
+    if ((status = UNIX_CALL( glGetVariantArrayObjectfvATI, &args ))) WARN( "glGetVariantArrayObjectfvATI returned %#x\n", status );
+}
+
+static void WINAPI glGetVariantArrayObjectivATI( GLuint id, GLenum pname, GLint *params )
+{
+    struct glGetVariantArrayObjectivATI_params args = { .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "id %d, pname %d, params %p\n", id, pname, params );
+    if ((status = UNIX_CALL( glGetVariantArrayObjectivATI, &args ))) WARN( "glGetVariantArrayObjectivATI returned %#x\n", status );
+}
+
+static void WINAPI glGetVariantBooleanvEXT( GLuint id, GLenum value, GLboolean *data )
+{
+    struct glGetVariantBooleanvEXT_params args = { .id = id, .value = value, .data = data, };
+    NTSTATUS status;
+    TRACE( "id %d, value %d, data %p\n", id, value, data );
+    if ((status = UNIX_CALL( glGetVariantBooleanvEXT, &args ))) WARN( "glGetVariantBooleanvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetVariantFloatvEXT( GLuint id, GLenum value, GLfloat *data )
+{
+    struct glGetVariantFloatvEXT_params args = { .id = id, .value = value, .data = data, };
+    NTSTATUS status;
+    TRACE( "id %d, value %d, data %p\n", id, value, data );
+    if ((status = UNIX_CALL( glGetVariantFloatvEXT, &args ))) WARN( "glGetVariantFloatvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetVariantIntegervEXT( GLuint id, GLenum value, GLint *data )
+{
+    struct glGetVariantIntegervEXT_params args = { .id = id, .value = value, .data = data, };
+    NTSTATUS status;
+    TRACE( "id %d, value %d, data %p\n", id, value, data );
+    if ((status = UNIX_CALL( glGetVariantIntegervEXT, &args ))) WARN( "glGetVariantIntegervEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetVariantPointervEXT( GLuint id, GLenum value, void **data )
+{
+    struct glGetVariantPointervEXT_params args = { .id = id, .value = value, .data = data, };
+    NTSTATUS status;
+    TRACE( "id %d, value %d, data %p\n", id, value, data );
+    if ((status = UNIX_CALL( glGetVariantPointervEXT, &args ))) WARN( "glGetVariantPointervEXT returned %#x\n", status );
+}
+
+static GLint WINAPI glGetVaryingLocationNV( GLuint program, const GLchar *name )
+{
+    struct glGetVaryingLocationNV_params args = { .program = program, .name = name, };
+    NTSTATUS status;
+    TRACE( "program %d, name %p\n", program, name );
+    if ((status = UNIX_CALL( glGetVaryingLocationNV, &args ))) WARN( "glGetVaryingLocationNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetVertexArrayIndexed64iv( GLuint vaobj, GLuint index, GLenum pname, GLint64 *param )
+{
+    struct glGetVertexArrayIndexed64iv_params args = { .vaobj = vaobj, .index = index, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, index %d, pname %d, param %p\n", vaobj, index, pname, param );
+    if ((status = UNIX_CALL( glGetVertexArrayIndexed64iv, &args ))) WARN( "glGetVertexArrayIndexed64iv returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexArrayIndexediv( GLuint vaobj, GLuint index, GLenum pname, GLint *param )
+{
+    struct glGetVertexArrayIndexediv_params args = { .vaobj = vaobj, .index = index, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, index %d, pname %d, param %p\n", vaobj, index, pname, param );
+    if ((status = UNIX_CALL( glGetVertexArrayIndexediv, &args ))) WARN( "glGetVertexArrayIndexediv returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexArrayIntegeri_vEXT( GLuint vaobj, GLuint index, GLenum pname, GLint *param )
+{
+    struct glGetVertexArrayIntegeri_vEXT_params args = { .vaobj = vaobj, .index = index, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, index %d, pname %d, param %p\n", vaobj, index, pname, param );
+    if ((status = UNIX_CALL( glGetVertexArrayIntegeri_vEXT, &args ))) WARN( "glGetVertexArrayIntegeri_vEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexArrayIntegervEXT( GLuint vaobj, GLenum pname, GLint *param )
+{
+    struct glGetVertexArrayIntegervEXT_params args = { .vaobj = vaobj, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, pname %d, param %p\n", vaobj, pname, param );
+    if ((status = UNIX_CALL( glGetVertexArrayIntegervEXT, &args ))) WARN( "glGetVertexArrayIntegervEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexArrayPointeri_vEXT( GLuint vaobj, GLuint index, GLenum pname, void **param )
+{
+    struct glGetVertexArrayPointeri_vEXT_params args = { .vaobj = vaobj, .index = index, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, index %d, pname %d, param %p\n", vaobj, index, pname, param );
+    if ((status = UNIX_CALL( glGetVertexArrayPointeri_vEXT, &args ))) WARN( "glGetVertexArrayPointeri_vEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexArrayPointervEXT( GLuint vaobj, GLenum pname, void **param )
+{
+    struct glGetVertexArrayPointervEXT_params args = { .vaobj = vaobj, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, pname %d, param %p\n", vaobj, pname, param );
+    if ((status = UNIX_CALL( glGetVertexArrayPointervEXT, &args ))) WARN( "glGetVertexArrayPointervEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexArrayiv( GLuint vaobj, GLenum pname, GLint *param )
+{
+    struct glGetVertexArrayiv_params args = { .vaobj = vaobj, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, pname %d, param %p\n", vaobj, pname, param );
+    if ((status = UNIX_CALL( glGetVertexArrayiv, &args ))) WARN( "glGetVertexArrayiv returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribArrayObjectfvATI( GLuint index, GLenum pname, GLfloat *params )
+{
+    struct glGetVertexAttribArrayObjectfvATI_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribArrayObjectfvATI, &args ))) WARN( "glGetVertexAttribArrayObjectfvATI returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribArrayObjectivATI( GLuint index, GLenum pname, GLint *params )
+{
+    struct glGetVertexAttribArrayObjectivATI_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribArrayObjectivATI, &args ))) WARN( "glGetVertexAttribArrayObjectivATI returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribIiv( GLuint index, GLenum pname, GLint *params )
+{
+    struct glGetVertexAttribIiv_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribIiv, &args ))) WARN( "glGetVertexAttribIiv returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribIivEXT( GLuint index, GLenum pname, GLint *params )
+{
+    struct glGetVertexAttribIivEXT_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribIivEXT, &args ))) WARN( "glGetVertexAttribIivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribIuiv( GLuint index, GLenum pname, GLuint *params )
+{
+    struct glGetVertexAttribIuiv_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribIuiv, &args ))) WARN( "glGetVertexAttribIuiv returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribIuivEXT( GLuint index, GLenum pname, GLuint *params )
+{
+    struct glGetVertexAttribIuivEXT_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribIuivEXT, &args ))) WARN( "glGetVertexAttribIuivEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribLdv( GLuint index, GLenum pname, GLdouble *params )
+{
+    struct glGetVertexAttribLdv_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribLdv, &args ))) WARN( "glGetVertexAttribLdv returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribLdvEXT( GLuint index, GLenum pname, GLdouble *params )
+{
+    struct glGetVertexAttribLdvEXT_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribLdvEXT, &args ))) WARN( "glGetVertexAttribLdvEXT returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribLi64vNV( GLuint index, GLenum pname, GLint64EXT *params )
+{
+    struct glGetVertexAttribLi64vNV_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribLi64vNV, &args ))) WARN( "glGetVertexAttribLi64vNV returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribLui64vARB( GLuint index, GLenum pname, GLuint64EXT *params )
+{
+    struct glGetVertexAttribLui64vARB_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribLui64vARB, &args ))) WARN( "glGetVertexAttribLui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribLui64vNV( GLuint index, GLenum pname, GLuint64EXT *params )
+{
+    struct glGetVertexAttribLui64vNV_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribLui64vNV, &args ))) WARN( "glGetVertexAttribLui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribPointerv( GLuint index, GLenum pname, void **pointer )
+{
+    struct glGetVertexAttribPointerv_params args = { .index = index, .pname = pname, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, pointer %p\n", index, pname, pointer );
+    if ((status = UNIX_CALL( glGetVertexAttribPointerv, &args ))) WARN( "glGetVertexAttribPointerv returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribPointervARB( GLuint index, GLenum pname, void **pointer )
+{
+    struct glGetVertexAttribPointervARB_params args = { .index = index, .pname = pname, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, pointer %p\n", index, pname, pointer );
+    if ((status = UNIX_CALL( glGetVertexAttribPointervARB, &args ))) WARN( "glGetVertexAttribPointervARB returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribPointervNV( GLuint index, GLenum pname, void **pointer )
+{
+    struct glGetVertexAttribPointervNV_params args = { .index = index, .pname = pname, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, pointer %p\n", index, pname, pointer );
+    if ((status = UNIX_CALL( glGetVertexAttribPointervNV, &args ))) WARN( "glGetVertexAttribPointervNV returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribdv( GLuint index, GLenum pname, GLdouble *params )
+{
+    struct glGetVertexAttribdv_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribdv, &args ))) WARN( "glGetVertexAttribdv returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribdvARB( GLuint index, GLenum pname, GLdouble *params )
+{
+    struct glGetVertexAttribdvARB_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribdvARB, &args ))) WARN( "glGetVertexAttribdvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribdvNV( GLuint index, GLenum pname, GLdouble *params )
+{
+    struct glGetVertexAttribdvNV_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribdvNV, &args ))) WARN( "glGetVertexAttribdvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribfv( GLuint index, GLenum pname, GLfloat *params )
+{
+    struct glGetVertexAttribfv_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribfv, &args ))) WARN( "glGetVertexAttribfv returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribfvARB( GLuint index, GLenum pname, GLfloat *params )
+{
+    struct glGetVertexAttribfvARB_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribfvARB, &args ))) WARN( "glGetVertexAttribfvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribfvNV( GLuint index, GLenum pname, GLfloat *params )
+{
+    struct glGetVertexAttribfvNV_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribfvNV, &args ))) WARN( "glGetVertexAttribfvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribiv( GLuint index, GLenum pname, GLint *params )
+{
+    struct glGetVertexAttribiv_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribiv, &args ))) WARN( "glGetVertexAttribiv returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribivARB( GLuint index, GLenum pname, GLint *params )
+{
+    struct glGetVertexAttribivARB_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribivARB, &args ))) WARN( "glGetVertexAttribivARB returned %#x\n", status );
+}
+
+static void WINAPI glGetVertexAttribivNV( GLuint index, GLenum pname, GLint *params )
+{
+    struct glGetVertexAttribivNV_params args = { .index = index, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, params %p\n", index, pname, params );
+    if ((status = UNIX_CALL( glGetVertexAttribivNV, &args ))) WARN( "glGetVertexAttribivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetVideoCaptureStreamdvNV( GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params )
+{
+    struct glGetVideoCaptureStreamdvNV_params args = { .video_capture_slot = video_capture_slot, .stream = stream, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "video_capture_slot %d, stream %d, pname %d, params %p\n", video_capture_slot, stream, pname, params );
+    if ((status = UNIX_CALL( glGetVideoCaptureStreamdvNV, &args ))) WARN( "glGetVideoCaptureStreamdvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetVideoCaptureStreamfvNV( GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params )
+{
+    struct glGetVideoCaptureStreamfvNV_params args = { .video_capture_slot = video_capture_slot, .stream = stream, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "video_capture_slot %d, stream %d, pname %d, params %p\n", video_capture_slot, stream, pname, params );
+    if ((status = UNIX_CALL( glGetVideoCaptureStreamfvNV, &args ))) WARN( "glGetVideoCaptureStreamfvNV returned %#x\n", status );
+}
+
+static void WINAPI glGetVideoCaptureStreamivNV( GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params )
+{
+    struct glGetVideoCaptureStreamivNV_params args = { .video_capture_slot = video_capture_slot, .stream = stream, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "video_capture_slot %d, stream %d, pname %d, params %p\n", video_capture_slot, stream, pname, params );
+    if ((status = UNIX_CALL( glGetVideoCaptureStreamivNV, &args ))) WARN( "glGetVideoCaptureStreamivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetVideoCaptureivNV( GLuint video_capture_slot, GLenum pname, GLint *params )
+{
+    struct glGetVideoCaptureivNV_params args = { .video_capture_slot = video_capture_slot, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "video_capture_slot %d, pname %d, params %p\n", video_capture_slot, pname, params );
+    if ((status = UNIX_CALL( glGetVideoCaptureivNV, &args ))) WARN( "glGetVideoCaptureivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetVideoi64vNV( GLuint video_slot, GLenum pname, GLint64EXT *params )
+{
+    struct glGetVideoi64vNV_params args = { .video_slot = video_slot, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "video_slot %d, pname %d, params %p\n", video_slot, pname, params );
+    if ((status = UNIX_CALL( glGetVideoi64vNV, &args ))) WARN( "glGetVideoi64vNV returned %#x\n", status );
+}
+
+static void WINAPI glGetVideoivNV( GLuint video_slot, GLenum pname, GLint *params )
+{
+    struct glGetVideoivNV_params args = { .video_slot = video_slot, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "video_slot %d, pname %d, params %p\n", video_slot, pname, params );
+    if ((status = UNIX_CALL( glGetVideoivNV, &args ))) WARN( "glGetVideoivNV returned %#x\n", status );
+}
+
+static void WINAPI glGetVideoui64vNV( GLuint video_slot, GLenum pname, GLuint64EXT *params )
+{
+    struct glGetVideoui64vNV_params args = { .video_slot = video_slot, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "video_slot %d, pname %d, params %p\n", video_slot, pname, params );
+    if ((status = UNIX_CALL( glGetVideoui64vNV, &args ))) WARN( "glGetVideoui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glGetVideouivNV( GLuint video_slot, GLenum pname, GLuint *params )
+{
+    struct glGetVideouivNV_params args = { .video_slot = video_slot, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "video_slot %d, pname %d, params %p\n", video_slot, pname, params );
+    if ((status = UNIX_CALL( glGetVideouivNV, &args ))) WARN( "glGetVideouivNV returned %#x\n", status );
+}
+
+static GLVULKANPROCNV WINAPI glGetVkProcAddrNV( const GLchar *name )
+{
+    struct glGetVkProcAddrNV_params args = { .name = name, };
+    NTSTATUS status;
+    TRACE( "name %p\n", name );
+    if ((status = UNIX_CALL( glGetVkProcAddrNV, &args ))) WARN( "glGetVkProcAddrNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glGetnColorTable( GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table )
+{
+    struct glGetnColorTable_params args = { .target = target, .format = format, .type = type, .bufSize = bufSize, .table = table, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, type %d, bufSize %d, table %p\n", target, format, type, bufSize, table );
+    if ((status = UNIX_CALL( glGetnColorTable, &args ))) WARN( "glGetnColorTable returned %#x\n", status );
+}
+
+static void WINAPI glGetnColorTableARB( GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table )
+{
+    struct glGetnColorTableARB_params args = { .target = target, .format = format, .type = type, .bufSize = bufSize, .table = table, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, type %d, bufSize %d, table %p\n", target, format, type, bufSize, table );
+    if ((status = UNIX_CALL( glGetnColorTableARB, &args ))) WARN( "glGetnColorTableARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnCompressedTexImage( GLenum target, GLint lod, GLsizei bufSize, void *pixels )
+{
+    struct glGetnCompressedTexImage_params args = { .target = target, .lod = lod, .bufSize = bufSize, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "target %d, lod %d, bufSize %d, pixels %p\n", target, lod, bufSize, pixels );
+    if ((status = UNIX_CALL( glGetnCompressedTexImage, &args ))) WARN( "glGetnCompressedTexImage returned %#x\n", status );
+}
+
+static void WINAPI glGetnCompressedTexImageARB( GLenum target, GLint lod, GLsizei bufSize, void *img )
+{
+    struct glGetnCompressedTexImageARB_params args = { .target = target, .lod = lod, .bufSize = bufSize, .img = img, };
+    NTSTATUS status;
+    TRACE( "target %d, lod %d, bufSize %d, img %p\n", target, lod, bufSize, img );
+    if ((status = UNIX_CALL( glGetnCompressedTexImageARB, &args ))) WARN( "glGetnCompressedTexImageARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnConvolutionFilter( GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image )
+{
+    struct glGetnConvolutionFilter_params args = { .target = target, .format = format, .type = type, .bufSize = bufSize, .image = image, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, type %d, bufSize %d, image %p\n", target, format, type, bufSize, image );
+    if ((status = UNIX_CALL( glGetnConvolutionFilter, &args ))) WARN( "glGetnConvolutionFilter returned %#x\n", status );
+}
+
+static void WINAPI glGetnConvolutionFilterARB( GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image )
+{
+    struct glGetnConvolutionFilterARB_params args = { .target = target, .format = format, .type = type, .bufSize = bufSize, .image = image, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, type %d, bufSize %d, image %p\n", target, format, type, bufSize, image );
+    if ((status = UNIX_CALL( glGetnConvolutionFilterARB, &args ))) WARN( "glGetnConvolutionFilterARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnHistogram( GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values )
+{
+    struct glGetnHistogram_params args = { .target = target, .reset = reset, .format = format, .type = type, .bufSize = bufSize, .values = values, };
+    NTSTATUS status;
+    TRACE( "target %d, reset %d, format %d, type %d, bufSize %d, values %p\n", target, reset, format, type, bufSize, values );
+    if ((status = UNIX_CALL( glGetnHistogram, &args ))) WARN( "glGetnHistogram returned %#x\n", status );
+}
+
+static void WINAPI glGetnHistogramARB( GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values )
+{
+    struct glGetnHistogramARB_params args = { .target = target, .reset = reset, .format = format, .type = type, .bufSize = bufSize, .values = values, };
+    NTSTATUS status;
+    TRACE( "target %d, reset %d, format %d, type %d, bufSize %d, values %p\n", target, reset, format, type, bufSize, values );
+    if ((status = UNIX_CALL( glGetnHistogramARB, &args ))) WARN( "glGetnHistogramARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnMapdv( GLenum target, GLenum query, GLsizei bufSize, GLdouble *v )
+{
+    struct glGetnMapdv_params args = { .target = target, .query = query, .bufSize = bufSize, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, query %d, bufSize %d, v %p\n", target, query, bufSize, v );
+    if ((status = UNIX_CALL( glGetnMapdv, &args ))) WARN( "glGetnMapdv returned %#x\n", status );
+}
+
+static void WINAPI glGetnMapdvARB( GLenum target, GLenum query, GLsizei bufSize, GLdouble *v )
+{
+    struct glGetnMapdvARB_params args = { .target = target, .query = query, .bufSize = bufSize, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, query %d, bufSize %d, v %p\n", target, query, bufSize, v );
+    if ((status = UNIX_CALL( glGetnMapdvARB, &args ))) WARN( "glGetnMapdvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnMapfv( GLenum target, GLenum query, GLsizei bufSize, GLfloat *v )
+{
+    struct glGetnMapfv_params args = { .target = target, .query = query, .bufSize = bufSize, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, query %d, bufSize %d, v %p\n", target, query, bufSize, v );
+    if ((status = UNIX_CALL( glGetnMapfv, &args ))) WARN( "glGetnMapfv returned %#x\n", status );
+}
+
+static void WINAPI glGetnMapfvARB( GLenum target, GLenum query, GLsizei bufSize, GLfloat *v )
+{
+    struct glGetnMapfvARB_params args = { .target = target, .query = query, .bufSize = bufSize, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, query %d, bufSize %d, v %p\n", target, query, bufSize, v );
+    if ((status = UNIX_CALL( glGetnMapfvARB, &args ))) WARN( "glGetnMapfvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnMapiv( GLenum target, GLenum query, GLsizei bufSize, GLint *v )
+{
+    struct glGetnMapiv_params args = { .target = target, .query = query, .bufSize = bufSize, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, query %d, bufSize %d, v %p\n", target, query, bufSize, v );
+    if ((status = UNIX_CALL( glGetnMapiv, &args ))) WARN( "glGetnMapiv returned %#x\n", status );
+}
+
+static void WINAPI glGetnMapivARB( GLenum target, GLenum query, GLsizei bufSize, GLint *v )
+{
+    struct glGetnMapivARB_params args = { .target = target, .query = query, .bufSize = bufSize, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, query %d, bufSize %d, v %p\n", target, query, bufSize, v );
+    if ((status = UNIX_CALL( glGetnMapivARB, &args ))) WARN( "glGetnMapivARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnMinmax( GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values )
+{
+    struct glGetnMinmax_params args = { .target = target, .reset = reset, .format = format, .type = type, .bufSize = bufSize, .values = values, };
+    NTSTATUS status;
+    TRACE( "target %d, reset %d, format %d, type %d, bufSize %d, values %p\n", target, reset, format, type, bufSize, values );
+    if ((status = UNIX_CALL( glGetnMinmax, &args ))) WARN( "glGetnMinmax returned %#x\n", status );
+}
+
+static void WINAPI glGetnMinmaxARB( GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values )
+{
+    struct glGetnMinmaxARB_params args = { .target = target, .reset = reset, .format = format, .type = type, .bufSize = bufSize, .values = values, };
+    NTSTATUS status;
+    TRACE( "target %d, reset %d, format %d, type %d, bufSize %d, values %p\n", target, reset, format, type, bufSize, values );
+    if ((status = UNIX_CALL( glGetnMinmaxARB, &args ))) WARN( "glGetnMinmaxARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnPixelMapfv( GLenum map, GLsizei bufSize, GLfloat *values )
+{
+    struct glGetnPixelMapfv_params args = { .map = map, .bufSize = bufSize, .values = values, };
+    NTSTATUS status;
+    TRACE( "map %d, bufSize %d, values %p\n", map, bufSize, values );
+    if ((status = UNIX_CALL( glGetnPixelMapfv, &args ))) WARN( "glGetnPixelMapfv returned %#x\n", status );
+}
+
+static void WINAPI glGetnPixelMapfvARB( GLenum map, GLsizei bufSize, GLfloat *values )
+{
+    struct glGetnPixelMapfvARB_params args = { .map = map, .bufSize = bufSize, .values = values, };
+    NTSTATUS status;
+    TRACE( "map %d, bufSize %d, values %p\n", map, bufSize, values );
+    if ((status = UNIX_CALL( glGetnPixelMapfvARB, &args ))) WARN( "glGetnPixelMapfvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnPixelMapuiv( GLenum map, GLsizei bufSize, GLuint *values )
+{
+    struct glGetnPixelMapuiv_params args = { .map = map, .bufSize = bufSize, .values = values, };
+    NTSTATUS status;
+    TRACE( "map %d, bufSize %d, values %p\n", map, bufSize, values );
+    if ((status = UNIX_CALL( glGetnPixelMapuiv, &args ))) WARN( "glGetnPixelMapuiv returned %#x\n", status );
+}
+
+static void WINAPI glGetnPixelMapuivARB( GLenum map, GLsizei bufSize, GLuint *values )
+{
+    struct glGetnPixelMapuivARB_params args = { .map = map, .bufSize = bufSize, .values = values, };
+    NTSTATUS status;
+    TRACE( "map %d, bufSize %d, values %p\n", map, bufSize, values );
+    if ((status = UNIX_CALL( glGetnPixelMapuivARB, &args ))) WARN( "glGetnPixelMapuivARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnPixelMapusv( GLenum map, GLsizei bufSize, GLushort *values )
+{
+    struct glGetnPixelMapusv_params args = { .map = map, .bufSize = bufSize, .values = values, };
+    NTSTATUS status;
+    TRACE( "map %d, bufSize %d, values %p\n", map, bufSize, values );
+    if ((status = UNIX_CALL( glGetnPixelMapusv, &args ))) WARN( "glGetnPixelMapusv returned %#x\n", status );
+}
+
+static void WINAPI glGetnPixelMapusvARB( GLenum map, GLsizei bufSize, GLushort *values )
+{
+    struct glGetnPixelMapusvARB_params args = { .map = map, .bufSize = bufSize, .values = values, };
+    NTSTATUS status;
+    TRACE( "map %d, bufSize %d, values %p\n", map, bufSize, values );
+    if ((status = UNIX_CALL( glGetnPixelMapusvARB, &args ))) WARN( "glGetnPixelMapusvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnPolygonStipple( GLsizei bufSize, GLubyte *pattern )
+{
+    struct glGetnPolygonStipple_params args = { .bufSize = bufSize, .pattern = pattern, };
+    NTSTATUS status;
+    TRACE( "bufSize %d, pattern %p\n", bufSize, pattern );
+    if ((status = UNIX_CALL( glGetnPolygonStipple, &args ))) WARN( "glGetnPolygonStipple returned %#x\n", status );
+}
+
+static void WINAPI glGetnPolygonStippleARB( GLsizei bufSize, GLubyte *pattern )
+{
+    struct glGetnPolygonStippleARB_params args = { .bufSize = bufSize, .pattern = pattern, };
+    NTSTATUS status;
+    TRACE( "bufSize %d, pattern %p\n", bufSize, pattern );
+    if ((status = UNIX_CALL( glGetnPolygonStippleARB, &args ))) WARN( "glGetnPolygonStippleARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnSeparableFilter( GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span )
+{
+    struct glGetnSeparableFilter_params args = { .target = target, .format = format, .type = type, .rowBufSize = rowBufSize, .row = row, .columnBufSize = columnBufSize, .column = column, .span = span, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, type %d, rowBufSize %d, row %p, columnBufSize %d, column %p, span %p\n", target, format, type, rowBufSize, row, columnBufSize, column, span );
+    if ((status = UNIX_CALL( glGetnSeparableFilter, &args ))) WARN( "glGetnSeparableFilter returned %#x\n", status );
+}
+
+static void WINAPI glGetnSeparableFilterARB( GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span )
+{
+    struct glGetnSeparableFilterARB_params args = { .target = target, .format = format, .type = type, .rowBufSize = rowBufSize, .row = row, .columnBufSize = columnBufSize, .column = column, .span = span, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, type %d, rowBufSize %d, row %p, columnBufSize %d, column %p, span %p\n", target, format, type, rowBufSize, row, columnBufSize, column, span );
+    if ((status = UNIX_CALL( glGetnSeparableFilterARB, &args ))) WARN( "glGetnSeparableFilterARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnTexImage( GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels )
+{
+    struct glGetnTexImage_params args = { .target = target, .level = level, .format = format, .type = type, .bufSize = bufSize, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, format %d, type %d, bufSize %d, pixels %p\n", target, level, format, type, bufSize, pixels );
+    if ((status = UNIX_CALL( glGetnTexImage, &args ))) WARN( "glGetnTexImage returned %#x\n", status );
+}
+
+static void WINAPI glGetnTexImageARB( GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img )
+{
+    struct glGetnTexImageARB_params args = { .target = target, .level = level, .format = format, .type = type, .bufSize = bufSize, .img = img, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, format %d, type %d, bufSize %d, img %p\n", target, level, format, type, bufSize, img );
+    if ((status = UNIX_CALL( glGetnTexImageARB, &args ))) WARN( "glGetnTexImageARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnUniformdv( GLuint program, GLint location, GLsizei bufSize, GLdouble *params )
+{
+    struct glGetnUniformdv_params args = { .program = program, .location = location, .bufSize = bufSize, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, bufSize %d, params %p\n", program, location, bufSize, params );
+    if ((status = UNIX_CALL( glGetnUniformdv, &args ))) WARN( "glGetnUniformdv returned %#x\n", status );
+}
+
+static void WINAPI glGetnUniformdvARB( GLuint program, GLint location, GLsizei bufSize, GLdouble *params )
+{
+    struct glGetnUniformdvARB_params args = { .program = program, .location = location, .bufSize = bufSize, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, bufSize %d, params %p\n", program, location, bufSize, params );
+    if ((status = UNIX_CALL( glGetnUniformdvARB, &args ))) WARN( "glGetnUniformdvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnUniformfv( GLuint program, GLint location, GLsizei bufSize, GLfloat *params )
+{
+    struct glGetnUniformfv_params args = { .program = program, .location = location, .bufSize = bufSize, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, bufSize %d, params %p\n", program, location, bufSize, params );
+    if ((status = UNIX_CALL( glGetnUniformfv, &args ))) WARN( "glGetnUniformfv returned %#x\n", status );
+}
+
+static void WINAPI glGetnUniformfvARB( GLuint program, GLint location, GLsizei bufSize, GLfloat *params )
+{
+    struct glGetnUniformfvARB_params args = { .program = program, .location = location, .bufSize = bufSize, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, bufSize %d, params %p\n", program, location, bufSize, params );
+    if ((status = UNIX_CALL( glGetnUniformfvARB, &args ))) WARN( "glGetnUniformfvARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnUniformi64vARB( GLuint program, GLint location, GLsizei bufSize, GLint64 *params )
+{
+    struct glGetnUniformi64vARB_params args = { .program = program, .location = location, .bufSize = bufSize, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, bufSize %d, params %p\n", program, location, bufSize, params );
+    if ((status = UNIX_CALL( glGetnUniformi64vARB, &args ))) WARN( "glGetnUniformi64vARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnUniformiv( GLuint program, GLint location, GLsizei bufSize, GLint *params )
+{
+    struct glGetnUniformiv_params args = { .program = program, .location = location, .bufSize = bufSize, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, bufSize %d, params %p\n", program, location, bufSize, params );
+    if ((status = UNIX_CALL( glGetnUniformiv, &args ))) WARN( "glGetnUniformiv returned %#x\n", status );
+}
+
+static void WINAPI glGetnUniformivARB( GLuint program, GLint location, GLsizei bufSize, GLint *params )
+{
+    struct glGetnUniformivARB_params args = { .program = program, .location = location, .bufSize = bufSize, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, bufSize %d, params %p\n", program, location, bufSize, params );
+    if ((status = UNIX_CALL( glGetnUniformivARB, &args ))) WARN( "glGetnUniformivARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnUniformui64vARB( GLuint program, GLint location, GLsizei bufSize, GLuint64 *params )
+{
+    struct glGetnUniformui64vARB_params args = { .program = program, .location = location, .bufSize = bufSize, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, bufSize %d, params %p\n", program, location, bufSize, params );
+    if ((status = UNIX_CALL( glGetnUniformui64vARB, &args ))) WARN( "glGetnUniformui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glGetnUniformuiv( GLuint program, GLint location, GLsizei bufSize, GLuint *params )
+{
+    struct glGetnUniformuiv_params args = { .program = program, .location = location, .bufSize = bufSize, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, bufSize %d, params %p\n", program, location, bufSize, params );
+    if ((status = UNIX_CALL( glGetnUniformuiv, &args ))) WARN( "glGetnUniformuiv returned %#x\n", status );
+}
+
+static void WINAPI glGetnUniformuivARB( GLuint program, GLint location, GLsizei bufSize, GLuint *params )
+{
+    struct glGetnUniformuivARB_params args = { .program = program, .location = location, .bufSize = bufSize, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, bufSize %d, params %p\n", program, location, bufSize, params );
+    if ((status = UNIX_CALL( glGetnUniformuivARB, &args ))) WARN( "glGetnUniformuivARB returned %#x\n", status );
+}
+
+static void WINAPI glGlobalAlphaFactorbSUN( GLbyte factor )
+{
+    struct glGlobalAlphaFactorbSUN_params args = { .factor = factor, };
+    NTSTATUS status;
+    TRACE( "factor %d\n", factor );
+    if ((status = UNIX_CALL( glGlobalAlphaFactorbSUN, &args ))) WARN( "glGlobalAlphaFactorbSUN returned %#x\n", status );
+}
+
+static void WINAPI glGlobalAlphaFactordSUN( GLdouble factor )
+{
+    struct glGlobalAlphaFactordSUN_params args = { .factor = factor, };
+    NTSTATUS status;
+    TRACE( "factor %f\n", factor );
+    if ((status = UNIX_CALL( glGlobalAlphaFactordSUN, &args ))) WARN( "glGlobalAlphaFactordSUN returned %#x\n", status );
+}
+
+static void WINAPI glGlobalAlphaFactorfSUN( GLfloat factor )
+{
+    struct glGlobalAlphaFactorfSUN_params args = { .factor = factor, };
+    NTSTATUS status;
+    TRACE( "factor %f\n", factor );
+    if ((status = UNIX_CALL( glGlobalAlphaFactorfSUN, &args ))) WARN( "glGlobalAlphaFactorfSUN returned %#x\n", status );
+}
+
+static void WINAPI glGlobalAlphaFactoriSUN( GLint factor )
+{
+    struct glGlobalAlphaFactoriSUN_params args = { .factor = factor, };
+    NTSTATUS status;
+    TRACE( "factor %d\n", factor );
+    if ((status = UNIX_CALL( glGlobalAlphaFactoriSUN, &args ))) WARN( "glGlobalAlphaFactoriSUN returned %#x\n", status );
+}
+
+static void WINAPI glGlobalAlphaFactorsSUN( GLshort factor )
+{
+    struct glGlobalAlphaFactorsSUN_params args = { .factor = factor, };
+    NTSTATUS status;
+    TRACE( "factor %d\n", factor );
+    if ((status = UNIX_CALL( glGlobalAlphaFactorsSUN, &args ))) WARN( "glGlobalAlphaFactorsSUN returned %#x\n", status );
+}
+
+static void WINAPI glGlobalAlphaFactorubSUN( GLubyte factor )
+{
+    struct glGlobalAlphaFactorubSUN_params args = { .factor = factor, };
+    NTSTATUS status;
+    TRACE( "factor %d\n", factor );
+    if ((status = UNIX_CALL( glGlobalAlphaFactorubSUN, &args ))) WARN( "glGlobalAlphaFactorubSUN returned %#x\n", status );
+}
+
+static void WINAPI glGlobalAlphaFactoruiSUN( GLuint factor )
+{
+    struct glGlobalAlphaFactoruiSUN_params args = { .factor = factor, };
+    NTSTATUS status;
+    TRACE( "factor %d\n", factor );
+    if ((status = UNIX_CALL( glGlobalAlphaFactoruiSUN, &args ))) WARN( "glGlobalAlphaFactoruiSUN returned %#x\n", status );
+}
+
+static void WINAPI glGlobalAlphaFactorusSUN( GLushort factor )
+{
+    struct glGlobalAlphaFactorusSUN_params args = { .factor = factor, };
+    NTSTATUS status;
+    TRACE( "factor %d\n", factor );
+    if ((status = UNIX_CALL( glGlobalAlphaFactorusSUN, &args ))) WARN( "glGlobalAlphaFactorusSUN returned %#x\n", status );
+}
+
+static void WINAPI glHintPGI( GLenum target, GLint mode )
+{
+    struct glHintPGI_params args = { .target = target, .mode = mode, };
+    NTSTATUS status;
+    TRACE( "target %d, mode %d\n", target, mode );
+    if ((status = UNIX_CALL( glHintPGI, &args ))) WARN( "glHintPGI returned %#x\n", status );
+}
+
+static void WINAPI glHistogram( GLenum target, GLsizei width, GLenum internalformat, GLboolean sink )
+{
+    struct glHistogram_params args = { .target = target, .width = width, .internalformat = internalformat, .sink = sink, };
+    NTSTATUS status;
+    TRACE( "target %d, width %d, internalformat %d, sink %d\n", target, width, internalformat, sink );
+    if ((status = UNIX_CALL( glHistogram, &args ))) WARN( "glHistogram returned %#x\n", status );
+}
+
+static void WINAPI glHistogramEXT( GLenum target, GLsizei width, GLenum internalformat, GLboolean sink )
+{
+    struct glHistogramEXT_params args = { .target = target, .width = width, .internalformat = internalformat, .sink = sink, };
+    NTSTATUS status;
+    TRACE( "target %d, width %d, internalformat %d, sink %d\n", target, width, internalformat, sink );
+    if ((status = UNIX_CALL( glHistogramEXT, &args ))) WARN( "glHistogramEXT returned %#x\n", status );
+}
+
+static void WINAPI glIglooInterfaceSGIX( GLenum pname, const void *params )
+{
+    struct glIglooInterfaceSGIX_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glIglooInterfaceSGIX, &args ))) WARN( "glIglooInterfaceSGIX returned %#x\n", status );
+}
+
+static void WINAPI glImageTransformParameterfHP( GLenum target, GLenum pname, GLfloat param )
+{
+    struct glImageTransformParameterfHP_params args = { .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, param %f\n", target, pname, param );
+    if ((status = UNIX_CALL( glImageTransformParameterfHP, &args ))) WARN( "glImageTransformParameterfHP returned %#x\n", status );
+}
+
+static void WINAPI glImageTransformParameterfvHP( GLenum target, GLenum pname, const GLfloat *params )
+{
+    struct glImageTransformParameterfvHP_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glImageTransformParameterfvHP, &args ))) WARN( "glImageTransformParameterfvHP returned %#x\n", status );
+}
+
+static void WINAPI glImageTransformParameteriHP( GLenum target, GLenum pname, GLint param )
+{
+    struct glImageTransformParameteriHP_params args = { .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, param %d\n", target, pname, param );
+    if ((status = UNIX_CALL( glImageTransformParameteriHP, &args ))) WARN( "glImageTransformParameteriHP returned %#x\n", status );
+}
+
+static void WINAPI glImageTransformParameterivHP( GLenum target, GLenum pname, const GLint *params )
+{
+    struct glImageTransformParameterivHP_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glImageTransformParameterivHP, &args ))) WARN( "glImageTransformParameterivHP returned %#x\n", status );
+}
+
+static void WINAPI glImportMemoryFdEXT( GLuint memory, GLuint64 size, GLenum handleType, GLint fd )
+{
+    struct glImportMemoryFdEXT_params args = { .memory = memory, .size = size, .handleType = handleType, .fd = fd, };
+    NTSTATUS status;
+    TRACE( "memory %d, size %s, handleType %d, fd %d\n", memory, wine_dbgstr_longlong(size), handleType, fd );
+    if ((status = UNIX_CALL( glImportMemoryFdEXT, &args ))) WARN( "glImportMemoryFdEXT returned %#x\n", status );
+}
+
+static void WINAPI glImportMemoryWin32HandleEXT( GLuint memory, GLuint64 size, GLenum handleType, void *handle )
+{
+    struct glImportMemoryWin32HandleEXT_params args = { .memory = memory, .size = size, .handleType = handleType, .handle = handle, };
+    NTSTATUS status;
+    TRACE( "memory %d, size %s, handleType %d, handle %p\n", memory, wine_dbgstr_longlong(size), handleType, handle );
+    if ((status = UNIX_CALL( glImportMemoryWin32HandleEXT, &args ))) WARN( "glImportMemoryWin32HandleEXT returned %#x\n", status );
+}
+
+static void WINAPI glImportMemoryWin32NameEXT( GLuint memory, GLuint64 size, GLenum handleType, const void *name )
+{
+    struct glImportMemoryWin32NameEXT_params args = { .memory = memory, .size = size, .handleType = handleType, .name = name, };
+    NTSTATUS status;
+    TRACE( "memory %d, size %s, handleType %d, name %p\n", memory, wine_dbgstr_longlong(size), handleType, name );
+    if ((status = UNIX_CALL( glImportMemoryWin32NameEXT, &args ))) WARN( "glImportMemoryWin32NameEXT returned %#x\n", status );
+}
+
+static void WINAPI glImportSemaphoreFdEXT( GLuint semaphore, GLenum handleType, GLint fd )
+{
+    struct glImportSemaphoreFdEXT_params args = { .semaphore = semaphore, .handleType = handleType, .fd = fd, };
+    NTSTATUS status;
+    TRACE( "semaphore %d, handleType %d, fd %d\n", semaphore, handleType, fd );
+    if ((status = UNIX_CALL( glImportSemaphoreFdEXT, &args ))) WARN( "glImportSemaphoreFdEXT returned %#x\n", status );
+}
+
+static void WINAPI glImportSemaphoreWin32HandleEXT( GLuint semaphore, GLenum handleType, void *handle )
+{
+    struct glImportSemaphoreWin32HandleEXT_params args = { .semaphore = semaphore, .handleType = handleType, .handle = handle, };
+    NTSTATUS status;
+    TRACE( "semaphore %d, handleType %d, handle %p\n", semaphore, handleType, handle );
+    if ((status = UNIX_CALL( glImportSemaphoreWin32HandleEXT, &args ))) WARN( "glImportSemaphoreWin32HandleEXT returned %#x\n", status );
+}
+
+static void WINAPI glImportSemaphoreWin32NameEXT( GLuint semaphore, GLenum handleType, const void *name )
+{
+    struct glImportSemaphoreWin32NameEXT_params args = { .semaphore = semaphore, .handleType = handleType, .name = name, };
+    NTSTATUS status;
+    TRACE( "semaphore %d, handleType %d, name %p\n", semaphore, handleType, name );
+    if ((status = UNIX_CALL( glImportSemaphoreWin32NameEXT, &args ))) WARN( "glImportSemaphoreWin32NameEXT returned %#x\n", status );
+}
+
+static GLsync WINAPI glImportSyncEXT( GLenum external_sync_type, GLintptr external_sync, GLbitfield flags )
+{
+    struct glImportSyncEXT_params args = { .external_sync_type = external_sync_type, .external_sync = external_sync, .flags = flags, };
+    NTSTATUS status;
+    TRACE( "external_sync_type %d, external_sync %ld, flags %d\n", external_sync_type, external_sync, flags );
+    if ((status = UNIX_CALL( glImportSyncEXT, &args ))) WARN( "glImportSyncEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glIndexFormatNV( GLenum type, GLsizei stride )
+{
+    struct glIndexFormatNV_params args = { .type = type, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "type %d, stride %d\n", type, stride );
+    if ((status = UNIX_CALL( glIndexFormatNV, &args ))) WARN( "glIndexFormatNV returned %#x\n", status );
+}
+
+static void WINAPI glIndexFuncEXT( GLenum func, GLclampf ref )
+{
+    struct glIndexFuncEXT_params args = { .func = func, .ref = ref, };
+    NTSTATUS status;
+    TRACE( "func %d, ref %f\n", func, ref );
+    if ((status = UNIX_CALL( glIndexFuncEXT, &args ))) WARN( "glIndexFuncEXT returned %#x\n", status );
+}
+
+static void WINAPI glIndexMaterialEXT( GLenum face, GLenum mode )
+{
+    struct glIndexMaterialEXT_params args = { .face = face, .mode = mode, };
+    NTSTATUS status;
+    TRACE( "face %d, mode %d\n", face, mode );
+    if ((status = UNIX_CALL( glIndexMaterialEXT, &args ))) WARN( "glIndexMaterialEXT returned %#x\n", status );
+}
+
+static void WINAPI glIndexPointerEXT( GLenum type, GLsizei stride, GLsizei count, const void *pointer )
+{
+    struct glIndexPointerEXT_params args = { .type = type, .stride = stride, .count = count, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "type %d, stride %d, count %d, pointer %p\n", type, stride, count, pointer );
+    if ((status = UNIX_CALL( glIndexPointerEXT, &args ))) WARN( "glIndexPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glIndexPointerListIBM( GLenum type, GLint stride, const void **pointer, GLint ptrstride )
+{
+    struct glIndexPointerListIBM_params args = { .type = type, .stride = stride, .pointer = pointer, .ptrstride = ptrstride, };
+    NTSTATUS status;
+    TRACE( "type %d, stride %d, pointer %p, ptrstride %d\n", type, stride, pointer, ptrstride );
+    if ((status = UNIX_CALL( glIndexPointerListIBM, &args ))) WARN( "glIndexPointerListIBM returned %#x\n", status );
+}
+
+static void WINAPI glIndexxOES( GLfixed component )
+{
+    struct glIndexxOES_params args = { .component = component, };
+    NTSTATUS status;
+    TRACE( "component %d\n", component );
+    if ((status = UNIX_CALL( glIndexxOES, &args ))) WARN( "glIndexxOES returned %#x\n", status );
+}
+
+static void WINAPI glIndexxvOES( const GLfixed *component )
+{
+    struct glIndexxvOES_params args = { .component = component, };
+    NTSTATUS status;
+    TRACE( "component %p\n", component );
+    if ((status = UNIX_CALL( glIndexxvOES, &args ))) WARN( "glIndexxvOES returned %#x\n", status );
+}
+
+static void WINAPI glInsertComponentEXT( GLuint res, GLuint src, GLuint num )
+{
+    struct glInsertComponentEXT_params args = { .res = res, .src = src, .num = num, };
+    NTSTATUS status;
+    TRACE( "res %d, src %d, num %d\n", res, src, num );
+    if ((status = UNIX_CALL( glInsertComponentEXT, &args ))) WARN( "glInsertComponentEXT returned %#x\n", status );
+}
+
+static void WINAPI glInsertEventMarkerEXT( GLsizei length, const GLchar *marker )
+{
+    struct glInsertEventMarkerEXT_params args = { .length = length, .marker = marker, };
+    NTSTATUS status;
+    TRACE( "length %d, marker %p\n", length, marker );
+    if ((status = UNIX_CALL( glInsertEventMarkerEXT, &args ))) WARN( "glInsertEventMarkerEXT returned %#x\n", status );
+}
+
+static void WINAPI glInstrumentsBufferSGIX( GLsizei size, GLint *buffer )
+{
+    struct glInstrumentsBufferSGIX_params args = { .size = size, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "size %d, buffer %p\n", size, buffer );
+    if ((status = UNIX_CALL( glInstrumentsBufferSGIX, &args ))) WARN( "glInstrumentsBufferSGIX returned %#x\n", status );
+}
+
+static void WINAPI glInterpolatePathsNV( GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight )
+{
+    struct glInterpolatePathsNV_params args = { .resultPath = resultPath, .pathA = pathA, .pathB = pathB, .weight = weight, };
+    NTSTATUS status;
+    TRACE( "resultPath %d, pathA %d, pathB %d, weight %f\n", resultPath, pathA, pathB, weight );
+    if ((status = UNIX_CALL( glInterpolatePathsNV, &args ))) WARN( "glInterpolatePathsNV returned %#x\n", status );
+}
+
+static void WINAPI glInvalidateBufferData( GLuint buffer )
+{
+    struct glInvalidateBufferData_params args = { .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "buffer %d\n", buffer );
+    if ((status = UNIX_CALL( glInvalidateBufferData, &args ))) WARN( "glInvalidateBufferData returned %#x\n", status );
+}
+
+static void WINAPI glInvalidateBufferSubData( GLuint buffer, GLintptr offset, GLsizeiptr length )
+{
+    struct glInvalidateBufferSubData_params args = { .buffer = buffer, .offset = offset, .length = length, };
+    NTSTATUS status;
+    TRACE( "buffer %d, offset %ld, length %ld\n", buffer, offset, length );
+    if ((status = UNIX_CALL( glInvalidateBufferSubData, &args ))) WARN( "glInvalidateBufferSubData returned %#x\n", status );
+}
+
+static void WINAPI glInvalidateFramebuffer( GLenum target, GLsizei numAttachments, const GLenum *attachments )
+{
+    struct glInvalidateFramebuffer_params args = { .target = target, .numAttachments = numAttachments, .attachments = attachments, };
+    NTSTATUS status;
+    TRACE( "target %d, numAttachments %d, attachments %p\n", target, numAttachments, attachments );
+    if ((status = UNIX_CALL( glInvalidateFramebuffer, &args ))) WARN( "glInvalidateFramebuffer returned %#x\n", status );
+}
+
+static void WINAPI glInvalidateNamedFramebufferData( GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments )
+{
+    struct glInvalidateNamedFramebufferData_params args = { .framebuffer = framebuffer, .numAttachments = numAttachments, .attachments = attachments, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, numAttachments %d, attachments %p\n", framebuffer, numAttachments, attachments );
+    if ((status = UNIX_CALL( glInvalidateNamedFramebufferData, &args ))) WARN( "glInvalidateNamedFramebufferData returned %#x\n", status );
+}
+
+static void WINAPI glInvalidateNamedFramebufferSubData( GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glInvalidateNamedFramebufferSubData_params args = { .framebuffer = framebuffer, .numAttachments = numAttachments, .attachments = attachments, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, numAttachments %d, attachments %p, x %d, y %d, width %d, height %d\n", framebuffer, numAttachments, attachments, x, y, width, height );
+    if ((status = UNIX_CALL( glInvalidateNamedFramebufferSubData, &args ))) WARN( "glInvalidateNamedFramebufferSubData returned %#x\n", status );
+}
+
+static void WINAPI glInvalidateSubFramebuffer( GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glInvalidateSubFramebuffer_params args = { .target = target, .numAttachments = numAttachments, .attachments = attachments, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "target %d, numAttachments %d, attachments %p, x %d, y %d, width %d, height %d\n", target, numAttachments, attachments, x, y, width, height );
+    if ((status = UNIX_CALL( glInvalidateSubFramebuffer, &args ))) WARN( "glInvalidateSubFramebuffer returned %#x\n", status );
+}
+
+static void WINAPI glInvalidateTexImage( GLuint texture, GLint level )
+{
+    struct glInvalidateTexImage_params args = { .texture = texture, .level = level, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d\n", texture, level );
+    if ((status = UNIX_CALL( glInvalidateTexImage, &args ))) WARN( "glInvalidateTexImage returned %#x\n", status );
+}
+
+static void WINAPI glInvalidateTexSubImage( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth )
+{
+    struct glInvalidateTexSubImage_params args = { .texture = texture, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d\n", texture, level, xoffset, yoffset, zoffset, width, height, depth );
+    if ((status = UNIX_CALL( glInvalidateTexSubImage, &args ))) WARN( "glInvalidateTexSubImage returned %#x\n", status );
+}
+
+static GLboolean WINAPI glIsAsyncMarkerSGIX( GLuint marker )
+{
+    struct glIsAsyncMarkerSGIX_params args = { .marker = marker, };
+    NTSTATUS status;
+    TRACE( "marker %d\n", marker );
+    if ((status = UNIX_CALL( glIsAsyncMarkerSGIX, &args ))) WARN( "glIsAsyncMarkerSGIX returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsBuffer( GLuint buffer )
+{
+    struct glIsBuffer_params args = { .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "buffer %d\n", buffer );
+    if ((status = UNIX_CALL( glIsBuffer, &args ))) WARN( "glIsBuffer returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsBufferARB( GLuint buffer )
+{
+    struct glIsBufferARB_params args = { .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "buffer %d\n", buffer );
+    if ((status = UNIX_CALL( glIsBufferARB, &args ))) WARN( "glIsBufferARB returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsBufferResidentNV( GLenum target )
+{
+    struct glIsBufferResidentNV_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glIsBufferResidentNV, &args ))) WARN( "glIsBufferResidentNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsCommandListNV( GLuint list )
+{
+    struct glIsCommandListNV_params args = { .list = list, };
+    NTSTATUS status;
+    TRACE( "list %d\n", list );
+    if ((status = UNIX_CALL( glIsCommandListNV, &args ))) WARN( "glIsCommandListNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsEnabledIndexedEXT( GLenum target, GLuint index )
+{
+    struct glIsEnabledIndexedEXT_params args = { .target = target, .index = index, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d\n", target, index );
+    if ((status = UNIX_CALL( glIsEnabledIndexedEXT, &args ))) WARN( "glIsEnabledIndexedEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsEnabledi( GLenum target, GLuint index )
+{
+    struct glIsEnabledi_params args = { .target = target, .index = index, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d\n", target, index );
+    if ((status = UNIX_CALL( glIsEnabledi, &args ))) WARN( "glIsEnabledi returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsFenceAPPLE( GLuint fence )
+{
+    struct glIsFenceAPPLE_params args = { .fence = fence, };
+    NTSTATUS status;
+    TRACE( "fence %d\n", fence );
+    if ((status = UNIX_CALL( glIsFenceAPPLE, &args ))) WARN( "glIsFenceAPPLE returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsFenceNV( GLuint fence )
+{
+    struct glIsFenceNV_params args = { .fence = fence, };
+    NTSTATUS status;
+    TRACE( "fence %d\n", fence );
+    if ((status = UNIX_CALL( glIsFenceNV, &args ))) WARN( "glIsFenceNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsFramebuffer( GLuint framebuffer )
+{
+    struct glIsFramebuffer_params args = { .framebuffer = framebuffer, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d\n", framebuffer );
+    if ((status = UNIX_CALL( glIsFramebuffer, &args ))) WARN( "glIsFramebuffer returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsFramebufferEXT( GLuint framebuffer )
+{
+    struct glIsFramebufferEXT_params args = { .framebuffer = framebuffer, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d\n", framebuffer );
+    if ((status = UNIX_CALL( glIsFramebufferEXT, &args ))) WARN( "glIsFramebufferEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsImageHandleResidentARB( GLuint64 handle )
+{
+    struct glIsImageHandleResidentARB_params args = { .handle = handle, };
+    NTSTATUS status;
+    TRACE( "handle %s\n", wine_dbgstr_longlong(handle) );
+    if ((status = UNIX_CALL( glIsImageHandleResidentARB, &args ))) WARN( "glIsImageHandleResidentARB returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsImageHandleResidentNV( GLuint64 handle )
+{
+    struct glIsImageHandleResidentNV_params args = { .handle = handle, };
+    NTSTATUS status;
+    TRACE( "handle %s\n", wine_dbgstr_longlong(handle) );
+    if ((status = UNIX_CALL( glIsImageHandleResidentNV, &args ))) WARN( "glIsImageHandleResidentNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsMemoryObjectEXT( GLuint memoryObject )
+{
+    struct glIsMemoryObjectEXT_params args = { .memoryObject = memoryObject, };
+    NTSTATUS status;
+    TRACE( "memoryObject %d\n", memoryObject );
+    if ((status = UNIX_CALL( glIsMemoryObjectEXT, &args ))) WARN( "glIsMemoryObjectEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsNameAMD( GLenum identifier, GLuint name )
+{
+    struct glIsNameAMD_params args = { .identifier = identifier, .name = name, };
+    NTSTATUS status;
+    TRACE( "identifier %d, name %d\n", identifier, name );
+    if ((status = UNIX_CALL( glIsNameAMD, &args ))) WARN( "glIsNameAMD returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsNamedBufferResidentNV( GLuint buffer )
+{
+    struct glIsNamedBufferResidentNV_params args = { .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "buffer %d\n", buffer );
+    if ((status = UNIX_CALL( glIsNamedBufferResidentNV, &args ))) WARN( "glIsNamedBufferResidentNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsNamedStringARB( GLint namelen, const GLchar *name )
+{
+    struct glIsNamedStringARB_params args = { .namelen = namelen, .name = name, };
+    NTSTATUS status;
+    TRACE( "namelen %d, name %p\n", namelen, name );
+    if ((status = UNIX_CALL( glIsNamedStringARB, &args ))) WARN( "glIsNamedStringARB returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsObjectBufferATI( GLuint buffer )
+{
+    struct glIsObjectBufferATI_params args = { .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "buffer %d\n", buffer );
+    if ((status = UNIX_CALL( glIsObjectBufferATI, &args ))) WARN( "glIsObjectBufferATI returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsOcclusionQueryNV( GLuint id )
+{
+    struct glIsOcclusionQueryNV_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glIsOcclusionQueryNV, &args ))) WARN( "glIsOcclusionQueryNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsPathNV( GLuint path )
+{
+    struct glIsPathNV_params args = { .path = path, };
+    NTSTATUS status;
+    TRACE( "path %d\n", path );
+    if ((status = UNIX_CALL( glIsPathNV, &args ))) WARN( "glIsPathNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsPointInFillPathNV( GLuint path, GLuint mask, GLfloat x, GLfloat y )
+{
+    struct glIsPointInFillPathNV_params args = { .path = path, .mask = mask, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "path %d, mask %d, x %f, y %f\n", path, mask, x, y );
+    if ((status = UNIX_CALL( glIsPointInFillPathNV, &args ))) WARN( "glIsPointInFillPathNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsPointInStrokePathNV( GLuint path, GLfloat x, GLfloat y )
+{
+    struct glIsPointInStrokePathNV_params args = { .path = path, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "path %d, x %f, y %f\n", path, x, y );
+    if ((status = UNIX_CALL( glIsPointInStrokePathNV, &args ))) WARN( "glIsPointInStrokePathNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsProgram( GLuint program )
+{
+    struct glIsProgram_params args = { .program = program, };
+    NTSTATUS status;
+    TRACE( "program %d\n", program );
+    if ((status = UNIX_CALL( glIsProgram, &args ))) WARN( "glIsProgram returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsProgramARB( GLuint program )
+{
+    struct glIsProgramARB_params args = { .program = program, };
+    NTSTATUS status;
+    TRACE( "program %d\n", program );
+    if ((status = UNIX_CALL( glIsProgramARB, &args ))) WARN( "glIsProgramARB returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsProgramNV( GLuint id )
+{
+    struct glIsProgramNV_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glIsProgramNV, &args ))) WARN( "glIsProgramNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsProgramPipeline( GLuint pipeline )
+{
+    struct glIsProgramPipeline_params args = { .pipeline = pipeline, };
+    NTSTATUS status;
+    TRACE( "pipeline %d\n", pipeline );
+    if ((status = UNIX_CALL( glIsProgramPipeline, &args ))) WARN( "glIsProgramPipeline returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsQuery( GLuint id )
+{
+    struct glIsQuery_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glIsQuery, &args ))) WARN( "glIsQuery returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsQueryARB( GLuint id )
+{
+    struct glIsQueryARB_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glIsQueryARB, &args ))) WARN( "glIsQueryARB returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsRenderbuffer( GLuint renderbuffer )
+{
+    struct glIsRenderbuffer_params args = { .renderbuffer = renderbuffer, };
+    NTSTATUS status;
+    TRACE( "renderbuffer %d\n", renderbuffer );
+    if ((status = UNIX_CALL( glIsRenderbuffer, &args ))) WARN( "glIsRenderbuffer returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsRenderbufferEXT( GLuint renderbuffer )
+{
+    struct glIsRenderbufferEXT_params args = { .renderbuffer = renderbuffer, };
+    NTSTATUS status;
+    TRACE( "renderbuffer %d\n", renderbuffer );
+    if ((status = UNIX_CALL( glIsRenderbufferEXT, &args ))) WARN( "glIsRenderbufferEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsSampler( GLuint sampler )
+{
+    struct glIsSampler_params args = { .sampler = sampler, };
+    NTSTATUS status;
+    TRACE( "sampler %d\n", sampler );
+    if ((status = UNIX_CALL( glIsSampler, &args ))) WARN( "glIsSampler returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsSemaphoreEXT( GLuint semaphore )
+{
+    struct glIsSemaphoreEXT_params args = { .semaphore = semaphore, };
+    NTSTATUS status;
+    TRACE( "semaphore %d\n", semaphore );
+    if ((status = UNIX_CALL( glIsSemaphoreEXT, &args ))) WARN( "glIsSemaphoreEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsShader( GLuint shader )
+{
+    struct glIsShader_params args = { .shader = shader, };
+    NTSTATUS status;
+    TRACE( "shader %d\n", shader );
+    if ((status = UNIX_CALL( glIsShader, &args ))) WARN( "glIsShader returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsStateNV( GLuint state )
+{
+    struct glIsStateNV_params args = { .state = state, };
+    NTSTATUS status;
+    TRACE( "state %d\n", state );
+    if ((status = UNIX_CALL( glIsStateNV, &args ))) WARN( "glIsStateNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsSync( GLsync sync )
+{
+    struct glIsSync_params args = { .sync = sync, };
+    NTSTATUS status;
+    TRACE( "sync %p\n", sync );
+    if ((status = UNIX_CALL( glIsSync, &args ))) WARN( "glIsSync returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsTextureEXT( GLuint texture )
+{
+    struct glIsTextureEXT_params args = { .texture = texture, };
+    NTSTATUS status;
+    TRACE( "texture %d\n", texture );
+    if ((status = UNIX_CALL( glIsTextureEXT, &args ))) WARN( "glIsTextureEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsTextureHandleResidentARB( GLuint64 handle )
+{
+    struct glIsTextureHandleResidentARB_params args = { .handle = handle, };
+    NTSTATUS status;
+    TRACE( "handle %s\n", wine_dbgstr_longlong(handle) );
+    if ((status = UNIX_CALL( glIsTextureHandleResidentARB, &args ))) WARN( "glIsTextureHandleResidentARB returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsTextureHandleResidentNV( GLuint64 handle )
+{
+    struct glIsTextureHandleResidentNV_params args = { .handle = handle, };
+    NTSTATUS status;
+    TRACE( "handle %s\n", wine_dbgstr_longlong(handle) );
+    if ((status = UNIX_CALL( glIsTextureHandleResidentNV, &args ))) WARN( "glIsTextureHandleResidentNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsTransformFeedback( GLuint id )
+{
+    struct glIsTransformFeedback_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glIsTransformFeedback, &args ))) WARN( "glIsTransformFeedback returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsTransformFeedbackNV( GLuint id )
+{
+    struct glIsTransformFeedbackNV_params args = { .id = id, };
+    NTSTATUS status;
+    TRACE( "id %d\n", id );
+    if ((status = UNIX_CALL( glIsTransformFeedbackNV, &args ))) WARN( "glIsTransformFeedbackNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsVariantEnabledEXT( GLuint id, GLenum cap )
+{
+    struct glIsVariantEnabledEXT_params args = { .id = id, .cap = cap, };
+    NTSTATUS status;
+    TRACE( "id %d, cap %d\n", id, cap );
+    if ((status = UNIX_CALL( glIsVariantEnabledEXT, &args ))) WARN( "glIsVariantEnabledEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsVertexArray( GLuint array )
+{
+    struct glIsVertexArray_params args = { .array = array, };
+    NTSTATUS status;
+    TRACE( "array %d\n", array );
+    if ((status = UNIX_CALL( glIsVertexArray, &args ))) WARN( "glIsVertexArray returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsVertexArrayAPPLE( GLuint array )
+{
+    struct glIsVertexArrayAPPLE_params args = { .array = array, };
+    NTSTATUS status;
+    TRACE( "array %d\n", array );
+    if ((status = UNIX_CALL( glIsVertexArrayAPPLE, &args ))) WARN( "glIsVertexArrayAPPLE returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glIsVertexAttribEnabledAPPLE( GLuint index, GLenum pname )
+{
+    struct glIsVertexAttribEnabledAPPLE_params args = { .index = index, .pname = pname, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d\n", index, pname );
+    if ((status = UNIX_CALL( glIsVertexAttribEnabledAPPLE, &args ))) WARN( "glIsVertexAttribEnabledAPPLE returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glLGPUCopyImageSubDataNVX( GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth )
+{
+    struct glLGPUCopyImageSubDataNVX_params args = { .sourceGpu = sourceGpu, .destinationGpuMask = destinationGpuMask, .srcName = srcName, .srcTarget = srcTarget, .srcLevel = srcLevel, .srcX = srcX, .srxY = srxY, .srcZ = srcZ, .dstName = dstName, .dstTarget = dstTarget, .dstLevel = dstLevel, .dstX = dstX, .dstY = dstY, .dstZ = dstZ, .width = width, .height = height, .depth = depth, };
+    NTSTATUS status;
+    TRACE( "sourceGpu %d, destinationGpuMask %d, srcName %d, srcTarget %d, srcLevel %d, srcX %d, srxY %d, srcZ %d, dstName %d, dstTarget %d, dstLevel %d, dstX %d, dstY %d, dstZ %d, width %d, height %d, depth %d\n", sourceGpu, destinationGpuMask, srcName, srcTarget, srcLevel, srcX, srxY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth );
+    if ((status = UNIX_CALL( glLGPUCopyImageSubDataNVX, &args ))) WARN( "glLGPUCopyImageSubDataNVX returned %#x\n", status );
+}
+
+static void WINAPI glLGPUInterlockNVX(void)
+{
+    struct glLGPUInterlockNVX_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glLGPUInterlockNVX, &args ))) WARN( "glLGPUInterlockNVX returned %#x\n", status );
+}
+
+static void WINAPI glLGPUNamedBufferSubDataNVX( GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data )
+{
+    struct glLGPUNamedBufferSubDataNVX_params args = { .gpuMask = gpuMask, .buffer = buffer, .offset = offset, .size = size, .data = data, };
+    NTSTATUS status;
+    TRACE( "gpuMask %d, buffer %d, offset %ld, size %ld, data %p\n", gpuMask, buffer, offset, size, data );
+    if ((status = UNIX_CALL( glLGPUNamedBufferSubDataNVX, &args ))) WARN( "glLGPUNamedBufferSubDataNVX returned %#x\n", status );
+}
+
+static void WINAPI glLabelObjectEXT( GLenum type, GLuint object, GLsizei length, const GLchar *label )
+{
+    struct glLabelObjectEXT_params args = { .type = type, .object = object, .length = length, .label = label, };
+    NTSTATUS status;
+    TRACE( "type %d, object %d, length %d, label %p\n", type, object, length, label );
+    if ((status = UNIX_CALL( glLabelObjectEXT, &args ))) WARN( "glLabelObjectEXT returned %#x\n", status );
+}
+
+static void WINAPI glLightEnviSGIX( GLenum pname, GLint param )
+{
+    struct glLightEnviSGIX_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glLightEnviSGIX, &args ))) WARN( "glLightEnviSGIX returned %#x\n", status );
+}
+
+static void WINAPI glLightModelxOES( GLenum pname, GLfixed param )
+{
+    struct glLightModelxOES_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glLightModelxOES, &args ))) WARN( "glLightModelxOES returned %#x\n", status );
+}
+
+static void WINAPI glLightModelxvOES( GLenum pname, const GLfixed *param )
+{
+    struct glLightModelxvOES_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %p\n", pname, param );
+    if ((status = UNIX_CALL( glLightModelxvOES, &args ))) WARN( "glLightModelxvOES returned %#x\n", status );
+}
+
+static void WINAPI glLightxOES( GLenum light, GLenum pname, GLfixed param )
+{
+    struct glLightxOES_params args = { .light = light, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "light %d, pname %d, param %d\n", light, pname, param );
+    if ((status = UNIX_CALL( glLightxOES, &args ))) WARN( "glLightxOES returned %#x\n", status );
+}
+
+static void WINAPI glLightxvOES( GLenum light, GLenum pname, const GLfixed *params )
+{
+    struct glLightxvOES_params args = { .light = light, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "light %d, pname %d, params %p\n", light, pname, params );
+    if ((status = UNIX_CALL( glLightxvOES, &args ))) WARN( "glLightxvOES returned %#x\n", status );
+}
+
+static void WINAPI glLineWidthxOES( GLfixed width )
+{
+    struct glLineWidthxOES_params args = { .width = width, };
+    NTSTATUS status;
+    TRACE( "width %d\n", width );
+    if ((status = UNIX_CALL( glLineWidthxOES, &args ))) WARN( "glLineWidthxOES returned %#x\n", status );
+}
+
+static void WINAPI glLinkProgram( GLuint program )
+{
+    struct glLinkProgram_params args = { .program = program, };
+    NTSTATUS status;
+    TRACE( "program %d\n", program );
+    if ((status = UNIX_CALL( glLinkProgram, &args ))) WARN( "glLinkProgram returned %#x\n", status );
+}
+
+static void WINAPI glLinkProgramARB( GLhandleARB programObj )
+{
+    struct glLinkProgramARB_params args = { .programObj = programObj, };
+    NTSTATUS status;
+    TRACE( "programObj %d\n", programObj );
+    if ((status = UNIX_CALL( glLinkProgramARB, &args ))) WARN( "glLinkProgramARB returned %#x\n", status );
+}
+
+static void WINAPI glListDrawCommandsStatesClientNV( GLuint list, GLuint segment, const void **indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count )
+{
+    struct glListDrawCommandsStatesClientNV_params args = { .list = list, .segment = segment, .indirects = indirects, .sizes = sizes, .states = states, .fbos = fbos, .count = count, };
+    NTSTATUS status;
+    TRACE( "list %d, segment %d, indirects %p, sizes %p, states %p, fbos %p, count %d\n", list, segment, indirects, sizes, states, fbos, count );
+    if ((status = UNIX_CALL( glListDrawCommandsStatesClientNV, &args ))) WARN( "glListDrawCommandsStatesClientNV returned %#x\n", status );
+}
+
+static void WINAPI glListParameterfSGIX( GLuint list, GLenum pname, GLfloat param )
+{
+    struct glListParameterfSGIX_params args = { .list = list, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "list %d, pname %d, param %f\n", list, pname, param );
+    if ((status = UNIX_CALL( glListParameterfSGIX, &args ))) WARN( "glListParameterfSGIX returned %#x\n", status );
+}
+
+static void WINAPI glListParameterfvSGIX( GLuint list, GLenum pname, const GLfloat *params )
+{
+    struct glListParameterfvSGIX_params args = { .list = list, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "list %d, pname %d, params %p\n", list, pname, params );
+    if ((status = UNIX_CALL( glListParameterfvSGIX, &args ))) WARN( "glListParameterfvSGIX returned %#x\n", status );
+}
+
+static void WINAPI glListParameteriSGIX( GLuint list, GLenum pname, GLint param )
+{
+    struct glListParameteriSGIX_params args = { .list = list, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "list %d, pname %d, param %d\n", list, pname, param );
+    if ((status = UNIX_CALL( glListParameteriSGIX, &args ))) WARN( "glListParameteriSGIX returned %#x\n", status );
+}
+
+static void WINAPI glListParameterivSGIX( GLuint list, GLenum pname, const GLint *params )
+{
+    struct glListParameterivSGIX_params args = { .list = list, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "list %d, pname %d, params %p\n", list, pname, params );
+    if ((status = UNIX_CALL( glListParameterivSGIX, &args ))) WARN( "glListParameterivSGIX returned %#x\n", status );
+}
+
+static void WINAPI glLoadIdentityDeformationMapSGIX( GLbitfield mask )
+{
+    struct glLoadIdentityDeformationMapSGIX_params args = { .mask = mask, };
+    NTSTATUS status;
+    TRACE( "mask %d\n", mask );
+    if ((status = UNIX_CALL( glLoadIdentityDeformationMapSGIX, &args ))) WARN( "glLoadIdentityDeformationMapSGIX returned %#x\n", status );
+}
+
+static void WINAPI glLoadMatrixxOES( const GLfixed *m )
+{
+    struct glLoadMatrixxOES_params args = { .m = m, };
+    NTSTATUS status;
+    TRACE( "m %p\n", m );
+    if ((status = UNIX_CALL( glLoadMatrixxOES, &args ))) WARN( "glLoadMatrixxOES returned %#x\n", status );
+}
+
+static void WINAPI glLoadProgramNV( GLenum target, GLuint id, GLsizei len, const GLubyte *program )
+{
+    struct glLoadProgramNV_params args = { .target = target, .id = id, .len = len, .program = program, };
+    NTSTATUS status;
+    TRACE( "target %d, id %d, len %d, program %p\n", target, id, len, program );
+    if ((status = UNIX_CALL( glLoadProgramNV, &args ))) WARN( "glLoadProgramNV returned %#x\n", status );
+}
+
+static void WINAPI glLoadTransposeMatrixd( const GLdouble *m )
+{
+    struct glLoadTransposeMatrixd_params args = { .m = m, };
+    NTSTATUS status;
+    TRACE( "m %p\n", m );
+    if ((status = UNIX_CALL( glLoadTransposeMatrixd, &args ))) WARN( "glLoadTransposeMatrixd returned %#x\n", status );
+}
+
+static void WINAPI glLoadTransposeMatrixdARB( const GLdouble *m )
+{
+    struct glLoadTransposeMatrixdARB_params args = { .m = m, };
+    NTSTATUS status;
+    TRACE( "m %p\n", m );
+    if ((status = UNIX_CALL( glLoadTransposeMatrixdARB, &args ))) WARN( "glLoadTransposeMatrixdARB returned %#x\n", status );
+}
+
+static void WINAPI glLoadTransposeMatrixf( const GLfloat *m )
+{
+    struct glLoadTransposeMatrixf_params args = { .m = m, };
+    NTSTATUS status;
+    TRACE( "m %p\n", m );
+    if ((status = UNIX_CALL( glLoadTransposeMatrixf, &args ))) WARN( "glLoadTransposeMatrixf returned %#x\n", status );
+}
+
+static void WINAPI glLoadTransposeMatrixfARB( const GLfloat *m )
+{
+    struct glLoadTransposeMatrixfARB_params args = { .m = m, };
+    NTSTATUS status;
+    TRACE( "m %p\n", m );
+    if ((status = UNIX_CALL( glLoadTransposeMatrixfARB, &args ))) WARN( "glLoadTransposeMatrixfARB returned %#x\n", status );
+}
+
+static void WINAPI glLoadTransposeMatrixxOES( const GLfixed *m )
+{
+    struct glLoadTransposeMatrixxOES_params args = { .m = m, };
+    NTSTATUS status;
+    TRACE( "m %p\n", m );
+    if ((status = UNIX_CALL( glLoadTransposeMatrixxOES, &args ))) WARN( "glLoadTransposeMatrixxOES returned %#x\n", status );
+}
+
+static void WINAPI glLockArraysEXT( GLint first, GLsizei count )
+{
+    struct glLockArraysEXT_params args = { .first = first, .count = count, };
+    NTSTATUS status;
+    TRACE( "first %d, count %d\n", first, count );
+    if ((status = UNIX_CALL( glLockArraysEXT, &args ))) WARN( "glLockArraysEXT returned %#x\n", status );
+}
+
+static void WINAPI glMTexCoord2fSGIS( GLenum target, GLfloat s, GLfloat t )
+{
+    struct glMTexCoord2fSGIS_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f\n", target, s, t );
+    if ((status = UNIX_CALL( glMTexCoord2fSGIS, &args ))) WARN( "glMTexCoord2fSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMTexCoord2fvSGIS( GLenum target, GLfloat * v )
+{
+    struct glMTexCoord2fvSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMTexCoord2fvSGIS, &args ))) WARN( "glMTexCoord2fvSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMakeBufferNonResidentNV( GLenum target )
+{
+    struct glMakeBufferNonResidentNV_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glMakeBufferNonResidentNV, &args ))) WARN( "glMakeBufferNonResidentNV returned %#x\n", status );
+}
+
+static void WINAPI glMakeBufferResidentNV( GLenum target, GLenum access )
+{
+    struct glMakeBufferResidentNV_params args = { .target = target, .access = access, };
+    NTSTATUS status;
+    TRACE( "target %d, access %d\n", target, access );
+    if ((status = UNIX_CALL( glMakeBufferResidentNV, &args ))) WARN( "glMakeBufferResidentNV returned %#x\n", status );
+}
+
+static void WINAPI glMakeImageHandleNonResidentARB( GLuint64 handle )
+{
+    struct glMakeImageHandleNonResidentARB_params args = { .handle = handle, };
+    NTSTATUS status;
+    TRACE( "handle %s\n", wine_dbgstr_longlong(handle) );
+    if ((status = UNIX_CALL( glMakeImageHandleNonResidentARB, &args ))) WARN( "glMakeImageHandleNonResidentARB returned %#x\n", status );
+}
+
+static void WINAPI glMakeImageHandleNonResidentNV( GLuint64 handle )
+{
+    struct glMakeImageHandleNonResidentNV_params args = { .handle = handle, };
+    NTSTATUS status;
+    TRACE( "handle %s\n", wine_dbgstr_longlong(handle) );
+    if ((status = UNIX_CALL( glMakeImageHandleNonResidentNV, &args ))) WARN( "glMakeImageHandleNonResidentNV returned %#x\n", status );
+}
+
+static void WINAPI glMakeImageHandleResidentARB( GLuint64 handle, GLenum access )
+{
+    struct glMakeImageHandleResidentARB_params args = { .handle = handle, .access = access, };
+    NTSTATUS status;
+    TRACE( "handle %s, access %d\n", wine_dbgstr_longlong(handle), access );
+    if ((status = UNIX_CALL( glMakeImageHandleResidentARB, &args ))) WARN( "glMakeImageHandleResidentARB returned %#x\n", status );
+}
+
+static void WINAPI glMakeImageHandleResidentNV( GLuint64 handle, GLenum access )
+{
+    struct glMakeImageHandleResidentNV_params args = { .handle = handle, .access = access, };
+    NTSTATUS status;
+    TRACE( "handle %s, access %d\n", wine_dbgstr_longlong(handle), access );
+    if ((status = UNIX_CALL( glMakeImageHandleResidentNV, &args ))) WARN( "glMakeImageHandleResidentNV returned %#x\n", status );
+}
+
+static void WINAPI glMakeNamedBufferNonResidentNV( GLuint buffer )
+{
+    struct glMakeNamedBufferNonResidentNV_params args = { .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "buffer %d\n", buffer );
+    if ((status = UNIX_CALL( glMakeNamedBufferNonResidentNV, &args ))) WARN( "glMakeNamedBufferNonResidentNV returned %#x\n", status );
+}
+
+static void WINAPI glMakeNamedBufferResidentNV( GLuint buffer, GLenum access )
+{
+    struct glMakeNamedBufferResidentNV_params args = { .buffer = buffer, .access = access, };
+    NTSTATUS status;
+    TRACE( "buffer %d, access %d\n", buffer, access );
+    if ((status = UNIX_CALL( glMakeNamedBufferResidentNV, &args ))) WARN( "glMakeNamedBufferResidentNV returned %#x\n", status );
+}
+
+static void WINAPI glMakeTextureHandleNonResidentARB( GLuint64 handle )
+{
+    struct glMakeTextureHandleNonResidentARB_params args = { .handle = handle, };
+    NTSTATUS status;
+    TRACE( "handle %s\n", wine_dbgstr_longlong(handle) );
+    if ((status = UNIX_CALL( glMakeTextureHandleNonResidentARB, &args ))) WARN( "glMakeTextureHandleNonResidentARB returned %#x\n", status );
+}
+
+static void WINAPI glMakeTextureHandleNonResidentNV( GLuint64 handle )
+{
+    struct glMakeTextureHandleNonResidentNV_params args = { .handle = handle, };
+    NTSTATUS status;
+    TRACE( "handle %s\n", wine_dbgstr_longlong(handle) );
+    if ((status = UNIX_CALL( glMakeTextureHandleNonResidentNV, &args ))) WARN( "glMakeTextureHandleNonResidentNV returned %#x\n", status );
+}
+
+static void WINAPI glMakeTextureHandleResidentARB( GLuint64 handle )
+{
+    struct glMakeTextureHandleResidentARB_params args = { .handle = handle, };
+    NTSTATUS status;
+    TRACE( "handle %s\n", wine_dbgstr_longlong(handle) );
+    if ((status = UNIX_CALL( glMakeTextureHandleResidentARB, &args ))) WARN( "glMakeTextureHandleResidentARB returned %#x\n", status );
+}
+
+static void WINAPI glMakeTextureHandleResidentNV( GLuint64 handle )
+{
+    struct glMakeTextureHandleResidentNV_params args = { .handle = handle, };
+    NTSTATUS status;
+    TRACE( "handle %s\n", wine_dbgstr_longlong(handle) );
+    if ((status = UNIX_CALL( glMakeTextureHandleResidentNV, &args ))) WARN( "glMakeTextureHandleResidentNV returned %#x\n", status );
+}
+
+static void WINAPI glMap1xOES( GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points )
+{
+    struct glMap1xOES_params args = { .target = target, .u1 = u1, .u2 = u2, .stride = stride, .order = order, .points = points, };
+    NTSTATUS status;
+    TRACE( "target %d, u1 %d, u2 %d, stride %d, order %d, points %d\n", target, u1, u2, stride, order, points );
+    if ((status = UNIX_CALL( glMap1xOES, &args ))) WARN( "glMap1xOES returned %#x\n", status );
+}
+
+static void WINAPI glMap2xOES( GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points )
+{
+    struct glMap2xOES_params args = { .target = target, .u1 = u1, .u2 = u2, .ustride = ustride, .uorder = uorder, .v1 = v1, .v2 = v2, .vstride = vstride, .vorder = vorder, .points = points, };
+    NTSTATUS status;
+    TRACE( "target %d, u1 %d, u2 %d, ustride %d, uorder %d, v1 %d, v2 %d, vstride %d, vorder %d, points %d\n", target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points );
+    if ((status = UNIX_CALL( glMap2xOES, &args ))) WARN( "glMap2xOES returned %#x\n", status );
+}
+
+static void * WINAPI glMapBuffer( GLenum target, GLenum access )
+{
+    struct glMapBuffer_params args = { .target = target, .access = access, };
+    NTSTATUS status;
+    TRACE( "target %d, access %d\n", target, access );
+    if ((status = UNIX_CALL( glMapBuffer, &args ))) WARN( "glMapBuffer returned %#x\n", status );
+    return args.ret;
+}
+
+static void * WINAPI glMapBufferARB( GLenum target, GLenum access )
+{
+    struct glMapBufferARB_params args = { .target = target, .access = access, };
+    NTSTATUS status;
+    TRACE( "target %d, access %d\n", target, access );
+    if ((status = UNIX_CALL( glMapBufferARB, &args ))) WARN( "glMapBufferARB returned %#x\n", status );
+    return args.ret;
+}
+
+static void * WINAPI glMapBufferRange( GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access )
+{
+    struct glMapBufferRange_params args = { .target = target, .offset = offset, .length = length, .access = access, };
+    NTSTATUS status;
+    TRACE( "target %d, offset %ld, length %ld, access %d\n", target, offset, length, access );
+    if ((status = UNIX_CALL( glMapBufferRange, &args ))) WARN( "glMapBufferRange returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glMapControlPointsNV( GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points )
+{
+    struct glMapControlPointsNV_params args = { .target = target, .index = index, .type = type, .ustride = ustride, .vstride = vstride, .uorder = uorder, .vorder = vorder, .packed = packed, .points = points, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, type %d, ustride %d, vstride %d, uorder %d, vorder %d, packed %d, points %p\n", target, index, type, ustride, vstride, uorder, vorder, packed, points );
+    if ((status = UNIX_CALL( glMapControlPointsNV, &args ))) WARN( "glMapControlPointsNV returned %#x\n", status );
+}
+
+static void WINAPI glMapGrid1xOES( GLint n, GLfixed u1, GLfixed u2 )
+{
+    struct glMapGrid1xOES_params args = { .n = n, .u1 = u1, .u2 = u2, };
+    NTSTATUS status;
+    TRACE( "n %d, u1 %d, u2 %d\n", n, u1, u2 );
+    if ((status = UNIX_CALL( glMapGrid1xOES, &args ))) WARN( "glMapGrid1xOES returned %#x\n", status );
+}
+
+static void WINAPI glMapGrid2xOES( GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2 )
+{
+    struct glMapGrid2xOES_params args = { .n = n, .u1 = u1, .u2 = u2, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "n %d, u1 %d, u2 %d, v1 %d, v2 %d\n", n, u1, u2, v1, v2 );
+    if ((status = UNIX_CALL( glMapGrid2xOES, &args ))) WARN( "glMapGrid2xOES returned %#x\n", status );
+}
+
+static void * WINAPI glMapNamedBuffer( GLuint buffer, GLenum access )
+{
+    struct glMapNamedBuffer_params args = { .buffer = buffer, .access = access, };
+    NTSTATUS status;
+    TRACE( "buffer %d, access %d\n", buffer, access );
+    if ((status = UNIX_CALL( glMapNamedBuffer, &args ))) WARN( "glMapNamedBuffer returned %#x\n", status );
+    return args.ret;
+}
+
+static void * WINAPI glMapNamedBufferEXT( GLuint buffer, GLenum access )
+{
+    struct glMapNamedBufferEXT_params args = { .buffer = buffer, .access = access, };
+    NTSTATUS status;
+    TRACE( "buffer %d, access %d\n", buffer, access );
+    if ((status = UNIX_CALL( glMapNamedBufferEXT, &args ))) WARN( "glMapNamedBufferEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void * WINAPI glMapNamedBufferRange( GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access )
+{
+    struct glMapNamedBufferRange_params args = { .buffer = buffer, .offset = offset, .length = length, .access = access, };
+    NTSTATUS status;
+    TRACE( "buffer %d, offset %ld, length %ld, access %d\n", buffer, offset, length, access );
+    if ((status = UNIX_CALL( glMapNamedBufferRange, &args ))) WARN( "glMapNamedBufferRange returned %#x\n", status );
+    return args.ret;
+}
+
+static void * WINAPI glMapNamedBufferRangeEXT( GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access )
+{
+    struct glMapNamedBufferRangeEXT_params args = { .buffer = buffer, .offset = offset, .length = length, .access = access, };
+    NTSTATUS status;
+    TRACE( "buffer %d, offset %ld, length %ld, access %d\n", buffer, offset, length, access );
+    if ((status = UNIX_CALL( glMapNamedBufferRangeEXT, &args ))) WARN( "glMapNamedBufferRangeEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void * WINAPI glMapObjectBufferATI( GLuint buffer )
+{
+    struct glMapObjectBufferATI_params args = { .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "buffer %d\n", buffer );
+    if ((status = UNIX_CALL( glMapObjectBufferATI, &args ))) WARN( "glMapObjectBufferATI returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glMapParameterfvNV( GLenum target, GLenum pname, const GLfloat *params )
+{
+    struct glMapParameterfvNV_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glMapParameterfvNV, &args ))) WARN( "glMapParameterfvNV returned %#x\n", status );
+}
+
+static void WINAPI glMapParameterivNV( GLenum target, GLenum pname, const GLint *params )
+{
+    struct glMapParameterivNV_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glMapParameterivNV, &args ))) WARN( "glMapParameterivNV returned %#x\n", status );
+}
+
+static void * WINAPI glMapTexture2DINTEL( GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout )
+{
+    struct glMapTexture2DINTEL_params args = { .texture = texture, .level = level, .access = access, .stride = stride, .layout = layout, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, access %d, stride %p, layout %p\n", texture, level, access, stride, layout );
+    if ((status = UNIX_CALL( glMapTexture2DINTEL, &args ))) WARN( "glMapTexture2DINTEL returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glMapVertexAttrib1dAPPLE( GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points )
+{
+    struct glMapVertexAttrib1dAPPLE_params args = { .index = index, .size = size, .u1 = u1, .u2 = u2, .stride = stride, .order = order, .points = points, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, u1 %f, u2 %f, stride %d, order %d, points %p\n", index, size, u1, u2, stride, order, points );
+    if ((status = UNIX_CALL( glMapVertexAttrib1dAPPLE, &args ))) WARN( "glMapVertexAttrib1dAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glMapVertexAttrib1fAPPLE( GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points )
+{
+    struct glMapVertexAttrib1fAPPLE_params args = { .index = index, .size = size, .u1 = u1, .u2 = u2, .stride = stride, .order = order, .points = points, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, u1 %f, u2 %f, stride %d, order %d, points %p\n", index, size, u1, u2, stride, order, points );
+    if ((status = UNIX_CALL( glMapVertexAttrib1fAPPLE, &args ))) WARN( "glMapVertexAttrib1fAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glMapVertexAttrib2dAPPLE( GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points )
+{
+    struct glMapVertexAttrib2dAPPLE_params args = { .index = index, .size = size, .u1 = u1, .u2 = u2, .ustride = ustride, .uorder = uorder, .v1 = v1, .v2 = v2, .vstride = vstride, .vorder = vorder, .points = points, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, u1 %f, u2 %f, ustride %d, uorder %d, v1 %f, v2 %f, vstride %d, vorder %d, points %p\n", index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points );
+    if ((status = UNIX_CALL( glMapVertexAttrib2dAPPLE, &args ))) WARN( "glMapVertexAttrib2dAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glMapVertexAttrib2fAPPLE( GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points )
+{
+    struct glMapVertexAttrib2fAPPLE_params args = { .index = index, .size = size, .u1 = u1, .u2 = u2, .ustride = ustride, .uorder = uorder, .v1 = v1, .v2 = v2, .vstride = vstride, .vorder = vorder, .points = points, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, u1 %f, u2 %f, ustride %d, uorder %d, v1 %f, v2 %f, vstride %d, vorder %d, points %p\n", index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points );
+    if ((status = UNIX_CALL( glMapVertexAttrib2fAPPLE, &args ))) WARN( "glMapVertexAttrib2fAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glMaterialxOES( GLenum face, GLenum pname, GLfixed param )
+{
+    struct glMaterialxOES_params args = { .face = face, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "face %d, pname %d, param %d\n", face, pname, param );
+    if ((status = UNIX_CALL( glMaterialxOES, &args ))) WARN( "glMaterialxOES returned %#x\n", status );
+}
+
+static void WINAPI glMaterialxvOES( GLenum face, GLenum pname, const GLfixed *param )
+{
+    struct glMaterialxvOES_params args = { .face = face, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "face %d, pname %d, param %p\n", face, pname, param );
+    if ((status = UNIX_CALL( glMaterialxvOES, &args ))) WARN( "glMaterialxvOES returned %#x\n", status );
+}
+
+static void WINAPI glMatrixFrustumEXT( GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar )
+{
+    struct glMatrixFrustumEXT_params args = { .mode = mode, .left = left, .right = right, .bottom = bottom, .top = top, .zNear = zNear, .zFar = zFar, };
+    NTSTATUS status;
+    TRACE( "mode %d, left %f, right %f, bottom %f, top %f, zNear %f, zFar %f\n", mode, left, right, bottom, top, zNear, zFar );
+    if ((status = UNIX_CALL( glMatrixFrustumEXT, &args ))) WARN( "glMatrixFrustumEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixIndexPointerARB( GLint size, GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glMatrixIndexPointerARB_params args = { .size = size, .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d, pointer %p\n", size, type, stride, pointer );
+    if ((status = UNIX_CALL( glMatrixIndexPointerARB, &args ))) WARN( "glMatrixIndexPointerARB returned %#x\n", status );
+}
+
+static void WINAPI glMatrixIndexubvARB( GLint size, const GLubyte *indices )
+{
+    struct glMatrixIndexubvARB_params args = { .size = size, .indices = indices, };
+    NTSTATUS status;
+    TRACE( "size %d, indices %p\n", size, indices );
+    if ((status = UNIX_CALL( glMatrixIndexubvARB, &args ))) WARN( "glMatrixIndexubvARB returned %#x\n", status );
+}
+
+static void WINAPI glMatrixIndexuivARB( GLint size, const GLuint *indices )
+{
+    struct glMatrixIndexuivARB_params args = { .size = size, .indices = indices, };
+    NTSTATUS status;
+    TRACE( "size %d, indices %p\n", size, indices );
+    if ((status = UNIX_CALL( glMatrixIndexuivARB, &args ))) WARN( "glMatrixIndexuivARB returned %#x\n", status );
+}
+
+static void WINAPI glMatrixIndexusvARB( GLint size, const GLushort *indices )
+{
+    struct glMatrixIndexusvARB_params args = { .size = size, .indices = indices, };
+    NTSTATUS status;
+    TRACE( "size %d, indices %p\n", size, indices );
+    if ((status = UNIX_CALL( glMatrixIndexusvARB, &args ))) WARN( "glMatrixIndexusvARB returned %#x\n", status );
+}
+
+static void WINAPI glMatrixLoad3x2fNV( GLenum matrixMode, const GLfloat *m )
+{
+    struct glMatrixLoad3x2fNV_params args = { .matrixMode = matrixMode, .m = m, };
+    NTSTATUS status;
+    TRACE( "matrixMode %d, m %p\n", matrixMode, m );
+    if ((status = UNIX_CALL( glMatrixLoad3x2fNV, &args ))) WARN( "glMatrixLoad3x2fNV returned %#x\n", status );
+}
+
+static void WINAPI glMatrixLoad3x3fNV( GLenum matrixMode, const GLfloat *m )
+{
+    struct glMatrixLoad3x3fNV_params args = { .matrixMode = matrixMode, .m = m, };
+    NTSTATUS status;
+    TRACE( "matrixMode %d, m %p\n", matrixMode, m );
+    if ((status = UNIX_CALL( glMatrixLoad3x3fNV, &args ))) WARN( "glMatrixLoad3x3fNV returned %#x\n", status );
+}
+
+static void WINAPI glMatrixLoadIdentityEXT( GLenum mode )
+{
+    struct glMatrixLoadIdentityEXT_params args = { .mode = mode, };
+    NTSTATUS status;
+    TRACE( "mode %d\n", mode );
+    if ((status = UNIX_CALL( glMatrixLoadIdentityEXT, &args ))) WARN( "glMatrixLoadIdentityEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixLoadTranspose3x3fNV( GLenum matrixMode, const GLfloat *m )
+{
+    struct glMatrixLoadTranspose3x3fNV_params args = { .matrixMode = matrixMode, .m = m, };
+    NTSTATUS status;
+    TRACE( "matrixMode %d, m %p\n", matrixMode, m );
+    if ((status = UNIX_CALL( glMatrixLoadTranspose3x3fNV, &args ))) WARN( "glMatrixLoadTranspose3x3fNV returned %#x\n", status );
+}
+
+static void WINAPI glMatrixLoadTransposedEXT( GLenum mode, const GLdouble *m )
+{
+    struct glMatrixLoadTransposedEXT_params args = { .mode = mode, .m = m, };
+    NTSTATUS status;
+    TRACE( "mode %d, m %p\n", mode, m );
+    if ((status = UNIX_CALL( glMatrixLoadTransposedEXT, &args ))) WARN( "glMatrixLoadTransposedEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixLoadTransposefEXT( GLenum mode, const GLfloat *m )
+{
+    struct glMatrixLoadTransposefEXT_params args = { .mode = mode, .m = m, };
+    NTSTATUS status;
+    TRACE( "mode %d, m %p\n", mode, m );
+    if ((status = UNIX_CALL( glMatrixLoadTransposefEXT, &args ))) WARN( "glMatrixLoadTransposefEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixLoaddEXT( GLenum mode, const GLdouble *m )
+{
+    struct glMatrixLoaddEXT_params args = { .mode = mode, .m = m, };
+    NTSTATUS status;
+    TRACE( "mode %d, m %p\n", mode, m );
+    if ((status = UNIX_CALL( glMatrixLoaddEXT, &args ))) WARN( "glMatrixLoaddEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixLoadfEXT( GLenum mode, const GLfloat *m )
+{
+    struct glMatrixLoadfEXT_params args = { .mode = mode, .m = m, };
+    NTSTATUS status;
+    TRACE( "mode %d, m %p\n", mode, m );
+    if ((status = UNIX_CALL( glMatrixLoadfEXT, &args ))) WARN( "glMatrixLoadfEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixMult3x2fNV( GLenum matrixMode, const GLfloat *m )
+{
+    struct glMatrixMult3x2fNV_params args = { .matrixMode = matrixMode, .m = m, };
+    NTSTATUS status;
+    TRACE( "matrixMode %d, m %p\n", matrixMode, m );
+    if ((status = UNIX_CALL( glMatrixMult3x2fNV, &args ))) WARN( "glMatrixMult3x2fNV returned %#x\n", status );
+}
+
+static void WINAPI glMatrixMult3x3fNV( GLenum matrixMode, const GLfloat *m )
+{
+    struct glMatrixMult3x3fNV_params args = { .matrixMode = matrixMode, .m = m, };
+    NTSTATUS status;
+    TRACE( "matrixMode %d, m %p\n", matrixMode, m );
+    if ((status = UNIX_CALL( glMatrixMult3x3fNV, &args ))) WARN( "glMatrixMult3x3fNV returned %#x\n", status );
+}
+
+static void WINAPI glMatrixMultTranspose3x3fNV( GLenum matrixMode, const GLfloat *m )
+{
+    struct glMatrixMultTranspose3x3fNV_params args = { .matrixMode = matrixMode, .m = m, };
+    NTSTATUS status;
+    TRACE( "matrixMode %d, m %p\n", matrixMode, m );
+    if ((status = UNIX_CALL( glMatrixMultTranspose3x3fNV, &args ))) WARN( "glMatrixMultTranspose3x3fNV returned %#x\n", status );
+}
+
+static void WINAPI glMatrixMultTransposedEXT( GLenum mode, const GLdouble *m )
+{
+    struct glMatrixMultTransposedEXT_params args = { .mode = mode, .m = m, };
+    NTSTATUS status;
+    TRACE( "mode %d, m %p\n", mode, m );
+    if ((status = UNIX_CALL( glMatrixMultTransposedEXT, &args ))) WARN( "glMatrixMultTransposedEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixMultTransposefEXT( GLenum mode, const GLfloat *m )
+{
+    struct glMatrixMultTransposefEXT_params args = { .mode = mode, .m = m, };
+    NTSTATUS status;
+    TRACE( "mode %d, m %p\n", mode, m );
+    if ((status = UNIX_CALL( glMatrixMultTransposefEXT, &args ))) WARN( "glMatrixMultTransposefEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixMultdEXT( GLenum mode, const GLdouble *m )
+{
+    struct glMatrixMultdEXT_params args = { .mode = mode, .m = m, };
+    NTSTATUS status;
+    TRACE( "mode %d, m %p\n", mode, m );
+    if ((status = UNIX_CALL( glMatrixMultdEXT, &args ))) WARN( "glMatrixMultdEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixMultfEXT( GLenum mode, const GLfloat *m )
+{
+    struct glMatrixMultfEXT_params args = { .mode = mode, .m = m, };
+    NTSTATUS status;
+    TRACE( "mode %d, m %p\n", mode, m );
+    if ((status = UNIX_CALL( glMatrixMultfEXT, &args ))) WARN( "glMatrixMultfEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixOrthoEXT( GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar )
+{
+    struct glMatrixOrthoEXT_params args = { .mode = mode, .left = left, .right = right, .bottom = bottom, .top = top, .zNear = zNear, .zFar = zFar, };
+    NTSTATUS status;
+    TRACE( "mode %d, left %f, right %f, bottom %f, top %f, zNear %f, zFar %f\n", mode, left, right, bottom, top, zNear, zFar );
+    if ((status = UNIX_CALL( glMatrixOrthoEXT, &args ))) WARN( "glMatrixOrthoEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixPopEXT( GLenum mode )
+{
+    struct glMatrixPopEXT_params args = { .mode = mode, };
+    NTSTATUS status;
+    TRACE( "mode %d\n", mode );
+    if ((status = UNIX_CALL( glMatrixPopEXT, &args ))) WARN( "glMatrixPopEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixPushEXT( GLenum mode )
+{
+    struct glMatrixPushEXT_params args = { .mode = mode, };
+    NTSTATUS status;
+    TRACE( "mode %d\n", mode );
+    if ((status = UNIX_CALL( glMatrixPushEXT, &args ))) WARN( "glMatrixPushEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixRotatedEXT( GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glMatrixRotatedEXT_params args = { .mode = mode, .angle = angle, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "mode %d, angle %f, x %f, y %f, z %f\n", mode, angle, x, y, z );
+    if ((status = UNIX_CALL( glMatrixRotatedEXT, &args ))) WARN( "glMatrixRotatedEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixRotatefEXT( GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glMatrixRotatefEXT_params args = { .mode = mode, .angle = angle, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "mode %d, angle %f, x %f, y %f, z %f\n", mode, angle, x, y, z );
+    if ((status = UNIX_CALL( glMatrixRotatefEXT, &args ))) WARN( "glMatrixRotatefEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixScaledEXT( GLenum mode, GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glMatrixScaledEXT_params args = { .mode = mode, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "mode %d, x %f, y %f, z %f\n", mode, x, y, z );
+    if ((status = UNIX_CALL( glMatrixScaledEXT, &args ))) WARN( "glMatrixScaledEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixScalefEXT( GLenum mode, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glMatrixScalefEXT_params args = { .mode = mode, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "mode %d, x %f, y %f, z %f\n", mode, x, y, z );
+    if ((status = UNIX_CALL( glMatrixScalefEXT, &args ))) WARN( "glMatrixScalefEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixTranslatedEXT( GLenum mode, GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glMatrixTranslatedEXT_params args = { .mode = mode, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "mode %d, x %f, y %f, z %f\n", mode, x, y, z );
+    if ((status = UNIX_CALL( glMatrixTranslatedEXT, &args ))) WARN( "glMatrixTranslatedEXT returned %#x\n", status );
+}
+
+static void WINAPI glMatrixTranslatefEXT( GLenum mode, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glMatrixTranslatefEXT_params args = { .mode = mode, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "mode %d, x %f, y %f, z %f\n", mode, x, y, z );
+    if ((status = UNIX_CALL( glMatrixTranslatefEXT, &args ))) WARN( "glMatrixTranslatefEXT returned %#x\n", status );
+}
+
+static void WINAPI glMaxShaderCompilerThreadsARB( GLuint count )
+{
+    struct glMaxShaderCompilerThreadsARB_params args = { .count = count, };
+    NTSTATUS status;
+    TRACE( "count %d\n", count );
+    if ((status = UNIX_CALL( glMaxShaderCompilerThreadsARB, &args ))) WARN( "glMaxShaderCompilerThreadsARB returned %#x\n", status );
+}
+
+static void WINAPI glMaxShaderCompilerThreadsKHR( GLuint count )
+{
+    struct glMaxShaderCompilerThreadsKHR_params args = { .count = count, };
+    NTSTATUS status;
+    TRACE( "count %d\n", count );
+    if ((status = UNIX_CALL( glMaxShaderCompilerThreadsKHR, &args ))) WARN( "glMaxShaderCompilerThreadsKHR returned %#x\n", status );
+}
+
+static void WINAPI glMemoryBarrier( GLbitfield barriers )
+{
+    struct glMemoryBarrier_params args = { .barriers = barriers, };
+    NTSTATUS status;
+    TRACE( "barriers %d\n", barriers );
+    if ((status = UNIX_CALL( glMemoryBarrier, &args ))) WARN( "glMemoryBarrier returned %#x\n", status );
+}
+
+static void WINAPI glMemoryBarrierByRegion( GLbitfield barriers )
+{
+    struct glMemoryBarrierByRegion_params args = { .barriers = barriers, };
+    NTSTATUS status;
+    TRACE( "barriers %d\n", barriers );
+    if ((status = UNIX_CALL( glMemoryBarrierByRegion, &args ))) WARN( "glMemoryBarrierByRegion returned %#x\n", status );
+}
+
+static void WINAPI glMemoryBarrierEXT( GLbitfield barriers )
+{
+    struct glMemoryBarrierEXT_params args = { .barriers = barriers, };
+    NTSTATUS status;
+    TRACE( "barriers %d\n", barriers );
+    if ((status = UNIX_CALL( glMemoryBarrierEXT, &args ))) WARN( "glMemoryBarrierEXT returned %#x\n", status );
+}
+
+static void WINAPI glMemoryObjectParameterivEXT( GLuint memoryObject, GLenum pname, const GLint *params )
+{
+    struct glMemoryObjectParameterivEXT_params args = { .memoryObject = memoryObject, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "memoryObject %d, pname %d, params %p\n", memoryObject, pname, params );
+    if ((status = UNIX_CALL( glMemoryObjectParameterivEXT, &args ))) WARN( "glMemoryObjectParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glMinSampleShading( GLfloat value )
+{
+    struct glMinSampleShading_params args = { .value = value, };
+    NTSTATUS status;
+    TRACE( "value %f\n", value );
+    if ((status = UNIX_CALL( glMinSampleShading, &args ))) WARN( "glMinSampleShading returned %#x\n", status );
+}
+
+static void WINAPI glMinSampleShadingARB( GLfloat value )
+{
+    struct glMinSampleShadingARB_params args = { .value = value, };
+    NTSTATUS status;
+    TRACE( "value %f\n", value );
+    if ((status = UNIX_CALL( glMinSampleShadingARB, &args ))) WARN( "glMinSampleShadingARB returned %#x\n", status );
+}
+
+static void WINAPI glMinmax( GLenum target, GLenum internalformat, GLboolean sink )
+{
+    struct glMinmax_params args = { .target = target, .internalformat = internalformat, .sink = sink, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, sink %d\n", target, internalformat, sink );
+    if ((status = UNIX_CALL( glMinmax, &args ))) WARN( "glMinmax returned %#x\n", status );
+}
+
+static void WINAPI glMinmaxEXT( GLenum target, GLenum internalformat, GLboolean sink )
+{
+    struct glMinmaxEXT_params args = { .target = target, .internalformat = internalformat, .sink = sink, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, sink %d\n", target, internalformat, sink );
+    if ((status = UNIX_CALL( glMinmaxEXT, &args ))) WARN( "glMinmaxEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultMatrixxOES( const GLfixed *m )
+{
+    struct glMultMatrixxOES_params args = { .m = m, };
+    NTSTATUS status;
+    TRACE( "m %p\n", m );
+    if ((status = UNIX_CALL( glMultMatrixxOES, &args ))) WARN( "glMultMatrixxOES returned %#x\n", status );
+}
+
+static void WINAPI glMultTransposeMatrixd( const GLdouble *m )
+{
+    struct glMultTransposeMatrixd_params args = { .m = m, };
+    NTSTATUS status;
+    TRACE( "m %p\n", m );
+    if ((status = UNIX_CALL( glMultTransposeMatrixd, &args ))) WARN( "glMultTransposeMatrixd returned %#x\n", status );
+}
+
+static void WINAPI glMultTransposeMatrixdARB( const GLdouble *m )
+{
+    struct glMultTransposeMatrixdARB_params args = { .m = m, };
+    NTSTATUS status;
+    TRACE( "m %p\n", m );
+    if ((status = UNIX_CALL( glMultTransposeMatrixdARB, &args ))) WARN( "glMultTransposeMatrixdARB returned %#x\n", status );
+}
+
+static void WINAPI glMultTransposeMatrixf( const GLfloat *m )
+{
+    struct glMultTransposeMatrixf_params args = { .m = m, };
+    NTSTATUS status;
+    TRACE( "m %p\n", m );
+    if ((status = UNIX_CALL( glMultTransposeMatrixf, &args ))) WARN( "glMultTransposeMatrixf returned %#x\n", status );
+}
+
+static void WINAPI glMultTransposeMatrixfARB( const GLfloat *m )
+{
+    struct glMultTransposeMatrixfARB_params args = { .m = m, };
+    NTSTATUS status;
+    TRACE( "m %p\n", m );
+    if ((status = UNIX_CALL( glMultTransposeMatrixfARB, &args ))) WARN( "glMultTransposeMatrixfARB returned %#x\n", status );
+}
+
+static void WINAPI glMultTransposeMatrixxOES( const GLfixed *m )
+{
+    struct glMultTransposeMatrixxOES_params args = { .m = m, };
+    NTSTATUS status;
+    TRACE( "m %p\n", m );
+    if ((status = UNIX_CALL( glMultTransposeMatrixxOES, &args ))) WARN( "glMultTransposeMatrixxOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawArrays( GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount )
+{
+    struct glMultiDrawArrays_params args = { .mode = mode, .first = first, .count = count, .drawcount = drawcount, };
+    NTSTATUS status;
+    TRACE( "mode %d, first %p, count %p, drawcount %d\n", mode, first, count, drawcount );
+    if ((status = UNIX_CALL( glMultiDrawArrays, &args ))) WARN( "glMultiDrawArrays returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawArraysEXT( GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount )
+{
+    struct glMultiDrawArraysEXT_params args = { .mode = mode, .first = first, .count = count, .primcount = primcount, };
+    NTSTATUS status;
+    TRACE( "mode %d, first %p, count %p, primcount %d\n", mode, first, count, primcount );
+    if ((status = UNIX_CALL( glMultiDrawArraysEXT, &args ))) WARN( "glMultiDrawArraysEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawArraysIndirect( GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride )
+{
+    struct glMultiDrawArraysIndirect_params args = { .mode = mode, .indirect = indirect, .drawcount = drawcount, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "mode %d, indirect %p, drawcount %d, stride %d\n", mode, indirect, drawcount, stride );
+    if ((status = UNIX_CALL( glMultiDrawArraysIndirect, &args ))) WARN( "glMultiDrawArraysIndirect returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawArraysIndirectAMD( GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride )
+{
+    struct glMultiDrawArraysIndirectAMD_params args = { .mode = mode, .indirect = indirect, .primcount = primcount, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "mode %d, indirect %p, primcount %d, stride %d\n", mode, indirect, primcount, stride );
+    if ((status = UNIX_CALL( glMultiDrawArraysIndirectAMD, &args ))) WARN( "glMultiDrawArraysIndirectAMD returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawArraysIndirectBindlessCountNV( GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount )
+{
+    struct glMultiDrawArraysIndirectBindlessCountNV_params args = { .mode = mode, .indirect = indirect, .drawCount = drawCount, .maxDrawCount = maxDrawCount, .stride = stride, .vertexBufferCount = vertexBufferCount, };
+    NTSTATUS status;
+    TRACE( "mode %d, indirect %p, drawCount %d, maxDrawCount %d, stride %d, vertexBufferCount %d\n", mode, indirect, drawCount, maxDrawCount, stride, vertexBufferCount );
+    if ((status = UNIX_CALL( glMultiDrawArraysIndirectBindlessCountNV, &args ))) WARN( "glMultiDrawArraysIndirectBindlessCountNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawArraysIndirectBindlessNV( GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount )
+{
+    struct glMultiDrawArraysIndirectBindlessNV_params args = { .mode = mode, .indirect = indirect, .drawCount = drawCount, .stride = stride, .vertexBufferCount = vertexBufferCount, };
+    NTSTATUS status;
+    TRACE( "mode %d, indirect %p, drawCount %d, stride %d, vertexBufferCount %d\n", mode, indirect, drawCount, stride, vertexBufferCount );
+    if ((status = UNIX_CALL( glMultiDrawArraysIndirectBindlessNV, &args ))) WARN( "glMultiDrawArraysIndirectBindlessNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawArraysIndirectCount( GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride )
+{
+    struct glMultiDrawArraysIndirectCount_params args = { .mode = mode, .indirect = indirect, .drawcount = drawcount, .maxdrawcount = maxdrawcount, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "mode %d, indirect %p, drawcount %ld, maxdrawcount %d, stride %d\n", mode, indirect, drawcount, maxdrawcount, stride );
+    if ((status = UNIX_CALL( glMultiDrawArraysIndirectCount, &args ))) WARN( "glMultiDrawArraysIndirectCount returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawArraysIndirectCountARB( GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride )
+{
+    struct glMultiDrawArraysIndirectCountARB_params args = { .mode = mode, .indirect = indirect, .drawcount = drawcount, .maxdrawcount = maxdrawcount, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "mode %d, indirect %p, drawcount %ld, maxdrawcount %d, stride %d\n", mode, indirect, drawcount, maxdrawcount, stride );
+    if ((status = UNIX_CALL( glMultiDrawArraysIndirectCountARB, &args ))) WARN( "glMultiDrawArraysIndirectCountARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawElementArrayAPPLE( GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount )
+{
+    struct glMultiDrawElementArrayAPPLE_params args = { .mode = mode, .first = first, .count = count, .primcount = primcount, };
+    NTSTATUS status;
+    TRACE( "mode %d, first %p, count %p, primcount %d\n", mode, first, count, primcount );
+    if ((status = UNIX_CALL( glMultiDrawElementArrayAPPLE, &args ))) WARN( "glMultiDrawElementArrayAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawElements( GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount )
+{
+    struct glMultiDrawElements_params args = { .mode = mode, .count = count, .type = type, .indices = indices, .drawcount = drawcount, };
+    NTSTATUS status;
+    TRACE( "mode %d, count %p, type %d, indices %p, drawcount %d\n", mode, count, type, indices, drawcount );
+    if ((status = UNIX_CALL( glMultiDrawElements, &args ))) WARN( "glMultiDrawElements returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawElementsBaseVertex( GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex )
+{
+    struct glMultiDrawElementsBaseVertex_params args = { .mode = mode, .count = count, .type = type, .indices = indices, .drawcount = drawcount, .basevertex = basevertex, };
+    NTSTATUS status;
+    TRACE( "mode %d, count %p, type %d, indices %p, drawcount %d, basevertex %p\n", mode, count, type, indices, drawcount, basevertex );
+    if ((status = UNIX_CALL( glMultiDrawElementsBaseVertex, &args ))) WARN( "glMultiDrawElementsBaseVertex returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawElementsEXT( GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount )
+{
+    struct glMultiDrawElementsEXT_params args = { .mode = mode, .count = count, .type = type, .indices = indices, .primcount = primcount, };
+    NTSTATUS status;
+    TRACE( "mode %d, count %p, type %d, indices %p, primcount %d\n", mode, count, type, indices, primcount );
+    if ((status = UNIX_CALL( glMultiDrawElementsEXT, &args ))) WARN( "glMultiDrawElementsEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawElementsIndirect( GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride )
+{
+    struct glMultiDrawElementsIndirect_params args = { .mode = mode, .type = type, .indirect = indirect, .drawcount = drawcount, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "mode %d, type %d, indirect %p, drawcount %d, stride %d\n", mode, type, indirect, drawcount, stride );
+    if ((status = UNIX_CALL( glMultiDrawElementsIndirect, &args ))) WARN( "glMultiDrawElementsIndirect returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawElementsIndirectAMD( GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride )
+{
+    struct glMultiDrawElementsIndirectAMD_params args = { .mode = mode, .type = type, .indirect = indirect, .primcount = primcount, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "mode %d, type %d, indirect %p, primcount %d, stride %d\n", mode, type, indirect, primcount, stride );
+    if ((status = UNIX_CALL( glMultiDrawElementsIndirectAMD, &args ))) WARN( "glMultiDrawElementsIndirectAMD returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawElementsIndirectBindlessCountNV( GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount )
+{
+    struct glMultiDrawElementsIndirectBindlessCountNV_params args = { .mode = mode, .type = type, .indirect = indirect, .drawCount = drawCount, .maxDrawCount = maxDrawCount, .stride = stride, .vertexBufferCount = vertexBufferCount, };
+    NTSTATUS status;
+    TRACE( "mode %d, type %d, indirect %p, drawCount %d, maxDrawCount %d, stride %d, vertexBufferCount %d\n", mode, type, indirect, drawCount, maxDrawCount, stride, vertexBufferCount );
+    if ((status = UNIX_CALL( glMultiDrawElementsIndirectBindlessCountNV, &args ))) WARN( "glMultiDrawElementsIndirectBindlessCountNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawElementsIndirectBindlessNV( GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount )
+{
+    struct glMultiDrawElementsIndirectBindlessNV_params args = { .mode = mode, .type = type, .indirect = indirect, .drawCount = drawCount, .stride = stride, .vertexBufferCount = vertexBufferCount, };
+    NTSTATUS status;
+    TRACE( "mode %d, type %d, indirect %p, drawCount %d, stride %d, vertexBufferCount %d\n", mode, type, indirect, drawCount, stride, vertexBufferCount );
+    if ((status = UNIX_CALL( glMultiDrawElementsIndirectBindlessNV, &args ))) WARN( "glMultiDrawElementsIndirectBindlessNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawElementsIndirectCount( GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride )
+{
+    struct glMultiDrawElementsIndirectCount_params args = { .mode = mode, .type = type, .indirect = indirect, .drawcount = drawcount, .maxdrawcount = maxdrawcount, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "mode %d, type %d, indirect %p, drawcount %ld, maxdrawcount %d, stride %d\n", mode, type, indirect, drawcount, maxdrawcount, stride );
+    if ((status = UNIX_CALL( glMultiDrawElementsIndirectCount, &args ))) WARN( "glMultiDrawElementsIndirectCount returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawElementsIndirectCountARB( GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride )
+{
+    struct glMultiDrawElementsIndirectCountARB_params args = { .mode = mode, .type = type, .indirect = indirect, .drawcount = drawcount, .maxdrawcount = maxdrawcount, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "mode %d, type %d, indirect %p, drawcount %ld, maxdrawcount %d, stride %d\n", mode, type, indirect, drawcount, maxdrawcount, stride );
+    if ((status = UNIX_CALL( glMultiDrawElementsIndirectCountARB, &args ))) WARN( "glMultiDrawElementsIndirectCountARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawMeshTasksIndirectCountNV( GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride )
+{
+    struct glMultiDrawMeshTasksIndirectCountNV_params args = { .indirect = indirect, .drawcount = drawcount, .maxdrawcount = maxdrawcount, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "indirect %ld, drawcount %ld, maxdrawcount %d, stride %d\n", indirect, drawcount, maxdrawcount, stride );
+    if ((status = UNIX_CALL( glMultiDrawMeshTasksIndirectCountNV, &args ))) WARN( "glMultiDrawMeshTasksIndirectCountNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawMeshTasksIndirectNV( GLintptr indirect, GLsizei drawcount, GLsizei stride )
+{
+    struct glMultiDrawMeshTasksIndirectNV_params args = { .indirect = indirect, .drawcount = drawcount, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "indirect %ld, drawcount %d, stride %d\n", indirect, drawcount, stride );
+    if ((status = UNIX_CALL( glMultiDrawMeshTasksIndirectNV, &args ))) WARN( "glMultiDrawMeshTasksIndirectNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiDrawRangeElementArrayAPPLE( GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount )
+{
+    struct glMultiDrawRangeElementArrayAPPLE_params args = { .mode = mode, .start = start, .end = end, .first = first, .count = count, .primcount = primcount, };
+    NTSTATUS status;
+    TRACE( "mode %d, start %d, end %d, first %p, count %p, primcount %d\n", mode, start, end, first, count, primcount );
+    if ((status = UNIX_CALL( glMultiDrawRangeElementArrayAPPLE, &args ))) WARN( "glMultiDrawRangeElementArrayAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glMultiModeDrawArraysIBM( const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride )
+{
+    struct glMultiModeDrawArraysIBM_params args = { .mode = mode, .first = first, .count = count, .primcount = primcount, .modestride = modestride, };
+    NTSTATUS status;
+    TRACE( "mode %p, first %p, count %p, primcount %d, modestride %d\n", mode, first, count, primcount, modestride );
+    if ((status = UNIX_CALL( glMultiModeDrawArraysIBM, &args ))) WARN( "glMultiModeDrawArraysIBM returned %#x\n", status );
+}
+
+static void WINAPI glMultiModeDrawElementsIBM( const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride )
+{
+    struct glMultiModeDrawElementsIBM_params args = { .mode = mode, .count = count, .type = type, .indices = indices, .primcount = primcount, .modestride = modestride, };
+    NTSTATUS status;
+    TRACE( "mode %p, count %p, type %d, indices %p, primcount %d, modestride %d\n", mode, count, type, indices, primcount, modestride );
+    if ((status = UNIX_CALL( glMultiModeDrawElementsIBM, &args ))) WARN( "glMultiModeDrawElementsIBM returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexBufferEXT( GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer )
+{
+    struct glMultiTexBufferEXT_params args = { .texunit = texunit, .target = target, .internalformat = internalformat, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, internalformat %d, buffer %d\n", texunit, target, internalformat, buffer );
+    if ((status = UNIX_CALL( glMultiTexBufferEXT, &args ))) WARN( "glMultiTexBufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1bOES( GLenum texture, GLbyte s )
+{
+    struct glMultiTexCoord1bOES_params args = { .texture = texture, .s = s, };
+    NTSTATUS status;
+    TRACE( "texture %d, s %d\n", texture, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1bOES, &args ))) WARN( "glMultiTexCoord1bOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1bvOES( GLenum texture, const GLbyte *coords )
+{
+    struct glMultiTexCoord1bvOES_params args = { .texture = texture, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, coords %p\n", texture, coords );
+    if ((status = UNIX_CALL( glMultiTexCoord1bvOES, &args ))) WARN( "glMultiTexCoord1bvOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1d( GLenum target, GLdouble s )
+{
+    struct glMultiTexCoord1d_params args = { .target = target, .s = s, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f\n", target, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1d, &args ))) WARN( "glMultiTexCoord1d returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1dARB( GLenum target, GLdouble s )
+{
+    struct glMultiTexCoord1dARB_params args = { .target = target, .s = s, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f\n", target, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1dARB, &args ))) WARN( "glMultiTexCoord1dARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1dSGIS( GLenum target, GLdouble s )
+{
+    struct glMultiTexCoord1dSGIS_params args = { .target = target, .s = s, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f\n", target, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1dSGIS, &args ))) WARN( "glMultiTexCoord1dSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1dv( GLenum target, const GLdouble *v )
+{
+    struct glMultiTexCoord1dv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord1dv, &args ))) WARN( "glMultiTexCoord1dv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1dvARB( GLenum target, const GLdouble *v )
+{
+    struct glMultiTexCoord1dvARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord1dvARB, &args ))) WARN( "glMultiTexCoord1dvARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1dvSGIS( GLenum target, GLdouble * v )
+{
+    struct glMultiTexCoord1dvSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord1dvSGIS, &args ))) WARN( "glMultiTexCoord1dvSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1f( GLenum target, GLfloat s )
+{
+    struct glMultiTexCoord1f_params args = { .target = target, .s = s, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f\n", target, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1f, &args ))) WARN( "glMultiTexCoord1f returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1fARB( GLenum target, GLfloat s )
+{
+    struct glMultiTexCoord1fARB_params args = { .target = target, .s = s, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f\n", target, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1fARB, &args ))) WARN( "glMultiTexCoord1fARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1fSGIS( GLenum target, GLfloat s )
+{
+    struct glMultiTexCoord1fSGIS_params args = { .target = target, .s = s, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f\n", target, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1fSGIS, &args ))) WARN( "glMultiTexCoord1fSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1fv( GLenum target, const GLfloat *v )
+{
+    struct glMultiTexCoord1fv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord1fv, &args ))) WARN( "glMultiTexCoord1fv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1fvARB( GLenum target, const GLfloat *v )
+{
+    struct glMultiTexCoord1fvARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord1fvARB, &args ))) WARN( "glMultiTexCoord1fvARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1fvSGIS( GLenum target, const GLfloat * v )
+{
+    struct glMultiTexCoord1fvSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord1fvSGIS, &args ))) WARN( "glMultiTexCoord1fvSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1hNV( GLenum target, GLhalfNV s )
+{
+    struct glMultiTexCoord1hNV_params args = { .target = target, .s = s, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d\n", target, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1hNV, &args ))) WARN( "glMultiTexCoord1hNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1hvNV( GLenum target, const GLhalfNV *v )
+{
+    struct glMultiTexCoord1hvNV_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord1hvNV, &args ))) WARN( "glMultiTexCoord1hvNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1i( GLenum target, GLint s )
+{
+    struct glMultiTexCoord1i_params args = { .target = target, .s = s, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d\n", target, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1i, &args ))) WARN( "glMultiTexCoord1i returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1iARB( GLenum target, GLint s )
+{
+    struct glMultiTexCoord1iARB_params args = { .target = target, .s = s, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d\n", target, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1iARB, &args ))) WARN( "glMultiTexCoord1iARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1iSGIS( GLenum target, GLint s )
+{
+    struct glMultiTexCoord1iSGIS_params args = { .target = target, .s = s, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d\n", target, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1iSGIS, &args ))) WARN( "glMultiTexCoord1iSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1iv( GLenum target, const GLint *v )
+{
+    struct glMultiTexCoord1iv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord1iv, &args ))) WARN( "glMultiTexCoord1iv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1ivARB( GLenum target, const GLint *v )
+{
+    struct glMultiTexCoord1ivARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord1ivARB, &args ))) WARN( "glMultiTexCoord1ivARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1ivSGIS( GLenum target, GLint * v )
+{
+    struct glMultiTexCoord1ivSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord1ivSGIS, &args ))) WARN( "glMultiTexCoord1ivSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1s( GLenum target, GLshort s )
+{
+    struct glMultiTexCoord1s_params args = { .target = target, .s = s, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d\n", target, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1s, &args ))) WARN( "glMultiTexCoord1s returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1sARB( GLenum target, GLshort s )
+{
+    struct glMultiTexCoord1sARB_params args = { .target = target, .s = s, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d\n", target, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1sARB, &args ))) WARN( "glMultiTexCoord1sARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1sSGIS( GLenum target, GLshort s )
+{
+    struct glMultiTexCoord1sSGIS_params args = { .target = target, .s = s, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d\n", target, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1sSGIS, &args ))) WARN( "glMultiTexCoord1sSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1sv( GLenum target, const GLshort *v )
+{
+    struct glMultiTexCoord1sv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord1sv, &args ))) WARN( "glMultiTexCoord1sv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1svARB( GLenum target, const GLshort *v )
+{
+    struct glMultiTexCoord1svARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord1svARB, &args ))) WARN( "glMultiTexCoord1svARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1svSGIS( GLenum target, GLshort * v )
+{
+    struct glMultiTexCoord1svSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord1svSGIS, &args ))) WARN( "glMultiTexCoord1svSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1xOES( GLenum texture, GLfixed s )
+{
+    struct glMultiTexCoord1xOES_params args = { .texture = texture, .s = s, };
+    NTSTATUS status;
+    TRACE( "texture %d, s %d\n", texture, s );
+    if ((status = UNIX_CALL( glMultiTexCoord1xOES, &args ))) WARN( "glMultiTexCoord1xOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord1xvOES( GLenum texture, const GLfixed *coords )
+{
+    struct glMultiTexCoord1xvOES_params args = { .texture = texture, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, coords %p\n", texture, coords );
+    if ((status = UNIX_CALL( glMultiTexCoord1xvOES, &args ))) WARN( "glMultiTexCoord1xvOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2bOES( GLenum texture, GLbyte s, GLbyte t )
+{
+    struct glMultiTexCoord2bOES_params args = { .texture = texture, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "texture %d, s %d, t %d\n", texture, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2bOES, &args ))) WARN( "glMultiTexCoord2bOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2bvOES( GLenum texture, const GLbyte *coords )
+{
+    struct glMultiTexCoord2bvOES_params args = { .texture = texture, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, coords %p\n", texture, coords );
+    if ((status = UNIX_CALL( glMultiTexCoord2bvOES, &args ))) WARN( "glMultiTexCoord2bvOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t )
+{
+    struct glMultiTexCoord2d_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f\n", target, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2d, &args ))) WARN( "glMultiTexCoord2d returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2dARB( GLenum target, GLdouble s, GLdouble t )
+{
+    struct glMultiTexCoord2dARB_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f\n", target, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2dARB, &args ))) WARN( "glMultiTexCoord2dARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2dSGIS( GLenum target, GLdouble s, GLdouble t )
+{
+    struct glMultiTexCoord2dSGIS_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f\n", target, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2dSGIS, &args ))) WARN( "glMultiTexCoord2dSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2dv( GLenum target, const GLdouble *v )
+{
+    struct glMultiTexCoord2dv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord2dv, &args ))) WARN( "glMultiTexCoord2dv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2dvARB( GLenum target, const GLdouble *v )
+{
+    struct glMultiTexCoord2dvARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord2dvARB, &args ))) WARN( "glMultiTexCoord2dvARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2dvSGIS( GLenum target, GLdouble * v )
+{
+    struct glMultiTexCoord2dvSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord2dvSGIS, &args ))) WARN( "glMultiTexCoord2dvSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t )
+{
+    struct glMultiTexCoord2f_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f\n", target, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2f, &args ))) WARN( "glMultiTexCoord2f returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2fARB( GLenum target, GLfloat s, GLfloat t )
+{
+    struct glMultiTexCoord2fARB_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f\n", target, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2fARB, &args ))) WARN( "glMultiTexCoord2fARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2fSGIS( GLenum target, GLfloat s, GLfloat t )
+{
+    struct glMultiTexCoord2fSGIS_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f\n", target, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2fSGIS, &args ))) WARN( "glMultiTexCoord2fSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2fv( GLenum target, const GLfloat *v )
+{
+    struct glMultiTexCoord2fv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord2fv, &args ))) WARN( "glMultiTexCoord2fv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2fvARB( GLenum target, const GLfloat *v )
+{
+    struct glMultiTexCoord2fvARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord2fvARB, &args ))) WARN( "glMultiTexCoord2fvARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2fvSGIS( GLenum target, GLfloat * v )
+{
+    struct glMultiTexCoord2fvSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord2fvSGIS, &args ))) WARN( "glMultiTexCoord2fvSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2hNV( GLenum target, GLhalfNV s, GLhalfNV t )
+{
+    struct glMultiTexCoord2hNV_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d\n", target, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2hNV, &args ))) WARN( "glMultiTexCoord2hNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2hvNV( GLenum target, const GLhalfNV *v )
+{
+    struct glMultiTexCoord2hvNV_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord2hvNV, &args ))) WARN( "glMultiTexCoord2hvNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2i( GLenum target, GLint s, GLint t )
+{
+    struct glMultiTexCoord2i_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d\n", target, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2i, &args ))) WARN( "glMultiTexCoord2i returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2iARB( GLenum target, GLint s, GLint t )
+{
+    struct glMultiTexCoord2iARB_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d\n", target, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2iARB, &args ))) WARN( "glMultiTexCoord2iARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2iSGIS( GLenum target, GLint s, GLint t )
+{
+    struct glMultiTexCoord2iSGIS_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d\n", target, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2iSGIS, &args ))) WARN( "glMultiTexCoord2iSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2iv( GLenum target, const GLint *v )
+{
+    struct glMultiTexCoord2iv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord2iv, &args ))) WARN( "glMultiTexCoord2iv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2ivARB( GLenum target, const GLint *v )
+{
+    struct glMultiTexCoord2ivARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord2ivARB, &args ))) WARN( "glMultiTexCoord2ivARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2ivSGIS( GLenum target, GLint * v )
+{
+    struct glMultiTexCoord2ivSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord2ivSGIS, &args ))) WARN( "glMultiTexCoord2ivSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2s( GLenum target, GLshort s, GLshort t )
+{
+    struct glMultiTexCoord2s_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d\n", target, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2s, &args ))) WARN( "glMultiTexCoord2s returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2sARB( GLenum target, GLshort s, GLshort t )
+{
+    struct glMultiTexCoord2sARB_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d\n", target, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2sARB, &args ))) WARN( "glMultiTexCoord2sARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2sSGIS( GLenum target, GLshort s, GLshort t )
+{
+    struct glMultiTexCoord2sSGIS_params args = { .target = target, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d\n", target, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2sSGIS, &args ))) WARN( "glMultiTexCoord2sSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2sv( GLenum target, const GLshort *v )
+{
+    struct glMultiTexCoord2sv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord2sv, &args ))) WARN( "glMultiTexCoord2sv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2svARB( GLenum target, const GLshort *v )
+{
+    struct glMultiTexCoord2svARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord2svARB, &args ))) WARN( "glMultiTexCoord2svARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2svSGIS( GLenum target, GLshort * v )
+{
+    struct glMultiTexCoord2svSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord2svSGIS, &args ))) WARN( "glMultiTexCoord2svSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2xOES( GLenum texture, GLfixed s, GLfixed t )
+{
+    struct glMultiTexCoord2xOES_params args = { .texture = texture, .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "texture %d, s %d, t %d\n", texture, s, t );
+    if ((status = UNIX_CALL( glMultiTexCoord2xOES, &args ))) WARN( "glMultiTexCoord2xOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord2xvOES( GLenum texture, const GLfixed *coords )
+{
+    struct glMultiTexCoord2xvOES_params args = { .texture = texture, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, coords %p\n", texture, coords );
+    if ((status = UNIX_CALL( glMultiTexCoord2xvOES, &args ))) WARN( "glMultiTexCoord2xvOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3bOES( GLenum texture, GLbyte s, GLbyte t, GLbyte r )
+{
+    struct glMultiTexCoord3bOES_params args = { .texture = texture, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "texture %d, s %d, t %d, r %d\n", texture, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3bOES, &args ))) WARN( "glMultiTexCoord3bOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3bvOES( GLenum texture, const GLbyte *coords )
+{
+    struct glMultiTexCoord3bvOES_params args = { .texture = texture, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, coords %p\n", texture, coords );
+    if ((status = UNIX_CALL( glMultiTexCoord3bvOES, &args ))) WARN( "glMultiTexCoord3bvOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r )
+{
+    struct glMultiTexCoord3d_params args = { .target = target, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f, r %f\n", target, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3d, &args ))) WARN( "glMultiTexCoord3d returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3dARB( GLenum target, GLdouble s, GLdouble t, GLdouble r )
+{
+    struct glMultiTexCoord3dARB_params args = { .target = target, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f, r %f\n", target, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3dARB, &args ))) WARN( "glMultiTexCoord3dARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3dSGIS( GLenum target, GLdouble s, GLdouble t, GLdouble r )
+{
+    struct glMultiTexCoord3dSGIS_params args = { .target = target, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f, r %f\n", target, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3dSGIS, &args ))) WARN( "glMultiTexCoord3dSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3dv( GLenum target, const GLdouble *v )
+{
+    struct glMultiTexCoord3dv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord3dv, &args ))) WARN( "glMultiTexCoord3dv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3dvARB( GLenum target, const GLdouble *v )
+{
+    struct glMultiTexCoord3dvARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord3dvARB, &args ))) WARN( "glMultiTexCoord3dvARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3dvSGIS( GLenum target, GLdouble * v )
+{
+    struct glMultiTexCoord3dvSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord3dvSGIS, &args ))) WARN( "glMultiTexCoord3dvSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r )
+{
+    struct glMultiTexCoord3f_params args = { .target = target, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f, r %f\n", target, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3f, &args ))) WARN( "glMultiTexCoord3f returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3fARB( GLenum target, GLfloat s, GLfloat t, GLfloat r )
+{
+    struct glMultiTexCoord3fARB_params args = { .target = target, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f, r %f\n", target, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3fARB, &args ))) WARN( "glMultiTexCoord3fARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3fSGIS( GLenum target, GLfloat s, GLfloat t, GLfloat r )
+{
+    struct glMultiTexCoord3fSGIS_params args = { .target = target, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f, r %f\n", target, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3fSGIS, &args ))) WARN( "glMultiTexCoord3fSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3fv( GLenum target, const GLfloat *v )
+{
+    struct glMultiTexCoord3fv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord3fv, &args ))) WARN( "glMultiTexCoord3fv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3fvARB( GLenum target, const GLfloat *v )
+{
+    struct glMultiTexCoord3fvARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord3fvARB, &args ))) WARN( "glMultiTexCoord3fvARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3fvSGIS( GLenum target, GLfloat * v )
+{
+    struct glMultiTexCoord3fvSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord3fvSGIS, &args ))) WARN( "glMultiTexCoord3fvSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3hNV( GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r )
+{
+    struct glMultiTexCoord3hNV_params args = { .target = target, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d\n", target, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3hNV, &args ))) WARN( "glMultiTexCoord3hNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3hvNV( GLenum target, const GLhalfNV *v )
+{
+    struct glMultiTexCoord3hvNV_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord3hvNV, &args ))) WARN( "glMultiTexCoord3hvNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r )
+{
+    struct glMultiTexCoord3i_params args = { .target = target, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d\n", target, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3i, &args ))) WARN( "glMultiTexCoord3i returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3iARB( GLenum target, GLint s, GLint t, GLint r )
+{
+    struct glMultiTexCoord3iARB_params args = { .target = target, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d\n", target, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3iARB, &args ))) WARN( "glMultiTexCoord3iARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3iSGIS( GLenum target, GLint s, GLint t, GLint r )
+{
+    struct glMultiTexCoord3iSGIS_params args = { .target = target, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d\n", target, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3iSGIS, &args ))) WARN( "glMultiTexCoord3iSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3iv( GLenum target, const GLint *v )
+{
+    struct glMultiTexCoord3iv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord3iv, &args ))) WARN( "glMultiTexCoord3iv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3ivARB( GLenum target, const GLint *v )
+{
+    struct glMultiTexCoord3ivARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord3ivARB, &args ))) WARN( "glMultiTexCoord3ivARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3ivSGIS( GLenum target, GLint * v )
+{
+    struct glMultiTexCoord3ivSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord3ivSGIS, &args ))) WARN( "glMultiTexCoord3ivSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r )
+{
+    struct glMultiTexCoord3s_params args = { .target = target, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d\n", target, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3s, &args ))) WARN( "glMultiTexCoord3s returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3sARB( GLenum target, GLshort s, GLshort t, GLshort r )
+{
+    struct glMultiTexCoord3sARB_params args = { .target = target, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d\n", target, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3sARB, &args ))) WARN( "glMultiTexCoord3sARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3sSGIS( GLenum target, GLshort s, GLshort t, GLshort r )
+{
+    struct glMultiTexCoord3sSGIS_params args = { .target = target, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d\n", target, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3sSGIS, &args ))) WARN( "glMultiTexCoord3sSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3sv( GLenum target, const GLshort *v )
+{
+    struct glMultiTexCoord3sv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord3sv, &args ))) WARN( "glMultiTexCoord3sv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3svARB( GLenum target, const GLshort *v )
+{
+    struct glMultiTexCoord3svARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord3svARB, &args ))) WARN( "glMultiTexCoord3svARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3svSGIS( GLenum target, GLshort * v )
+{
+    struct glMultiTexCoord3svSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord3svSGIS, &args ))) WARN( "glMultiTexCoord3svSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3xOES( GLenum texture, GLfixed s, GLfixed t, GLfixed r )
+{
+    struct glMultiTexCoord3xOES_params args = { .texture = texture, .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "texture %d, s %d, t %d, r %d\n", texture, s, t, r );
+    if ((status = UNIX_CALL( glMultiTexCoord3xOES, &args ))) WARN( "glMultiTexCoord3xOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord3xvOES( GLenum texture, const GLfixed *coords )
+{
+    struct glMultiTexCoord3xvOES_params args = { .texture = texture, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, coords %p\n", texture, coords );
+    if ((status = UNIX_CALL( glMultiTexCoord3xvOES, &args ))) WARN( "glMultiTexCoord3xvOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4bOES( GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q )
+{
+    struct glMultiTexCoord4bOES_params args = { .texture = texture, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "texture %d, s %d, t %d, r %d, q %d\n", texture, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4bOES, &args ))) WARN( "glMultiTexCoord4bOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4bvOES( GLenum texture, const GLbyte *coords )
+{
+    struct glMultiTexCoord4bvOES_params args = { .texture = texture, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, coords %p\n", texture, coords );
+    if ((status = UNIX_CALL( glMultiTexCoord4bvOES, &args ))) WARN( "glMultiTexCoord4bvOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q )
+{
+    struct glMultiTexCoord4d_params args = { .target = target, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f, r %f, q %f\n", target, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4d, &args ))) WARN( "glMultiTexCoord4d returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4dARB( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q )
+{
+    struct glMultiTexCoord4dARB_params args = { .target = target, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f, r %f, q %f\n", target, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4dARB, &args ))) WARN( "glMultiTexCoord4dARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4dSGIS( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q )
+{
+    struct glMultiTexCoord4dSGIS_params args = { .target = target, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f, r %f, q %f\n", target, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4dSGIS, &args ))) WARN( "glMultiTexCoord4dSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4dv( GLenum target, const GLdouble *v )
+{
+    struct glMultiTexCoord4dv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord4dv, &args ))) WARN( "glMultiTexCoord4dv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4dvARB( GLenum target, const GLdouble *v )
+{
+    struct glMultiTexCoord4dvARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord4dvARB, &args ))) WARN( "glMultiTexCoord4dvARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4dvSGIS( GLenum target, GLdouble * v )
+{
+    struct glMultiTexCoord4dvSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord4dvSGIS, &args ))) WARN( "glMultiTexCoord4dvSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q )
+{
+    struct glMultiTexCoord4f_params args = { .target = target, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f, r %f, q %f\n", target, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4f, &args ))) WARN( "glMultiTexCoord4f returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4fARB( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q )
+{
+    struct glMultiTexCoord4fARB_params args = { .target = target, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f, r %f, q %f\n", target, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4fARB, &args ))) WARN( "glMultiTexCoord4fARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4fSGIS( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q )
+{
+    struct glMultiTexCoord4fSGIS_params args = { .target = target, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "target %d, s %f, t %f, r %f, q %f\n", target, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4fSGIS, &args ))) WARN( "glMultiTexCoord4fSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4fv( GLenum target, const GLfloat *v )
+{
+    struct glMultiTexCoord4fv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord4fv, &args ))) WARN( "glMultiTexCoord4fv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4fvARB( GLenum target, const GLfloat *v )
+{
+    struct glMultiTexCoord4fvARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord4fvARB, &args ))) WARN( "glMultiTexCoord4fvARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4fvSGIS( GLenum target, GLfloat * v )
+{
+    struct glMultiTexCoord4fvSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord4fvSGIS, &args ))) WARN( "glMultiTexCoord4fvSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4hNV( GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q )
+{
+    struct glMultiTexCoord4hNV_params args = { .target = target, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d, q %d\n", target, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4hNV, &args ))) WARN( "glMultiTexCoord4hNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4hvNV( GLenum target, const GLhalfNV *v )
+{
+    struct glMultiTexCoord4hvNV_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord4hvNV, &args ))) WARN( "glMultiTexCoord4hvNV returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q )
+{
+    struct glMultiTexCoord4i_params args = { .target = target, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d, q %d\n", target, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4i, &args ))) WARN( "glMultiTexCoord4i returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4iARB( GLenum target, GLint s, GLint t, GLint r, GLint q )
+{
+    struct glMultiTexCoord4iARB_params args = { .target = target, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d, q %d\n", target, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4iARB, &args ))) WARN( "glMultiTexCoord4iARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4iSGIS( GLenum target, GLint s, GLint t, GLint r, GLint q )
+{
+    struct glMultiTexCoord4iSGIS_params args = { .target = target, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d, q %d\n", target, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4iSGIS, &args ))) WARN( "glMultiTexCoord4iSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4iv( GLenum target, const GLint *v )
+{
+    struct glMultiTexCoord4iv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord4iv, &args ))) WARN( "glMultiTexCoord4iv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4ivARB( GLenum target, const GLint *v )
+{
+    struct glMultiTexCoord4ivARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord4ivARB, &args ))) WARN( "glMultiTexCoord4ivARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4ivSGIS( GLenum target, GLint * v )
+{
+    struct glMultiTexCoord4ivSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord4ivSGIS, &args ))) WARN( "glMultiTexCoord4ivSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q )
+{
+    struct glMultiTexCoord4s_params args = { .target = target, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d, q %d\n", target, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4s, &args ))) WARN( "glMultiTexCoord4s returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4sARB( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q )
+{
+    struct glMultiTexCoord4sARB_params args = { .target = target, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d, q %d\n", target, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4sARB, &args ))) WARN( "glMultiTexCoord4sARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4sSGIS( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q )
+{
+    struct glMultiTexCoord4sSGIS_params args = { .target = target, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "target %d, s %d, t %d, r %d, q %d\n", target, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4sSGIS, &args ))) WARN( "glMultiTexCoord4sSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4sv( GLenum target, const GLshort *v )
+{
+    struct glMultiTexCoord4sv_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord4sv, &args ))) WARN( "glMultiTexCoord4sv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4svARB( GLenum target, const GLshort *v )
+{
+    struct glMultiTexCoord4svARB_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord4svARB, &args ))) WARN( "glMultiTexCoord4svARB returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4svSGIS( GLenum target, GLshort * v )
+{
+    struct glMultiTexCoord4svSGIS_params args = { .target = target, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, v %p\n", target, v );
+    if ((status = UNIX_CALL( glMultiTexCoord4svSGIS, &args ))) WARN( "glMultiTexCoord4svSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4xOES( GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q )
+{
+    struct glMultiTexCoord4xOES_params args = { .texture = texture, .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "texture %d, s %d, t %d, r %d, q %d\n", texture, s, t, r, q );
+    if ((status = UNIX_CALL( glMultiTexCoord4xOES, &args ))) WARN( "glMultiTexCoord4xOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoord4xvOES( GLenum texture, const GLfixed *coords )
+{
+    struct glMultiTexCoord4xvOES_params args = { .texture = texture, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, coords %p\n", texture, coords );
+    if ((status = UNIX_CALL( glMultiTexCoord4xvOES, &args ))) WARN( "glMultiTexCoord4xvOES returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoordP1ui( GLenum texture, GLenum type, GLuint coords )
+{
+    struct glMultiTexCoordP1ui_params args = { .texture = texture, .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, type %d, coords %d\n", texture, type, coords );
+    if ((status = UNIX_CALL( glMultiTexCoordP1ui, &args ))) WARN( "glMultiTexCoordP1ui returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoordP1uiv( GLenum texture, GLenum type, const GLuint *coords )
+{
+    struct glMultiTexCoordP1uiv_params args = { .texture = texture, .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, type %d, coords %p\n", texture, type, coords );
+    if ((status = UNIX_CALL( glMultiTexCoordP1uiv, &args ))) WARN( "glMultiTexCoordP1uiv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoordP2ui( GLenum texture, GLenum type, GLuint coords )
+{
+    struct glMultiTexCoordP2ui_params args = { .texture = texture, .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, type %d, coords %d\n", texture, type, coords );
+    if ((status = UNIX_CALL( glMultiTexCoordP2ui, &args ))) WARN( "glMultiTexCoordP2ui returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoordP2uiv( GLenum texture, GLenum type, const GLuint *coords )
+{
+    struct glMultiTexCoordP2uiv_params args = { .texture = texture, .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, type %d, coords %p\n", texture, type, coords );
+    if ((status = UNIX_CALL( glMultiTexCoordP2uiv, &args ))) WARN( "glMultiTexCoordP2uiv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoordP3ui( GLenum texture, GLenum type, GLuint coords )
+{
+    struct glMultiTexCoordP3ui_params args = { .texture = texture, .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, type %d, coords %d\n", texture, type, coords );
+    if ((status = UNIX_CALL( glMultiTexCoordP3ui, &args ))) WARN( "glMultiTexCoordP3ui returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoordP3uiv( GLenum texture, GLenum type, const GLuint *coords )
+{
+    struct glMultiTexCoordP3uiv_params args = { .texture = texture, .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, type %d, coords %p\n", texture, type, coords );
+    if ((status = UNIX_CALL( glMultiTexCoordP3uiv, &args ))) WARN( "glMultiTexCoordP3uiv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoordP4ui( GLenum texture, GLenum type, GLuint coords )
+{
+    struct glMultiTexCoordP4ui_params args = { .texture = texture, .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, type %d, coords %d\n", texture, type, coords );
+    if ((status = UNIX_CALL( glMultiTexCoordP4ui, &args ))) WARN( "glMultiTexCoordP4ui returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoordP4uiv( GLenum texture, GLenum type, const GLuint *coords )
+{
+    struct glMultiTexCoordP4uiv_params args = { .texture = texture, .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "texture %d, type %d, coords %p\n", texture, type, coords );
+    if ((status = UNIX_CALL( glMultiTexCoordP4uiv, &args ))) WARN( "glMultiTexCoordP4uiv returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoordPointerEXT( GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glMultiTexCoordPointerEXT_params args = { .texunit = texunit, .size = size, .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "texunit %d, size %d, type %d, stride %d, pointer %p\n", texunit, size, type, stride, pointer );
+    if ((status = UNIX_CALL( glMultiTexCoordPointerEXT, &args ))) WARN( "glMultiTexCoordPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexCoordPointerSGIS( GLenum target, GLint size, GLenum type, GLsizei stride, GLvoid * pointer )
+{
+    struct glMultiTexCoordPointerSGIS_params args = { .target = target, .size = size, .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "target %d, size %d, type %d, stride %d, pointer %p\n", target, size, type, stride, pointer );
+    if ((status = UNIX_CALL( glMultiTexCoordPointerSGIS, &args ))) WARN( "glMultiTexCoordPointerSGIS returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexEnvfEXT( GLenum texunit, GLenum target, GLenum pname, GLfloat param )
+{
+    struct glMultiTexEnvfEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, param %f\n", texunit, target, pname, param );
+    if ((status = UNIX_CALL( glMultiTexEnvfEXT, &args ))) WARN( "glMultiTexEnvfEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexEnvfvEXT( GLenum texunit, GLenum target, GLenum pname, const GLfloat *params )
+{
+    struct glMultiTexEnvfvEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, params %p\n", texunit, target, pname, params );
+    if ((status = UNIX_CALL( glMultiTexEnvfvEXT, &args ))) WARN( "glMultiTexEnvfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexEnviEXT( GLenum texunit, GLenum target, GLenum pname, GLint param )
+{
+    struct glMultiTexEnviEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, param %d\n", texunit, target, pname, param );
+    if ((status = UNIX_CALL( glMultiTexEnviEXT, &args ))) WARN( "glMultiTexEnviEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexEnvivEXT( GLenum texunit, GLenum target, GLenum pname, const GLint *params )
+{
+    struct glMultiTexEnvivEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, params %p\n", texunit, target, pname, params );
+    if ((status = UNIX_CALL( glMultiTexEnvivEXT, &args ))) WARN( "glMultiTexEnvivEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexGendEXT( GLenum texunit, GLenum coord, GLenum pname, GLdouble param )
+{
+    struct glMultiTexGendEXT_params args = { .texunit = texunit, .coord = coord, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "texunit %d, coord %d, pname %d, param %f\n", texunit, coord, pname, param );
+    if ((status = UNIX_CALL( glMultiTexGendEXT, &args ))) WARN( "glMultiTexGendEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexGendvEXT( GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params )
+{
+    struct glMultiTexGendvEXT_params args = { .texunit = texunit, .coord = coord, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, coord %d, pname %d, params %p\n", texunit, coord, pname, params );
+    if ((status = UNIX_CALL( glMultiTexGendvEXT, &args ))) WARN( "glMultiTexGendvEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexGenfEXT( GLenum texunit, GLenum coord, GLenum pname, GLfloat param )
+{
+    struct glMultiTexGenfEXT_params args = { .texunit = texunit, .coord = coord, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "texunit %d, coord %d, pname %d, param %f\n", texunit, coord, pname, param );
+    if ((status = UNIX_CALL( glMultiTexGenfEXT, &args ))) WARN( "glMultiTexGenfEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexGenfvEXT( GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params )
+{
+    struct glMultiTexGenfvEXT_params args = { .texunit = texunit, .coord = coord, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, coord %d, pname %d, params %p\n", texunit, coord, pname, params );
+    if ((status = UNIX_CALL( glMultiTexGenfvEXT, &args ))) WARN( "glMultiTexGenfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexGeniEXT( GLenum texunit, GLenum coord, GLenum pname, GLint param )
+{
+    struct glMultiTexGeniEXT_params args = { .texunit = texunit, .coord = coord, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "texunit %d, coord %d, pname %d, param %d\n", texunit, coord, pname, param );
+    if ((status = UNIX_CALL( glMultiTexGeniEXT, &args ))) WARN( "glMultiTexGeniEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexGenivEXT( GLenum texunit, GLenum coord, GLenum pname, const GLint *params )
+{
+    struct glMultiTexGenivEXT_params args = { .texunit = texunit, .coord = coord, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, coord %d, pname %d, params %p\n", texunit, coord, pname, params );
+    if ((status = UNIX_CALL( glMultiTexGenivEXT, &args ))) WARN( "glMultiTexGenivEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexImage1DEXT( GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels )
+{
+    struct glMultiTexImage1DEXT_params args = { .texunit = texunit, .target = target, .level = level, .internalformat = internalformat, .width = width, .border = border, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, internalformat %d, width %d, border %d, format %d, type %d, pixels %p\n", texunit, target, level, internalformat, width, border, format, type, pixels );
+    if ((status = UNIX_CALL( glMultiTexImage1DEXT, &args ))) WARN( "glMultiTexImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexImage2DEXT( GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels )
+{
+    struct glMultiTexImage2DEXT_params args = { .texunit = texunit, .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .border = border, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, internalformat %d, width %d, height %d, border %d, format %d, type %d, pixels %p\n", texunit, target, level, internalformat, width, height, border, format, type, pixels );
+    if ((status = UNIX_CALL( glMultiTexImage2DEXT, &args ))) WARN( "glMultiTexImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexImage3DEXT( GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels )
+{
+    struct glMultiTexImage3DEXT_params args = { .texunit = texunit, .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .depth = depth, .border = border, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, internalformat %d, width %d, height %d, depth %d, border %d, format %d, type %d, pixels %p\n", texunit, target, level, internalformat, width, height, depth, border, format, type, pixels );
+    if ((status = UNIX_CALL( glMultiTexImage3DEXT, &args ))) WARN( "glMultiTexImage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexParameterIivEXT( GLenum texunit, GLenum target, GLenum pname, const GLint *params )
+{
+    struct glMultiTexParameterIivEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, params %p\n", texunit, target, pname, params );
+    if ((status = UNIX_CALL( glMultiTexParameterIivEXT, &args ))) WARN( "glMultiTexParameterIivEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexParameterIuivEXT( GLenum texunit, GLenum target, GLenum pname, const GLuint *params )
+{
+    struct glMultiTexParameterIuivEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, params %p\n", texunit, target, pname, params );
+    if ((status = UNIX_CALL( glMultiTexParameterIuivEXT, &args ))) WARN( "glMultiTexParameterIuivEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexParameterfEXT( GLenum texunit, GLenum target, GLenum pname, GLfloat param )
+{
+    struct glMultiTexParameterfEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, param %f\n", texunit, target, pname, param );
+    if ((status = UNIX_CALL( glMultiTexParameterfEXT, &args ))) WARN( "glMultiTexParameterfEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexParameterfvEXT( GLenum texunit, GLenum target, GLenum pname, const GLfloat *params )
+{
+    struct glMultiTexParameterfvEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, params %p\n", texunit, target, pname, params );
+    if ((status = UNIX_CALL( glMultiTexParameterfvEXT, &args ))) WARN( "glMultiTexParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexParameteriEXT( GLenum texunit, GLenum target, GLenum pname, GLint param )
+{
+    struct glMultiTexParameteriEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, param %d\n", texunit, target, pname, param );
+    if ((status = UNIX_CALL( glMultiTexParameteriEXT, &args ))) WARN( "glMultiTexParameteriEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexParameterivEXT( GLenum texunit, GLenum target, GLenum pname, const GLint *params )
+{
+    struct glMultiTexParameterivEXT_params args = { .texunit = texunit, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, pname %d, params %p\n", texunit, target, pname, params );
+    if ((status = UNIX_CALL( glMultiTexParameterivEXT, &args ))) WARN( "glMultiTexParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexRenderbufferEXT( GLenum texunit, GLenum target, GLuint renderbuffer )
+{
+    struct glMultiTexRenderbufferEXT_params args = { .texunit = texunit, .target = target, .renderbuffer = renderbuffer, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, renderbuffer %d\n", texunit, target, renderbuffer );
+    if ((status = UNIX_CALL( glMultiTexRenderbufferEXT, &args ))) WARN( "glMultiTexRenderbufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexSubImage1DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels )
+{
+    struct glMultiTexSubImage1DEXT_params args = { .texunit = texunit, .target = target, .level = level, .xoffset = xoffset, .width = width, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, xoffset %d, width %d, format %d, type %d, pixels %p\n", texunit, target, level, xoffset, width, format, type, pixels );
+    if ((status = UNIX_CALL( glMultiTexSubImage1DEXT, &args ))) WARN( "glMultiTexSubImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexSubImage2DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels )
+{
+    struct glMultiTexSubImage2DEXT_params args = { .texunit = texunit, .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .width = width, .height = height, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, xoffset %d, yoffset %d, width %d, height %d, format %d, type %d, pixels %p\n", texunit, target, level, xoffset, yoffset, width, height, format, type, pixels );
+    if ((status = UNIX_CALL( glMultiTexSubImage2DEXT, &args ))) WARN( "glMultiTexSubImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glMultiTexSubImage3DEXT( GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels )
+{
+    struct glMultiTexSubImage3DEXT_params args = { .texunit = texunit, .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texunit %d, target %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, format %d, type %d, pixels %p\n", texunit, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
+    if ((status = UNIX_CALL( glMultiTexSubImage3DEXT, &args ))) WARN( "glMultiTexSubImage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glMulticastBarrierNV(void)
+{
+    struct glMulticastBarrierNV_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glMulticastBarrierNV, &args ))) WARN( "glMulticastBarrierNV returned %#x\n", status );
+}
+
+static void WINAPI glMulticastBlitFramebufferNV( GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter )
+{
+    struct glMulticastBlitFramebufferNV_params args = { .srcGpu = srcGpu, .dstGpu = dstGpu, .srcX0 = srcX0, .srcY0 = srcY0, .srcX1 = srcX1, .srcY1 = srcY1, .dstX0 = dstX0, .dstY0 = dstY0, .dstX1 = dstX1, .dstY1 = dstY1, .mask = mask, .filter = filter, };
+    NTSTATUS status;
+    TRACE( "srcGpu %d, dstGpu %d, srcX0 %d, srcY0 %d, srcX1 %d, srcY1 %d, dstX0 %d, dstY0 %d, dstX1 %d, dstY1 %d, mask %d, filter %d\n", srcGpu, dstGpu, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter );
+    if ((status = UNIX_CALL( glMulticastBlitFramebufferNV, &args ))) WARN( "glMulticastBlitFramebufferNV returned %#x\n", status );
+}
+
+static void WINAPI glMulticastBufferSubDataNV( GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data )
+{
+    struct glMulticastBufferSubDataNV_params args = { .gpuMask = gpuMask, .buffer = buffer, .offset = offset, .size = size, .data = data, };
+    NTSTATUS status;
+    TRACE( "gpuMask %d, buffer %d, offset %ld, size %ld, data %p\n", gpuMask, buffer, offset, size, data );
+    if ((status = UNIX_CALL( glMulticastBufferSubDataNV, &args ))) WARN( "glMulticastBufferSubDataNV returned %#x\n", status );
+}
+
+static void WINAPI glMulticastCopyBufferSubDataNV( GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size )
+{
+    struct glMulticastCopyBufferSubDataNV_params args = { .readGpu = readGpu, .writeGpuMask = writeGpuMask, .readBuffer = readBuffer, .writeBuffer = writeBuffer, .readOffset = readOffset, .writeOffset = writeOffset, .size = size, };
+    NTSTATUS status;
+    TRACE( "readGpu %d, writeGpuMask %d, readBuffer %d, writeBuffer %d, readOffset %ld, writeOffset %ld, size %ld\n", readGpu, writeGpuMask, readBuffer, writeBuffer, readOffset, writeOffset, size );
+    if ((status = UNIX_CALL( glMulticastCopyBufferSubDataNV, &args ))) WARN( "glMulticastCopyBufferSubDataNV returned %#x\n", status );
+}
+
+static void WINAPI glMulticastCopyImageSubDataNV( GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth )
+{
+    struct glMulticastCopyImageSubDataNV_params args = { .srcGpu = srcGpu, .dstGpuMask = dstGpuMask, .srcName = srcName, .srcTarget = srcTarget, .srcLevel = srcLevel, .srcX = srcX, .srcY = srcY, .srcZ = srcZ, .dstName = dstName, .dstTarget = dstTarget, .dstLevel = dstLevel, .dstX = dstX, .dstY = dstY, .dstZ = dstZ, .srcWidth = srcWidth, .srcHeight = srcHeight, .srcDepth = srcDepth, };
+    NTSTATUS status;
+    TRACE( "srcGpu %d, dstGpuMask %d, srcName %d, srcTarget %d, srcLevel %d, srcX %d, srcY %d, srcZ %d, dstName %d, dstTarget %d, dstLevel %d, dstX %d, dstY %d, dstZ %d, srcWidth %d, srcHeight %d, srcDepth %d\n", srcGpu, dstGpuMask, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth );
+    if ((status = UNIX_CALL( glMulticastCopyImageSubDataNV, &args ))) WARN( "glMulticastCopyImageSubDataNV returned %#x\n", status );
+}
+
+static void WINAPI glMulticastFramebufferSampleLocationsfvNV( GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v )
+{
+    struct glMulticastFramebufferSampleLocationsfvNV_params args = { .gpu = gpu, .framebuffer = framebuffer, .start = start, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "gpu %d, framebuffer %d, start %d, count %d, v %p\n", gpu, framebuffer, start, count, v );
+    if ((status = UNIX_CALL( glMulticastFramebufferSampleLocationsfvNV, &args ))) WARN( "glMulticastFramebufferSampleLocationsfvNV returned %#x\n", status );
+}
+
+static void WINAPI glMulticastGetQueryObjecti64vNV( GLuint gpu, GLuint id, GLenum pname, GLint64 *params )
+{
+    struct glMulticastGetQueryObjecti64vNV_params args = { .gpu = gpu, .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "gpu %d, id %d, pname %d, params %p\n", gpu, id, pname, params );
+    if ((status = UNIX_CALL( glMulticastGetQueryObjecti64vNV, &args ))) WARN( "glMulticastGetQueryObjecti64vNV returned %#x\n", status );
+}
+
+static void WINAPI glMulticastGetQueryObjectivNV( GLuint gpu, GLuint id, GLenum pname, GLint *params )
+{
+    struct glMulticastGetQueryObjectivNV_params args = { .gpu = gpu, .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "gpu %d, id %d, pname %d, params %p\n", gpu, id, pname, params );
+    if ((status = UNIX_CALL( glMulticastGetQueryObjectivNV, &args ))) WARN( "glMulticastGetQueryObjectivNV returned %#x\n", status );
+}
+
+static void WINAPI glMulticastGetQueryObjectui64vNV( GLuint gpu, GLuint id, GLenum pname, GLuint64 *params )
+{
+    struct glMulticastGetQueryObjectui64vNV_params args = { .gpu = gpu, .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "gpu %d, id %d, pname %d, params %p\n", gpu, id, pname, params );
+    if ((status = UNIX_CALL( glMulticastGetQueryObjectui64vNV, &args ))) WARN( "glMulticastGetQueryObjectui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glMulticastGetQueryObjectuivNV( GLuint gpu, GLuint id, GLenum pname, GLuint *params )
+{
+    struct glMulticastGetQueryObjectuivNV_params args = { .gpu = gpu, .id = id, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "gpu %d, id %d, pname %d, params %p\n", gpu, id, pname, params );
+    if ((status = UNIX_CALL( glMulticastGetQueryObjectuivNV, &args ))) WARN( "glMulticastGetQueryObjectuivNV returned %#x\n", status );
+}
+
+static void WINAPI glMulticastScissorArrayvNVX( GLuint gpu, GLuint first, GLsizei count, const GLint *v )
+{
+    struct glMulticastScissorArrayvNVX_params args = { .gpu = gpu, .first = first, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "gpu %d, first %d, count %d, v %p\n", gpu, first, count, v );
+    if ((status = UNIX_CALL( glMulticastScissorArrayvNVX, &args ))) WARN( "glMulticastScissorArrayvNVX returned %#x\n", status );
+}
+
+static void WINAPI glMulticastViewportArrayvNVX( GLuint gpu, GLuint first, GLsizei count, const GLfloat *v )
+{
+    struct glMulticastViewportArrayvNVX_params args = { .gpu = gpu, .first = first, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "gpu %d, first %d, count %d, v %p\n", gpu, first, count, v );
+    if ((status = UNIX_CALL( glMulticastViewportArrayvNVX, &args ))) WARN( "glMulticastViewportArrayvNVX returned %#x\n", status );
+}
+
+static void WINAPI glMulticastViewportPositionWScaleNVX( GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff )
+{
+    struct glMulticastViewportPositionWScaleNVX_params args = { .gpu = gpu, .index = index, .xcoeff = xcoeff, .ycoeff = ycoeff, };
+    NTSTATUS status;
+    TRACE( "gpu %d, index %d, xcoeff %f, ycoeff %f\n", gpu, index, xcoeff, ycoeff );
+    if ((status = UNIX_CALL( glMulticastViewportPositionWScaleNVX, &args ))) WARN( "glMulticastViewportPositionWScaleNVX returned %#x\n", status );
+}
+
+static void WINAPI glMulticastWaitSyncNV( GLuint signalGpu, GLbitfield waitGpuMask )
+{
+    struct glMulticastWaitSyncNV_params args = { .signalGpu = signalGpu, .waitGpuMask = waitGpuMask, };
+    NTSTATUS status;
+    TRACE( "signalGpu %d, waitGpuMask %d\n", signalGpu, waitGpuMask );
+    if ((status = UNIX_CALL( glMulticastWaitSyncNV, &args ))) WARN( "glMulticastWaitSyncNV returned %#x\n", status );
+}
+
+static void WINAPI glNamedBufferAttachMemoryNV( GLuint buffer, GLuint memory, GLuint64 offset )
+{
+    struct glNamedBufferAttachMemoryNV_params args = { .buffer = buffer, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "buffer %d, memory %d, offset %s\n", buffer, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glNamedBufferAttachMemoryNV, &args ))) WARN( "glNamedBufferAttachMemoryNV returned %#x\n", status );
+}
+
+static void WINAPI glNamedBufferData( GLuint buffer, GLsizeiptr size, const void *data, GLenum usage )
+{
+    struct glNamedBufferData_params args = { .buffer = buffer, .size = size, .data = data, .usage = usage, };
+    NTSTATUS status;
+    TRACE( "buffer %d, size %ld, data %p, usage %d\n", buffer, size, data, usage );
+    if ((status = UNIX_CALL( glNamedBufferData, &args ))) WARN( "glNamedBufferData returned %#x\n", status );
+}
+
+static void WINAPI glNamedBufferDataEXT( GLuint buffer, GLsizeiptr size, const void *data, GLenum usage )
+{
+    struct glNamedBufferDataEXT_params args = { .buffer = buffer, .size = size, .data = data, .usage = usage, };
+    NTSTATUS status;
+    TRACE( "buffer %d, size %ld, data %p, usage %d\n", buffer, size, data, usage );
+    if ((status = UNIX_CALL( glNamedBufferDataEXT, &args ))) WARN( "glNamedBufferDataEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedBufferPageCommitmentARB( GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit )
+{
+    struct glNamedBufferPageCommitmentARB_params args = { .buffer = buffer, .offset = offset, .size = size, .commit = commit, };
+    NTSTATUS status;
+    TRACE( "buffer %d, offset %ld, size %ld, commit %d\n", buffer, offset, size, commit );
+    if ((status = UNIX_CALL( glNamedBufferPageCommitmentARB, &args ))) WARN( "glNamedBufferPageCommitmentARB returned %#x\n", status );
+}
+
+static void WINAPI glNamedBufferPageCommitmentEXT( GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit )
+{
+    struct glNamedBufferPageCommitmentEXT_params args = { .buffer = buffer, .offset = offset, .size = size, .commit = commit, };
+    NTSTATUS status;
+    TRACE( "buffer %d, offset %ld, size %ld, commit %d\n", buffer, offset, size, commit );
+    if ((status = UNIX_CALL( glNamedBufferPageCommitmentEXT, &args ))) WARN( "glNamedBufferPageCommitmentEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedBufferStorage( GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags )
+{
+    struct glNamedBufferStorage_params args = { .buffer = buffer, .size = size, .data = data, .flags = flags, };
+    NTSTATUS status;
+    TRACE( "buffer %d, size %ld, data %p, flags %d\n", buffer, size, data, flags );
+    if ((status = UNIX_CALL( glNamedBufferStorage, &args ))) WARN( "glNamedBufferStorage returned %#x\n", status );
+}
+
+static void WINAPI glNamedBufferStorageEXT( GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags )
+{
+    struct glNamedBufferStorageEXT_params args = { .buffer = buffer, .size = size, .data = data, .flags = flags, };
+    NTSTATUS status;
+    TRACE( "buffer %d, size %ld, data %p, flags %d\n", buffer, size, data, flags );
+    if ((status = UNIX_CALL( glNamedBufferStorageEXT, &args ))) WARN( "glNamedBufferStorageEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedBufferStorageExternalEXT( GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags )
+{
+    struct glNamedBufferStorageExternalEXT_params args = { .buffer = buffer, .offset = offset, .size = size, .clientBuffer = clientBuffer, .flags = flags, };
+    NTSTATUS status;
+    TRACE( "buffer %d, offset %ld, size %ld, clientBuffer %p, flags %d\n", buffer, offset, size, clientBuffer, flags );
+    if ((status = UNIX_CALL( glNamedBufferStorageExternalEXT, &args ))) WARN( "glNamedBufferStorageExternalEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedBufferStorageMemEXT( GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset )
+{
+    struct glNamedBufferStorageMemEXT_params args = { .buffer = buffer, .size = size, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "buffer %d, size %ld, memory %d, offset %s\n", buffer, size, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glNamedBufferStorageMemEXT, &args ))) WARN( "glNamedBufferStorageMemEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedBufferSubData( GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data )
+{
+    struct glNamedBufferSubData_params args = { .buffer = buffer, .offset = offset, .size = size, .data = data, };
+    NTSTATUS status;
+    TRACE( "buffer %d, offset %ld, size %ld, data %p\n", buffer, offset, size, data );
+    if ((status = UNIX_CALL( glNamedBufferSubData, &args ))) WARN( "glNamedBufferSubData returned %#x\n", status );
+}
+
+static void WINAPI glNamedBufferSubDataEXT( GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data )
+{
+    struct glNamedBufferSubDataEXT_params args = { .buffer = buffer, .offset = offset, .size = size, .data = data, };
+    NTSTATUS status;
+    TRACE( "buffer %d, offset %ld, size %ld, data %p\n", buffer, offset, size, data );
+    if ((status = UNIX_CALL( glNamedBufferSubDataEXT, &args ))) WARN( "glNamedBufferSubDataEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedCopyBufferSubDataEXT( GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size )
+{
+    struct glNamedCopyBufferSubDataEXT_params args = { .readBuffer = readBuffer, .writeBuffer = writeBuffer, .readOffset = readOffset, .writeOffset = writeOffset, .size = size, };
+    NTSTATUS status;
+    TRACE( "readBuffer %d, writeBuffer %d, readOffset %ld, writeOffset %ld, size %ld\n", readBuffer, writeBuffer, readOffset, writeOffset, size );
+    if ((status = UNIX_CALL( glNamedCopyBufferSubDataEXT, &args ))) WARN( "glNamedCopyBufferSubDataEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferDrawBuffer( GLuint framebuffer, GLenum buf )
+{
+    struct glNamedFramebufferDrawBuffer_params args = { .framebuffer = framebuffer, .buf = buf, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, buf %d\n", framebuffer, buf );
+    if ((status = UNIX_CALL( glNamedFramebufferDrawBuffer, &args ))) WARN( "glNamedFramebufferDrawBuffer returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferDrawBuffers( GLuint framebuffer, GLsizei n, const GLenum *bufs )
+{
+    struct glNamedFramebufferDrawBuffers_params args = { .framebuffer = framebuffer, .n = n, .bufs = bufs, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, n %d, bufs %p\n", framebuffer, n, bufs );
+    if ((status = UNIX_CALL( glNamedFramebufferDrawBuffers, &args ))) WARN( "glNamedFramebufferDrawBuffers returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferParameteri( GLuint framebuffer, GLenum pname, GLint param )
+{
+    struct glNamedFramebufferParameteri_params args = { .framebuffer = framebuffer, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, pname %d, param %d\n", framebuffer, pname, param );
+    if ((status = UNIX_CALL( glNamedFramebufferParameteri, &args ))) WARN( "glNamedFramebufferParameteri returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferParameteriEXT( GLuint framebuffer, GLenum pname, GLint param )
+{
+    struct glNamedFramebufferParameteriEXT_params args = { .framebuffer = framebuffer, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, pname %d, param %d\n", framebuffer, pname, param );
+    if ((status = UNIX_CALL( glNamedFramebufferParameteriEXT, &args ))) WARN( "glNamedFramebufferParameteriEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferReadBuffer( GLuint framebuffer, GLenum src )
+{
+    struct glNamedFramebufferReadBuffer_params args = { .framebuffer = framebuffer, .src = src, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, src %d\n", framebuffer, src );
+    if ((status = UNIX_CALL( glNamedFramebufferReadBuffer, &args ))) WARN( "glNamedFramebufferReadBuffer returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferRenderbuffer( GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer )
+{
+    struct glNamedFramebufferRenderbuffer_params args = { .framebuffer = framebuffer, .attachment = attachment, .renderbuffertarget = renderbuffertarget, .renderbuffer = renderbuffer, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, attachment %d, renderbuffertarget %d, renderbuffer %d\n", framebuffer, attachment, renderbuffertarget, renderbuffer );
+    if ((status = UNIX_CALL( glNamedFramebufferRenderbuffer, &args ))) WARN( "glNamedFramebufferRenderbuffer returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferRenderbufferEXT( GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer )
+{
+    struct glNamedFramebufferRenderbufferEXT_params args = { .framebuffer = framebuffer, .attachment = attachment, .renderbuffertarget = renderbuffertarget, .renderbuffer = renderbuffer, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, attachment %d, renderbuffertarget %d, renderbuffer %d\n", framebuffer, attachment, renderbuffertarget, renderbuffer );
+    if ((status = UNIX_CALL( glNamedFramebufferRenderbufferEXT, &args ))) WARN( "glNamedFramebufferRenderbufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferSampleLocationsfvARB( GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v )
+{
+    struct glNamedFramebufferSampleLocationsfvARB_params args = { .framebuffer = framebuffer, .start = start, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, start %d, count %d, v %p\n", framebuffer, start, count, v );
+    if ((status = UNIX_CALL( glNamedFramebufferSampleLocationsfvARB, &args ))) WARN( "glNamedFramebufferSampleLocationsfvARB returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferSampleLocationsfvNV( GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v )
+{
+    struct glNamedFramebufferSampleLocationsfvNV_params args = { .framebuffer = framebuffer, .start = start, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, start %d, count %d, v %p\n", framebuffer, start, count, v );
+    if ((status = UNIX_CALL( glNamedFramebufferSampleLocationsfvNV, &args ))) WARN( "glNamedFramebufferSampleLocationsfvNV returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferSamplePositionsfvAMD( GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat *values )
+{
+    struct glNamedFramebufferSamplePositionsfvAMD_params args = { .framebuffer = framebuffer, .numsamples = numsamples, .pixelindex = pixelindex, .values = values, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, numsamples %d, pixelindex %d, values %p\n", framebuffer, numsamples, pixelindex, values );
+    if ((status = UNIX_CALL( glNamedFramebufferSamplePositionsfvAMD, &args ))) WARN( "glNamedFramebufferSamplePositionsfvAMD returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferTexture( GLuint framebuffer, GLenum attachment, GLuint texture, GLint level )
+{
+    struct glNamedFramebufferTexture_params args = { .framebuffer = framebuffer, .attachment = attachment, .texture = texture, .level = level, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, attachment %d, texture %d, level %d\n", framebuffer, attachment, texture, level );
+    if ((status = UNIX_CALL( glNamedFramebufferTexture, &args ))) WARN( "glNamedFramebufferTexture returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferTexture1DEXT( GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level )
+{
+    struct glNamedFramebufferTexture1DEXT_params args = { .framebuffer = framebuffer, .attachment = attachment, .textarget = textarget, .texture = texture, .level = level, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, attachment %d, textarget %d, texture %d, level %d\n", framebuffer, attachment, textarget, texture, level );
+    if ((status = UNIX_CALL( glNamedFramebufferTexture1DEXT, &args ))) WARN( "glNamedFramebufferTexture1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferTexture2DEXT( GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level )
+{
+    struct glNamedFramebufferTexture2DEXT_params args = { .framebuffer = framebuffer, .attachment = attachment, .textarget = textarget, .texture = texture, .level = level, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, attachment %d, textarget %d, texture %d, level %d\n", framebuffer, attachment, textarget, texture, level );
+    if ((status = UNIX_CALL( glNamedFramebufferTexture2DEXT, &args ))) WARN( "glNamedFramebufferTexture2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferTexture3DEXT( GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset )
+{
+    struct glNamedFramebufferTexture3DEXT_params args = { .framebuffer = framebuffer, .attachment = attachment, .textarget = textarget, .texture = texture, .level = level, .zoffset = zoffset, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, attachment %d, textarget %d, texture %d, level %d, zoffset %d\n", framebuffer, attachment, textarget, texture, level, zoffset );
+    if ((status = UNIX_CALL( glNamedFramebufferTexture3DEXT, &args ))) WARN( "glNamedFramebufferTexture3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferTextureEXT( GLuint framebuffer, GLenum attachment, GLuint texture, GLint level )
+{
+    struct glNamedFramebufferTextureEXT_params args = { .framebuffer = framebuffer, .attachment = attachment, .texture = texture, .level = level, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, attachment %d, texture %d, level %d\n", framebuffer, attachment, texture, level );
+    if ((status = UNIX_CALL( glNamedFramebufferTextureEXT, &args ))) WARN( "glNamedFramebufferTextureEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferTextureFaceEXT( GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face )
+{
+    struct glNamedFramebufferTextureFaceEXT_params args = { .framebuffer = framebuffer, .attachment = attachment, .texture = texture, .level = level, .face = face, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, attachment %d, texture %d, level %d, face %d\n", framebuffer, attachment, texture, level, face );
+    if ((status = UNIX_CALL( glNamedFramebufferTextureFaceEXT, &args ))) WARN( "glNamedFramebufferTextureFaceEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferTextureLayer( GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer )
+{
+    struct glNamedFramebufferTextureLayer_params args = { .framebuffer = framebuffer, .attachment = attachment, .texture = texture, .level = level, .layer = layer, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, attachment %d, texture %d, level %d, layer %d\n", framebuffer, attachment, texture, level, layer );
+    if ((status = UNIX_CALL( glNamedFramebufferTextureLayer, &args ))) WARN( "glNamedFramebufferTextureLayer returned %#x\n", status );
+}
+
+static void WINAPI glNamedFramebufferTextureLayerEXT( GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer )
+{
+    struct glNamedFramebufferTextureLayerEXT_params args = { .framebuffer = framebuffer, .attachment = attachment, .texture = texture, .level = level, .layer = layer, };
+    NTSTATUS status;
+    TRACE( "framebuffer %d, attachment %d, texture %d, level %d, layer %d\n", framebuffer, attachment, texture, level, layer );
+    if ((status = UNIX_CALL( glNamedFramebufferTextureLayerEXT, &args ))) WARN( "glNamedFramebufferTextureLayerEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedProgramLocalParameter4dEXT( GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glNamedProgramLocalParameter4dEXT_params args = { .program = program, .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, x %f, y %f, z %f, w %f\n", program, target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glNamedProgramLocalParameter4dEXT, &args ))) WARN( "glNamedProgramLocalParameter4dEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedProgramLocalParameter4dvEXT( GLuint program, GLenum target, GLuint index, const GLdouble *params )
+{
+    struct glNamedProgramLocalParameter4dvEXT_params args = { .program = program, .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, params %p\n", program, target, index, params );
+    if ((status = UNIX_CALL( glNamedProgramLocalParameter4dvEXT, &args ))) WARN( "glNamedProgramLocalParameter4dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedProgramLocalParameter4fEXT( GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
+{
+    struct glNamedProgramLocalParameter4fEXT_params args = { .program = program, .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, x %f, y %f, z %f, w %f\n", program, target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glNamedProgramLocalParameter4fEXT, &args ))) WARN( "glNamedProgramLocalParameter4fEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedProgramLocalParameter4fvEXT( GLuint program, GLenum target, GLuint index, const GLfloat *params )
+{
+    struct glNamedProgramLocalParameter4fvEXT_params args = { .program = program, .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, params %p\n", program, target, index, params );
+    if ((status = UNIX_CALL( glNamedProgramLocalParameter4fvEXT, &args ))) WARN( "glNamedProgramLocalParameter4fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedProgramLocalParameterI4iEXT( GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w )
+{
+    struct glNamedProgramLocalParameterI4iEXT_params args = { .program = program, .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, x %d, y %d, z %d, w %d\n", program, target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glNamedProgramLocalParameterI4iEXT, &args ))) WARN( "glNamedProgramLocalParameterI4iEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedProgramLocalParameterI4ivEXT( GLuint program, GLenum target, GLuint index, const GLint *params )
+{
+    struct glNamedProgramLocalParameterI4ivEXT_params args = { .program = program, .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, params %p\n", program, target, index, params );
+    if ((status = UNIX_CALL( glNamedProgramLocalParameterI4ivEXT, &args ))) WARN( "glNamedProgramLocalParameterI4ivEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedProgramLocalParameterI4uiEXT( GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w )
+{
+    struct glNamedProgramLocalParameterI4uiEXT_params args = { .program = program, .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, x %d, y %d, z %d, w %d\n", program, target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glNamedProgramLocalParameterI4uiEXT, &args ))) WARN( "glNamedProgramLocalParameterI4uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedProgramLocalParameterI4uivEXT( GLuint program, GLenum target, GLuint index, const GLuint *params )
+{
+    struct glNamedProgramLocalParameterI4uivEXT_params args = { .program = program, .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, params %p\n", program, target, index, params );
+    if ((status = UNIX_CALL( glNamedProgramLocalParameterI4uivEXT, &args ))) WARN( "glNamedProgramLocalParameterI4uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedProgramLocalParameters4fvEXT( GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params )
+{
+    struct glNamedProgramLocalParameters4fvEXT_params args = { .program = program, .target = target, .index = index, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, count %d, params %p\n", program, target, index, count, params );
+    if ((status = UNIX_CALL( glNamedProgramLocalParameters4fvEXT, &args ))) WARN( "glNamedProgramLocalParameters4fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedProgramLocalParametersI4ivEXT( GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params )
+{
+    struct glNamedProgramLocalParametersI4ivEXT_params args = { .program = program, .target = target, .index = index, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, count %d, params %p\n", program, target, index, count, params );
+    if ((status = UNIX_CALL( glNamedProgramLocalParametersI4ivEXT, &args ))) WARN( "glNamedProgramLocalParametersI4ivEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedProgramLocalParametersI4uivEXT( GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params )
+{
+    struct glNamedProgramLocalParametersI4uivEXT_params args = { .program = program, .target = target, .index = index, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, index %d, count %d, params %p\n", program, target, index, count, params );
+    if ((status = UNIX_CALL( glNamedProgramLocalParametersI4uivEXT, &args ))) WARN( "glNamedProgramLocalParametersI4uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedProgramStringEXT( GLuint program, GLenum target, GLenum format, GLsizei len, const void *string )
+{
+    struct glNamedProgramStringEXT_params args = { .program = program, .target = target, .format = format, .len = len, .string = string, };
+    NTSTATUS status;
+    TRACE( "program %d, target %d, format %d, len %d, string %p\n", program, target, format, len, string );
+    if ((status = UNIX_CALL( glNamedProgramStringEXT, &args ))) WARN( "glNamedProgramStringEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedRenderbufferStorage( GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glNamedRenderbufferStorage_params args = { .renderbuffer = renderbuffer, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "renderbuffer %d, internalformat %d, width %d, height %d\n", renderbuffer, internalformat, width, height );
+    if ((status = UNIX_CALL( glNamedRenderbufferStorage, &args ))) WARN( "glNamedRenderbufferStorage returned %#x\n", status );
+}
+
+static void WINAPI glNamedRenderbufferStorageEXT( GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glNamedRenderbufferStorageEXT_params args = { .renderbuffer = renderbuffer, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "renderbuffer %d, internalformat %d, width %d, height %d\n", renderbuffer, internalformat, width, height );
+    if ((status = UNIX_CALL( glNamedRenderbufferStorageEXT, &args ))) WARN( "glNamedRenderbufferStorageEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedRenderbufferStorageMultisample( GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glNamedRenderbufferStorageMultisample_params args = { .renderbuffer = renderbuffer, .samples = samples, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "renderbuffer %d, samples %d, internalformat %d, width %d, height %d\n", renderbuffer, samples, internalformat, width, height );
+    if ((status = UNIX_CALL( glNamedRenderbufferStorageMultisample, &args ))) WARN( "glNamedRenderbufferStorageMultisample returned %#x\n", status );
+}
+
+static void WINAPI glNamedRenderbufferStorageMultisampleAdvancedAMD( GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glNamedRenderbufferStorageMultisampleAdvancedAMD_params args = { .renderbuffer = renderbuffer, .samples = samples, .storageSamples = storageSamples, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "renderbuffer %d, samples %d, storageSamples %d, internalformat %d, width %d, height %d\n", renderbuffer, samples, storageSamples, internalformat, width, height );
+    if ((status = UNIX_CALL( glNamedRenderbufferStorageMultisampleAdvancedAMD, &args ))) WARN( "glNamedRenderbufferStorageMultisampleAdvancedAMD returned %#x\n", status );
+}
+
+static void WINAPI glNamedRenderbufferStorageMultisampleCoverageEXT( GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glNamedRenderbufferStorageMultisampleCoverageEXT_params args = { .renderbuffer = renderbuffer, .coverageSamples = coverageSamples, .colorSamples = colorSamples, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "renderbuffer %d, coverageSamples %d, colorSamples %d, internalformat %d, width %d, height %d\n", renderbuffer, coverageSamples, colorSamples, internalformat, width, height );
+    if ((status = UNIX_CALL( glNamedRenderbufferStorageMultisampleCoverageEXT, &args ))) WARN( "glNamedRenderbufferStorageMultisampleCoverageEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedRenderbufferStorageMultisampleEXT( GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glNamedRenderbufferStorageMultisampleEXT_params args = { .renderbuffer = renderbuffer, .samples = samples, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "renderbuffer %d, samples %d, internalformat %d, width %d, height %d\n", renderbuffer, samples, internalformat, width, height );
+    if ((status = UNIX_CALL( glNamedRenderbufferStorageMultisampleEXT, &args ))) WARN( "glNamedRenderbufferStorageMultisampleEXT returned %#x\n", status );
+}
+
+static void WINAPI glNamedStringARB( GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string )
+{
+    struct glNamedStringARB_params args = { .type = type, .namelen = namelen, .name = name, .stringlen = stringlen, .string = string, };
+    NTSTATUS status;
+    TRACE( "type %d, namelen %d, name %p, stringlen %d, string %p\n", type, namelen, name, stringlen, string );
+    if ((status = UNIX_CALL( glNamedStringARB, &args ))) WARN( "glNamedStringARB returned %#x\n", status );
+}
+
+static GLuint WINAPI glNewBufferRegion( GLenum type )
+{
+    struct glNewBufferRegion_params args = { .type = type, };
+    NTSTATUS status;
+    TRACE( "type %d\n", type );
+    if ((status = UNIX_CALL( glNewBufferRegion, &args ))) WARN( "glNewBufferRegion returned %#x\n", status );
+    return args.ret;
+}
+
+static GLuint WINAPI glNewObjectBufferATI( GLsizei size, const void *pointer, GLenum usage )
+{
+    struct glNewObjectBufferATI_params args = { .size = size, .pointer = pointer, .usage = usage, };
+    NTSTATUS status;
+    TRACE( "size %d, pointer %p, usage %d\n", size, pointer, usage );
+    if ((status = UNIX_CALL( glNewObjectBufferATI, &args ))) WARN( "glNewObjectBufferATI returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glNormal3fVertex3fSUN( GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glNormal3fVertex3fSUN_params args = { .nx = nx, .ny = ny, .nz = nz, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "nx %f, ny %f, nz %f, x %f, y %f, z %f\n", nx, ny, nz, x, y, z );
+    if ((status = UNIX_CALL( glNormal3fVertex3fSUN, &args ))) WARN( "glNormal3fVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glNormal3fVertex3fvSUN( const GLfloat *n, const GLfloat *v )
+{
+    struct glNormal3fVertex3fvSUN_params args = { .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "n %p, v %p\n", n, v );
+    if ((status = UNIX_CALL( glNormal3fVertex3fvSUN, &args ))) WARN( "glNormal3fVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glNormal3hNV( GLhalfNV nx, GLhalfNV ny, GLhalfNV nz )
+{
+    struct glNormal3hNV_params args = { .nx = nx, .ny = ny, .nz = nz, };
+    NTSTATUS status;
+    TRACE( "nx %d, ny %d, nz %d\n", nx, ny, nz );
+    if ((status = UNIX_CALL( glNormal3hNV, &args ))) WARN( "glNormal3hNV returned %#x\n", status );
+}
+
+static void WINAPI glNormal3hvNV( const GLhalfNV *v )
+{
+    struct glNormal3hvNV_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glNormal3hvNV, &args ))) WARN( "glNormal3hvNV returned %#x\n", status );
+}
+
+static void WINAPI glNormal3xOES( GLfixed nx, GLfixed ny, GLfixed nz )
+{
+    struct glNormal3xOES_params args = { .nx = nx, .ny = ny, .nz = nz, };
+    NTSTATUS status;
+    TRACE( "nx %d, ny %d, nz %d\n", nx, ny, nz );
+    if ((status = UNIX_CALL( glNormal3xOES, &args ))) WARN( "glNormal3xOES returned %#x\n", status );
+}
+
+static void WINAPI glNormal3xvOES( const GLfixed *coords )
+{
+    struct glNormal3xvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glNormal3xvOES, &args ))) WARN( "glNormal3xvOES returned %#x\n", status );
+}
+
+static void WINAPI glNormalFormatNV( GLenum type, GLsizei stride )
+{
+    struct glNormalFormatNV_params args = { .type = type, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "type %d, stride %d\n", type, stride );
+    if ((status = UNIX_CALL( glNormalFormatNV, &args ))) WARN( "glNormalFormatNV returned %#x\n", status );
+}
+
+static void WINAPI glNormalP3ui( GLenum type, GLuint coords )
+{
+    struct glNormalP3ui_params args = { .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "type %d, coords %d\n", type, coords );
+    if ((status = UNIX_CALL( glNormalP3ui, &args ))) WARN( "glNormalP3ui returned %#x\n", status );
+}
+
+static void WINAPI glNormalP3uiv( GLenum type, const GLuint *coords )
+{
+    struct glNormalP3uiv_params args = { .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "type %d, coords %p\n", type, coords );
+    if ((status = UNIX_CALL( glNormalP3uiv, &args ))) WARN( "glNormalP3uiv returned %#x\n", status );
+}
+
+static void WINAPI glNormalPointerEXT( GLenum type, GLsizei stride, GLsizei count, const void *pointer )
+{
+    struct glNormalPointerEXT_params args = { .type = type, .stride = stride, .count = count, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "type %d, stride %d, count %d, pointer %p\n", type, stride, count, pointer );
+    if ((status = UNIX_CALL( glNormalPointerEXT, &args ))) WARN( "glNormalPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glNormalPointerListIBM( GLenum type, GLint stride, const void **pointer, GLint ptrstride )
+{
+    struct glNormalPointerListIBM_params args = { .type = type, .stride = stride, .pointer = pointer, .ptrstride = ptrstride, };
+    NTSTATUS status;
+    TRACE( "type %d, stride %d, pointer %p, ptrstride %d\n", type, stride, pointer, ptrstride );
+    if ((status = UNIX_CALL( glNormalPointerListIBM, &args ))) WARN( "glNormalPointerListIBM returned %#x\n", status );
+}
+
+static void WINAPI glNormalPointervINTEL( GLenum type, const void **pointer )
+{
+    struct glNormalPointervINTEL_params args = { .type = type, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "type %d, pointer %p\n", type, pointer );
+    if ((status = UNIX_CALL( glNormalPointervINTEL, &args ))) WARN( "glNormalPointervINTEL returned %#x\n", status );
+}
+
+static void WINAPI glNormalStream3bATI( GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz )
+{
+    struct glNormalStream3bATI_params args = { .stream = stream, .nx = nx, .ny = ny, .nz = nz, };
+    NTSTATUS status;
+    TRACE( "stream %d, nx %d, ny %d, nz %d\n", stream, nx, ny, nz );
+    if ((status = UNIX_CALL( glNormalStream3bATI, &args ))) WARN( "glNormalStream3bATI returned %#x\n", status );
+}
+
+static void WINAPI glNormalStream3bvATI( GLenum stream, const GLbyte *coords )
+{
+    struct glNormalStream3bvATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glNormalStream3bvATI, &args ))) WARN( "glNormalStream3bvATI returned %#x\n", status );
+}
+
+static void WINAPI glNormalStream3dATI( GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz )
+{
+    struct glNormalStream3dATI_params args = { .stream = stream, .nx = nx, .ny = ny, .nz = nz, };
+    NTSTATUS status;
+    TRACE( "stream %d, nx %f, ny %f, nz %f\n", stream, nx, ny, nz );
+    if ((status = UNIX_CALL( glNormalStream3dATI, &args ))) WARN( "glNormalStream3dATI returned %#x\n", status );
+}
+
+static void WINAPI glNormalStream3dvATI( GLenum stream, const GLdouble *coords )
+{
+    struct glNormalStream3dvATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glNormalStream3dvATI, &args ))) WARN( "glNormalStream3dvATI returned %#x\n", status );
+}
+
+static void WINAPI glNormalStream3fATI( GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz )
+{
+    struct glNormalStream3fATI_params args = { .stream = stream, .nx = nx, .ny = ny, .nz = nz, };
+    NTSTATUS status;
+    TRACE( "stream %d, nx %f, ny %f, nz %f\n", stream, nx, ny, nz );
+    if ((status = UNIX_CALL( glNormalStream3fATI, &args ))) WARN( "glNormalStream3fATI returned %#x\n", status );
+}
+
+static void WINAPI glNormalStream3fvATI( GLenum stream, const GLfloat *coords )
+{
+    struct glNormalStream3fvATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glNormalStream3fvATI, &args ))) WARN( "glNormalStream3fvATI returned %#x\n", status );
+}
+
+static void WINAPI glNormalStream3iATI( GLenum stream, GLint nx, GLint ny, GLint nz )
+{
+    struct glNormalStream3iATI_params args = { .stream = stream, .nx = nx, .ny = ny, .nz = nz, };
+    NTSTATUS status;
+    TRACE( "stream %d, nx %d, ny %d, nz %d\n", stream, nx, ny, nz );
+    if ((status = UNIX_CALL( glNormalStream3iATI, &args ))) WARN( "glNormalStream3iATI returned %#x\n", status );
+}
+
+static void WINAPI glNormalStream3ivATI( GLenum stream, const GLint *coords )
+{
+    struct glNormalStream3ivATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glNormalStream3ivATI, &args ))) WARN( "glNormalStream3ivATI returned %#x\n", status );
+}
+
+static void WINAPI glNormalStream3sATI( GLenum stream, GLshort nx, GLshort ny, GLshort nz )
+{
+    struct glNormalStream3sATI_params args = { .stream = stream, .nx = nx, .ny = ny, .nz = nz, };
+    NTSTATUS status;
+    TRACE( "stream %d, nx %d, ny %d, nz %d\n", stream, nx, ny, nz );
+    if ((status = UNIX_CALL( glNormalStream3sATI, &args ))) WARN( "glNormalStream3sATI returned %#x\n", status );
+}
+
+static void WINAPI glNormalStream3svATI( GLenum stream, const GLshort *coords )
+{
+    struct glNormalStream3svATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glNormalStream3svATI, &args ))) WARN( "glNormalStream3svATI returned %#x\n", status );
+}
+
+static void WINAPI glObjectLabel( GLenum identifier, GLuint name, GLsizei length, const GLchar *label )
+{
+    struct glObjectLabel_params args = { .identifier = identifier, .name = name, .length = length, .label = label, };
+    NTSTATUS status;
+    TRACE( "identifier %d, name %d, length %d, label %p\n", identifier, name, length, label );
+    if ((status = UNIX_CALL( glObjectLabel, &args ))) WARN( "glObjectLabel returned %#x\n", status );
+}
+
+static void WINAPI glObjectPtrLabel( const void *ptr, GLsizei length, const GLchar *label )
+{
+    struct glObjectPtrLabel_params args = { .ptr = ptr, .length = length, .label = label, };
+    NTSTATUS status;
+    TRACE( "ptr %p, length %d, label %p\n", ptr, length, label );
+    if ((status = UNIX_CALL( glObjectPtrLabel, &args ))) WARN( "glObjectPtrLabel returned %#x\n", status );
+}
+
+static GLenum WINAPI glObjectPurgeableAPPLE( GLenum objectType, GLuint name, GLenum option )
+{
+    struct glObjectPurgeableAPPLE_params args = { .objectType = objectType, .name = name, .option = option, };
+    NTSTATUS status;
+    TRACE( "objectType %d, name %d, option %d\n", objectType, name, option );
+    if ((status = UNIX_CALL( glObjectPurgeableAPPLE, &args ))) WARN( "glObjectPurgeableAPPLE returned %#x\n", status );
+    return args.ret;
+}
+
+static GLenum WINAPI glObjectUnpurgeableAPPLE( GLenum objectType, GLuint name, GLenum option )
+{
+    struct glObjectUnpurgeableAPPLE_params args = { .objectType = objectType, .name = name, .option = option, };
+    NTSTATUS status;
+    TRACE( "objectType %d, name %d, option %d\n", objectType, name, option );
+    if ((status = UNIX_CALL( glObjectUnpurgeableAPPLE, &args ))) WARN( "glObjectUnpurgeableAPPLE returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glOrthofOES( GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f )
+{
+    struct glOrthofOES_params args = { .l = l, .r = r, .b = b, .t = t, .n = n, .f = f, };
+    NTSTATUS status;
+    TRACE( "l %f, r %f, b %f, t %f, n %f, f %f\n", l, r, b, t, n, f );
+    if ((status = UNIX_CALL( glOrthofOES, &args ))) WARN( "glOrthofOES returned %#x\n", status );
+}
+
+static void WINAPI glOrthoxOES( GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f )
+{
+    struct glOrthoxOES_params args = { .l = l, .r = r, .b = b, .t = t, .n = n, .f = f, };
+    NTSTATUS status;
+    TRACE( "l %d, r %d, b %d, t %d, n %d, f %d\n", l, r, b, t, n, f );
+    if ((status = UNIX_CALL( glOrthoxOES, &args ))) WARN( "glOrthoxOES returned %#x\n", status );
+}
+
+static void WINAPI glPNTrianglesfATI( GLenum pname, GLfloat param )
+{
+    struct glPNTrianglesfATI_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %f\n", pname, param );
+    if ((status = UNIX_CALL( glPNTrianglesfATI, &args ))) WARN( "glPNTrianglesfATI returned %#x\n", status );
+}
+
+static void WINAPI glPNTrianglesiATI( GLenum pname, GLint param )
+{
+    struct glPNTrianglesiATI_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glPNTrianglesiATI, &args ))) WARN( "glPNTrianglesiATI returned %#x\n", status );
+}
+
+static void WINAPI glPassTexCoordATI( GLuint dst, GLuint coord, GLenum swizzle )
+{
+    struct glPassTexCoordATI_params args = { .dst = dst, .coord = coord, .swizzle = swizzle, };
+    NTSTATUS status;
+    TRACE( "dst %d, coord %d, swizzle %d\n", dst, coord, swizzle );
+    if ((status = UNIX_CALL( glPassTexCoordATI, &args ))) WARN( "glPassTexCoordATI returned %#x\n", status );
+}
+
+static void WINAPI glPassThroughxOES( GLfixed token )
+{
+    struct glPassThroughxOES_params args = { .token = token, };
+    NTSTATUS status;
+    TRACE( "token %d\n", token );
+    if ((status = UNIX_CALL( glPassThroughxOES, &args ))) WARN( "glPassThroughxOES returned %#x\n", status );
+}
+
+static void WINAPI glPatchParameterfv( GLenum pname, const GLfloat *values )
+{
+    struct glPatchParameterfv_params args = { .pname = pname, .values = values, };
+    NTSTATUS status;
+    TRACE( "pname %d, values %p\n", pname, values );
+    if ((status = UNIX_CALL( glPatchParameterfv, &args ))) WARN( "glPatchParameterfv returned %#x\n", status );
+}
+
+static void WINAPI glPatchParameteri( GLenum pname, GLint value )
+{
+    struct glPatchParameteri_params args = { .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "pname %d, value %d\n", pname, value );
+    if ((status = UNIX_CALL( glPatchParameteri, &args ))) WARN( "glPatchParameteri returned %#x\n", status );
+}
+
+static void WINAPI glPathColorGenNV( GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs )
+{
+    struct glPathColorGenNV_params args = { .color = color, .genMode = genMode, .colorFormat = colorFormat, .coeffs = coeffs, };
+    NTSTATUS status;
+    TRACE( "color %d, genMode %d, colorFormat %d, coeffs %p\n", color, genMode, colorFormat, coeffs );
+    if ((status = UNIX_CALL( glPathColorGenNV, &args ))) WARN( "glPathColorGenNV returned %#x\n", status );
+}
+
+static void WINAPI glPathCommandsNV( GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords )
+{
+    struct glPathCommandsNV_params args = { .path = path, .numCommands = numCommands, .commands = commands, .numCoords = numCoords, .coordType = coordType, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "path %d, numCommands %d, commands %p, numCoords %d, coordType %d, coords %p\n", path, numCommands, commands, numCoords, coordType, coords );
+    if ((status = UNIX_CALL( glPathCommandsNV, &args ))) WARN( "glPathCommandsNV returned %#x\n", status );
+}
+
+static void WINAPI glPathCoordsNV( GLuint path, GLsizei numCoords, GLenum coordType, const void *coords )
+{
+    struct glPathCoordsNV_params args = { .path = path, .numCoords = numCoords, .coordType = coordType, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "path %d, numCoords %d, coordType %d, coords %p\n", path, numCoords, coordType, coords );
+    if ((status = UNIX_CALL( glPathCoordsNV, &args ))) WARN( "glPathCoordsNV returned %#x\n", status );
+}
+
+static void WINAPI glPathCoverDepthFuncNV( GLenum func )
+{
+    struct glPathCoverDepthFuncNV_params args = { .func = func, };
+    NTSTATUS status;
+    TRACE( "func %d\n", func );
+    if ((status = UNIX_CALL( glPathCoverDepthFuncNV, &args ))) WARN( "glPathCoverDepthFuncNV returned %#x\n", status );
+}
+
+static void WINAPI glPathDashArrayNV( GLuint path, GLsizei dashCount, const GLfloat *dashArray )
+{
+    struct glPathDashArrayNV_params args = { .path = path, .dashCount = dashCount, .dashArray = dashArray, };
+    NTSTATUS status;
+    TRACE( "path %d, dashCount %d, dashArray %p\n", path, dashCount, dashArray );
+    if ((status = UNIX_CALL( glPathDashArrayNV, &args ))) WARN( "glPathDashArrayNV returned %#x\n", status );
+}
+
+static void WINAPI glPathFogGenNV( GLenum genMode )
+{
+    struct glPathFogGenNV_params args = { .genMode = genMode, };
+    NTSTATUS status;
+    TRACE( "genMode %d\n", genMode );
+    if ((status = UNIX_CALL( glPathFogGenNV, &args ))) WARN( "glPathFogGenNV returned %#x\n", status );
+}
+
+static GLenum WINAPI glPathGlyphIndexArrayNV( GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale )
+{
+    struct glPathGlyphIndexArrayNV_params args = { .firstPathName = firstPathName, .fontTarget = fontTarget, .fontName = fontName, .fontStyle = fontStyle, .firstGlyphIndex = firstGlyphIndex, .numGlyphs = numGlyphs, .pathParameterTemplate = pathParameterTemplate, .emScale = emScale, };
+    NTSTATUS status;
+    TRACE( "firstPathName %d, fontTarget %d, fontName %p, fontStyle %d, firstGlyphIndex %d, numGlyphs %d, pathParameterTemplate %d, emScale %f\n", firstPathName, fontTarget, fontName, fontStyle, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale );
+    if ((status = UNIX_CALL( glPathGlyphIndexArrayNV, &args ))) WARN( "glPathGlyphIndexArrayNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLenum WINAPI glPathGlyphIndexRangeNV( GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2] )
+{
+    struct glPathGlyphIndexRangeNV_params args = { .fontTarget = fontTarget, .fontName = fontName, .fontStyle = fontStyle, .pathParameterTemplate = pathParameterTemplate, .emScale = emScale, };
+    NTSTATUS status;
+    memcpy( args.baseAndCount, baseAndCount, sizeof(args.baseAndCount) );
+    TRACE( "fontTarget %d, fontName %p, fontStyle %d, pathParameterTemplate %d, emScale %f, baseAndCount %p\n", fontTarget, fontName, fontStyle, pathParameterTemplate, emScale, baseAndCount );
+    if ((status = UNIX_CALL( glPathGlyphIndexRangeNV, &args ))) WARN( "glPathGlyphIndexRangeNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glPathGlyphRangeNV( GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale )
+{
+    struct glPathGlyphRangeNV_params args = { .firstPathName = firstPathName, .fontTarget = fontTarget, .fontName = fontName, .fontStyle = fontStyle, .firstGlyph = firstGlyph, .numGlyphs = numGlyphs, .handleMissingGlyphs = handleMissingGlyphs, .pathParameterTemplate = pathParameterTemplate, .emScale = emScale, };
+    NTSTATUS status;
+    TRACE( "firstPathName %d, fontTarget %d, fontName %p, fontStyle %d, firstGlyph %d, numGlyphs %d, handleMissingGlyphs %d, pathParameterTemplate %d, emScale %f\n", firstPathName, fontTarget, fontName, fontStyle, firstGlyph, numGlyphs, handleMissingGlyphs, pathParameterTemplate, emScale );
+    if ((status = UNIX_CALL( glPathGlyphRangeNV, &args ))) WARN( "glPathGlyphRangeNV returned %#x\n", status );
+}
+
+static void WINAPI glPathGlyphsNV( GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale )
+{
+    struct glPathGlyphsNV_params args = { .firstPathName = firstPathName, .fontTarget = fontTarget, .fontName = fontName, .fontStyle = fontStyle, .numGlyphs = numGlyphs, .type = type, .charcodes = charcodes, .handleMissingGlyphs = handleMissingGlyphs, .pathParameterTemplate = pathParameterTemplate, .emScale = emScale, };
+    NTSTATUS status;
+    TRACE( "firstPathName %d, fontTarget %d, fontName %p, fontStyle %d, numGlyphs %d, type %d, charcodes %p, handleMissingGlyphs %d, pathParameterTemplate %d, emScale %f\n", firstPathName, fontTarget, fontName, fontStyle, numGlyphs, type, charcodes, handleMissingGlyphs, pathParameterTemplate, emScale );
+    if ((status = UNIX_CALL( glPathGlyphsNV, &args ))) WARN( "glPathGlyphsNV returned %#x\n", status );
+}
+
+static GLenum WINAPI glPathMemoryGlyphIndexArrayNV( GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale )
+{
+    struct glPathMemoryGlyphIndexArrayNV_params args = { .firstPathName = firstPathName, .fontTarget = fontTarget, .fontSize = fontSize, .fontData = fontData, .faceIndex = faceIndex, .firstGlyphIndex = firstGlyphIndex, .numGlyphs = numGlyphs, .pathParameterTemplate = pathParameterTemplate, .emScale = emScale, };
+    NTSTATUS status;
+    TRACE( "firstPathName %d, fontTarget %d, fontSize %ld, fontData %p, faceIndex %d, firstGlyphIndex %d, numGlyphs %d, pathParameterTemplate %d, emScale %f\n", firstPathName, fontTarget, fontSize, fontData, faceIndex, firstGlyphIndex, numGlyphs, pathParameterTemplate, emScale );
+    if ((status = UNIX_CALL( glPathMemoryGlyphIndexArrayNV, &args ))) WARN( "glPathMemoryGlyphIndexArrayNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glPathParameterfNV( GLuint path, GLenum pname, GLfloat value )
+{
+    struct glPathParameterfNV_params args = { .path = path, .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "path %d, pname %d, value %f\n", path, pname, value );
+    if ((status = UNIX_CALL( glPathParameterfNV, &args ))) WARN( "glPathParameterfNV returned %#x\n", status );
+}
+
+static void WINAPI glPathParameterfvNV( GLuint path, GLenum pname, const GLfloat *value )
+{
+    struct glPathParameterfvNV_params args = { .path = path, .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "path %d, pname %d, value %p\n", path, pname, value );
+    if ((status = UNIX_CALL( glPathParameterfvNV, &args ))) WARN( "glPathParameterfvNV returned %#x\n", status );
+}
+
+static void WINAPI glPathParameteriNV( GLuint path, GLenum pname, GLint value )
+{
+    struct glPathParameteriNV_params args = { .path = path, .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "path %d, pname %d, value %d\n", path, pname, value );
+    if ((status = UNIX_CALL( glPathParameteriNV, &args ))) WARN( "glPathParameteriNV returned %#x\n", status );
+}
+
+static void WINAPI glPathParameterivNV( GLuint path, GLenum pname, const GLint *value )
+{
+    struct glPathParameterivNV_params args = { .path = path, .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "path %d, pname %d, value %p\n", path, pname, value );
+    if ((status = UNIX_CALL( glPathParameterivNV, &args ))) WARN( "glPathParameterivNV returned %#x\n", status );
+}
+
+static void WINAPI glPathStencilDepthOffsetNV( GLfloat factor, GLfloat units )
+{
+    struct glPathStencilDepthOffsetNV_params args = { .factor = factor, .units = units, };
+    NTSTATUS status;
+    TRACE( "factor %f, units %f\n", factor, units );
+    if ((status = UNIX_CALL( glPathStencilDepthOffsetNV, &args ))) WARN( "glPathStencilDepthOffsetNV returned %#x\n", status );
+}
+
+static void WINAPI glPathStencilFuncNV( GLenum func, GLint ref, GLuint mask )
+{
+    struct glPathStencilFuncNV_params args = { .func = func, .ref = ref, .mask = mask, };
+    NTSTATUS status;
+    TRACE( "func %d, ref %d, mask %d\n", func, ref, mask );
+    if ((status = UNIX_CALL( glPathStencilFuncNV, &args ))) WARN( "glPathStencilFuncNV returned %#x\n", status );
+}
+
+static void WINAPI glPathStringNV( GLuint path, GLenum format, GLsizei length, const void *pathString )
+{
+    struct glPathStringNV_params args = { .path = path, .format = format, .length = length, .pathString = pathString, };
+    NTSTATUS status;
+    TRACE( "path %d, format %d, length %d, pathString %p\n", path, format, length, pathString );
+    if ((status = UNIX_CALL( glPathStringNV, &args ))) WARN( "glPathStringNV returned %#x\n", status );
+}
+
+static void WINAPI glPathSubCommandsNV( GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords )
+{
+    struct glPathSubCommandsNV_params args = { .path = path, .commandStart = commandStart, .commandsToDelete = commandsToDelete, .numCommands = numCommands, .commands = commands, .numCoords = numCoords, .coordType = coordType, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "path %d, commandStart %d, commandsToDelete %d, numCommands %d, commands %p, numCoords %d, coordType %d, coords %p\n", path, commandStart, commandsToDelete, numCommands, commands, numCoords, coordType, coords );
+    if ((status = UNIX_CALL( glPathSubCommandsNV, &args ))) WARN( "glPathSubCommandsNV returned %#x\n", status );
+}
+
+static void WINAPI glPathSubCoordsNV( GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords )
+{
+    struct glPathSubCoordsNV_params args = { .path = path, .coordStart = coordStart, .numCoords = numCoords, .coordType = coordType, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "path %d, coordStart %d, numCoords %d, coordType %d, coords %p\n", path, coordStart, numCoords, coordType, coords );
+    if ((status = UNIX_CALL( glPathSubCoordsNV, &args ))) WARN( "glPathSubCoordsNV returned %#x\n", status );
+}
+
+static void WINAPI glPathTexGenNV( GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs )
+{
+    struct glPathTexGenNV_params args = { .texCoordSet = texCoordSet, .genMode = genMode, .components = components, .coeffs = coeffs, };
+    NTSTATUS status;
+    TRACE( "texCoordSet %d, genMode %d, components %d, coeffs %p\n", texCoordSet, genMode, components, coeffs );
+    if ((status = UNIX_CALL( glPathTexGenNV, &args ))) WARN( "glPathTexGenNV returned %#x\n", status );
+}
+
+static void WINAPI glPauseTransformFeedback(void)
+{
+    struct glPauseTransformFeedback_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glPauseTransformFeedback, &args ))) WARN( "glPauseTransformFeedback returned %#x\n", status );
+}
+
+static void WINAPI glPauseTransformFeedbackNV(void)
+{
+    struct glPauseTransformFeedbackNV_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glPauseTransformFeedbackNV, &args ))) WARN( "glPauseTransformFeedbackNV returned %#x\n", status );
+}
+
+static void WINAPI glPixelDataRangeNV( GLenum target, GLsizei length, const void *pointer )
+{
+    struct glPixelDataRangeNV_params args = { .target = target, .length = length, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "target %d, length %d, pointer %p\n", target, length, pointer );
+    if ((status = UNIX_CALL( glPixelDataRangeNV, &args ))) WARN( "glPixelDataRangeNV returned %#x\n", status );
+}
+
+static void WINAPI glPixelMapx( GLenum map, GLint size, const GLfixed *values )
+{
+    struct glPixelMapx_params args = { .map = map, .size = size, .values = values, };
+    NTSTATUS status;
+    TRACE( "map %d, size %d, values %p\n", map, size, values );
+    if ((status = UNIX_CALL( glPixelMapx, &args ))) WARN( "glPixelMapx returned %#x\n", status );
+}
+
+static void WINAPI glPixelStorex( GLenum pname, GLfixed param )
+{
+    struct glPixelStorex_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glPixelStorex, &args ))) WARN( "glPixelStorex returned %#x\n", status );
+}
+
+static void WINAPI glPixelTexGenParameterfSGIS( GLenum pname, GLfloat param )
+{
+    struct glPixelTexGenParameterfSGIS_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %f\n", pname, param );
+    if ((status = UNIX_CALL( glPixelTexGenParameterfSGIS, &args ))) WARN( "glPixelTexGenParameterfSGIS returned %#x\n", status );
+}
+
+static void WINAPI glPixelTexGenParameterfvSGIS( GLenum pname, const GLfloat *params )
+{
+    struct glPixelTexGenParameterfvSGIS_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glPixelTexGenParameterfvSGIS, &args ))) WARN( "glPixelTexGenParameterfvSGIS returned %#x\n", status );
+}
+
+static void WINAPI glPixelTexGenParameteriSGIS( GLenum pname, GLint param )
+{
+    struct glPixelTexGenParameteriSGIS_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glPixelTexGenParameteriSGIS, &args ))) WARN( "glPixelTexGenParameteriSGIS returned %#x\n", status );
+}
+
+static void WINAPI glPixelTexGenParameterivSGIS( GLenum pname, const GLint *params )
+{
+    struct glPixelTexGenParameterivSGIS_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glPixelTexGenParameterivSGIS, &args ))) WARN( "glPixelTexGenParameterivSGIS returned %#x\n", status );
+}
+
+static void WINAPI glPixelTexGenSGIX( GLenum mode )
+{
+    struct glPixelTexGenSGIX_params args = { .mode = mode, };
+    NTSTATUS status;
+    TRACE( "mode %d\n", mode );
+    if ((status = UNIX_CALL( glPixelTexGenSGIX, &args ))) WARN( "glPixelTexGenSGIX returned %#x\n", status );
+}
+
+static void WINAPI glPixelTransferxOES( GLenum pname, GLfixed param )
+{
+    struct glPixelTransferxOES_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glPixelTransferxOES, &args ))) WARN( "glPixelTransferxOES returned %#x\n", status );
+}
+
+static void WINAPI glPixelTransformParameterfEXT( GLenum target, GLenum pname, GLfloat param )
+{
+    struct glPixelTransformParameterfEXT_params args = { .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, param %f\n", target, pname, param );
+    if ((status = UNIX_CALL( glPixelTransformParameterfEXT, &args ))) WARN( "glPixelTransformParameterfEXT returned %#x\n", status );
+}
+
+static void WINAPI glPixelTransformParameterfvEXT( GLenum target, GLenum pname, const GLfloat *params )
+{
+    struct glPixelTransformParameterfvEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glPixelTransformParameterfvEXT, &args ))) WARN( "glPixelTransformParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glPixelTransformParameteriEXT( GLenum target, GLenum pname, GLint param )
+{
+    struct glPixelTransformParameteriEXT_params args = { .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, param %d\n", target, pname, param );
+    if ((status = UNIX_CALL( glPixelTransformParameteriEXT, &args ))) WARN( "glPixelTransformParameteriEXT returned %#x\n", status );
+}
+
+static void WINAPI glPixelTransformParameterivEXT( GLenum target, GLenum pname, const GLint *params )
+{
+    struct glPixelTransformParameterivEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glPixelTransformParameterivEXT, &args ))) WARN( "glPixelTransformParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glPixelZoomxOES( GLfixed xfactor, GLfixed yfactor )
+{
+    struct glPixelZoomxOES_params args = { .xfactor = xfactor, .yfactor = yfactor, };
+    NTSTATUS status;
+    TRACE( "xfactor %d, yfactor %d\n", xfactor, yfactor );
+    if ((status = UNIX_CALL( glPixelZoomxOES, &args ))) WARN( "glPixelZoomxOES returned %#x\n", status );
+}
+
+static GLboolean WINAPI glPointAlongPathNV( GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY )
+{
+    struct glPointAlongPathNV_params args = { .path = path, .startSegment = startSegment, .numSegments = numSegments, .distance = distance, .x = x, .y = y, .tangentX = tangentX, .tangentY = tangentY, };
+    NTSTATUS status;
+    TRACE( "path %d, startSegment %d, numSegments %d, distance %f, x %p, y %p, tangentX %p, tangentY %p\n", path, startSegment, numSegments, distance, x, y, tangentX, tangentY );
+    if ((status = UNIX_CALL( glPointAlongPathNV, &args ))) WARN( "glPointAlongPathNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glPointParameterf( GLenum pname, GLfloat param )
+{
+    struct glPointParameterf_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %f\n", pname, param );
+    if ((status = UNIX_CALL( glPointParameterf, &args ))) WARN( "glPointParameterf returned %#x\n", status );
+}
+
+static void WINAPI glPointParameterfARB( GLenum pname, GLfloat param )
+{
+    struct glPointParameterfARB_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %f\n", pname, param );
+    if ((status = UNIX_CALL( glPointParameterfARB, &args ))) WARN( "glPointParameterfARB returned %#x\n", status );
+}
+
+static void WINAPI glPointParameterfEXT( GLenum pname, GLfloat param )
+{
+    struct glPointParameterfEXT_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %f\n", pname, param );
+    if ((status = UNIX_CALL( glPointParameterfEXT, &args ))) WARN( "glPointParameterfEXT returned %#x\n", status );
+}
+
+static void WINAPI glPointParameterfSGIS( GLenum pname, GLfloat param )
+{
+    struct glPointParameterfSGIS_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %f\n", pname, param );
+    if ((status = UNIX_CALL( glPointParameterfSGIS, &args ))) WARN( "glPointParameterfSGIS returned %#x\n", status );
+}
+
+static void WINAPI glPointParameterfv( GLenum pname, const GLfloat *params )
+{
+    struct glPointParameterfv_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glPointParameterfv, &args ))) WARN( "glPointParameterfv returned %#x\n", status );
+}
+
+static void WINAPI glPointParameterfvARB( GLenum pname, const GLfloat *params )
+{
+    struct glPointParameterfvARB_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glPointParameterfvARB, &args ))) WARN( "glPointParameterfvARB returned %#x\n", status );
+}
+
+static void WINAPI glPointParameterfvEXT( GLenum pname, const GLfloat *params )
+{
+    struct glPointParameterfvEXT_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glPointParameterfvEXT, &args ))) WARN( "glPointParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glPointParameterfvSGIS( GLenum pname, const GLfloat *params )
+{
+    struct glPointParameterfvSGIS_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glPointParameterfvSGIS, &args ))) WARN( "glPointParameterfvSGIS returned %#x\n", status );
+}
+
+static void WINAPI glPointParameteri( GLenum pname, GLint param )
+{
+    struct glPointParameteri_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glPointParameteri, &args ))) WARN( "glPointParameteri returned %#x\n", status );
+}
+
+static void WINAPI glPointParameteriNV( GLenum pname, GLint param )
+{
+    struct glPointParameteriNV_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glPointParameteriNV, &args ))) WARN( "glPointParameteriNV returned %#x\n", status );
+}
+
+static void WINAPI glPointParameteriv( GLenum pname, const GLint *params )
+{
+    struct glPointParameteriv_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glPointParameteriv, &args ))) WARN( "glPointParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glPointParameterivNV( GLenum pname, const GLint *params )
+{
+    struct glPointParameterivNV_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glPointParameterivNV, &args ))) WARN( "glPointParameterivNV returned %#x\n", status );
+}
+
+static void WINAPI glPointParameterxvOES( GLenum pname, const GLfixed *params )
+{
+    struct glPointParameterxvOES_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glPointParameterxvOES, &args ))) WARN( "glPointParameterxvOES returned %#x\n", status );
+}
+
+static void WINAPI glPointSizexOES( GLfixed size )
+{
+    struct glPointSizexOES_params args = { .size = size, };
+    NTSTATUS status;
+    TRACE( "size %d\n", size );
+    if ((status = UNIX_CALL( glPointSizexOES, &args ))) WARN( "glPointSizexOES returned %#x\n", status );
+}
+
+static GLint WINAPI glPollAsyncSGIX( GLuint *markerp )
+{
+    struct glPollAsyncSGIX_params args = { .markerp = markerp, };
+    NTSTATUS status;
+    TRACE( "markerp %p\n", markerp );
+    if ((status = UNIX_CALL( glPollAsyncSGIX, &args ))) WARN( "glPollAsyncSGIX returned %#x\n", status );
+    return args.ret;
+}
+
+static GLint WINAPI glPollInstrumentsSGIX( GLint *marker_p )
+{
+    struct glPollInstrumentsSGIX_params args = { .marker_p = marker_p, };
+    NTSTATUS status;
+    TRACE( "marker_p %p\n", marker_p );
+    if ((status = UNIX_CALL( glPollInstrumentsSGIX, &args ))) WARN( "glPollInstrumentsSGIX returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glPolygonOffsetClamp( GLfloat factor, GLfloat units, GLfloat clamp )
+{
+    struct glPolygonOffsetClamp_params args = { .factor = factor, .units = units, .clamp = clamp, };
+    NTSTATUS status;
+    TRACE( "factor %f, units %f, clamp %f\n", factor, units, clamp );
+    if ((status = UNIX_CALL( glPolygonOffsetClamp, &args ))) WARN( "glPolygonOffsetClamp returned %#x\n", status );
+}
+
+static void WINAPI glPolygonOffsetClampEXT( GLfloat factor, GLfloat units, GLfloat clamp )
+{
+    struct glPolygonOffsetClampEXT_params args = { .factor = factor, .units = units, .clamp = clamp, };
+    NTSTATUS status;
+    TRACE( "factor %f, units %f, clamp %f\n", factor, units, clamp );
+    if ((status = UNIX_CALL( glPolygonOffsetClampEXT, &args ))) WARN( "glPolygonOffsetClampEXT returned %#x\n", status );
+}
+
+static void WINAPI glPolygonOffsetEXT( GLfloat factor, GLfloat bias )
+{
+    struct glPolygonOffsetEXT_params args = { .factor = factor, .bias = bias, };
+    NTSTATUS status;
+    TRACE( "factor %f, bias %f\n", factor, bias );
+    if ((status = UNIX_CALL( glPolygonOffsetEXT, &args ))) WARN( "glPolygonOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glPolygonOffsetxOES( GLfixed factor, GLfixed units )
+{
+    struct glPolygonOffsetxOES_params args = { .factor = factor, .units = units, };
+    NTSTATUS status;
+    TRACE( "factor %d, units %d\n", factor, units );
+    if ((status = UNIX_CALL( glPolygonOffsetxOES, &args ))) WARN( "glPolygonOffsetxOES returned %#x\n", status );
+}
+
+static void WINAPI glPopDebugGroup(void)
+{
+    struct glPopDebugGroup_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glPopDebugGroup, &args ))) WARN( "glPopDebugGroup returned %#x\n", status );
+}
+
+static void WINAPI glPopGroupMarkerEXT(void)
+{
+    struct glPopGroupMarkerEXT_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glPopGroupMarkerEXT, &args ))) WARN( "glPopGroupMarkerEXT returned %#x\n", status );
+}
+
+static void WINAPI glPresentFrameDualFillNV( GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3 )
+{
+    struct glPresentFrameDualFillNV_params args = { .video_slot = video_slot, .minPresentTime = minPresentTime, .beginPresentTimeId = beginPresentTimeId, .presentDurationId = presentDurationId, .type = type, .target0 = target0, .fill0 = fill0, .target1 = target1, .fill1 = fill1, .target2 = target2, .fill2 = fill2, .target3 = target3, .fill3 = fill3, };
+    NTSTATUS status;
+    TRACE( "video_slot %d, minPresentTime %s, beginPresentTimeId %d, presentDurationId %d, type %d, target0 %d, fill0 %d, target1 %d, fill1 %d, target2 %d, fill2 %d, target3 %d, fill3 %d\n", video_slot, wine_dbgstr_longlong(minPresentTime), beginPresentTimeId, presentDurationId, type, target0, fill0, target1, fill1, target2, fill2, target3, fill3 );
+    if ((status = UNIX_CALL( glPresentFrameDualFillNV, &args ))) WARN( "glPresentFrameDualFillNV returned %#x\n", status );
+}
+
+static void WINAPI glPresentFrameKeyedNV( GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1 )
+{
+    struct glPresentFrameKeyedNV_params args = { .video_slot = video_slot, .minPresentTime = minPresentTime, .beginPresentTimeId = beginPresentTimeId, .presentDurationId = presentDurationId, .type = type, .target0 = target0, .fill0 = fill0, .key0 = key0, .target1 = target1, .fill1 = fill1, .key1 = key1, };
+    NTSTATUS status;
+    TRACE( "video_slot %d, minPresentTime %s, beginPresentTimeId %d, presentDurationId %d, type %d, target0 %d, fill0 %d, key0 %d, target1 %d, fill1 %d, key1 %d\n", video_slot, wine_dbgstr_longlong(minPresentTime), beginPresentTimeId, presentDurationId, type, target0, fill0, key0, target1, fill1, key1 );
+    if ((status = UNIX_CALL( glPresentFrameKeyedNV, &args ))) WARN( "glPresentFrameKeyedNV returned %#x\n", status );
+}
+
+static void WINAPI glPrimitiveBoundingBoxARB( GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW )
+{
+    struct glPrimitiveBoundingBoxARB_params args = { .minX = minX, .minY = minY, .minZ = minZ, .minW = minW, .maxX = maxX, .maxY = maxY, .maxZ = maxZ, .maxW = maxW, };
+    NTSTATUS status;
+    TRACE( "minX %f, minY %f, minZ %f, minW %f, maxX %f, maxY %f, maxZ %f, maxW %f\n", minX, minY, minZ, minW, maxX, maxY, maxZ, maxW );
+    if ((status = UNIX_CALL( glPrimitiveBoundingBoxARB, &args ))) WARN( "glPrimitiveBoundingBoxARB returned %#x\n", status );
+}
+
+static void WINAPI glPrimitiveRestartIndex( GLuint index )
+{
+    struct glPrimitiveRestartIndex_params args = { .index = index, };
+    NTSTATUS status;
+    TRACE( "index %d\n", index );
+    if ((status = UNIX_CALL( glPrimitiveRestartIndex, &args ))) WARN( "glPrimitiveRestartIndex returned %#x\n", status );
+}
+
+static void WINAPI glPrimitiveRestartIndexNV( GLuint index )
+{
+    struct glPrimitiveRestartIndexNV_params args = { .index = index, };
+    NTSTATUS status;
+    TRACE( "index %d\n", index );
+    if ((status = UNIX_CALL( glPrimitiveRestartIndexNV, &args ))) WARN( "glPrimitiveRestartIndexNV returned %#x\n", status );
+}
+
+static void WINAPI glPrimitiveRestartNV(void)
+{
+    struct glPrimitiveRestartNV_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glPrimitiveRestartNV, &args ))) WARN( "glPrimitiveRestartNV returned %#x\n", status );
+}
+
+static void WINAPI glPrioritizeTexturesEXT( GLsizei n, const GLuint *textures, const GLclampf *priorities )
+{
+    struct glPrioritizeTexturesEXT_params args = { .n = n, .textures = textures, .priorities = priorities, };
+    NTSTATUS status;
+    TRACE( "n %d, textures %p, priorities %p\n", n, textures, priorities );
+    if ((status = UNIX_CALL( glPrioritizeTexturesEXT, &args ))) WARN( "glPrioritizeTexturesEXT returned %#x\n", status );
+}
+
+static void WINAPI glPrioritizeTexturesxOES( GLsizei n, const GLuint *textures, const GLfixed *priorities )
+{
+    struct glPrioritizeTexturesxOES_params args = { .n = n, .textures = textures, .priorities = priorities, };
+    NTSTATUS status;
+    TRACE( "n %d, textures %p, priorities %p\n", n, textures, priorities );
+    if ((status = UNIX_CALL( glPrioritizeTexturesxOES, &args ))) WARN( "glPrioritizeTexturesxOES returned %#x\n", status );
+}
+
+static void WINAPI glProgramBinary( GLuint program, GLenum binaryFormat, const void *binary, GLsizei length )
+{
+    struct glProgramBinary_params args = { .program = program, .binaryFormat = binaryFormat, .binary = binary, .length = length, };
+    NTSTATUS status;
+    TRACE( "program %d, binaryFormat %d, binary %p, length %d\n", program, binaryFormat, binary, length );
+    if ((status = UNIX_CALL( glProgramBinary, &args ))) WARN( "glProgramBinary returned %#x\n", status );
+}
+
+static void WINAPI glProgramBufferParametersIivNV( GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params )
+{
+    struct glProgramBufferParametersIivNV_params args = { .target = target, .bindingIndex = bindingIndex, .wordIndex = wordIndex, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, bindingIndex %d, wordIndex %d, count %d, params %p\n", target, bindingIndex, wordIndex, count, params );
+    if ((status = UNIX_CALL( glProgramBufferParametersIivNV, &args ))) WARN( "glProgramBufferParametersIivNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramBufferParametersIuivNV( GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params )
+{
+    struct glProgramBufferParametersIuivNV_params args = { .target = target, .bindingIndex = bindingIndex, .wordIndex = wordIndex, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, bindingIndex %d, wordIndex %d, count %d, params %p\n", target, bindingIndex, wordIndex, count, params );
+    if ((status = UNIX_CALL( glProgramBufferParametersIuivNV, &args ))) WARN( "glProgramBufferParametersIuivNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramBufferParametersfvNV( GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params )
+{
+    struct glProgramBufferParametersfvNV_params args = { .target = target, .bindingIndex = bindingIndex, .wordIndex = wordIndex, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, bindingIndex %d, wordIndex %d, count %d, params %p\n", target, bindingIndex, wordIndex, count, params );
+    if ((status = UNIX_CALL( glProgramBufferParametersfvNV, &args ))) WARN( "glProgramBufferParametersfvNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramEnvParameter4dARB( GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glProgramEnvParameter4dARB_params args = { .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, x %f, y %f, z %f, w %f\n", target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glProgramEnvParameter4dARB, &args ))) WARN( "glProgramEnvParameter4dARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramEnvParameter4dvARB( GLenum target, GLuint index, const GLdouble *params )
+{
+    struct glProgramEnvParameter4dvARB_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glProgramEnvParameter4dvARB, &args ))) WARN( "glProgramEnvParameter4dvARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramEnvParameter4fARB( GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
+{
+    struct glProgramEnvParameter4fARB_params args = { .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, x %f, y %f, z %f, w %f\n", target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glProgramEnvParameter4fARB, &args ))) WARN( "glProgramEnvParameter4fARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramEnvParameter4fvARB( GLenum target, GLuint index, const GLfloat *params )
+{
+    struct glProgramEnvParameter4fvARB_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glProgramEnvParameter4fvARB, &args ))) WARN( "glProgramEnvParameter4fvARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramEnvParameterI4iNV( GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w )
+{
+    struct glProgramEnvParameterI4iNV_params args = { .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, x %d, y %d, z %d, w %d\n", target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glProgramEnvParameterI4iNV, &args ))) WARN( "glProgramEnvParameterI4iNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramEnvParameterI4ivNV( GLenum target, GLuint index, const GLint *params )
+{
+    struct glProgramEnvParameterI4ivNV_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glProgramEnvParameterI4ivNV, &args ))) WARN( "glProgramEnvParameterI4ivNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramEnvParameterI4uiNV( GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w )
+{
+    struct glProgramEnvParameterI4uiNV_params args = { .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, x %d, y %d, z %d, w %d\n", target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glProgramEnvParameterI4uiNV, &args ))) WARN( "glProgramEnvParameterI4uiNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramEnvParameterI4uivNV( GLenum target, GLuint index, const GLuint *params )
+{
+    struct glProgramEnvParameterI4uivNV_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glProgramEnvParameterI4uivNV, &args ))) WARN( "glProgramEnvParameterI4uivNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramEnvParameters4fvEXT( GLenum target, GLuint index, GLsizei count, const GLfloat *params )
+{
+    struct glProgramEnvParameters4fvEXT_params args = { .target = target, .index = index, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, count %d, params %p\n", target, index, count, params );
+    if ((status = UNIX_CALL( glProgramEnvParameters4fvEXT, &args ))) WARN( "glProgramEnvParameters4fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramEnvParametersI4ivNV( GLenum target, GLuint index, GLsizei count, const GLint *params )
+{
+    struct glProgramEnvParametersI4ivNV_params args = { .target = target, .index = index, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, count %d, params %p\n", target, index, count, params );
+    if ((status = UNIX_CALL( glProgramEnvParametersI4ivNV, &args ))) WARN( "glProgramEnvParametersI4ivNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramEnvParametersI4uivNV( GLenum target, GLuint index, GLsizei count, const GLuint *params )
+{
+    struct glProgramEnvParametersI4uivNV_params args = { .target = target, .index = index, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, count %d, params %p\n", target, index, count, params );
+    if ((status = UNIX_CALL( glProgramEnvParametersI4uivNV, &args ))) WARN( "glProgramEnvParametersI4uivNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramLocalParameter4dARB( GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glProgramLocalParameter4dARB_params args = { .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, x %f, y %f, z %f, w %f\n", target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glProgramLocalParameter4dARB, &args ))) WARN( "glProgramLocalParameter4dARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramLocalParameter4dvARB( GLenum target, GLuint index, const GLdouble *params )
+{
+    struct glProgramLocalParameter4dvARB_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glProgramLocalParameter4dvARB, &args ))) WARN( "glProgramLocalParameter4dvARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramLocalParameter4fARB( GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
+{
+    struct glProgramLocalParameter4fARB_params args = { .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, x %f, y %f, z %f, w %f\n", target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glProgramLocalParameter4fARB, &args ))) WARN( "glProgramLocalParameter4fARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramLocalParameter4fvARB( GLenum target, GLuint index, const GLfloat *params )
+{
+    struct glProgramLocalParameter4fvARB_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glProgramLocalParameter4fvARB, &args ))) WARN( "glProgramLocalParameter4fvARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramLocalParameterI4iNV( GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w )
+{
+    struct glProgramLocalParameterI4iNV_params args = { .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, x %d, y %d, z %d, w %d\n", target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glProgramLocalParameterI4iNV, &args ))) WARN( "glProgramLocalParameterI4iNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramLocalParameterI4ivNV( GLenum target, GLuint index, const GLint *params )
+{
+    struct glProgramLocalParameterI4ivNV_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glProgramLocalParameterI4ivNV, &args ))) WARN( "glProgramLocalParameterI4ivNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramLocalParameterI4uiNV( GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w )
+{
+    struct glProgramLocalParameterI4uiNV_params args = { .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, x %d, y %d, z %d, w %d\n", target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glProgramLocalParameterI4uiNV, &args ))) WARN( "glProgramLocalParameterI4uiNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramLocalParameterI4uivNV( GLenum target, GLuint index, const GLuint *params )
+{
+    struct glProgramLocalParameterI4uivNV_params args = { .target = target, .index = index, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, params %p\n", target, index, params );
+    if ((status = UNIX_CALL( glProgramLocalParameterI4uivNV, &args ))) WARN( "glProgramLocalParameterI4uivNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramLocalParameters4fvEXT( GLenum target, GLuint index, GLsizei count, const GLfloat *params )
+{
+    struct glProgramLocalParameters4fvEXT_params args = { .target = target, .index = index, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, count %d, params %p\n", target, index, count, params );
+    if ((status = UNIX_CALL( glProgramLocalParameters4fvEXT, &args ))) WARN( "glProgramLocalParameters4fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramLocalParametersI4ivNV( GLenum target, GLuint index, GLsizei count, const GLint *params )
+{
+    struct glProgramLocalParametersI4ivNV_params args = { .target = target, .index = index, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, count %d, params %p\n", target, index, count, params );
+    if ((status = UNIX_CALL( glProgramLocalParametersI4ivNV, &args ))) WARN( "glProgramLocalParametersI4ivNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramLocalParametersI4uivNV( GLenum target, GLuint index, GLsizei count, const GLuint *params )
+{
+    struct glProgramLocalParametersI4uivNV_params args = { .target = target, .index = index, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, count %d, params %p\n", target, index, count, params );
+    if ((status = UNIX_CALL( glProgramLocalParametersI4uivNV, &args ))) WARN( "glProgramLocalParametersI4uivNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramNamedParameter4dNV( GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glProgramNamedParameter4dNV_params args = { .id = id, .len = len, .name = name, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "id %d, len %d, name %p, x %f, y %f, z %f, w %f\n", id, len, name, x, y, z, w );
+    if ((status = UNIX_CALL( glProgramNamedParameter4dNV, &args ))) WARN( "glProgramNamedParameter4dNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramNamedParameter4dvNV( GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v )
+{
+    struct glProgramNamedParameter4dvNV_params args = { .id = id, .len = len, .name = name, .v = v, };
+    NTSTATUS status;
+    TRACE( "id %d, len %d, name %p, v %p\n", id, len, name, v );
+    if ((status = UNIX_CALL( glProgramNamedParameter4dvNV, &args ))) WARN( "glProgramNamedParameter4dvNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramNamedParameter4fNV( GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
+{
+    struct glProgramNamedParameter4fNV_params args = { .id = id, .len = len, .name = name, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "id %d, len %d, name %p, x %f, y %f, z %f, w %f\n", id, len, name, x, y, z, w );
+    if ((status = UNIX_CALL( glProgramNamedParameter4fNV, &args ))) WARN( "glProgramNamedParameter4fNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramNamedParameter4fvNV( GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v )
+{
+    struct glProgramNamedParameter4fvNV_params args = { .id = id, .len = len, .name = name, .v = v, };
+    NTSTATUS status;
+    TRACE( "id %d, len %d, name %p, v %p\n", id, len, name, v );
+    if ((status = UNIX_CALL( glProgramNamedParameter4fvNV, &args ))) WARN( "glProgramNamedParameter4fvNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramParameter4dNV( GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glProgramParameter4dNV_params args = { .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, x %f, y %f, z %f, w %f\n", target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glProgramParameter4dNV, &args ))) WARN( "glProgramParameter4dNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramParameter4dvNV( GLenum target, GLuint index, const GLdouble *v )
+{
+    struct glProgramParameter4dvNV_params args = { .target = target, .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, v %p\n", target, index, v );
+    if ((status = UNIX_CALL( glProgramParameter4dvNV, &args ))) WARN( "glProgramParameter4dvNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramParameter4fNV( GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
+{
+    struct glProgramParameter4fNV_params args = { .target = target, .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, x %f, y %f, z %f, w %f\n", target, index, x, y, z, w );
+    if ((status = UNIX_CALL( glProgramParameter4fNV, &args ))) WARN( "glProgramParameter4fNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramParameter4fvNV( GLenum target, GLuint index, const GLfloat *v )
+{
+    struct glProgramParameter4fvNV_params args = { .target = target, .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, v %p\n", target, index, v );
+    if ((status = UNIX_CALL( glProgramParameter4fvNV, &args ))) WARN( "glProgramParameter4fvNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramParameteri( GLuint program, GLenum pname, GLint value )
+{
+    struct glProgramParameteri_params args = { .program = program, .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, pname %d, value %d\n", program, pname, value );
+    if ((status = UNIX_CALL( glProgramParameteri, &args ))) WARN( "glProgramParameteri returned %#x\n", status );
+}
+
+static void WINAPI glProgramParameteriARB( GLuint program, GLenum pname, GLint value )
+{
+    struct glProgramParameteriARB_params args = { .program = program, .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, pname %d, value %d\n", program, pname, value );
+    if ((status = UNIX_CALL( glProgramParameteriARB, &args ))) WARN( "glProgramParameteriARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramParameteriEXT( GLuint program, GLenum pname, GLint value )
+{
+    struct glProgramParameteriEXT_params args = { .program = program, .pname = pname, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, pname %d, value %d\n", program, pname, value );
+    if ((status = UNIX_CALL( glProgramParameteriEXT, &args ))) WARN( "glProgramParameteriEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramParameters4dvNV( GLenum target, GLuint index, GLsizei count, const GLdouble *v )
+{
+    struct glProgramParameters4dvNV_params args = { .target = target, .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, count %d, v %p\n", target, index, count, v );
+    if ((status = UNIX_CALL( glProgramParameters4dvNV, &args ))) WARN( "glProgramParameters4dvNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramParameters4fvNV( GLenum target, GLuint index, GLsizei count, const GLfloat *v )
+{
+    struct glProgramParameters4fvNV_params args = { .target = target, .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "target %d, index %d, count %d, v %p\n", target, index, count, v );
+    if ((status = UNIX_CALL( glProgramParameters4fvNV, &args ))) WARN( "glProgramParameters4fvNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramPathFragmentInputGenNV( GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs )
+{
+    struct glProgramPathFragmentInputGenNV_params args = { .program = program, .location = location, .genMode = genMode, .components = components, .coeffs = coeffs, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, genMode %d, components %d, coeffs %p\n", program, location, genMode, components, coeffs );
+    if ((status = UNIX_CALL( glProgramPathFragmentInputGenNV, &args ))) WARN( "glProgramPathFragmentInputGenNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramStringARB( GLenum target, GLenum format, GLsizei len, const void *string )
+{
+    struct glProgramStringARB_params args = { .target = target, .format = format, .len = len, .string = string, };
+    NTSTATUS status;
+    TRACE( "target %d, format %d, len %d, string %p\n", target, format, len, string );
+    if ((status = UNIX_CALL( glProgramStringARB, &args ))) WARN( "glProgramStringARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramSubroutineParametersuivNV( GLenum target, GLsizei count, const GLuint *params )
+{
+    struct glProgramSubroutineParametersuivNV_params args = { .target = target, .count = count, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, count %d, params %p\n", target, count, params );
+    if ((status = UNIX_CALL( glProgramSubroutineParametersuivNV, &args ))) WARN( "glProgramSubroutineParametersuivNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1d( GLuint program, GLint location, GLdouble v0 )
+{
+    struct glProgramUniform1d_params args = { .program = program, .location = location, .v0 = v0, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %f\n", program, location, v0 );
+    if ((status = UNIX_CALL( glProgramUniform1d, &args ))) WARN( "glProgramUniform1d returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1dEXT( GLuint program, GLint location, GLdouble x )
+{
+    struct glProgramUniform1dEXT_params args = { .program = program, .location = location, .x = x, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %f\n", program, location, x );
+    if ((status = UNIX_CALL( glProgramUniform1dEXT, &args ))) WARN( "glProgramUniform1dEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1dv( GLuint program, GLint location, GLsizei count, const GLdouble *value )
+{
+    struct glProgramUniform1dv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform1dv, &args ))) WARN( "glProgramUniform1dv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1dvEXT( GLuint program, GLint location, GLsizei count, const GLdouble *value )
+{
+    struct glProgramUniform1dvEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform1dvEXT, &args ))) WARN( "glProgramUniform1dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1f( GLuint program, GLint location, GLfloat v0 )
+{
+    struct glProgramUniform1f_params args = { .program = program, .location = location, .v0 = v0, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %f\n", program, location, v0 );
+    if ((status = UNIX_CALL( glProgramUniform1f, &args ))) WARN( "glProgramUniform1f returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1fEXT( GLuint program, GLint location, GLfloat v0 )
+{
+    struct glProgramUniform1fEXT_params args = { .program = program, .location = location, .v0 = v0, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %f\n", program, location, v0 );
+    if ((status = UNIX_CALL( glProgramUniform1fEXT, &args ))) WARN( "glProgramUniform1fEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1fv( GLuint program, GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glProgramUniform1fv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform1fv, &args ))) WARN( "glProgramUniform1fv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1fvEXT( GLuint program, GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glProgramUniform1fvEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform1fvEXT, &args ))) WARN( "glProgramUniform1fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1i( GLuint program, GLint location, GLint v0 )
+{
+    struct glProgramUniform1i_params args = { .program = program, .location = location, .v0 = v0, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d\n", program, location, v0 );
+    if ((status = UNIX_CALL( glProgramUniform1i, &args ))) WARN( "glProgramUniform1i returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1i64ARB( GLuint program, GLint location, GLint64 x )
+{
+    struct glProgramUniform1i64ARB_params args = { .program = program, .location = location, .x = x, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s\n", program, location, wine_dbgstr_longlong(x) );
+    if ((status = UNIX_CALL( glProgramUniform1i64ARB, &args ))) WARN( "glProgramUniform1i64ARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1i64NV( GLuint program, GLint location, GLint64EXT x )
+{
+    struct glProgramUniform1i64NV_params args = { .program = program, .location = location, .x = x, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s\n", program, location, wine_dbgstr_longlong(x) );
+    if ((status = UNIX_CALL( glProgramUniform1i64NV, &args ))) WARN( "glProgramUniform1i64NV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1i64vARB( GLuint program, GLint location, GLsizei count, const GLint64 *value )
+{
+    struct glProgramUniform1i64vARB_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform1i64vARB, &args ))) WARN( "glProgramUniform1i64vARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT *value )
+{
+    struct glProgramUniform1i64vNV_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform1i64vNV, &args ))) WARN( "glProgramUniform1i64vNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1iEXT( GLuint program, GLint location, GLint v0 )
+{
+    struct glProgramUniform1iEXT_params args = { .program = program, .location = location, .v0 = v0, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d\n", program, location, v0 );
+    if ((status = UNIX_CALL( glProgramUniform1iEXT, &args ))) WARN( "glProgramUniform1iEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1iv( GLuint program, GLint location, GLsizei count, const GLint *value )
+{
+    struct glProgramUniform1iv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform1iv, &args ))) WARN( "glProgramUniform1iv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1ivEXT( GLuint program, GLint location, GLsizei count, const GLint *value )
+{
+    struct glProgramUniform1ivEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform1ivEXT, &args ))) WARN( "glProgramUniform1ivEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1ui( GLuint program, GLint location, GLuint v0 )
+{
+    struct glProgramUniform1ui_params args = { .program = program, .location = location, .v0 = v0, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d\n", program, location, v0 );
+    if ((status = UNIX_CALL( glProgramUniform1ui, &args ))) WARN( "glProgramUniform1ui returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1ui64ARB( GLuint program, GLint location, GLuint64 x )
+{
+    struct glProgramUniform1ui64ARB_params args = { .program = program, .location = location, .x = x, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s\n", program, location, wine_dbgstr_longlong(x) );
+    if ((status = UNIX_CALL( glProgramUniform1ui64ARB, &args ))) WARN( "glProgramUniform1ui64ARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1ui64NV( GLuint program, GLint location, GLuint64EXT x )
+{
+    struct glProgramUniform1ui64NV_params args = { .program = program, .location = location, .x = x, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s\n", program, location, wine_dbgstr_longlong(x) );
+    if ((status = UNIX_CALL( glProgramUniform1ui64NV, &args ))) WARN( "glProgramUniform1ui64NV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64 *value )
+{
+    struct glProgramUniform1ui64vARB_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform1ui64vARB, &args ))) WARN( "glProgramUniform1ui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT *value )
+{
+    struct glProgramUniform1ui64vNV_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform1ui64vNV, &args ))) WARN( "glProgramUniform1ui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1uiEXT( GLuint program, GLint location, GLuint v0 )
+{
+    struct glProgramUniform1uiEXT_params args = { .program = program, .location = location, .v0 = v0, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d\n", program, location, v0 );
+    if ((status = UNIX_CALL( glProgramUniform1uiEXT, &args ))) WARN( "glProgramUniform1uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1uiv( GLuint program, GLint location, GLsizei count, const GLuint *value )
+{
+    struct glProgramUniform1uiv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform1uiv, &args ))) WARN( "glProgramUniform1uiv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform1uivEXT( GLuint program, GLint location, GLsizei count, const GLuint *value )
+{
+    struct glProgramUniform1uivEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform1uivEXT, &args ))) WARN( "glProgramUniform1uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2d( GLuint program, GLint location, GLdouble v0, GLdouble v1 )
+{
+    struct glProgramUniform2d_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %f, v1 %f\n", program, location, v0, v1 );
+    if ((status = UNIX_CALL( glProgramUniform2d, &args ))) WARN( "glProgramUniform2d returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2dEXT( GLuint program, GLint location, GLdouble x, GLdouble y )
+{
+    struct glProgramUniform2dEXT_params args = { .program = program, .location = location, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %f, y %f\n", program, location, x, y );
+    if ((status = UNIX_CALL( glProgramUniform2dEXT, &args ))) WARN( "glProgramUniform2dEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2dv( GLuint program, GLint location, GLsizei count, const GLdouble *value )
+{
+    struct glProgramUniform2dv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform2dv, &args ))) WARN( "glProgramUniform2dv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2dvEXT( GLuint program, GLint location, GLsizei count, const GLdouble *value )
+{
+    struct glProgramUniform2dvEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform2dvEXT, &args ))) WARN( "glProgramUniform2dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2f( GLuint program, GLint location, GLfloat v0, GLfloat v1 )
+{
+    struct glProgramUniform2f_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %f, v1 %f\n", program, location, v0, v1 );
+    if ((status = UNIX_CALL( glProgramUniform2f, &args ))) WARN( "glProgramUniform2f returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2fEXT( GLuint program, GLint location, GLfloat v0, GLfloat v1 )
+{
+    struct glProgramUniform2fEXT_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %f, v1 %f\n", program, location, v0, v1 );
+    if ((status = UNIX_CALL( glProgramUniform2fEXT, &args ))) WARN( "glProgramUniform2fEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2fv( GLuint program, GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glProgramUniform2fv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform2fv, &args ))) WARN( "glProgramUniform2fv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2fvEXT( GLuint program, GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glProgramUniform2fvEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform2fvEXT, &args ))) WARN( "glProgramUniform2fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2i( GLuint program, GLint location, GLint v0, GLint v1 )
+{
+    struct glProgramUniform2i_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d, v1 %d\n", program, location, v0, v1 );
+    if ((status = UNIX_CALL( glProgramUniform2i, &args ))) WARN( "glProgramUniform2i returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2i64ARB( GLuint program, GLint location, GLint64 x, GLint64 y )
+{
+    struct glProgramUniform2i64ARB_params args = { .program = program, .location = location, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s, y %s\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+    if ((status = UNIX_CALL( glProgramUniform2i64ARB, &args ))) WARN( "glProgramUniform2i64ARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2i64NV( GLuint program, GLint location, GLint64EXT x, GLint64EXT y )
+{
+    struct glProgramUniform2i64NV_params args = { .program = program, .location = location, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s, y %s\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+    if ((status = UNIX_CALL( glProgramUniform2i64NV, &args ))) WARN( "glProgramUniform2i64NV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2i64vARB( GLuint program, GLint location, GLsizei count, const GLint64 *value )
+{
+    struct glProgramUniform2i64vARB_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform2i64vARB, &args ))) WARN( "glProgramUniform2i64vARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT *value )
+{
+    struct glProgramUniform2i64vNV_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform2i64vNV, &args ))) WARN( "glProgramUniform2i64vNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2iEXT( GLuint program, GLint location, GLint v0, GLint v1 )
+{
+    struct glProgramUniform2iEXT_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d, v1 %d\n", program, location, v0, v1 );
+    if ((status = UNIX_CALL( glProgramUniform2iEXT, &args ))) WARN( "glProgramUniform2iEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2iv( GLuint program, GLint location, GLsizei count, const GLint *value )
+{
+    struct glProgramUniform2iv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform2iv, &args ))) WARN( "glProgramUniform2iv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2ivEXT( GLuint program, GLint location, GLsizei count, const GLint *value )
+{
+    struct glProgramUniform2ivEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform2ivEXT, &args ))) WARN( "glProgramUniform2ivEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2ui( GLuint program, GLint location, GLuint v0, GLuint v1 )
+{
+    struct glProgramUniform2ui_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d, v1 %d\n", program, location, v0, v1 );
+    if ((status = UNIX_CALL( glProgramUniform2ui, &args ))) WARN( "glProgramUniform2ui returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2ui64ARB( GLuint program, GLint location, GLuint64 x, GLuint64 y )
+{
+    struct glProgramUniform2ui64ARB_params args = { .program = program, .location = location, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s, y %s\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+    if ((status = UNIX_CALL( glProgramUniform2ui64ARB, &args ))) WARN( "glProgramUniform2ui64ARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2ui64NV( GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y )
+{
+    struct glProgramUniform2ui64NV_params args = { .program = program, .location = location, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s, y %s\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+    if ((status = UNIX_CALL( glProgramUniform2ui64NV, &args ))) WARN( "glProgramUniform2ui64NV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64 *value )
+{
+    struct glProgramUniform2ui64vARB_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform2ui64vARB, &args ))) WARN( "glProgramUniform2ui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT *value )
+{
+    struct glProgramUniform2ui64vNV_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform2ui64vNV, &args ))) WARN( "glProgramUniform2ui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2uiEXT( GLuint program, GLint location, GLuint v0, GLuint v1 )
+{
+    struct glProgramUniform2uiEXT_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d, v1 %d\n", program, location, v0, v1 );
+    if ((status = UNIX_CALL( glProgramUniform2uiEXT, &args ))) WARN( "glProgramUniform2uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2uiv( GLuint program, GLint location, GLsizei count, const GLuint *value )
+{
+    struct glProgramUniform2uiv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform2uiv, &args ))) WARN( "glProgramUniform2uiv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform2uivEXT( GLuint program, GLint location, GLsizei count, const GLuint *value )
+{
+    struct glProgramUniform2uivEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform2uivEXT, &args ))) WARN( "glProgramUniform2uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3d( GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2 )
+{
+    struct glProgramUniform3d_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %f, v1 %f, v2 %f\n", program, location, v0, v1, v2 );
+    if ((status = UNIX_CALL( glProgramUniform3d, &args ))) WARN( "glProgramUniform3d returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3dEXT( GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glProgramUniform3dEXT_params args = { .program = program, .location = location, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %f, y %f, z %f\n", program, location, x, y, z );
+    if ((status = UNIX_CALL( glProgramUniform3dEXT, &args ))) WARN( "glProgramUniform3dEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3dv( GLuint program, GLint location, GLsizei count, const GLdouble *value )
+{
+    struct glProgramUniform3dv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform3dv, &args ))) WARN( "glProgramUniform3dv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3dvEXT( GLuint program, GLint location, GLsizei count, const GLdouble *value )
+{
+    struct glProgramUniform3dvEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform3dvEXT, &args ))) WARN( "glProgramUniform3dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3f( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2 )
+{
+    struct glProgramUniform3f_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %f, v1 %f, v2 %f\n", program, location, v0, v1, v2 );
+    if ((status = UNIX_CALL( glProgramUniform3f, &args ))) WARN( "glProgramUniform3f returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3fEXT( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2 )
+{
+    struct glProgramUniform3fEXT_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %f, v1 %f, v2 %f\n", program, location, v0, v1, v2 );
+    if ((status = UNIX_CALL( glProgramUniform3fEXT, &args ))) WARN( "glProgramUniform3fEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3fv( GLuint program, GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glProgramUniform3fv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform3fv, &args ))) WARN( "glProgramUniform3fv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3fvEXT( GLuint program, GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glProgramUniform3fvEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform3fvEXT, &args ))) WARN( "glProgramUniform3fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3i( GLuint program, GLint location, GLint v0, GLint v1, GLint v2 )
+{
+    struct glProgramUniform3i_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d, v1 %d, v2 %d\n", program, location, v0, v1, v2 );
+    if ((status = UNIX_CALL( glProgramUniform3i, &args ))) WARN( "glProgramUniform3i returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3i64ARB( GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z )
+{
+    struct glProgramUniform3i64ARB_params args = { .program = program, .location = location, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s, y %s, z %s\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+    if ((status = UNIX_CALL( glProgramUniform3i64ARB, &args ))) WARN( "glProgramUniform3i64ARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3i64NV( GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z )
+{
+    struct glProgramUniform3i64NV_params args = { .program = program, .location = location, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s, y %s, z %s\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+    if ((status = UNIX_CALL( glProgramUniform3i64NV, &args ))) WARN( "glProgramUniform3i64NV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3i64vARB( GLuint program, GLint location, GLsizei count, const GLint64 *value )
+{
+    struct glProgramUniform3i64vARB_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform3i64vARB, &args ))) WARN( "glProgramUniform3i64vARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT *value )
+{
+    struct glProgramUniform3i64vNV_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform3i64vNV, &args ))) WARN( "glProgramUniform3i64vNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3iEXT( GLuint program, GLint location, GLint v0, GLint v1, GLint v2 )
+{
+    struct glProgramUniform3iEXT_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d, v1 %d, v2 %d\n", program, location, v0, v1, v2 );
+    if ((status = UNIX_CALL( glProgramUniform3iEXT, &args ))) WARN( "glProgramUniform3iEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3iv( GLuint program, GLint location, GLsizei count, const GLint *value )
+{
+    struct glProgramUniform3iv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform3iv, &args ))) WARN( "glProgramUniform3iv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3ivEXT( GLuint program, GLint location, GLsizei count, const GLint *value )
+{
+    struct glProgramUniform3ivEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform3ivEXT, &args ))) WARN( "glProgramUniform3ivEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3ui( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2 )
+{
+    struct glProgramUniform3ui_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d, v1 %d, v2 %d\n", program, location, v0, v1, v2 );
+    if ((status = UNIX_CALL( glProgramUniform3ui, &args ))) WARN( "glProgramUniform3ui returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3ui64ARB( GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z )
+{
+    struct glProgramUniform3ui64ARB_params args = { .program = program, .location = location, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s, y %s, z %s\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+    if ((status = UNIX_CALL( glProgramUniform3ui64ARB, &args ))) WARN( "glProgramUniform3ui64ARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3ui64NV( GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z )
+{
+    struct glProgramUniform3ui64NV_params args = { .program = program, .location = location, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s, y %s, z %s\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+    if ((status = UNIX_CALL( glProgramUniform3ui64NV, &args ))) WARN( "glProgramUniform3ui64NV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64 *value )
+{
+    struct glProgramUniform3ui64vARB_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform3ui64vARB, &args ))) WARN( "glProgramUniform3ui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT *value )
+{
+    struct glProgramUniform3ui64vNV_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform3ui64vNV, &args ))) WARN( "glProgramUniform3ui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3uiEXT( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2 )
+{
+    struct glProgramUniform3uiEXT_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d, v1 %d, v2 %d\n", program, location, v0, v1, v2 );
+    if ((status = UNIX_CALL( glProgramUniform3uiEXT, &args ))) WARN( "glProgramUniform3uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3uiv( GLuint program, GLint location, GLsizei count, const GLuint *value )
+{
+    struct glProgramUniform3uiv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform3uiv, &args ))) WARN( "glProgramUniform3uiv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform3uivEXT( GLuint program, GLint location, GLsizei count, const GLuint *value )
+{
+    struct glProgramUniform3uivEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform3uivEXT, &args ))) WARN( "glProgramUniform3uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4d( GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3 )
+{
+    struct glProgramUniform4d_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, .v3 = v3, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %f, v1 %f, v2 %f, v3 %f\n", program, location, v0, v1, v2, v3 );
+    if ((status = UNIX_CALL( glProgramUniform4d, &args ))) WARN( "glProgramUniform4d returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4dEXT( GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glProgramUniform4dEXT_params args = { .program = program, .location = location, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %f, y %f, z %f, w %f\n", program, location, x, y, z, w );
+    if ((status = UNIX_CALL( glProgramUniform4dEXT, &args ))) WARN( "glProgramUniform4dEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4dv( GLuint program, GLint location, GLsizei count, const GLdouble *value )
+{
+    struct glProgramUniform4dv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform4dv, &args ))) WARN( "glProgramUniform4dv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4dvEXT( GLuint program, GLint location, GLsizei count, const GLdouble *value )
+{
+    struct glProgramUniform4dvEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform4dvEXT, &args ))) WARN( "glProgramUniform4dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4f( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3 )
+{
+    struct glProgramUniform4f_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, .v3 = v3, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %f, v1 %f, v2 %f, v3 %f\n", program, location, v0, v1, v2, v3 );
+    if ((status = UNIX_CALL( glProgramUniform4f, &args ))) WARN( "glProgramUniform4f returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4fEXT( GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3 )
+{
+    struct glProgramUniform4fEXT_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, .v3 = v3, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %f, v1 %f, v2 %f, v3 %f\n", program, location, v0, v1, v2, v3 );
+    if ((status = UNIX_CALL( glProgramUniform4fEXT, &args ))) WARN( "glProgramUniform4fEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4fv( GLuint program, GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glProgramUniform4fv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform4fv, &args ))) WARN( "glProgramUniform4fv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4fvEXT( GLuint program, GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glProgramUniform4fvEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform4fvEXT, &args ))) WARN( "glProgramUniform4fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4i( GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3 )
+{
+    struct glProgramUniform4i_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, .v3 = v3, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d, v1 %d, v2 %d, v3 %d\n", program, location, v0, v1, v2, v3 );
+    if ((status = UNIX_CALL( glProgramUniform4i, &args ))) WARN( "glProgramUniform4i returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4i64ARB( GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w )
+{
+    struct glProgramUniform4i64ARB_params args = { .program = program, .location = location, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s, y %s, z %s, w %s\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+    if ((status = UNIX_CALL( glProgramUniform4i64ARB, &args ))) WARN( "glProgramUniform4i64ARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4i64NV( GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w )
+{
+    struct glProgramUniform4i64NV_params args = { .program = program, .location = location, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s, y %s, z %s, w %s\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+    if ((status = UNIX_CALL( glProgramUniform4i64NV, &args ))) WARN( "glProgramUniform4i64NV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4i64vARB( GLuint program, GLint location, GLsizei count, const GLint64 *value )
+{
+    struct glProgramUniform4i64vARB_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform4i64vARB, &args ))) WARN( "glProgramUniform4i64vARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4i64vNV( GLuint program, GLint location, GLsizei count, const GLint64EXT *value )
+{
+    struct glProgramUniform4i64vNV_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform4i64vNV, &args ))) WARN( "glProgramUniform4i64vNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4iEXT( GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3 )
+{
+    struct glProgramUniform4iEXT_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, .v3 = v3, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d, v1 %d, v2 %d, v3 %d\n", program, location, v0, v1, v2, v3 );
+    if ((status = UNIX_CALL( glProgramUniform4iEXT, &args ))) WARN( "glProgramUniform4iEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4iv( GLuint program, GLint location, GLsizei count, const GLint *value )
+{
+    struct glProgramUniform4iv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform4iv, &args ))) WARN( "glProgramUniform4iv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4ivEXT( GLuint program, GLint location, GLsizei count, const GLint *value )
+{
+    struct glProgramUniform4ivEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform4ivEXT, &args ))) WARN( "glProgramUniform4ivEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4ui( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 )
+{
+    struct glProgramUniform4ui_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, .v3 = v3, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d, v1 %d, v2 %d, v3 %d\n", program, location, v0, v1, v2, v3 );
+    if ((status = UNIX_CALL( glProgramUniform4ui, &args ))) WARN( "glProgramUniform4ui returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4ui64ARB( GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w )
+{
+    struct glProgramUniform4ui64ARB_params args = { .program = program, .location = location, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s, y %s, z %s, w %s\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+    if ((status = UNIX_CALL( glProgramUniform4ui64ARB, &args ))) WARN( "glProgramUniform4ui64ARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4ui64NV( GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w )
+{
+    struct glProgramUniform4ui64NV_params args = { .program = program, .location = location, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, x %s, y %s, z %s, w %s\n", program, location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+    if ((status = UNIX_CALL( glProgramUniform4ui64NV, &args ))) WARN( "glProgramUniform4ui64NV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4ui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64 *value )
+{
+    struct glProgramUniform4ui64vARB_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform4ui64vARB, &args ))) WARN( "glProgramUniform4ui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4ui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT *value )
+{
+    struct glProgramUniform4ui64vNV_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform4ui64vNV, &args ))) WARN( "glProgramUniform4ui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4uiEXT( GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 )
+{
+    struct glProgramUniform4uiEXT_params args = { .program = program, .location = location, .v0 = v0, .v1 = v1, .v2 = v2, .v3 = v3, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, v0 %d, v1 %d, v2 %d, v3 %d\n", program, location, v0, v1, v2, v3 );
+    if ((status = UNIX_CALL( glProgramUniform4uiEXT, &args ))) WARN( "glProgramUniform4uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4uiv( GLuint program, GLint location, GLsizei count, const GLuint *value )
+{
+    struct glProgramUniform4uiv_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform4uiv, &args ))) WARN( "glProgramUniform4uiv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniform4uivEXT( GLuint program, GLint location, GLsizei count, const GLuint *value )
+{
+    struct glProgramUniform4uivEXT_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniform4uivEXT, &args ))) WARN( "glProgramUniform4uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformHandleui64ARB( GLuint program, GLint location, GLuint64 value )
+{
+    struct glProgramUniformHandleui64ARB_params args = { .program = program, .location = location, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, value %s\n", program, location, wine_dbgstr_longlong(value) );
+    if ((status = UNIX_CALL( glProgramUniformHandleui64ARB, &args ))) WARN( "glProgramUniformHandleui64ARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformHandleui64NV( GLuint program, GLint location, GLuint64 value )
+{
+    struct glProgramUniformHandleui64NV_params args = { .program = program, .location = location, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, value %s\n", program, location, wine_dbgstr_longlong(value) );
+    if ((status = UNIX_CALL( glProgramUniformHandleui64NV, &args ))) WARN( "glProgramUniformHandleui64NV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformHandleui64vARB( GLuint program, GLint location, GLsizei count, const GLuint64 *values )
+{
+    struct glProgramUniformHandleui64vARB_params args = { .program = program, .location = location, .count = count, .values = values, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, values %p\n", program, location, count, values );
+    if ((status = UNIX_CALL( glProgramUniformHandleui64vARB, &args ))) WARN( "glProgramUniformHandleui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformHandleui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64 *values )
+{
+    struct glProgramUniformHandleui64vNV_params args = { .program = program, .location = location, .count = count, .values = values, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, values %p\n", program, location, count, values );
+    if ((status = UNIX_CALL( glProgramUniformHandleui64vNV, &args ))) WARN( "glProgramUniformHandleui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix2dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix2dv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix2dv, &args ))) WARN( "glProgramUniformMatrix2dv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix2dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix2dvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix2dvEXT, &args ))) WARN( "glProgramUniformMatrix2dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix2fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix2fv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix2fv, &args ))) WARN( "glProgramUniformMatrix2fv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix2fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix2fvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix2fvEXT, &args ))) WARN( "glProgramUniformMatrix2fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix2x3dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix2x3dv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix2x3dv, &args ))) WARN( "glProgramUniformMatrix2x3dv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix2x3dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix2x3dvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix2x3dvEXT, &args ))) WARN( "glProgramUniformMatrix2x3dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix2x3fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix2x3fv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix2x3fv, &args ))) WARN( "glProgramUniformMatrix2x3fv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix2x3fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix2x3fvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix2x3fvEXT, &args ))) WARN( "glProgramUniformMatrix2x3fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix2x4dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix2x4dv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix2x4dv, &args ))) WARN( "glProgramUniformMatrix2x4dv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix2x4dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix2x4dvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix2x4dvEXT, &args ))) WARN( "glProgramUniformMatrix2x4dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix2x4fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix2x4fv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix2x4fv, &args ))) WARN( "glProgramUniformMatrix2x4fv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix2x4fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix2x4fvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix2x4fvEXT, &args ))) WARN( "glProgramUniformMatrix2x4fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix3dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix3dv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix3dv, &args ))) WARN( "glProgramUniformMatrix3dv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix3dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix3dvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix3dvEXT, &args ))) WARN( "glProgramUniformMatrix3dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix3fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix3fv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix3fv, &args ))) WARN( "glProgramUniformMatrix3fv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix3fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix3fvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix3fvEXT, &args ))) WARN( "glProgramUniformMatrix3fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix3x2dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix3x2dv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix3x2dv, &args ))) WARN( "glProgramUniformMatrix3x2dv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix3x2dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix3x2dvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix3x2dvEXT, &args ))) WARN( "glProgramUniformMatrix3x2dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix3x2fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix3x2fv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix3x2fv, &args ))) WARN( "glProgramUniformMatrix3x2fv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix3x2fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix3x2fvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix3x2fvEXT, &args ))) WARN( "glProgramUniformMatrix3x2fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix3x4dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix3x4dv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix3x4dv, &args ))) WARN( "glProgramUniformMatrix3x4dv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix3x4dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix3x4dvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix3x4dvEXT, &args ))) WARN( "glProgramUniformMatrix3x4dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix3x4fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix3x4fv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix3x4fv, &args ))) WARN( "glProgramUniformMatrix3x4fv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix3x4fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix3x4fvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix3x4fvEXT, &args ))) WARN( "glProgramUniformMatrix3x4fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix4dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix4dv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix4dv, &args ))) WARN( "glProgramUniformMatrix4dv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix4dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix4dvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix4dvEXT, &args ))) WARN( "glProgramUniformMatrix4dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix4fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix4fv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix4fv, &args ))) WARN( "glProgramUniformMatrix4fv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix4fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix4fvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix4fvEXT, &args ))) WARN( "glProgramUniformMatrix4fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix4x2dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix4x2dv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix4x2dv, &args ))) WARN( "glProgramUniformMatrix4x2dv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix4x2dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix4x2dvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix4x2dvEXT, &args ))) WARN( "glProgramUniformMatrix4x2dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix4x2fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix4x2fv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix4x2fv, &args ))) WARN( "glProgramUniformMatrix4x2fv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix4x2fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix4x2fvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix4x2fvEXT, &args ))) WARN( "glProgramUniformMatrix4x2fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix4x3dv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix4x3dv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix4x3dv, &args ))) WARN( "glProgramUniformMatrix4x3dv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix4x3dvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glProgramUniformMatrix4x3dvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix4x3dvEXT, &args ))) WARN( "glProgramUniformMatrix4x3dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix4x3fv( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix4x3fv_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix4x3fv, &args ))) WARN( "glProgramUniformMatrix4x3fv returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformMatrix4x3fvEXT( GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glProgramUniformMatrix4x3fvEXT_params args = { .program = program, .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, transpose %d, value %p\n", program, location, count, transpose, value );
+    if ((status = UNIX_CALL( glProgramUniformMatrix4x3fvEXT, &args ))) WARN( "glProgramUniformMatrix4x3fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformui64NV( GLuint program, GLint location, GLuint64EXT value )
+{
+    struct glProgramUniformui64NV_params args = { .program = program, .location = location, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, value %s\n", program, location, wine_dbgstr_longlong(value) );
+    if ((status = UNIX_CALL( glProgramUniformui64NV, &args ))) WARN( "glProgramUniformui64NV returned %#x\n", status );
+}
+
+static void WINAPI glProgramUniformui64vNV( GLuint program, GLint location, GLsizei count, const GLuint64EXT *value )
+{
+    struct glProgramUniformui64vNV_params args = { .program = program, .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, count %d, value %p\n", program, location, count, value );
+    if ((status = UNIX_CALL( glProgramUniformui64vNV, &args ))) WARN( "glProgramUniformui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glProgramVertexLimitNV( GLenum target, GLint limit )
+{
+    struct glProgramVertexLimitNV_params args = { .target = target, .limit = limit, };
+    NTSTATUS status;
+    TRACE( "target %d, limit %d\n", target, limit );
+    if ((status = UNIX_CALL( glProgramVertexLimitNV, &args ))) WARN( "glProgramVertexLimitNV returned %#x\n", status );
+}
+
+static void WINAPI glProvokingVertex( GLenum mode )
+{
+    struct glProvokingVertex_params args = { .mode = mode, };
+    NTSTATUS status;
+    TRACE( "mode %d\n", mode );
+    if ((status = UNIX_CALL( glProvokingVertex, &args ))) WARN( "glProvokingVertex returned %#x\n", status );
+}
+
+static void WINAPI glProvokingVertexEXT( GLenum mode )
+{
+    struct glProvokingVertexEXT_params args = { .mode = mode, };
+    NTSTATUS status;
+    TRACE( "mode %d\n", mode );
+    if ((status = UNIX_CALL( glProvokingVertexEXT, &args ))) WARN( "glProvokingVertexEXT returned %#x\n", status );
+}
+
+static void WINAPI glPushClientAttribDefaultEXT( GLbitfield mask )
+{
+    struct glPushClientAttribDefaultEXT_params args = { .mask = mask, };
+    NTSTATUS status;
+    TRACE( "mask %d\n", mask );
+    if ((status = UNIX_CALL( glPushClientAttribDefaultEXT, &args ))) WARN( "glPushClientAttribDefaultEXT returned %#x\n", status );
+}
+
+static void WINAPI glPushDebugGroup( GLenum source, GLuint id, GLsizei length, const GLchar *message )
+{
+    struct glPushDebugGroup_params args = { .source = source, .id = id, .length = length, .message = message, };
+    NTSTATUS status;
+    TRACE( "source %d, id %d, length %d, message %p\n", source, id, length, message );
+    if ((status = UNIX_CALL( glPushDebugGroup, &args ))) WARN( "glPushDebugGroup returned %#x\n", status );
+}
+
+static void WINAPI glPushGroupMarkerEXT( GLsizei length, const GLchar *marker )
+{
+    struct glPushGroupMarkerEXT_params args = { .length = length, .marker = marker, };
+    NTSTATUS status;
+    TRACE( "length %d, marker %p\n", length, marker );
+    if ((status = UNIX_CALL( glPushGroupMarkerEXT, &args ))) WARN( "glPushGroupMarkerEXT returned %#x\n", status );
+}
+
+static void WINAPI glQueryCounter( GLuint id, GLenum target )
+{
+    struct glQueryCounter_params args = { .id = id, .target = target, };
+    NTSTATUS status;
+    TRACE( "id %d, target %d\n", id, target );
+    if ((status = UNIX_CALL( glQueryCounter, &args ))) WARN( "glQueryCounter returned %#x\n", status );
+}
+
+static GLbitfield WINAPI glQueryMatrixxOES( GLfixed *mantissa, GLint *exponent )
+{
+    struct glQueryMatrixxOES_params args = { .mantissa = mantissa, .exponent = exponent, };
+    NTSTATUS status;
+    TRACE( "mantissa %p, exponent %p\n", mantissa, exponent );
+    if ((status = UNIX_CALL( glQueryMatrixxOES, &args ))) WARN( "glQueryMatrixxOES returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glQueryObjectParameteruiAMD( GLenum target, GLuint id, GLenum pname, GLuint param )
+{
+    struct glQueryObjectParameteruiAMD_params args = { .target = target, .id = id, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "target %d, id %d, pname %d, param %d\n", target, id, pname, param );
+    if ((status = UNIX_CALL( glQueryObjectParameteruiAMD, &args ))) WARN( "glQueryObjectParameteruiAMD returned %#x\n", status );
+}
+
+static GLint WINAPI glQueryResourceNV( GLenum queryType, GLint tagId, GLuint count, GLint *buffer )
+{
+    struct glQueryResourceNV_params args = { .queryType = queryType, .tagId = tagId, .count = count, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "queryType %d, tagId %d, count %d, buffer %p\n", queryType, tagId, count, buffer );
+    if ((status = UNIX_CALL( glQueryResourceNV, &args ))) WARN( "glQueryResourceNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glQueryResourceTagNV( GLint tagId, const GLchar *tagString )
+{
+    struct glQueryResourceTagNV_params args = { .tagId = tagId, .tagString = tagString, };
+    NTSTATUS status;
+    TRACE( "tagId %d, tagString %p\n", tagId, tagString );
+    if ((status = UNIX_CALL( glQueryResourceTagNV, &args ))) WARN( "glQueryResourceTagNV returned %#x\n", status );
+}
+
+static void WINAPI glRasterPos2xOES( GLfixed x, GLfixed y )
+{
+    struct glRasterPos2xOES_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d\n", x, y );
+    if ((status = UNIX_CALL( glRasterPos2xOES, &args ))) WARN( "glRasterPos2xOES returned %#x\n", status );
+}
+
+static void WINAPI glRasterPos2xvOES( const GLfixed *coords )
+{
+    struct glRasterPos2xvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glRasterPos2xvOES, &args ))) WARN( "glRasterPos2xvOES returned %#x\n", status );
+}
+
+static void WINAPI glRasterPos3xOES( GLfixed x, GLfixed y, GLfixed z )
+{
+    struct glRasterPos3xOES_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d\n", x, y, z );
+    if ((status = UNIX_CALL( glRasterPos3xOES, &args ))) WARN( "glRasterPos3xOES returned %#x\n", status );
+}
+
+static void WINAPI glRasterPos3xvOES( const GLfixed *coords )
+{
+    struct glRasterPos3xvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glRasterPos3xvOES, &args ))) WARN( "glRasterPos3xvOES returned %#x\n", status );
+}
+
+static void WINAPI glRasterPos4xOES( GLfixed x, GLfixed y, GLfixed z, GLfixed w )
+{
+    struct glRasterPos4xOES_params args = { .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d, w %d\n", x, y, z, w );
+    if ((status = UNIX_CALL( glRasterPos4xOES, &args ))) WARN( "glRasterPos4xOES returned %#x\n", status );
+}
+
+static void WINAPI glRasterPos4xvOES( const GLfixed *coords )
+{
+    struct glRasterPos4xvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glRasterPos4xvOES, &args ))) WARN( "glRasterPos4xvOES returned %#x\n", status );
+}
+
+static void WINAPI glRasterSamplesEXT( GLuint samples, GLboolean fixedsamplelocations )
+{
+    struct glRasterSamplesEXT_params args = { .samples = samples, .fixedsamplelocations = fixedsamplelocations, };
+    NTSTATUS status;
+    TRACE( "samples %d, fixedsamplelocations %d\n", samples, fixedsamplelocations );
+    if ((status = UNIX_CALL( glRasterSamplesEXT, &args ))) WARN( "glRasterSamplesEXT returned %#x\n", status );
+}
+
+static void WINAPI glReadBufferRegion( GLenum region, GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glReadBufferRegion_params args = { .region = region, .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "region %d, x %d, y %d, width %d, height %d\n", region, x, y, width, height );
+    if ((status = UNIX_CALL( glReadBufferRegion, &args ))) WARN( "glReadBufferRegion returned %#x\n", status );
+}
+
+static void WINAPI glReadInstrumentsSGIX( GLint marker )
+{
+    struct glReadInstrumentsSGIX_params args = { .marker = marker, };
+    NTSTATUS status;
+    TRACE( "marker %d\n", marker );
+    if ((status = UNIX_CALL( glReadInstrumentsSGIX, &args ))) WARN( "glReadInstrumentsSGIX returned %#x\n", status );
+}
+
+static void WINAPI glReadnPixels( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data )
+{
+    struct glReadnPixels_params args = { .x = x, .y = y, .width = width, .height = height, .format = format, .type = type, .bufSize = bufSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, width %d, height %d, format %d, type %d, bufSize %d, data %p\n", x, y, width, height, format, type, bufSize, data );
+    if ((status = UNIX_CALL( glReadnPixels, &args ))) WARN( "glReadnPixels returned %#x\n", status );
+}
+
+static void WINAPI glReadnPixelsARB( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data )
+{
+    struct glReadnPixelsARB_params args = { .x = x, .y = y, .width = width, .height = height, .format = format, .type = type, .bufSize = bufSize, .data = data, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, width %d, height %d, format %d, type %d, bufSize %d, data %p\n", x, y, width, height, format, type, bufSize, data );
+    if ((status = UNIX_CALL( glReadnPixelsARB, &args ))) WARN( "glReadnPixelsARB returned %#x\n", status );
+}
+
+static void WINAPI glRectxOES( GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2 )
+{
+    struct glRectxOES_params args = { .x1 = x1, .y1 = y1, .x2 = x2, .y2 = y2, };
+    NTSTATUS status;
+    TRACE( "x1 %d, y1 %d, x2 %d, y2 %d\n", x1, y1, x2, y2 );
+    if ((status = UNIX_CALL( glRectxOES, &args ))) WARN( "glRectxOES returned %#x\n", status );
+}
+
+static void WINAPI glRectxvOES( const GLfixed *v1, const GLfixed *v2 )
+{
+    struct glRectxvOES_params args = { .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "v1 %p, v2 %p\n", v1, v2 );
+    if ((status = UNIX_CALL( glRectxvOES, &args ))) WARN( "glRectxvOES returned %#x\n", status );
+}
+
+static void WINAPI glReferencePlaneSGIX( const GLdouble *equation )
+{
+    struct glReferencePlaneSGIX_params args = { .equation = equation, };
+    NTSTATUS status;
+    TRACE( "equation %p\n", equation );
+    if ((status = UNIX_CALL( glReferencePlaneSGIX, &args ))) WARN( "glReferencePlaneSGIX returned %#x\n", status );
+}
+
+static GLboolean WINAPI glReleaseKeyedMutexWin32EXT( GLuint memory, GLuint64 key )
+{
+    struct glReleaseKeyedMutexWin32EXT_params args = { .memory = memory, .key = key, };
+    NTSTATUS status;
+    TRACE( "memory %d, key %s\n", memory, wine_dbgstr_longlong(key) );
+    if ((status = UNIX_CALL( glReleaseKeyedMutexWin32EXT, &args ))) WARN( "glReleaseKeyedMutexWin32EXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glReleaseShaderCompiler(void)
+{
+    struct glReleaseShaderCompiler_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glReleaseShaderCompiler, &args ))) WARN( "glReleaseShaderCompiler returned %#x\n", status );
+}
+
+static void WINAPI glRenderGpuMaskNV( GLbitfield mask )
+{
+    struct glRenderGpuMaskNV_params args = { .mask = mask, };
+    NTSTATUS status;
+    TRACE( "mask %d\n", mask );
+    if ((status = UNIX_CALL( glRenderGpuMaskNV, &args ))) WARN( "glRenderGpuMaskNV returned %#x\n", status );
+}
+
+static void WINAPI glRenderbufferStorage( GLenum target, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glRenderbufferStorage_params args = { .target = target, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, width %d, height %d\n", target, internalformat, width, height );
+    if ((status = UNIX_CALL( glRenderbufferStorage, &args ))) WARN( "glRenderbufferStorage returned %#x\n", status );
+}
+
+static void WINAPI glRenderbufferStorageEXT( GLenum target, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glRenderbufferStorageEXT_params args = { .target = target, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, width %d, height %d\n", target, internalformat, width, height );
+    if ((status = UNIX_CALL( glRenderbufferStorageEXT, &args ))) WARN( "glRenderbufferStorageEXT returned %#x\n", status );
+}
+
+static void WINAPI glRenderbufferStorageMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glRenderbufferStorageMultisample_params args = { .target = target, .samples = samples, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "target %d, samples %d, internalformat %d, width %d, height %d\n", target, samples, internalformat, width, height );
+    if ((status = UNIX_CALL( glRenderbufferStorageMultisample, &args ))) WARN( "glRenderbufferStorageMultisample returned %#x\n", status );
+}
+
+static void WINAPI glRenderbufferStorageMultisampleAdvancedAMD( GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glRenderbufferStorageMultisampleAdvancedAMD_params args = { .target = target, .samples = samples, .storageSamples = storageSamples, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "target %d, samples %d, storageSamples %d, internalformat %d, width %d, height %d\n", target, samples, storageSamples, internalformat, width, height );
+    if ((status = UNIX_CALL( glRenderbufferStorageMultisampleAdvancedAMD, &args ))) WARN( "glRenderbufferStorageMultisampleAdvancedAMD returned %#x\n", status );
+}
+
+static void WINAPI glRenderbufferStorageMultisampleCoverageNV( GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glRenderbufferStorageMultisampleCoverageNV_params args = { .target = target, .coverageSamples = coverageSamples, .colorSamples = colorSamples, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "target %d, coverageSamples %d, colorSamples %d, internalformat %d, width %d, height %d\n", target, coverageSamples, colorSamples, internalformat, width, height );
+    if ((status = UNIX_CALL( glRenderbufferStorageMultisampleCoverageNV, &args ))) WARN( "glRenderbufferStorageMultisampleCoverageNV returned %#x\n", status );
+}
+
+static void WINAPI glRenderbufferStorageMultisampleEXT( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glRenderbufferStorageMultisampleEXT_params args = { .target = target, .samples = samples, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "target %d, samples %d, internalformat %d, width %d, height %d\n", target, samples, internalformat, width, height );
+    if ((status = UNIX_CALL( glRenderbufferStorageMultisampleEXT, &args ))) WARN( "glRenderbufferStorageMultisampleEXT returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodePointerSUN( GLenum type, GLsizei stride, const void **pointer )
+{
+    struct glReplacementCodePointerSUN_params args = { .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "type %d, stride %d, pointer %p\n", type, stride, pointer );
+    if ((status = UNIX_CALL( glReplacementCodePointerSUN, &args ))) WARN( "glReplacementCodePointerSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeubSUN( GLubyte code )
+{
+    struct glReplacementCodeubSUN_params args = { .code = code, };
+    NTSTATUS status;
+    TRACE( "code %d\n", code );
+    if ((status = UNIX_CALL( glReplacementCodeubSUN, &args ))) WARN( "glReplacementCodeubSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeubvSUN( const GLubyte *code )
+{
+    struct glReplacementCodeubvSUN_params args = { .code = code, };
+    NTSTATUS status;
+    TRACE( "code %p\n", code );
+    if ((status = UNIX_CALL( glReplacementCodeubvSUN, &args ))) WARN( "glReplacementCodeubvSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiColor3fVertex3fSUN( GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glReplacementCodeuiColor3fVertex3fSUN_params args = { .rc = rc, .r = r, .g = g, .b = b, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "rc %d, r %f, g %f, b %f, x %f, y %f, z %f\n", rc, r, g, b, x, y, z );
+    if ((status = UNIX_CALL( glReplacementCodeuiColor3fVertex3fSUN, &args ))) WARN( "glReplacementCodeuiColor3fVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiColor3fVertex3fvSUN( const GLuint *rc, const GLfloat *c, const GLfloat *v )
+{
+    struct glReplacementCodeuiColor3fVertex3fvSUN_params args = { .rc = rc, .c = c, .v = v, };
+    NTSTATUS status;
+    TRACE( "rc %p, c %p, v %p\n", rc, c, v );
+    if ((status = UNIX_CALL( glReplacementCodeuiColor3fVertex3fvSUN, &args ))) WARN( "glReplacementCodeuiColor3fVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiColor4fNormal3fVertex3fSUN( GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glReplacementCodeuiColor4fNormal3fVertex3fSUN_params args = { .rc = rc, .r = r, .g = g, .b = b, .a = a, .nx = nx, .ny = ny, .nz = nz, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "rc %d, r %f, g %f, b %f, a %f, nx %f, ny %f, nz %f, x %f, y %f, z %f\n", rc, r, g, b, a, nx, ny, nz, x, y, z );
+    if ((status = UNIX_CALL( glReplacementCodeuiColor4fNormal3fVertex3fSUN, &args ))) WARN( "glReplacementCodeuiColor4fNormal3fVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiColor4fNormal3fVertex3fvSUN( const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v )
+{
+    struct glReplacementCodeuiColor4fNormal3fVertex3fvSUN_params args = { .rc = rc, .c = c, .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "rc %p, c %p, n %p, v %p\n", rc, c, n, v );
+    if ((status = UNIX_CALL( glReplacementCodeuiColor4fNormal3fVertex3fvSUN, &args ))) WARN( "glReplacementCodeuiColor4fNormal3fVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiColor4ubVertex3fSUN( GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glReplacementCodeuiColor4ubVertex3fSUN_params args = { .rc = rc, .r = r, .g = g, .b = b, .a = a, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "rc %d, r %d, g %d, b %d, a %d, x %f, y %f, z %f\n", rc, r, g, b, a, x, y, z );
+    if ((status = UNIX_CALL( glReplacementCodeuiColor4ubVertex3fSUN, &args ))) WARN( "glReplacementCodeuiColor4ubVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiColor4ubVertex3fvSUN( const GLuint *rc, const GLubyte *c, const GLfloat *v )
+{
+    struct glReplacementCodeuiColor4ubVertex3fvSUN_params args = { .rc = rc, .c = c, .v = v, };
+    NTSTATUS status;
+    TRACE( "rc %p, c %p, v %p\n", rc, c, v );
+    if ((status = UNIX_CALL( glReplacementCodeuiColor4ubVertex3fvSUN, &args ))) WARN( "glReplacementCodeuiColor4ubVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiNormal3fVertex3fSUN( GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glReplacementCodeuiNormal3fVertex3fSUN_params args = { .rc = rc, .nx = nx, .ny = ny, .nz = nz, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "rc %d, nx %f, ny %f, nz %f, x %f, y %f, z %f\n", rc, nx, ny, nz, x, y, z );
+    if ((status = UNIX_CALL( glReplacementCodeuiNormal3fVertex3fSUN, &args ))) WARN( "glReplacementCodeuiNormal3fVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiNormal3fVertex3fvSUN( const GLuint *rc, const GLfloat *n, const GLfloat *v )
+{
+    struct glReplacementCodeuiNormal3fVertex3fvSUN_params args = { .rc = rc, .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "rc %p, n %p, v %p\n", rc, n, v );
+    if ((status = UNIX_CALL( glReplacementCodeuiNormal3fVertex3fvSUN, &args ))) WARN( "glReplacementCodeuiNormal3fVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiSUN( GLuint code )
+{
+    struct glReplacementCodeuiSUN_params args = { .code = code, };
+    NTSTATUS status;
+    TRACE( "code %d\n", code );
+    if ((status = UNIX_CALL( glReplacementCodeuiSUN, &args ))) WARN( "glReplacementCodeuiSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN( GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN_params args = { .rc = rc, .s = s, .t = t, .r = r, .g = g, .b = b, .a = a, .nx = nx, .ny = ny, .nz = nz, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "rc %d, s %f, t %f, r %f, g %f, b %f, a %f, nx %f, ny %f, nz %f, x %f, y %f, z %f\n", rc, s, t, r, g, b, a, nx, ny, nz, x, y, z );
+    if ((status = UNIX_CALL( glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN, &args ))) WARN( "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN( const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v )
+{
+    struct glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN_params args = { .rc = rc, .tc = tc, .c = c, .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "rc %p, tc %p, c %p, n %p, v %p\n", rc, tc, c, n, v );
+    if ((status = UNIX_CALL( glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN, &args ))) WARN( "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN( GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN_params args = { .rc = rc, .s = s, .t = t, .nx = nx, .ny = ny, .nz = nz, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "rc %d, s %f, t %f, nx %f, ny %f, nz %f, x %f, y %f, z %f\n", rc, s, t, nx, ny, nz, x, y, z );
+    if ((status = UNIX_CALL( glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN, &args ))) WARN( "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN( const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v )
+{
+    struct glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN_params args = { .rc = rc, .tc = tc, .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "rc %p, tc %p, n %p, v %p\n", rc, tc, n, v );
+    if ((status = UNIX_CALL( glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN, &args ))) WARN( "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiTexCoord2fVertex3fSUN( GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glReplacementCodeuiTexCoord2fVertex3fSUN_params args = { .rc = rc, .s = s, .t = t, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "rc %d, s %f, t %f, x %f, y %f, z %f\n", rc, s, t, x, y, z );
+    if ((status = UNIX_CALL( glReplacementCodeuiTexCoord2fVertex3fSUN, &args ))) WARN( "glReplacementCodeuiTexCoord2fVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiTexCoord2fVertex3fvSUN( const GLuint *rc, const GLfloat *tc, const GLfloat *v )
+{
+    struct glReplacementCodeuiTexCoord2fVertex3fvSUN_params args = { .rc = rc, .tc = tc, .v = v, };
+    NTSTATUS status;
+    TRACE( "rc %p, tc %p, v %p\n", rc, tc, v );
+    if ((status = UNIX_CALL( glReplacementCodeuiTexCoord2fVertex3fvSUN, &args ))) WARN( "glReplacementCodeuiTexCoord2fVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiVertex3fSUN( GLuint rc, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glReplacementCodeuiVertex3fSUN_params args = { .rc = rc, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "rc %d, x %f, y %f, z %f\n", rc, x, y, z );
+    if ((status = UNIX_CALL( glReplacementCodeuiVertex3fSUN, &args ))) WARN( "glReplacementCodeuiVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuiVertex3fvSUN( const GLuint *rc, const GLfloat *v )
+{
+    struct glReplacementCodeuiVertex3fvSUN_params args = { .rc = rc, .v = v, };
+    NTSTATUS status;
+    TRACE( "rc %p, v %p\n", rc, v );
+    if ((status = UNIX_CALL( glReplacementCodeuiVertex3fvSUN, &args ))) WARN( "glReplacementCodeuiVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeuivSUN( const GLuint *code )
+{
+    struct glReplacementCodeuivSUN_params args = { .code = code, };
+    NTSTATUS status;
+    TRACE( "code %p\n", code );
+    if ((status = UNIX_CALL( glReplacementCodeuivSUN, &args ))) WARN( "glReplacementCodeuivSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeusSUN( GLushort code )
+{
+    struct glReplacementCodeusSUN_params args = { .code = code, };
+    NTSTATUS status;
+    TRACE( "code %d\n", code );
+    if ((status = UNIX_CALL( glReplacementCodeusSUN, &args ))) WARN( "glReplacementCodeusSUN returned %#x\n", status );
+}
+
+static void WINAPI glReplacementCodeusvSUN( const GLushort *code )
+{
+    struct glReplacementCodeusvSUN_params args = { .code = code, };
+    NTSTATUS status;
+    TRACE( "code %p\n", code );
+    if ((status = UNIX_CALL( glReplacementCodeusvSUN, &args ))) WARN( "glReplacementCodeusvSUN returned %#x\n", status );
+}
+
+static void WINAPI glRequestResidentProgramsNV( GLsizei n, const GLuint *programs )
+{
+    struct glRequestResidentProgramsNV_params args = { .n = n, .programs = programs, };
+    NTSTATUS status;
+    TRACE( "n %d, programs %p\n", n, programs );
+    if ((status = UNIX_CALL( glRequestResidentProgramsNV, &args ))) WARN( "glRequestResidentProgramsNV returned %#x\n", status );
+}
+
+static void WINAPI glResetHistogram( GLenum target )
+{
+    struct glResetHistogram_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glResetHistogram, &args ))) WARN( "glResetHistogram returned %#x\n", status );
+}
+
+static void WINAPI glResetHistogramEXT( GLenum target )
+{
+    struct glResetHistogramEXT_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glResetHistogramEXT, &args ))) WARN( "glResetHistogramEXT returned %#x\n", status );
+}
+
+static void WINAPI glResetMemoryObjectParameterNV( GLuint memory, GLenum pname )
+{
+    struct glResetMemoryObjectParameterNV_params args = { .memory = memory, .pname = pname, };
+    NTSTATUS status;
+    TRACE( "memory %d, pname %d\n", memory, pname );
+    if ((status = UNIX_CALL( glResetMemoryObjectParameterNV, &args ))) WARN( "glResetMemoryObjectParameterNV returned %#x\n", status );
+}
+
+static void WINAPI glResetMinmax( GLenum target )
+{
+    struct glResetMinmax_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glResetMinmax, &args ))) WARN( "glResetMinmax returned %#x\n", status );
+}
+
+static void WINAPI glResetMinmaxEXT( GLenum target )
+{
+    struct glResetMinmaxEXT_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glResetMinmaxEXT, &args ))) WARN( "glResetMinmaxEXT returned %#x\n", status );
+}
+
+static void WINAPI glResizeBuffersMESA(void)
+{
+    struct glResizeBuffersMESA_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glResizeBuffersMESA, &args ))) WARN( "glResizeBuffersMESA returned %#x\n", status );
+}
+
+static void WINAPI glResolveDepthValuesNV(void)
+{
+    struct glResolveDepthValuesNV_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glResolveDepthValuesNV, &args ))) WARN( "glResolveDepthValuesNV returned %#x\n", status );
+}
+
+static void WINAPI glResumeTransformFeedback(void)
+{
+    struct glResumeTransformFeedback_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glResumeTransformFeedback, &args ))) WARN( "glResumeTransformFeedback returned %#x\n", status );
+}
+
+static void WINAPI glResumeTransformFeedbackNV(void)
+{
+    struct glResumeTransformFeedbackNV_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glResumeTransformFeedbackNV, &args ))) WARN( "glResumeTransformFeedbackNV returned %#x\n", status );
+}
+
+static void WINAPI glRotatexOES( GLfixed angle, GLfixed x, GLfixed y, GLfixed z )
+{
+    struct glRotatexOES_params args = { .angle = angle, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "angle %d, x %d, y %d, z %d\n", angle, x, y, z );
+    if ((status = UNIX_CALL( glRotatexOES, &args ))) WARN( "glRotatexOES returned %#x\n", status );
+}
+
+static void WINAPI glSampleCoverage( GLfloat value, GLboolean invert )
+{
+    struct glSampleCoverage_params args = { .value = value, .invert = invert, };
+    NTSTATUS status;
+    TRACE( "value %f, invert %d\n", value, invert );
+    if ((status = UNIX_CALL( glSampleCoverage, &args ))) WARN( "glSampleCoverage returned %#x\n", status );
+}
+
+static void WINAPI glSampleCoverageARB( GLfloat value, GLboolean invert )
+{
+    struct glSampleCoverageARB_params args = { .value = value, .invert = invert, };
+    NTSTATUS status;
+    TRACE( "value %f, invert %d\n", value, invert );
+    if ((status = UNIX_CALL( glSampleCoverageARB, &args ))) WARN( "glSampleCoverageARB returned %#x\n", status );
+}
+
+static void WINAPI glSampleMapATI( GLuint dst, GLuint interp, GLenum swizzle )
+{
+    struct glSampleMapATI_params args = { .dst = dst, .interp = interp, .swizzle = swizzle, };
+    NTSTATUS status;
+    TRACE( "dst %d, interp %d, swizzle %d\n", dst, interp, swizzle );
+    if ((status = UNIX_CALL( glSampleMapATI, &args ))) WARN( "glSampleMapATI returned %#x\n", status );
+}
+
+static void WINAPI glSampleMaskEXT( GLclampf value, GLboolean invert )
+{
+    struct glSampleMaskEXT_params args = { .value = value, .invert = invert, };
+    NTSTATUS status;
+    TRACE( "value %f, invert %d\n", value, invert );
+    if ((status = UNIX_CALL( glSampleMaskEXT, &args ))) WARN( "glSampleMaskEXT returned %#x\n", status );
+}
+
+static void WINAPI glSampleMaskIndexedNV( GLuint index, GLbitfield mask )
+{
+    struct glSampleMaskIndexedNV_params args = { .index = index, .mask = mask, };
+    NTSTATUS status;
+    TRACE( "index %d, mask %d\n", index, mask );
+    if ((status = UNIX_CALL( glSampleMaskIndexedNV, &args ))) WARN( "glSampleMaskIndexedNV returned %#x\n", status );
+}
+
+static void WINAPI glSampleMaskSGIS( GLclampf value, GLboolean invert )
+{
+    struct glSampleMaskSGIS_params args = { .value = value, .invert = invert, };
+    NTSTATUS status;
+    TRACE( "value %f, invert %d\n", value, invert );
+    if ((status = UNIX_CALL( glSampleMaskSGIS, &args ))) WARN( "glSampleMaskSGIS returned %#x\n", status );
+}
+
+static void WINAPI glSampleMaski( GLuint maskNumber, GLbitfield mask )
+{
+    struct glSampleMaski_params args = { .maskNumber = maskNumber, .mask = mask, };
+    NTSTATUS status;
+    TRACE( "maskNumber %d, mask %d\n", maskNumber, mask );
+    if ((status = UNIX_CALL( glSampleMaski, &args ))) WARN( "glSampleMaski returned %#x\n", status );
+}
+
+static void WINAPI glSamplePatternEXT( GLenum pattern )
+{
+    struct glSamplePatternEXT_params args = { .pattern = pattern, };
+    NTSTATUS status;
+    TRACE( "pattern %d\n", pattern );
+    if ((status = UNIX_CALL( glSamplePatternEXT, &args ))) WARN( "glSamplePatternEXT returned %#x\n", status );
+}
+
+static void WINAPI glSamplePatternSGIS( GLenum pattern )
+{
+    struct glSamplePatternSGIS_params args = { .pattern = pattern, };
+    NTSTATUS status;
+    TRACE( "pattern %d\n", pattern );
+    if ((status = UNIX_CALL( glSamplePatternSGIS, &args ))) WARN( "glSamplePatternSGIS returned %#x\n", status );
+}
+
+static void WINAPI glSamplerParameterIiv( GLuint sampler, GLenum pname, const GLint *param )
+{
+    struct glSamplerParameterIiv_params args = { .sampler = sampler, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "sampler %d, pname %d, param %p\n", sampler, pname, param );
+    if ((status = UNIX_CALL( glSamplerParameterIiv, &args ))) WARN( "glSamplerParameterIiv returned %#x\n", status );
+}
+
+static void WINAPI glSamplerParameterIuiv( GLuint sampler, GLenum pname, const GLuint *param )
+{
+    struct glSamplerParameterIuiv_params args = { .sampler = sampler, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "sampler %d, pname %d, param %p\n", sampler, pname, param );
+    if ((status = UNIX_CALL( glSamplerParameterIuiv, &args ))) WARN( "glSamplerParameterIuiv returned %#x\n", status );
+}
+
+static void WINAPI glSamplerParameterf( GLuint sampler, GLenum pname, GLfloat param )
+{
+    struct glSamplerParameterf_params args = { .sampler = sampler, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "sampler %d, pname %d, param %f\n", sampler, pname, param );
+    if ((status = UNIX_CALL( glSamplerParameterf, &args ))) WARN( "glSamplerParameterf returned %#x\n", status );
+}
+
+static void WINAPI glSamplerParameterfv( GLuint sampler, GLenum pname, const GLfloat *param )
+{
+    struct glSamplerParameterfv_params args = { .sampler = sampler, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "sampler %d, pname %d, param %p\n", sampler, pname, param );
+    if ((status = UNIX_CALL( glSamplerParameterfv, &args ))) WARN( "glSamplerParameterfv returned %#x\n", status );
+}
+
+static void WINAPI glSamplerParameteri( GLuint sampler, GLenum pname, GLint param )
+{
+    struct glSamplerParameteri_params args = { .sampler = sampler, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "sampler %d, pname %d, param %d\n", sampler, pname, param );
+    if ((status = UNIX_CALL( glSamplerParameteri, &args ))) WARN( "glSamplerParameteri returned %#x\n", status );
+}
+
+static void WINAPI glSamplerParameteriv( GLuint sampler, GLenum pname, const GLint *param )
+{
+    struct glSamplerParameteriv_params args = { .sampler = sampler, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "sampler %d, pname %d, param %p\n", sampler, pname, param );
+    if ((status = UNIX_CALL( glSamplerParameteriv, &args ))) WARN( "glSamplerParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glScalexOES( GLfixed x, GLfixed y, GLfixed z )
+{
+    struct glScalexOES_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d\n", x, y, z );
+    if ((status = UNIX_CALL( glScalexOES, &args ))) WARN( "glScalexOES returned %#x\n", status );
+}
+
+static void WINAPI glScissorArrayv( GLuint first, GLsizei count, const GLint *v )
+{
+    struct glScissorArrayv_params args = { .first = first, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "first %d, count %d, v %p\n", first, count, v );
+    if ((status = UNIX_CALL( glScissorArrayv, &args ))) WARN( "glScissorArrayv returned %#x\n", status );
+}
+
+static void WINAPI glScissorExclusiveArrayvNV( GLuint first, GLsizei count, const GLint *v )
+{
+    struct glScissorExclusiveArrayvNV_params args = { .first = first, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "first %d, count %d, v %p\n", first, count, v );
+    if ((status = UNIX_CALL( glScissorExclusiveArrayvNV, &args ))) WARN( "glScissorExclusiveArrayvNV returned %#x\n", status );
+}
+
+static void WINAPI glScissorExclusiveNV( GLint x, GLint y, GLsizei width, GLsizei height )
+{
+    struct glScissorExclusiveNV_params args = { .x = x, .y = y, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, width %d, height %d\n", x, y, width, height );
+    if ((status = UNIX_CALL( glScissorExclusiveNV, &args ))) WARN( "glScissorExclusiveNV returned %#x\n", status );
+}
+
+static void WINAPI glScissorIndexed( GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height )
+{
+    struct glScissorIndexed_params args = { .index = index, .left = left, .bottom = bottom, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "index %d, left %d, bottom %d, width %d, height %d\n", index, left, bottom, width, height );
+    if ((status = UNIX_CALL( glScissorIndexed, &args ))) WARN( "glScissorIndexed returned %#x\n", status );
+}
+
+static void WINAPI glScissorIndexedv( GLuint index, const GLint *v )
+{
+    struct glScissorIndexedv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glScissorIndexedv, &args ))) WARN( "glScissorIndexedv returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3b( GLbyte red, GLbyte green, GLbyte blue )
+{
+    struct glSecondaryColor3b_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3b, &args ))) WARN( "glSecondaryColor3b returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3bEXT( GLbyte red, GLbyte green, GLbyte blue )
+{
+    struct glSecondaryColor3bEXT_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3bEXT, &args ))) WARN( "glSecondaryColor3bEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3bv( const GLbyte *v )
+{
+    struct glSecondaryColor3bv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3bv, &args ))) WARN( "glSecondaryColor3bv returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3bvEXT( const GLbyte *v )
+{
+    struct glSecondaryColor3bvEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3bvEXT, &args ))) WARN( "glSecondaryColor3bvEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3d( GLdouble red, GLdouble green, GLdouble blue )
+{
+    struct glSecondaryColor3d_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %f, green %f, blue %f\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3d, &args ))) WARN( "glSecondaryColor3d returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3dEXT( GLdouble red, GLdouble green, GLdouble blue )
+{
+    struct glSecondaryColor3dEXT_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %f, green %f, blue %f\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3dEXT, &args ))) WARN( "glSecondaryColor3dEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3dv( const GLdouble *v )
+{
+    struct glSecondaryColor3dv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3dv, &args ))) WARN( "glSecondaryColor3dv returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3dvEXT( const GLdouble *v )
+{
+    struct glSecondaryColor3dvEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3dvEXT, &args ))) WARN( "glSecondaryColor3dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3f( GLfloat red, GLfloat green, GLfloat blue )
+{
+    struct glSecondaryColor3f_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %f, green %f, blue %f\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3f, &args ))) WARN( "glSecondaryColor3f returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3fEXT( GLfloat red, GLfloat green, GLfloat blue )
+{
+    struct glSecondaryColor3fEXT_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %f, green %f, blue %f\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3fEXT, &args ))) WARN( "glSecondaryColor3fEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3fv( const GLfloat *v )
+{
+    struct glSecondaryColor3fv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3fv, &args ))) WARN( "glSecondaryColor3fv returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3fvEXT( const GLfloat *v )
+{
+    struct glSecondaryColor3fvEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3fvEXT, &args ))) WARN( "glSecondaryColor3fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3hNV( GLhalfNV red, GLhalfNV green, GLhalfNV blue )
+{
+    struct glSecondaryColor3hNV_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3hNV, &args ))) WARN( "glSecondaryColor3hNV returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3hvNV( const GLhalfNV *v )
+{
+    struct glSecondaryColor3hvNV_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3hvNV, &args ))) WARN( "glSecondaryColor3hvNV returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3i( GLint red, GLint green, GLint blue )
+{
+    struct glSecondaryColor3i_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3i, &args ))) WARN( "glSecondaryColor3i returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3iEXT( GLint red, GLint green, GLint blue )
+{
+    struct glSecondaryColor3iEXT_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3iEXT, &args ))) WARN( "glSecondaryColor3iEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3iv( const GLint *v )
+{
+    struct glSecondaryColor3iv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3iv, &args ))) WARN( "glSecondaryColor3iv returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3ivEXT( const GLint *v )
+{
+    struct glSecondaryColor3ivEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3ivEXT, &args ))) WARN( "glSecondaryColor3ivEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3s( GLshort red, GLshort green, GLshort blue )
+{
+    struct glSecondaryColor3s_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3s, &args ))) WARN( "glSecondaryColor3s returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3sEXT( GLshort red, GLshort green, GLshort blue )
+{
+    struct glSecondaryColor3sEXT_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3sEXT, &args ))) WARN( "glSecondaryColor3sEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3sv( const GLshort *v )
+{
+    struct glSecondaryColor3sv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3sv, &args ))) WARN( "glSecondaryColor3sv returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3svEXT( const GLshort *v )
+{
+    struct glSecondaryColor3svEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3svEXT, &args ))) WARN( "glSecondaryColor3svEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3ub( GLubyte red, GLubyte green, GLubyte blue )
+{
+    struct glSecondaryColor3ub_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3ub, &args ))) WARN( "glSecondaryColor3ub returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3ubEXT( GLubyte red, GLubyte green, GLubyte blue )
+{
+    struct glSecondaryColor3ubEXT_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3ubEXT, &args ))) WARN( "glSecondaryColor3ubEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3ubv( const GLubyte *v )
+{
+    struct glSecondaryColor3ubv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3ubv, &args ))) WARN( "glSecondaryColor3ubv returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3ubvEXT( const GLubyte *v )
+{
+    struct glSecondaryColor3ubvEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3ubvEXT, &args ))) WARN( "glSecondaryColor3ubvEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3ui( GLuint red, GLuint green, GLuint blue )
+{
+    struct glSecondaryColor3ui_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3ui, &args ))) WARN( "glSecondaryColor3ui returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3uiEXT( GLuint red, GLuint green, GLuint blue )
+{
+    struct glSecondaryColor3uiEXT_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3uiEXT, &args ))) WARN( "glSecondaryColor3uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3uiv( const GLuint *v )
+{
+    struct glSecondaryColor3uiv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3uiv, &args ))) WARN( "glSecondaryColor3uiv returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3uivEXT( const GLuint *v )
+{
+    struct glSecondaryColor3uivEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3uivEXT, &args ))) WARN( "glSecondaryColor3uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3us( GLushort red, GLushort green, GLushort blue )
+{
+    struct glSecondaryColor3us_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3us, &args ))) WARN( "glSecondaryColor3us returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3usEXT( GLushort red, GLushort green, GLushort blue )
+{
+    struct glSecondaryColor3usEXT_params args = { .red = red, .green = green, .blue = blue, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d\n", red, green, blue );
+    if ((status = UNIX_CALL( glSecondaryColor3usEXT, &args ))) WARN( "glSecondaryColor3usEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3usv( const GLushort *v )
+{
+    struct glSecondaryColor3usv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3usv, &args ))) WARN( "glSecondaryColor3usv returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColor3usvEXT( const GLushort *v )
+{
+    struct glSecondaryColor3usvEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glSecondaryColor3usvEXT, &args ))) WARN( "glSecondaryColor3usvEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColorFormatNV( GLint size, GLenum type, GLsizei stride )
+{
+    struct glSecondaryColorFormatNV_params args = { .size = size, .type = type, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d\n", size, type, stride );
+    if ((status = UNIX_CALL( glSecondaryColorFormatNV, &args ))) WARN( "glSecondaryColorFormatNV returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColorP3ui( GLenum type, GLuint color )
+{
+    struct glSecondaryColorP3ui_params args = { .type = type, .color = color, };
+    NTSTATUS status;
+    TRACE( "type %d, color %d\n", type, color );
+    if ((status = UNIX_CALL( glSecondaryColorP3ui, &args ))) WARN( "glSecondaryColorP3ui returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColorP3uiv( GLenum type, const GLuint *color )
+{
+    struct glSecondaryColorP3uiv_params args = { .type = type, .color = color, };
+    NTSTATUS status;
+    TRACE( "type %d, color %p\n", type, color );
+    if ((status = UNIX_CALL( glSecondaryColorP3uiv, &args ))) WARN( "glSecondaryColorP3uiv returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColorPointer( GLint size, GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glSecondaryColorPointer_params args = { .size = size, .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d, pointer %p\n", size, type, stride, pointer );
+    if ((status = UNIX_CALL( glSecondaryColorPointer, &args ))) WARN( "glSecondaryColorPointer returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColorPointerEXT( GLint size, GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glSecondaryColorPointerEXT_params args = { .size = size, .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d, pointer %p\n", size, type, stride, pointer );
+    if ((status = UNIX_CALL( glSecondaryColorPointerEXT, &args ))) WARN( "glSecondaryColorPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glSecondaryColorPointerListIBM( GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride )
+{
+    struct glSecondaryColorPointerListIBM_params args = { .size = size, .type = type, .stride = stride, .pointer = pointer, .ptrstride = ptrstride, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d, pointer %p, ptrstride %d\n", size, type, stride, pointer, ptrstride );
+    if ((status = UNIX_CALL( glSecondaryColorPointerListIBM, &args ))) WARN( "glSecondaryColorPointerListIBM returned %#x\n", status );
+}
+
+static void WINAPI glSelectPerfMonitorCountersAMD( GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList )
+{
+    struct glSelectPerfMonitorCountersAMD_params args = { .monitor = monitor, .enable = enable, .group = group, .numCounters = numCounters, .counterList = counterList, };
+    NTSTATUS status;
+    TRACE( "monitor %d, enable %d, group %d, numCounters %d, counterList %p\n", monitor, enable, group, numCounters, counterList );
+    if ((status = UNIX_CALL( glSelectPerfMonitorCountersAMD, &args ))) WARN( "glSelectPerfMonitorCountersAMD returned %#x\n", status );
+}
+
+static void WINAPI glSelectTextureCoordSetSGIS( GLenum target )
+{
+    struct glSelectTextureCoordSetSGIS_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glSelectTextureCoordSetSGIS, &args ))) WARN( "glSelectTextureCoordSetSGIS returned %#x\n", status );
+}
+
+static void WINAPI glSelectTextureSGIS( GLenum target )
+{
+    struct glSelectTextureSGIS_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glSelectTextureSGIS, &args ))) WARN( "glSelectTextureSGIS returned %#x\n", status );
+}
+
+static void WINAPI glSemaphoreParameterui64vEXT( GLuint semaphore, GLenum pname, const GLuint64 *params )
+{
+    struct glSemaphoreParameterui64vEXT_params args = { .semaphore = semaphore, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "semaphore %d, pname %d, params %p\n", semaphore, pname, params );
+    if ((status = UNIX_CALL( glSemaphoreParameterui64vEXT, &args ))) WARN( "glSemaphoreParameterui64vEXT returned %#x\n", status );
+}
+
+static void WINAPI glSeparableFilter2D( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column )
+{
+    struct glSeparableFilter2D_params args = { .target = target, .internalformat = internalformat, .width = width, .height = height, .format = format, .type = type, .row = row, .column = column, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, width %d, height %d, format %d, type %d, row %p, column %p\n", target, internalformat, width, height, format, type, row, column );
+    if ((status = UNIX_CALL( glSeparableFilter2D, &args ))) WARN( "glSeparableFilter2D returned %#x\n", status );
+}
+
+static void WINAPI glSeparableFilter2DEXT( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column )
+{
+    struct glSeparableFilter2DEXT_params args = { .target = target, .internalformat = internalformat, .width = width, .height = height, .format = format, .type = type, .row = row, .column = column, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, width %d, height %d, format %d, type %d, row %p, column %p\n", target, internalformat, width, height, format, type, row, column );
+    if ((status = UNIX_CALL( glSeparableFilter2DEXT, &args ))) WARN( "glSeparableFilter2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glSetFenceAPPLE( GLuint fence )
+{
+    struct glSetFenceAPPLE_params args = { .fence = fence, };
+    NTSTATUS status;
+    TRACE( "fence %d\n", fence );
+    if ((status = UNIX_CALL( glSetFenceAPPLE, &args ))) WARN( "glSetFenceAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glSetFenceNV( GLuint fence, GLenum condition )
+{
+    struct glSetFenceNV_params args = { .fence = fence, .condition = condition, };
+    NTSTATUS status;
+    TRACE( "fence %d, condition %d\n", fence, condition );
+    if ((status = UNIX_CALL( glSetFenceNV, &args ))) WARN( "glSetFenceNV returned %#x\n", status );
+}
+
+static void WINAPI glSetFragmentShaderConstantATI( GLuint dst, const GLfloat *value )
+{
+    struct glSetFragmentShaderConstantATI_params args = { .dst = dst, .value = value, };
+    NTSTATUS status;
+    TRACE( "dst %d, value %p\n", dst, value );
+    if ((status = UNIX_CALL( glSetFragmentShaderConstantATI, &args ))) WARN( "glSetFragmentShaderConstantATI returned %#x\n", status );
+}
+
+static void WINAPI glSetInvariantEXT( GLuint id, GLenum type, const void *addr )
+{
+    struct glSetInvariantEXT_params args = { .id = id, .type = type, .addr = addr, };
+    NTSTATUS status;
+    TRACE( "id %d, type %d, addr %p\n", id, type, addr );
+    if ((status = UNIX_CALL( glSetInvariantEXT, &args ))) WARN( "glSetInvariantEXT returned %#x\n", status );
+}
+
+static void WINAPI glSetLocalConstantEXT( GLuint id, GLenum type, const void *addr )
+{
+    struct glSetLocalConstantEXT_params args = { .id = id, .type = type, .addr = addr, };
+    NTSTATUS status;
+    TRACE( "id %d, type %d, addr %p\n", id, type, addr );
+    if ((status = UNIX_CALL( glSetLocalConstantEXT, &args ))) WARN( "glSetLocalConstantEXT returned %#x\n", status );
+}
+
+static void WINAPI glSetMultisamplefvAMD( GLenum pname, GLuint index, const GLfloat *val )
+{
+    struct glSetMultisamplefvAMD_params args = { .pname = pname, .index = index, .val = val, };
+    NTSTATUS status;
+    TRACE( "pname %d, index %d, val %p\n", pname, index, val );
+    if ((status = UNIX_CALL( glSetMultisamplefvAMD, &args ))) WARN( "glSetMultisamplefvAMD returned %#x\n", status );
+}
+
+static void WINAPI glShaderBinary( GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length )
+{
+    struct glShaderBinary_params args = { .count = count, .shaders = shaders, .binaryformat = binaryformat, .binary = binary, .length = length, };
+    NTSTATUS status;
+    TRACE( "count %d, shaders %p, binaryformat %d, binary %p, length %d\n", count, shaders, binaryformat, binary, length );
+    if ((status = UNIX_CALL( glShaderBinary, &args ))) WARN( "glShaderBinary returned %#x\n", status );
+}
+
+static void WINAPI glShaderOp1EXT( GLenum op, GLuint res, GLuint arg1 )
+{
+    struct glShaderOp1EXT_params args = { .op = op, .res = res, .arg1 = arg1, };
+    NTSTATUS status;
+    TRACE( "op %d, res %d, arg1 %d\n", op, res, arg1 );
+    if ((status = UNIX_CALL( glShaderOp1EXT, &args ))) WARN( "glShaderOp1EXT returned %#x\n", status );
+}
+
+static void WINAPI glShaderOp2EXT( GLenum op, GLuint res, GLuint arg1, GLuint arg2 )
+{
+    struct glShaderOp2EXT_params args = { .op = op, .res = res, .arg1 = arg1, .arg2 = arg2, };
+    NTSTATUS status;
+    TRACE( "op %d, res %d, arg1 %d, arg2 %d\n", op, res, arg1, arg2 );
+    if ((status = UNIX_CALL( glShaderOp2EXT, &args ))) WARN( "glShaderOp2EXT returned %#x\n", status );
+}
+
+static void WINAPI glShaderOp3EXT( GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3 )
+{
+    struct glShaderOp3EXT_params args = { .op = op, .res = res, .arg1 = arg1, .arg2 = arg2, .arg3 = arg3, };
+    NTSTATUS status;
+    TRACE( "op %d, res %d, arg1 %d, arg2 %d, arg3 %d\n", op, res, arg1, arg2, arg3 );
+    if ((status = UNIX_CALL( glShaderOp3EXT, &args ))) WARN( "glShaderOp3EXT returned %#x\n", status );
+}
+
+static void WINAPI glShaderSource( GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length )
+{
+    struct glShaderSource_params args = { .shader = shader, .count = count, .string = string, .length = length, };
+    NTSTATUS status;
+    TRACE( "shader %d, count %d, string %p, length %p\n", shader, count, string, length );
+    if ((status = UNIX_CALL( glShaderSource, &args ))) WARN( "glShaderSource returned %#x\n", status );
+}
+
+static void WINAPI glShaderSourceARB( GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length )
+{
+    struct glShaderSourceARB_params args = { .shaderObj = shaderObj, .count = count, .string = string, .length = length, };
+    NTSTATUS status;
+    TRACE( "shaderObj %d, count %d, string %p, length %p\n", shaderObj, count, string, length );
+    if ((status = UNIX_CALL( glShaderSourceARB, &args ))) WARN( "glShaderSourceARB returned %#x\n", status );
+}
+
+static void WINAPI glShaderStorageBlockBinding( GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding )
+{
+    struct glShaderStorageBlockBinding_params args = { .program = program, .storageBlockIndex = storageBlockIndex, .storageBlockBinding = storageBlockBinding, };
+    NTSTATUS status;
+    TRACE( "program %d, storageBlockIndex %d, storageBlockBinding %d\n", program, storageBlockIndex, storageBlockBinding );
+    if ((status = UNIX_CALL( glShaderStorageBlockBinding, &args ))) WARN( "glShaderStorageBlockBinding returned %#x\n", status );
+}
+
+static void WINAPI glShadingRateImageBarrierNV( GLboolean synchronize )
+{
+    struct glShadingRateImageBarrierNV_params args = { .synchronize = synchronize, };
+    NTSTATUS status;
+    TRACE( "synchronize %d\n", synchronize );
+    if ((status = UNIX_CALL( glShadingRateImageBarrierNV, &args ))) WARN( "glShadingRateImageBarrierNV returned %#x\n", status );
+}
+
+static void WINAPI glShadingRateImagePaletteNV( GLuint viewport, GLuint first, GLsizei count, const GLenum *rates )
+{
+    struct glShadingRateImagePaletteNV_params args = { .viewport = viewport, .first = first, .count = count, .rates = rates, };
+    NTSTATUS status;
+    TRACE( "viewport %d, first %d, count %d, rates %p\n", viewport, first, count, rates );
+    if ((status = UNIX_CALL( glShadingRateImagePaletteNV, &args ))) WARN( "glShadingRateImagePaletteNV returned %#x\n", status );
+}
+
+static void WINAPI glShadingRateSampleOrderCustomNV( GLenum rate, GLuint samples, const GLint *locations )
+{
+    struct glShadingRateSampleOrderCustomNV_params args = { .rate = rate, .samples = samples, .locations = locations, };
+    NTSTATUS status;
+    TRACE( "rate %d, samples %d, locations %p\n", rate, samples, locations );
+    if ((status = UNIX_CALL( glShadingRateSampleOrderCustomNV, &args ))) WARN( "glShadingRateSampleOrderCustomNV returned %#x\n", status );
+}
+
+static void WINAPI glShadingRateSampleOrderNV( GLenum order )
+{
+    struct glShadingRateSampleOrderNV_params args = { .order = order, };
+    NTSTATUS status;
+    TRACE( "order %d\n", order );
+    if ((status = UNIX_CALL( glShadingRateSampleOrderNV, &args ))) WARN( "glShadingRateSampleOrderNV returned %#x\n", status );
+}
+
+static void WINAPI glSharpenTexFuncSGIS( GLenum target, GLsizei n, const GLfloat *points )
+{
+    struct glSharpenTexFuncSGIS_params args = { .target = target, .n = n, .points = points, };
+    NTSTATUS status;
+    TRACE( "target %d, n %d, points %p\n", target, n, points );
+    if ((status = UNIX_CALL( glSharpenTexFuncSGIS, &args ))) WARN( "glSharpenTexFuncSGIS returned %#x\n", status );
+}
+
+static void WINAPI glSignalSemaphoreEXT( GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts )
+{
+    struct glSignalSemaphoreEXT_params args = { .semaphore = semaphore, .numBufferBarriers = numBufferBarriers, .buffers = buffers, .numTextureBarriers = numTextureBarriers, .textures = textures, .dstLayouts = dstLayouts, };
+    NTSTATUS status;
+    TRACE( "semaphore %d, numBufferBarriers %d, buffers %p, numTextureBarriers %d, textures %p, dstLayouts %p\n", semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, dstLayouts );
+    if ((status = UNIX_CALL( glSignalSemaphoreEXT, &args ))) WARN( "glSignalSemaphoreEXT returned %#x\n", status );
+}
+
+static void WINAPI glSignalSemaphoreui64NVX( GLuint signalGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray )
+{
+    struct glSignalSemaphoreui64NVX_params args = { .signalGpu = signalGpu, .fenceObjectCount = fenceObjectCount, .semaphoreArray = semaphoreArray, .fenceValueArray = fenceValueArray, };
+    NTSTATUS status;
+    TRACE( "signalGpu %d, fenceObjectCount %d, semaphoreArray %p, fenceValueArray %p\n", signalGpu, fenceObjectCount, semaphoreArray, fenceValueArray );
+    if ((status = UNIX_CALL( glSignalSemaphoreui64NVX, &args ))) WARN( "glSignalSemaphoreui64NVX returned %#x\n", status );
+}
+
+static void WINAPI glSignalVkFenceNV( GLuint64 vkFence )
+{
+    struct glSignalVkFenceNV_params args = { .vkFence = vkFence, };
+    NTSTATUS status;
+    TRACE( "vkFence %s\n", wine_dbgstr_longlong(vkFence) );
+    if ((status = UNIX_CALL( glSignalVkFenceNV, &args ))) WARN( "glSignalVkFenceNV returned %#x\n", status );
+}
+
+static void WINAPI glSignalVkSemaphoreNV( GLuint64 vkSemaphore )
+{
+    struct glSignalVkSemaphoreNV_params args = { .vkSemaphore = vkSemaphore, };
+    NTSTATUS status;
+    TRACE( "vkSemaphore %s\n", wine_dbgstr_longlong(vkSemaphore) );
+    if ((status = UNIX_CALL( glSignalVkSemaphoreNV, &args ))) WARN( "glSignalVkSemaphoreNV returned %#x\n", status );
+}
+
+static void WINAPI glSpecializeShader( GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue )
+{
+    struct glSpecializeShader_params args = { .shader = shader, .pEntryPoint = pEntryPoint, .numSpecializationConstants = numSpecializationConstants, .pConstantIndex = pConstantIndex, .pConstantValue = pConstantValue, };
+    NTSTATUS status;
+    TRACE( "shader %d, pEntryPoint %p, numSpecializationConstants %d, pConstantIndex %p, pConstantValue %p\n", shader, pEntryPoint, numSpecializationConstants, pConstantIndex, pConstantValue );
+    if ((status = UNIX_CALL( glSpecializeShader, &args ))) WARN( "glSpecializeShader returned %#x\n", status );
+}
+
+static void WINAPI glSpecializeShaderARB( GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue )
+{
+    struct glSpecializeShaderARB_params args = { .shader = shader, .pEntryPoint = pEntryPoint, .numSpecializationConstants = numSpecializationConstants, .pConstantIndex = pConstantIndex, .pConstantValue = pConstantValue, };
+    NTSTATUS status;
+    TRACE( "shader %d, pEntryPoint %p, numSpecializationConstants %d, pConstantIndex %p, pConstantValue %p\n", shader, pEntryPoint, numSpecializationConstants, pConstantIndex, pConstantValue );
+    if ((status = UNIX_CALL( glSpecializeShaderARB, &args ))) WARN( "glSpecializeShaderARB returned %#x\n", status );
+}
+
+static void WINAPI glSpriteParameterfSGIX( GLenum pname, GLfloat param )
+{
+    struct glSpriteParameterfSGIX_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %f\n", pname, param );
+    if ((status = UNIX_CALL( glSpriteParameterfSGIX, &args ))) WARN( "glSpriteParameterfSGIX returned %#x\n", status );
+}
+
+static void WINAPI glSpriteParameterfvSGIX( GLenum pname, const GLfloat *params )
+{
+    struct glSpriteParameterfvSGIX_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glSpriteParameterfvSGIX, &args ))) WARN( "glSpriteParameterfvSGIX returned %#x\n", status );
+}
+
+static void WINAPI glSpriteParameteriSGIX( GLenum pname, GLint param )
+{
+    struct glSpriteParameteriSGIX_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glSpriteParameteriSGIX, &args ))) WARN( "glSpriteParameteriSGIX returned %#x\n", status );
+}
+
+static void WINAPI glSpriteParameterivSGIX( GLenum pname, const GLint *params )
+{
+    struct glSpriteParameterivSGIX_params args = { .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "pname %d, params %p\n", pname, params );
+    if ((status = UNIX_CALL( glSpriteParameterivSGIX, &args ))) WARN( "glSpriteParameterivSGIX returned %#x\n", status );
+}
+
+static void WINAPI glStartInstrumentsSGIX(void)
+{
+    struct glStartInstrumentsSGIX_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glStartInstrumentsSGIX, &args ))) WARN( "glStartInstrumentsSGIX returned %#x\n", status );
+}
+
+static void WINAPI glStateCaptureNV( GLuint state, GLenum mode )
+{
+    struct glStateCaptureNV_params args = { .state = state, .mode = mode, };
+    NTSTATUS status;
+    TRACE( "state %d, mode %d\n", state, mode );
+    if ((status = UNIX_CALL( glStateCaptureNV, &args ))) WARN( "glStateCaptureNV returned %#x\n", status );
+}
+
+static void WINAPI glStencilClearTagEXT( GLsizei stencilTagBits, GLuint stencilClearTag )
+{
+    struct glStencilClearTagEXT_params args = { .stencilTagBits = stencilTagBits, .stencilClearTag = stencilClearTag, };
+    NTSTATUS status;
+    TRACE( "stencilTagBits %d, stencilClearTag %d\n", stencilTagBits, stencilClearTag );
+    if ((status = UNIX_CALL( glStencilClearTagEXT, &args ))) WARN( "glStencilClearTagEXT returned %#x\n", status );
+}
+
+static void WINAPI glStencilFillPathInstancedNV( GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues )
+{
+    struct glStencilFillPathInstancedNV_params args = { .numPaths = numPaths, .pathNameType = pathNameType, .paths = paths, .pathBase = pathBase, .fillMode = fillMode, .mask = mask, .transformType = transformType, .transformValues = transformValues, };
+    NTSTATUS status;
+    TRACE( "numPaths %d, pathNameType %d, paths %p, pathBase %d, fillMode %d, mask %d, transformType %d, transformValues %p\n", numPaths, pathNameType, paths, pathBase, fillMode, mask, transformType, transformValues );
+    if ((status = UNIX_CALL( glStencilFillPathInstancedNV, &args ))) WARN( "glStencilFillPathInstancedNV returned %#x\n", status );
+}
+
+static void WINAPI glStencilFillPathNV( GLuint path, GLenum fillMode, GLuint mask )
+{
+    struct glStencilFillPathNV_params args = { .path = path, .fillMode = fillMode, .mask = mask, };
+    NTSTATUS status;
+    TRACE( "path %d, fillMode %d, mask %d\n", path, fillMode, mask );
+    if ((status = UNIX_CALL( glStencilFillPathNV, &args ))) WARN( "glStencilFillPathNV returned %#x\n", status );
+}
+
+static void WINAPI glStencilFuncSeparate( GLenum face, GLenum func, GLint ref, GLuint mask )
+{
+    struct glStencilFuncSeparate_params args = { .face = face, .func = func, .ref = ref, .mask = mask, };
+    NTSTATUS status;
+    TRACE( "face %d, func %d, ref %d, mask %d\n", face, func, ref, mask );
+    if ((status = UNIX_CALL( glStencilFuncSeparate, &args ))) WARN( "glStencilFuncSeparate returned %#x\n", status );
+}
+
+static void WINAPI glStencilFuncSeparateATI( GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask )
+{
+    struct glStencilFuncSeparateATI_params args = { .frontfunc = frontfunc, .backfunc = backfunc, .ref = ref, .mask = mask, };
+    NTSTATUS status;
+    TRACE( "frontfunc %d, backfunc %d, ref %d, mask %d\n", frontfunc, backfunc, ref, mask );
+    if ((status = UNIX_CALL( glStencilFuncSeparateATI, &args ))) WARN( "glStencilFuncSeparateATI returned %#x\n", status );
+}
+
+static void WINAPI glStencilMaskSeparate( GLenum face, GLuint mask )
+{
+    struct glStencilMaskSeparate_params args = { .face = face, .mask = mask, };
+    NTSTATUS status;
+    TRACE( "face %d, mask %d\n", face, mask );
+    if ((status = UNIX_CALL( glStencilMaskSeparate, &args ))) WARN( "glStencilMaskSeparate returned %#x\n", status );
+}
+
+static void WINAPI glStencilOpSeparate( GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass )
+{
+    struct glStencilOpSeparate_params args = { .face = face, .sfail = sfail, .dpfail = dpfail, .dppass = dppass, };
+    NTSTATUS status;
+    TRACE( "face %d, sfail %d, dpfail %d, dppass %d\n", face, sfail, dpfail, dppass );
+    if ((status = UNIX_CALL( glStencilOpSeparate, &args ))) WARN( "glStencilOpSeparate returned %#x\n", status );
+}
+
+static void WINAPI glStencilOpSeparateATI( GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass )
+{
+    struct glStencilOpSeparateATI_params args = { .face = face, .sfail = sfail, .dpfail = dpfail, .dppass = dppass, };
+    NTSTATUS status;
+    TRACE( "face %d, sfail %d, dpfail %d, dppass %d\n", face, sfail, dpfail, dppass );
+    if ((status = UNIX_CALL( glStencilOpSeparateATI, &args ))) WARN( "glStencilOpSeparateATI returned %#x\n", status );
+}
+
+static void WINAPI glStencilOpValueAMD( GLenum face, GLuint value )
+{
+    struct glStencilOpValueAMD_params args = { .face = face, .value = value, };
+    NTSTATUS status;
+    TRACE( "face %d, value %d\n", face, value );
+    if ((status = UNIX_CALL( glStencilOpValueAMD, &args ))) WARN( "glStencilOpValueAMD returned %#x\n", status );
+}
+
+static void WINAPI glStencilStrokePathInstancedNV( GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues )
+{
+    struct glStencilStrokePathInstancedNV_params args = { .numPaths = numPaths, .pathNameType = pathNameType, .paths = paths, .pathBase = pathBase, .reference = reference, .mask = mask, .transformType = transformType, .transformValues = transformValues, };
+    NTSTATUS status;
+    TRACE( "numPaths %d, pathNameType %d, paths %p, pathBase %d, reference %d, mask %d, transformType %d, transformValues %p\n", numPaths, pathNameType, paths, pathBase, reference, mask, transformType, transformValues );
+    if ((status = UNIX_CALL( glStencilStrokePathInstancedNV, &args ))) WARN( "glStencilStrokePathInstancedNV returned %#x\n", status );
+}
+
+static void WINAPI glStencilStrokePathNV( GLuint path, GLint reference, GLuint mask )
+{
+    struct glStencilStrokePathNV_params args = { .path = path, .reference = reference, .mask = mask, };
+    NTSTATUS status;
+    TRACE( "path %d, reference %d, mask %d\n", path, reference, mask );
+    if ((status = UNIX_CALL( glStencilStrokePathNV, &args ))) WARN( "glStencilStrokePathNV returned %#x\n", status );
+}
+
+static void WINAPI glStencilThenCoverFillPathInstancedNV( GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues )
+{
+    struct glStencilThenCoverFillPathInstancedNV_params args = { .numPaths = numPaths, .pathNameType = pathNameType, .paths = paths, .pathBase = pathBase, .fillMode = fillMode, .mask = mask, .coverMode = coverMode, .transformType = transformType, .transformValues = transformValues, };
+    NTSTATUS status;
+    TRACE( "numPaths %d, pathNameType %d, paths %p, pathBase %d, fillMode %d, mask %d, coverMode %d, transformType %d, transformValues %p\n", numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode, transformType, transformValues );
+    if ((status = UNIX_CALL( glStencilThenCoverFillPathInstancedNV, &args ))) WARN( "glStencilThenCoverFillPathInstancedNV returned %#x\n", status );
+}
+
+static void WINAPI glStencilThenCoverFillPathNV( GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode )
+{
+    struct glStencilThenCoverFillPathNV_params args = { .path = path, .fillMode = fillMode, .mask = mask, .coverMode = coverMode, };
+    NTSTATUS status;
+    TRACE( "path %d, fillMode %d, mask %d, coverMode %d\n", path, fillMode, mask, coverMode );
+    if ((status = UNIX_CALL( glStencilThenCoverFillPathNV, &args ))) WARN( "glStencilThenCoverFillPathNV returned %#x\n", status );
+}
+
+static void WINAPI glStencilThenCoverStrokePathInstancedNV( GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues )
+{
+    struct glStencilThenCoverStrokePathInstancedNV_params args = { .numPaths = numPaths, .pathNameType = pathNameType, .paths = paths, .pathBase = pathBase, .reference = reference, .mask = mask, .coverMode = coverMode, .transformType = transformType, .transformValues = transformValues, };
+    NTSTATUS status;
+    TRACE( "numPaths %d, pathNameType %d, paths %p, pathBase %d, reference %d, mask %d, coverMode %d, transformType %d, transformValues %p\n", numPaths, pathNameType, paths, pathBase, reference, mask, coverMode, transformType, transformValues );
+    if ((status = UNIX_CALL( glStencilThenCoverStrokePathInstancedNV, &args ))) WARN( "glStencilThenCoverStrokePathInstancedNV returned %#x\n", status );
+}
+
+static void WINAPI glStencilThenCoverStrokePathNV( GLuint path, GLint reference, GLuint mask, GLenum coverMode )
+{
+    struct glStencilThenCoverStrokePathNV_params args = { .path = path, .reference = reference, .mask = mask, .coverMode = coverMode, };
+    NTSTATUS status;
+    TRACE( "path %d, reference %d, mask %d, coverMode %d\n", path, reference, mask, coverMode );
+    if ((status = UNIX_CALL( glStencilThenCoverStrokePathNV, &args ))) WARN( "glStencilThenCoverStrokePathNV returned %#x\n", status );
+}
+
+static void WINAPI glStopInstrumentsSGIX( GLint marker )
+{
+    struct glStopInstrumentsSGIX_params args = { .marker = marker, };
+    NTSTATUS status;
+    TRACE( "marker %d\n", marker );
+    if ((status = UNIX_CALL( glStopInstrumentsSGIX, &args ))) WARN( "glStopInstrumentsSGIX returned %#x\n", status );
+}
+
+static void WINAPI glStringMarkerGREMEDY( GLsizei len, const void *string )
+{
+    struct glStringMarkerGREMEDY_params args = { .len = len, .string = string, };
+    NTSTATUS status;
+    TRACE( "len %d, string %p\n", len, string );
+    if ((status = UNIX_CALL( glStringMarkerGREMEDY, &args ))) WARN( "glStringMarkerGREMEDY returned %#x\n", status );
+}
+
+static void WINAPI glSubpixelPrecisionBiasNV( GLuint xbits, GLuint ybits )
+{
+    struct glSubpixelPrecisionBiasNV_params args = { .xbits = xbits, .ybits = ybits, };
+    NTSTATUS status;
+    TRACE( "xbits %d, ybits %d\n", xbits, ybits );
+    if ((status = UNIX_CALL( glSubpixelPrecisionBiasNV, &args ))) WARN( "glSubpixelPrecisionBiasNV returned %#x\n", status );
+}
+
+static void WINAPI glSwizzleEXT( GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW )
+{
+    struct glSwizzleEXT_params args = { .res = res, .in = in, .outX = outX, .outY = outY, .outZ = outZ, .outW = outW, };
+    NTSTATUS status;
+    TRACE( "res %d, in %d, outX %d, outY %d, outZ %d, outW %d\n", res, in, outX, outY, outZ, outW );
+    if ((status = UNIX_CALL( glSwizzleEXT, &args ))) WARN( "glSwizzleEXT returned %#x\n", status );
+}
+
+static void WINAPI glSyncTextureINTEL( GLuint texture )
+{
+    struct glSyncTextureINTEL_params args = { .texture = texture, };
+    NTSTATUS status;
+    TRACE( "texture %d\n", texture );
+    if ((status = UNIX_CALL( glSyncTextureINTEL, &args ))) WARN( "glSyncTextureINTEL returned %#x\n", status );
+}
+
+static void WINAPI glTagSampleBufferSGIX(void)
+{
+    struct glTagSampleBufferSGIX_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glTagSampleBufferSGIX, &args ))) WARN( "glTagSampleBufferSGIX returned %#x\n", status );
+}
+
+static void WINAPI glTangent3bEXT( GLbyte tx, GLbyte ty, GLbyte tz )
+{
+    struct glTangent3bEXT_params args = { .tx = tx, .ty = ty, .tz = tz, };
+    NTSTATUS status;
+    TRACE( "tx %d, ty %d, tz %d\n", tx, ty, tz );
+    if ((status = UNIX_CALL( glTangent3bEXT, &args ))) WARN( "glTangent3bEXT returned %#x\n", status );
+}
+
+static void WINAPI glTangent3bvEXT( const GLbyte *v )
+{
+    struct glTangent3bvEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glTangent3bvEXT, &args ))) WARN( "glTangent3bvEXT returned %#x\n", status );
+}
+
+static void WINAPI glTangent3dEXT( GLdouble tx, GLdouble ty, GLdouble tz )
+{
+    struct glTangent3dEXT_params args = { .tx = tx, .ty = ty, .tz = tz, };
+    NTSTATUS status;
+    TRACE( "tx %f, ty %f, tz %f\n", tx, ty, tz );
+    if ((status = UNIX_CALL( glTangent3dEXT, &args ))) WARN( "glTangent3dEXT returned %#x\n", status );
+}
+
+static void WINAPI glTangent3dvEXT( const GLdouble *v )
+{
+    struct glTangent3dvEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glTangent3dvEXT, &args ))) WARN( "glTangent3dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glTangent3fEXT( GLfloat tx, GLfloat ty, GLfloat tz )
+{
+    struct glTangent3fEXT_params args = { .tx = tx, .ty = ty, .tz = tz, };
+    NTSTATUS status;
+    TRACE( "tx %f, ty %f, tz %f\n", tx, ty, tz );
+    if ((status = UNIX_CALL( glTangent3fEXT, &args ))) WARN( "glTangent3fEXT returned %#x\n", status );
+}
+
+static void WINAPI glTangent3fvEXT( const GLfloat *v )
+{
+    struct glTangent3fvEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glTangent3fvEXT, &args ))) WARN( "glTangent3fvEXT returned %#x\n", status );
+}
+
+static void WINAPI glTangent3iEXT( GLint tx, GLint ty, GLint tz )
+{
+    struct glTangent3iEXT_params args = { .tx = tx, .ty = ty, .tz = tz, };
+    NTSTATUS status;
+    TRACE( "tx %d, ty %d, tz %d\n", tx, ty, tz );
+    if ((status = UNIX_CALL( glTangent3iEXT, &args ))) WARN( "glTangent3iEXT returned %#x\n", status );
+}
+
+static void WINAPI glTangent3ivEXT( const GLint *v )
+{
+    struct glTangent3ivEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glTangent3ivEXT, &args ))) WARN( "glTangent3ivEXT returned %#x\n", status );
+}
+
+static void WINAPI glTangent3sEXT( GLshort tx, GLshort ty, GLshort tz )
+{
+    struct glTangent3sEXT_params args = { .tx = tx, .ty = ty, .tz = tz, };
+    NTSTATUS status;
+    TRACE( "tx %d, ty %d, tz %d\n", tx, ty, tz );
+    if ((status = UNIX_CALL( glTangent3sEXT, &args ))) WARN( "glTangent3sEXT returned %#x\n", status );
+}
+
+static void WINAPI glTangent3svEXT( const GLshort *v )
+{
+    struct glTangent3svEXT_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glTangent3svEXT, &args ))) WARN( "glTangent3svEXT returned %#x\n", status );
+}
+
+static void WINAPI glTangentPointerEXT( GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glTangentPointerEXT_params args = { .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "type %d, stride %d, pointer %p\n", type, stride, pointer );
+    if ((status = UNIX_CALL( glTangentPointerEXT, &args ))) WARN( "glTangentPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glTbufferMask3DFX( GLuint mask )
+{
+    struct glTbufferMask3DFX_params args = { .mask = mask, };
+    NTSTATUS status;
+    TRACE( "mask %d\n", mask );
+    if ((status = UNIX_CALL( glTbufferMask3DFX, &args ))) WARN( "glTbufferMask3DFX returned %#x\n", status );
+}
+
+static void WINAPI glTessellationFactorAMD( GLfloat factor )
+{
+    struct glTessellationFactorAMD_params args = { .factor = factor, };
+    NTSTATUS status;
+    TRACE( "factor %f\n", factor );
+    if ((status = UNIX_CALL( glTessellationFactorAMD, &args ))) WARN( "glTessellationFactorAMD returned %#x\n", status );
+}
+
+static void WINAPI glTessellationModeAMD( GLenum mode )
+{
+    struct glTessellationModeAMD_params args = { .mode = mode, };
+    NTSTATUS status;
+    TRACE( "mode %d\n", mode );
+    if ((status = UNIX_CALL( glTessellationModeAMD, &args ))) WARN( "glTessellationModeAMD returned %#x\n", status );
+}
+
+static GLboolean WINAPI glTestFenceAPPLE( GLuint fence )
+{
+    struct glTestFenceAPPLE_params args = { .fence = fence, };
+    NTSTATUS status;
+    TRACE( "fence %d\n", fence );
+    if ((status = UNIX_CALL( glTestFenceAPPLE, &args ))) WARN( "glTestFenceAPPLE returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glTestFenceNV( GLuint fence )
+{
+    struct glTestFenceNV_params args = { .fence = fence, };
+    NTSTATUS status;
+    TRACE( "fence %d\n", fence );
+    if ((status = UNIX_CALL( glTestFenceNV, &args ))) WARN( "glTestFenceNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glTestObjectAPPLE( GLenum object, GLuint name )
+{
+    struct glTestObjectAPPLE_params args = { .object = object, .name = name, };
+    NTSTATUS status;
+    TRACE( "object %d, name %d\n", object, name );
+    if ((status = UNIX_CALL( glTestObjectAPPLE, &args ))) WARN( "glTestObjectAPPLE returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glTexAttachMemoryNV( GLenum target, GLuint memory, GLuint64 offset )
+{
+    struct glTexAttachMemoryNV_params args = { .target = target, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "target %d, memory %d, offset %s\n", target, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glTexAttachMemoryNV, &args ))) WARN( "glTexAttachMemoryNV returned %#x\n", status );
+}
+
+static void WINAPI glTexBuffer( GLenum target, GLenum internalformat, GLuint buffer )
+{
+    struct glTexBuffer_params args = { .target = target, .internalformat = internalformat, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, buffer %d\n", target, internalformat, buffer );
+    if ((status = UNIX_CALL( glTexBuffer, &args ))) WARN( "glTexBuffer returned %#x\n", status );
+}
+
+static void WINAPI glTexBufferARB( GLenum target, GLenum internalformat, GLuint buffer )
+{
+    struct glTexBufferARB_params args = { .target = target, .internalformat = internalformat, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, buffer %d\n", target, internalformat, buffer );
+    if ((status = UNIX_CALL( glTexBufferARB, &args ))) WARN( "glTexBufferARB returned %#x\n", status );
+}
+
+static void WINAPI glTexBufferEXT( GLenum target, GLenum internalformat, GLuint buffer )
+{
+    struct glTexBufferEXT_params args = { .target = target, .internalformat = internalformat, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, buffer %d\n", target, internalformat, buffer );
+    if ((status = UNIX_CALL( glTexBufferEXT, &args ))) WARN( "glTexBufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexBufferRange( GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size )
+{
+    struct glTexBufferRange_params args = { .target = target, .internalformat = internalformat, .buffer = buffer, .offset = offset, .size = size, };
+    NTSTATUS status;
+    TRACE( "target %d, internalformat %d, buffer %d, offset %ld, size %ld\n", target, internalformat, buffer, offset, size );
+    if ((status = UNIX_CALL( glTexBufferRange, &args ))) WARN( "glTexBufferRange returned %#x\n", status );
+}
+
+static void WINAPI glTexBumpParameterfvATI( GLenum pname, const GLfloat *param )
+{
+    struct glTexBumpParameterfvATI_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %p\n", pname, param );
+    if ((status = UNIX_CALL( glTexBumpParameterfvATI, &args ))) WARN( "glTexBumpParameterfvATI returned %#x\n", status );
+}
+
+static void WINAPI glTexBumpParameterivATI( GLenum pname, const GLint *param )
+{
+    struct glTexBumpParameterivATI_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %p\n", pname, param );
+    if ((status = UNIX_CALL( glTexBumpParameterivATI, &args ))) WARN( "glTexBumpParameterivATI returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord1bOES( GLbyte s )
+{
+    struct glTexCoord1bOES_params args = { .s = s, };
+    NTSTATUS status;
+    TRACE( "s %d\n", s );
+    if ((status = UNIX_CALL( glTexCoord1bOES, &args ))) WARN( "glTexCoord1bOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord1bvOES( const GLbyte *coords )
+{
+    struct glTexCoord1bvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glTexCoord1bvOES, &args ))) WARN( "glTexCoord1bvOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord1hNV( GLhalfNV s )
+{
+    struct glTexCoord1hNV_params args = { .s = s, };
+    NTSTATUS status;
+    TRACE( "s %d\n", s );
+    if ((status = UNIX_CALL( glTexCoord1hNV, &args ))) WARN( "glTexCoord1hNV returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord1hvNV( const GLhalfNV *v )
+{
+    struct glTexCoord1hvNV_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glTexCoord1hvNV, &args ))) WARN( "glTexCoord1hvNV returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord1xOES( GLfixed s )
+{
+    struct glTexCoord1xOES_params args = { .s = s, };
+    NTSTATUS status;
+    TRACE( "s %d\n", s );
+    if ((status = UNIX_CALL( glTexCoord1xOES, &args ))) WARN( "glTexCoord1xOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord1xvOES( const GLfixed *coords )
+{
+    struct glTexCoord1xvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glTexCoord1xvOES, &args ))) WARN( "glTexCoord1xvOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2bOES( GLbyte s, GLbyte t )
+{
+    struct glTexCoord2bOES_params args = { .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "s %d, t %d\n", s, t );
+    if ((status = UNIX_CALL( glTexCoord2bOES, &args ))) WARN( "glTexCoord2bOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2bvOES( const GLbyte *coords )
+{
+    struct glTexCoord2bvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glTexCoord2bvOES, &args ))) WARN( "glTexCoord2bvOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2fColor3fVertex3fSUN( GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glTexCoord2fColor3fVertex3fSUN_params args = { .s = s, .t = t, .r = r, .g = g, .b = b, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "s %f, t %f, r %f, g %f, b %f, x %f, y %f, z %f\n", s, t, r, g, b, x, y, z );
+    if ((status = UNIX_CALL( glTexCoord2fColor3fVertex3fSUN, &args ))) WARN( "glTexCoord2fColor3fVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2fColor3fVertex3fvSUN( const GLfloat *tc, const GLfloat *c, const GLfloat *v )
+{
+    struct glTexCoord2fColor3fVertex3fvSUN_params args = { .tc = tc, .c = c, .v = v, };
+    NTSTATUS status;
+    TRACE( "tc %p, c %p, v %p\n", tc, c, v );
+    if ((status = UNIX_CALL( glTexCoord2fColor3fVertex3fvSUN, &args ))) WARN( "glTexCoord2fColor3fVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2fColor4fNormal3fVertex3fSUN( GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glTexCoord2fColor4fNormal3fVertex3fSUN_params args = { .s = s, .t = t, .r = r, .g = g, .b = b, .a = a, .nx = nx, .ny = ny, .nz = nz, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "s %f, t %f, r %f, g %f, b %f, a %f, nx %f, ny %f, nz %f, x %f, y %f, z %f\n", s, t, r, g, b, a, nx, ny, nz, x, y, z );
+    if ((status = UNIX_CALL( glTexCoord2fColor4fNormal3fVertex3fSUN, &args ))) WARN( "glTexCoord2fColor4fNormal3fVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2fColor4fNormal3fVertex3fvSUN( const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v )
+{
+    struct glTexCoord2fColor4fNormal3fVertex3fvSUN_params args = { .tc = tc, .c = c, .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "tc %p, c %p, n %p, v %p\n", tc, c, n, v );
+    if ((status = UNIX_CALL( glTexCoord2fColor4fNormal3fVertex3fvSUN, &args ))) WARN( "glTexCoord2fColor4fNormal3fVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2fColor4ubVertex3fSUN( GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glTexCoord2fColor4ubVertex3fSUN_params args = { .s = s, .t = t, .r = r, .g = g, .b = b, .a = a, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "s %f, t %f, r %d, g %d, b %d, a %d, x %f, y %f, z %f\n", s, t, r, g, b, a, x, y, z );
+    if ((status = UNIX_CALL( glTexCoord2fColor4ubVertex3fSUN, &args ))) WARN( "glTexCoord2fColor4ubVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2fColor4ubVertex3fvSUN( const GLfloat *tc, const GLubyte *c, const GLfloat *v )
+{
+    struct glTexCoord2fColor4ubVertex3fvSUN_params args = { .tc = tc, .c = c, .v = v, };
+    NTSTATUS status;
+    TRACE( "tc %p, c %p, v %p\n", tc, c, v );
+    if ((status = UNIX_CALL( glTexCoord2fColor4ubVertex3fvSUN, &args ))) WARN( "glTexCoord2fColor4ubVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2fNormal3fVertex3fSUN( GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glTexCoord2fNormal3fVertex3fSUN_params args = { .s = s, .t = t, .nx = nx, .ny = ny, .nz = nz, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "s %f, t %f, nx %f, ny %f, nz %f, x %f, y %f, z %f\n", s, t, nx, ny, nz, x, y, z );
+    if ((status = UNIX_CALL( glTexCoord2fNormal3fVertex3fSUN, &args ))) WARN( "glTexCoord2fNormal3fVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2fNormal3fVertex3fvSUN( const GLfloat *tc, const GLfloat *n, const GLfloat *v )
+{
+    struct glTexCoord2fNormal3fVertex3fvSUN_params args = { .tc = tc, .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "tc %p, n %p, v %p\n", tc, n, v );
+    if ((status = UNIX_CALL( glTexCoord2fNormal3fVertex3fvSUN, &args ))) WARN( "glTexCoord2fNormal3fVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2fVertex3fSUN( GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glTexCoord2fVertex3fSUN_params args = { .s = s, .t = t, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "s %f, t %f, x %f, y %f, z %f\n", s, t, x, y, z );
+    if ((status = UNIX_CALL( glTexCoord2fVertex3fSUN, &args ))) WARN( "glTexCoord2fVertex3fSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2fVertex3fvSUN( const GLfloat *tc, const GLfloat *v )
+{
+    struct glTexCoord2fVertex3fvSUN_params args = { .tc = tc, .v = v, };
+    NTSTATUS status;
+    TRACE( "tc %p, v %p\n", tc, v );
+    if ((status = UNIX_CALL( glTexCoord2fVertex3fvSUN, &args ))) WARN( "glTexCoord2fVertex3fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2hNV( GLhalfNV s, GLhalfNV t )
+{
+    struct glTexCoord2hNV_params args = { .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "s %d, t %d\n", s, t );
+    if ((status = UNIX_CALL( glTexCoord2hNV, &args ))) WARN( "glTexCoord2hNV returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2hvNV( const GLhalfNV *v )
+{
+    struct glTexCoord2hvNV_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glTexCoord2hvNV, &args ))) WARN( "glTexCoord2hvNV returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2xOES( GLfixed s, GLfixed t )
+{
+    struct glTexCoord2xOES_params args = { .s = s, .t = t, };
+    NTSTATUS status;
+    TRACE( "s %d, t %d\n", s, t );
+    if ((status = UNIX_CALL( glTexCoord2xOES, &args ))) WARN( "glTexCoord2xOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord2xvOES( const GLfixed *coords )
+{
+    struct glTexCoord2xvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glTexCoord2xvOES, &args ))) WARN( "glTexCoord2xvOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord3bOES( GLbyte s, GLbyte t, GLbyte r )
+{
+    struct glTexCoord3bOES_params args = { .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "s %d, t %d, r %d\n", s, t, r );
+    if ((status = UNIX_CALL( glTexCoord3bOES, &args ))) WARN( "glTexCoord3bOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord3bvOES( const GLbyte *coords )
+{
+    struct glTexCoord3bvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glTexCoord3bvOES, &args ))) WARN( "glTexCoord3bvOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord3hNV( GLhalfNV s, GLhalfNV t, GLhalfNV r )
+{
+    struct glTexCoord3hNV_params args = { .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "s %d, t %d, r %d\n", s, t, r );
+    if ((status = UNIX_CALL( glTexCoord3hNV, &args ))) WARN( "glTexCoord3hNV returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord3hvNV( const GLhalfNV *v )
+{
+    struct glTexCoord3hvNV_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glTexCoord3hvNV, &args ))) WARN( "glTexCoord3hvNV returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord3xOES( GLfixed s, GLfixed t, GLfixed r )
+{
+    struct glTexCoord3xOES_params args = { .s = s, .t = t, .r = r, };
+    NTSTATUS status;
+    TRACE( "s %d, t %d, r %d\n", s, t, r );
+    if ((status = UNIX_CALL( glTexCoord3xOES, &args ))) WARN( "glTexCoord3xOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord3xvOES( const GLfixed *coords )
+{
+    struct glTexCoord3xvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glTexCoord3xvOES, &args ))) WARN( "glTexCoord3xvOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord4bOES( GLbyte s, GLbyte t, GLbyte r, GLbyte q )
+{
+    struct glTexCoord4bOES_params args = { .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "s %d, t %d, r %d, q %d\n", s, t, r, q );
+    if ((status = UNIX_CALL( glTexCoord4bOES, &args ))) WARN( "glTexCoord4bOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord4bvOES( const GLbyte *coords )
+{
+    struct glTexCoord4bvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glTexCoord4bvOES, &args ))) WARN( "glTexCoord4bvOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord4fColor4fNormal3fVertex4fSUN( GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
+{
+    struct glTexCoord4fColor4fNormal3fVertex4fSUN_params args = { .s = s, .t = t, .p = p, .q = q, .r = r, .g = g, .b = b, .a = a, .nx = nx, .ny = ny, .nz = nz, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "s %f, t %f, p %f, q %f, r %f, g %f, b %f, a %f, nx %f, ny %f, nz %f, x %f, y %f, z %f, w %f\n", s, t, p, q, r, g, b, a, nx, ny, nz, x, y, z, w );
+    if ((status = UNIX_CALL( glTexCoord4fColor4fNormal3fVertex4fSUN, &args ))) WARN( "glTexCoord4fColor4fNormal3fVertex4fSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord4fColor4fNormal3fVertex4fvSUN( const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v )
+{
+    struct glTexCoord4fColor4fNormal3fVertex4fvSUN_params args = { .tc = tc, .c = c, .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "tc %p, c %p, n %p, v %p\n", tc, c, n, v );
+    if ((status = UNIX_CALL( glTexCoord4fColor4fNormal3fVertex4fvSUN, &args ))) WARN( "glTexCoord4fColor4fNormal3fVertex4fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord4fVertex4fSUN( GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
+{
+    struct glTexCoord4fVertex4fSUN_params args = { .s = s, .t = t, .p = p, .q = q, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "s %f, t %f, p %f, q %f, x %f, y %f, z %f, w %f\n", s, t, p, q, x, y, z, w );
+    if ((status = UNIX_CALL( glTexCoord4fVertex4fSUN, &args ))) WARN( "glTexCoord4fVertex4fSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord4fVertex4fvSUN( const GLfloat *tc, const GLfloat *v )
+{
+    struct glTexCoord4fVertex4fvSUN_params args = { .tc = tc, .v = v, };
+    NTSTATUS status;
+    TRACE( "tc %p, v %p\n", tc, v );
+    if ((status = UNIX_CALL( glTexCoord4fVertex4fvSUN, &args ))) WARN( "glTexCoord4fVertex4fvSUN returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord4hNV( GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q )
+{
+    struct glTexCoord4hNV_params args = { .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "s %d, t %d, r %d, q %d\n", s, t, r, q );
+    if ((status = UNIX_CALL( glTexCoord4hNV, &args ))) WARN( "glTexCoord4hNV returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord4hvNV( const GLhalfNV *v )
+{
+    struct glTexCoord4hvNV_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glTexCoord4hvNV, &args ))) WARN( "glTexCoord4hvNV returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord4xOES( GLfixed s, GLfixed t, GLfixed r, GLfixed q )
+{
+    struct glTexCoord4xOES_params args = { .s = s, .t = t, .r = r, .q = q, };
+    NTSTATUS status;
+    TRACE( "s %d, t %d, r %d, q %d\n", s, t, r, q );
+    if ((status = UNIX_CALL( glTexCoord4xOES, &args ))) WARN( "glTexCoord4xOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoord4xvOES( const GLfixed *coords )
+{
+    struct glTexCoord4xvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glTexCoord4xvOES, &args ))) WARN( "glTexCoord4xvOES returned %#x\n", status );
+}
+
+static void WINAPI glTexCoordFormatNV( GLint size, GLenum type, GLsizei stride )
+{
+    struct glTexCoordFormatNV_params args = { .size = size, .type = type, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d\n", size, type, stride );
+    if ((status = UNIX_CALL( glTexCoordFormatNV, &args ))) WARN( "glTexCoordFormatNV returned %#x\n", status );
+}
+
+static void WINAPI glTexCoordP1ui( GLenum type, GLuint coords )
+{
+    struct glTexCoordP1ui_params args = { .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "type %d, coords %d\n", type, coords );
+    if ((status = UNIX_CALL( glTexCoordP1ui, &args ))) WARN( "glTexCoordP1ui returned %#x\n", status );
+}
+
+static void WINAPI glTexCoordP1uiv( GLenum type, const GLuint *coords )
+{
+    struct glTexCoordP1uiv_params args = { .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "type %d, coords %p\n", type, coords );
+    if ((status = UNIX_CALL( glTexCoordP1uiv, &args ))) WARN( "glTexCoordP1uiv returned %#x\n", status );
+}
+
+static void WINAPI glTexCoordP2ui( GLenum type, GLuint coords )
+{
+    struct glTexCoordP2ui_params args = { .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "type %d, coords %d\n", type, coords );
+    if ((status = UNIX_CALL( glTexCoordP2ui, &args ))) WARN( "glTexCoordP2ui returned %#x\n", status );
+}
+
+static void WINAPI glTexCoordP2uiv( GLenum type, const GLuint *coords )
+{
+    struct glTexCoordP2uiv_params args = { .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "type %d, coords %p\n", type, coords );
+    if ((status = UNIX_CALL( glTexCoordP2uiv, &args ))) WARN( "glTexCoordP2uiv returned %#x\n", status );
+}
+
+static void WINAPI glTexCoordP3ui( GLenum type, GLuint coords )
+{
+    struct glTexCoordP3ui_params args = { .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "type %d, coords %d\n", type, coords );
+    if ((status = UNIX_CALL( glTexCoordP3ui, &args ))) WARN( "glTexCoordP3ui returned %#x\n", status );
+}
+
+static void WINAPI glTexCoordP3uiv( GLenum type, const GLuint *coords )
+{
+    struct glTexCoordP3uiv_params args = { .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "type %d, coords %p\n", type, coords );
+    if ((status = UNIX_CALL( glTexCoordP3uiv, &args ))) WARN( "glTexCoordP3uiv returned %#x\n", status );
+}
+
+static void WINAPI glTexCoordP4ui( GLenum type, GLuint coords )
+{
+    struct glTexCoordP4ui_params args = { .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "type %d, coords %d\n", type, coords );
+    if ((status = UNIX_CALL( glTexCoordP4ui, &args ))) WARN( "glTexCoordP4ui returned %#x\n", status );
+}
+
+static void WINAPI glTexCoordP4uiv( GLenum type, const GLuint *coords )
+{
+    struct glTexCoordP4uiv_params args = { .type = type, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "type %d, coords %p\n", type, coords );
+    if ((status = UNIX_CALL( glTexCoordP4uiv, &args ))) WARN( "glTexCoordP4uiv returned %#x\n", status );
+}
+
+static void WINAPI glTexCoordPointerEXT( GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer )
+{
+    struct glTexCoordPointerEXT_params args = { .size = size, .type = type, .stride = stride, .count = count, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d, count %d, pointer %p\n", size, type, stride, count, pointer );
+    if ((status = UNIX_CALL( glTexCoordPointerEXT, &args ))) WARN( "glTexCoordPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexCoordPointerListIBM( GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride )
+{
+    struct glTexCoordPointerListIBM_params args = { .size = size, .type = type, .stride = stride, .pointer = pointer, .ptrstride = ptrstride, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d, pointer %p, ptrstride %d\n", size, type, stride, pointer, ptrstride );
+    if ((status = UNIX_CALL( glTexCoordPointerListIBM, &args ))) WARN( "glTexCoordPointerListIBM returned %#x\n", status );
+}
+
+static void WINAPI glTexCoordPointervINTEL( GLint size, GLenum type, const void **pointer )
+{
+    struct glTexCoordPointervINTEL_params args = { .size = size, .type = type, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, pointer %p\n", size, type, pointer );
+    if ((status = UNIX_CALL( glTexCoordPointervINTEL, &args ))) WARN( "glTexCoordPointervINTEL returned %#x\n", status );
+}
+
+static void WINAPI glTexEnvxOES( GLenum target, GLenum pname, GLfixed param )
+{
+    struct glTexEnvxOES_params args = { .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, param %d\n", target, pname, param );
+    if ((status = UNIX_CALL( glTexEnvxOES, &args ))) WARN( "glTexEnvxOES returned %#x\n", status );
+}
+
+static void WINAPI glTexEnvxvOES( GLenum target, GLenum pname, const GLfixed *params )
+{
+    struct glTexEnvxvOES_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glTexEnvxvOES, &args ))) WARN( "glTexEnvxvOES returned %#x\n", status );
+}
+
+static void WINAPI glTexFilterFuncSGIS( GLenum target, GLenum filter, GLsizei n, const GLfloat *weights )
+{
+    struct glTexFilterFuncSGIS_params args = { .target = target, .filter = filter, .n = n, .weights = weights, };
+    NTSTATUS status;
+    TRACE( "target %d, filter %d, n %d, weights %p\n", target, filter, n, weights );
+    if ((status = UNIX_CALL( glTexFilterFuncSGIS, &args ))) WARN( "glTexFilterFuncSGIS returned %#x\n", status );
+}
+
+static void WINAPI glTexGenxOES( GLenum coord, GLenum pname, GLfixed param )
+{
+    struct glTexGenxOES_params args = { .coord = coord, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "coord %d, pname %d, param %d\n", coord, pname, param );
+    if ((status = UNIX_CALL( glTexGenxOES, &args ))) WARN( "glTexGenxOES returned %#x\n", status );
+}
+
+static void WINAPI glTexGenxvOES( GLenum coord, GLenum pname, const GLfixed *params )
+{
+    struct glTexGenxvOES_params args = { .coord = coord, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "coord %d, pname %d, params %p\n", coord, pname, params );
+    if ((status = UNIX_CALL( glTexGenxvOES, &args ))) WARN( "glTexGenxvOES returned %#x\n", status );
+}
+
+static void WINAPI glTexImage2DMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations )
+{
+    struct glTexImage2DMultisample_params args = { .target = target, .samples = samples, .internalformat = internalformat, .width = width, .height = height, .fixedsamplelocations = fixedsamplelocations, };
+    NTSTATUS status;
+    TRACE( "target %d, samples %d, internalformat %d, width %d, height %d, fixedsamplelocations %d\n", target, samples, internalformat, width, height, fixedsamplelocations );
+    if ((status = UNIX_CALL( glTexImage2DMultisample, &args ))) WARN( "glTexImage2DMultisample returned %#x\n", status );
+}
+
+static void WINAPI glTexImage2DMultisampleCoverageNV( GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations )
+{
+    struct glTexImage2DMultisampleCoverageNV_params args = { .target = target, .coverageSamples = coverageSamples, .colorSamples = colorSamples, .internalFormat = internalFormat, .width = width, .height = height, .fixedSampleLocations = fixedSampleLocations, };
+    NTSTATUS status;
+    TRACE( "target %d, coverageSamples %d, colorSamples %d, internalFormat %d, width %d, height %d, fixedSampleLocations %d\n", target, coverageSamples, colorSamples, internalFormat, width, height, fixedSampleLocations );
+    if ((status = UNIX_CALL( glTexImage2DMultisampleCoverageNV, &args ))) WARN( "glTexImage2DMultisampleCoverageNV returned %#x\n", status );
+}
+
+static void WINAPI glTexImage3D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTexImage3D_params args = { .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .depth = depth, .border = border, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, internalformat %d, width %d, height %d, depth %d, border %d, format %d, type %d, pixels %p\n", target, level, internalformat, width, height, depth, border, format, type, pixels );
+    if ((status = UNIX_CALL( glTexImage3D, &args ))) WARN( "glTexImage3D returned %#x\n", status );
+}
+
+static void WINAPI glTexImage3DEXT( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTexImage3DEXT_params args = { .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .depth = depth, .border = border, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, internalformat %d, width %d, height %d, depth %d, border %d, format %d, type %d, pixels %p\n", target, level, internalformat, width, height, depth, border, format, type, pixels );
+    if ((status = UNIX_CALL( glTexImage3DEXT, &args ))) WARN( "glTexImage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexImage3DMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations )
+{
+    struct glTexImage3DMultisample_params args = { .target = target, .samples = samples, .internalformat = internalformat, .width = width, .height = height, .depth = depth, .fixedsamplelocations = fixedsamplelocations, };
+    NTSTATUS status;
+    TRACE( "target %d, samples %d, internalformat %d, width %d, height %d, depth %d, fixedsamplelocations %d\n", target, samples, internalformat, width, height, depth, fixedsamplelocations );
+    if ((status = UNIX_CALL( glTexImage3DMultisample, &args ))) WARN( "glTexImage3DMultisample returned %#x\n", status );
+}
+
+static void WINAPI glTexImage3DMultisampleCoverageNV( GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations )
+{
+    struct glTexImage3DMultisampleCoverageNV_params args = { .target = target, .coverageSamples = coverageSamples, .colorSamples = colorSamples, .internalFormat = internalFormat, .width = width, .height = height, .depth = depth, .fixedSampleLocations = fixedSampleLocations, };
+    NTSTATUS status;
+    TRACE( "target %d, coverageSamples %d, colorSamples %d, internalFormat %d, width %d, height %d, depth %d, fixedSampleLocations %d\n", target, coverageSamples, colorSamples, internalFormat, width, height, depth, fixedSampleLocations );
+    if ((status = UNIX_CALL( glTexImage3DMultisampleCoverageNV, &args ))) WARN( "glTexImage3DMultisampleCoverageNV returned %#x\n", status );
+}
+
+static void WINAPI glTexImage4DSGIS( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTexImage4DSGIS_params args = { .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .depth = depth, .size4d = size4d, .border = border, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, internalformat %d, width %d, height %d, depth %d, size4d %d, border %d, format %d, type %d, pixels %p\n", target, level, internalformat, width, height, depth, size4d, border, format, type, pixels );
+    if ((status = UNIX_CALL( glTexImage4DSGIS, &args ))) WARN( "glTexImage4DSGIS returned %#x\n", status );
+}
+
+static void WINAPI glTexPageCommitmentARB( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit )
+{
+    struct glTexPageCommitmentARB_params args = { .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .commit = commit, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, commit %d\n", target, level, xoffset, yoffset, zoffset, width, height, depth, commit );
+    if ((status = UNIX_CALL( glTexPageCommitmentARB, &args ))) WARN( "glTexPageCommitmentARB returned %#x\n", status );
+}
+
+static void WINAPI glTexParameterIiv( GLenum target, GLenum pname, const GLint *params )
+{
+    struct glTexParameterIiv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glTexParameterIiv, &args ))) WARN( "glTexParameterIiv returned %#x\n", status );
+}
+
+static void WINAPI glTexParameterIivEXT( GLenum target, GLenum pname, const GLint *params )
+{
+    struct glTexParameterIivEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glTexParameterIivEXT, &args ))) WARN( "glTexParameterIivEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexParameterIuiv( GLenum target, GLenum pname, const GLuint *params )
+{
+    struct glTexParameterIuiv_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glTexParameterIuiv, &args ))) WARN( "glTexParameterIuiv returned %#x\n", status );
+}
+
+static void WINAPI glTexParameterIuivEXT( GLenum target, GLenum pname, const GLuint *params )
+{
+    struct glTexParameterIuivEXT_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glTexParameterIuivEXT, &args ))) WARN( "glTexParameterIuivEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexParameterxOES( GLenum target, GLenum pname, GLfixed param )
+{
+    struct glTexParameterxOES_params args = { .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, param %d\n", target, pname, param );
+    if ((status = UNIX_CALL( glTexParameterxOES, &args ))) WARN( "glTexParameterxOES returned %#x\n", status );
+}
+
+static void WINAPI glTexParameterxvOES( GLenum target, GLenum pname, const GLfixed *params )
+{
+    struct glTexParameterxvOES_params args = { .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "target %d, pname %d, params %p\n", target, pname, params );
+    if ((status = UNIX_CALL( glTexParameterxvOES, &args ))) WARN( "glTexParameterxvOES returned %#x\n", status );
+}
+
+static void WINAPI glTexRenderbufferNV( GLenum target, GLuint renderbuffer )
+{
+    struct glTexRenderbufferNV_params args = { .target = target, .renderbuffer = renderbuffer, };
+    NTSTATUS status;
+    TRACE( "target %d, renderbuffer %d\n", target, renderbuffer );
+    if ((status = UNIX_CALL( glTexRenderbufferNV, &args ))) WARN( "glTexRenderbufferNV returned %#x\n", status );
+}
+
+static void WINAPI glTexStorage1D( GLenum target, GLsizei levels, GLenum internalformat, GLsizei width )
+{
+    struct glTexStorage1D_params args = { .target = target, .levels = levels, .internalformat = internalformat, .width = width, };
+    NTSTATUS status;
+    TRACE( "target %d, levels %d, internalformat %d, width %d\n", target, levels, internalformat, width );
+    if ((status = UNIX_CALL( glTexStorage1D, &args ))) WARN( "glTexStorage1D returned %#x\n", status );
+}
+
+static void WINAPI glTexStorage2D( GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glTexStorage2D_params args = { .target = target, .levels = levels, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "target %d, levels %d, internalformat %d, width %d, height %d\n", target, levels, internalformat, width, height );
+    if ((status = UNIX_CALL( glTexStorage2D, &args ))) WARN( "glTexStorage2D returned %#x\n", status );
+}
+
+static void WINAPI glTexStorage2DMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations )
+{
+    struct glTexStorage2DMultisample_params args = { .target = target, .samples = samples, .internalformat = internalformat, .width = width, .height = height, .fixedsamplelocations = fixedsamplelocations, };
+    NTSTATUS status;
+    TRACE( "target %d, samples %d, internalformat %d, width %d, height %d, fixedsamplelocations %d\n", target, samples, internalformat, width, height, fixedsamplelocations );
+    if ((status = UNIX_CALL( glTexStorage2DMultisample, &args ))) WARN( "glTexStorage2DMultisample returned %#x\n", status );
+}
+
+static void WINAPI glTexStorage3D( GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth )
+{
+    struct glTexStorage3D_params args = { .target = target, .levels = levels, .internalformat = internalformat, .width = width, .height = height, .depth = depth, };
+    NTSTATUS status;
+    TRACE( "target %d, levels %d, internalformat %d, width %d, height %d, depth %d\n", target, levels, internalformat, width, height, depth );
+    if ((status = UNIX_CALL( glTexStorage3D, &args ))) WARN( "glTexStorage3D returned %#x\n", status );
+}
+
+static void WINAPI glTexStorage3DMultisample( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations )
+{
+    struct glTexStorage3DMultisample_params args = { .target = target, .samples = samples, .internalformat = internalformat, .width = width, .height = height, .depth = depth, .fixedsamplelocations = fixedsamplelocations, };
+    NTSTATUS status;
+    TRACE( "target %d, samples %d, internalformat %d, width %d, height %d, depth %d, fixedsamplelocations %d\n", target, samples, internalformat, width, height, depth, fixedsamplelocations );
+    if ((status = UNIX_CALL( glTexStorage3DMultisample, &args ))) WARN( "glTexStorage3DMultisample returned %#x\n", status );
+}
+
+static void WINAPI glTexStorageMem1DEXT( GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset )
+{
+    struct glTexStorageMem1DEXT_params args = { .target = target, .levels = levels, .internalFormat = internalFormat, .width = width, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "target %d, levels %d, internalFormat %d, width %d, memory %d, offset %s\n", target, levels, internalFormat, width, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glTexStorageMem1DEXT, &args ))) WARN( "glTexStorageMem1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexStorageMem2DEXT( GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset )
+{
+    struct glTexStorageMem2DEXT_params args = { .target = target, .levels = levels, .internalFormat = internalFormat, .width = width, .height = height, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "target %d, levels %d, internalFormat %d, width %d, height %d, memory %d, offset %s\n", target, levels, internalFormat, width, height, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glTexStorageMem2DEXT, &args ))) WARN( "glTexStorageMem2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexStorageMem2DMultisampleEXT( GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset )
+{
+    struct glTexStorageMem2DMultisampleEXT_params args = { .target = target, .samples = samples, .internalFormat = internalFormat, .width = width, .height = height, .fixedSampleLocations = fixedSampleLocations, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "target %d, samples %d, internalFormat %d, width %d, height %d, fixedSampleLocations %d, memory %d, offset %s\n", target, samples, internalFormat, width, height, fixedSampleLocations, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glTexStorageMem2DMultisampleEXT, &args ))) WARN( "glTexStorageMem2DMultisampleEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexStorageMem3DEXT( GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset )
+{
+    struct glTexStorageMem3DEXT_params args = { .target = target, .levels = levels, .internalFormat = internalFormat, .width = width, .height = height, .depth = depth, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "target %d, levels %d, internalFormat %d, width %d, height %d, depth %d, memory %d, offset %s\n", target, levels, internalFormat, width, height, depth, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glTexStorageMem3DEXT, &args ))) WARN( "glTexStorageMem3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexStorageMem3DMultisampleEXT( GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset )
+{
+    struct glTexStorageMem3DMultisampleEXT_params args = { .target = target, .samples = samples, .internalFormat = internalFormat, .width = width, .height = height, .depth = depth, .fixedSampleLocations = fixedSampleLocations, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "target %d, samples %d, internalFormat %d, width %d, height %d, depth %d, fixedSampleLocations %d, memory %d, offset %s\n", target, samples, internalFormat, width, height, depth, fixedSampleLocations, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glTexStorageMem3DMultisampleEXT, &args ))) WARN( "glTexStorageMem3DMultisampleEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexStorageSparseAMD( GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags )
+{
+    struct glTexStorageSparseAMD_params args = { .target = target, .internalFormat = internalFormat, .width = width, .height = height, .depth = depth, .layers = layers, .flags = flags, };
+    NTSTATUS status;
+    TRACE( "target %d, internalFormat %d, width %d, height %d, depth %d, layers %d, flags %d\n", target, internalFormat, width, height, depth, layers, flags );
+    if ((status = UNIX_CALL( glTexStorageSparseAMD, &args ))) WARN( "glTexStorageSparseAMD returned %#x\n", status );
+}
+
+static void WINAPI glTexSubImage1DEXT( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTexSubImage1DEXT_params args = { .target = target, .level = level, .xoffset = xoffset, .width = width, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, width %d, format %d, type %d, pixels %p\n", target, level, xoffset, width, format, type, pixels );
+    if ((status = UNIX_CALL( glTexSubImage1DEXT, &args ))) WARN( "glTexSubImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexSubImage2DEXT( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTexSubImage2DEXT_params args = { .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .width = width, .height = height, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, yoffset %d, width %d, height %d, format %d, type %d, pixels %p\n", target, level, xoffset, yoffset, width, height, format, type, pixels );
+    if ((status = UNIX_CALL( glTexSubImage2DEXT, &args ))) WARN( "glTexSubImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTexSubImage3D_params args = { .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, format %d, type %d, pixels %p\n", target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
+    if ((status = UNIX_CALL( glTexSubImage3D, &args ))) WARN( "glTexSubImage3D returned %#x\n", status );
+}
+
+static void WINAPI glTexSubImage3DEXT( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTexSubImage3DEXT_params args = { .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, format %d, type %d, pixels %p\n", target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
+    if ((status = UNIX_CALL( glTexSubImage3DEXT, &args ))) WARN( "glTexSubImage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexSubImage4DSGIS( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTexSubImage4DSGIS_params args = { .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .woffset = woffset, .width = width, .height = height, .depth = depth, .size4d = size4d, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "target %d, level %d, xoffset %d, yoffset %d, zoffset %d, woffset %d, width %d, height %d, depth %d, size4d %d, format %d, type %d, pixels %p\n", target, level, xoffset, yoffset, zoffset, woffset, width, height, depth, size4d, format, type, pixels );
+    if ((status = UNIX_CALL( glTexSubImage4DSGIS, &args ))) WARN( "glTexSubImage4DSGIS returned %#x\n", status );
+}
+
+static void WINAPI glTextureAttachMemoryNV( GLuint texture, GLuint memory, GLuint64 offset )
+{
+    struct glTextureAttachMemoryNV_params args = { .texture = texture, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "texture %d, memory %d, offset %s\n", texture, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glTextureAttachMemoryNV, &args ))) WARN( "glTextureAttachMemoryNV returned %#x\n", status );
+}
+
+static void WINAPI glTextureBarrier(void)
+{
+    struct glTextureBarrier_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glTextureBarrier, &args ))) WARN( "glTextureBarrier returned %#x\n", status );
+}
+
+static void WINAPI glTextureBarrierNV(void)
+{
+    struct glTextureBarrierNV_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glTextureBarrierNV, &args ))) WARN( "glTextureBarrierNV returned %#x\n", status );
+}
+
+static void WINAPI glTextureBuffer( GLuint texture, GLenum internalformat, GLuint buffer )
+{
+    struct glTextureBuffer_params args = { .texture = texture, .internalformat = internalformat, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "texture %d, internalformat %d, buffer %d\n", texture, internalformat, buffer );
+    if ((status = UNIX_CALL( glTextureBuffer, &args ))) WARN( "glTextureBuffer returned %#x\n", status );
+}
+
+static void WINAPI glTextureBufferEXT( GLuint texture, GLenum target, GLenum internalformat, GLuint buffer )
+{
+    struct glTextureBufferEXT_params args = { .texture = texture, .target = target, .internalformat = internalformat, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, internalformat %d, buffer %d\n", texture, target, internalformat, buffer );
+    if ((status = UNIX_CALL( glTextureBufferEXT, &args ))) WARN( "glTextureBufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureBufferRange( GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size )
+{
+    struct glTextureBufferRange_params args = { .texture = texture, .internalformat = internalformat, .buffer = buffer, .offset = offset, .size = size, };
+    NTSTATUS status;
+    TRACE( "texture %d, internalformat %d, buffer %d, offset %ld, size %ld\n", texture, internalformat, buffer, offset, size );
+    if ((status = UNIX_CALL( glTextureBufferRange, &args ))) WARN( "glTextureBufferRange returned %#x\n", status );
+}
+
+static void WINAPI glTextureBufferRangeEXT( GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size )
+{
+    struct glTextureBufferRangeEXT_params args = { .texture = texture, .target = target, .internalformat = internalformat, .buffer = buffer, .offset = offset, .size = size, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, internalformat %d, buffer %d, offset %ld, size %ld\n", texture, target, internalformat, buffer, offset, size );
+    if ((status = UNIX_CALL( glTextureBufferRangeEXT, &args ))) WARN( "glTextureBufferRangeEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureColorMaskSGIS( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha )
+{
+    struct glTextureColorMaskSGIS_params args = { .red = red, .green = green, .blue = blue, .alpha = alpha, };
+    NTSTATUS status;
+    TRACE( "red %d, green %d, blue %d, alpha %d\n", red, green, blue, alpha );
+    if ((status = UNIX_CALL( glTextureColorMaskSGIS, &args ))) WARN( "glTextureColorMaskSGIS returned %#x\n", status );
+}
+
+static void WINAPI glTextureImage1DEXT( GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTextureImage1DEXT_params args = { .texture = texture, .target = target, .level = level, .internalformat = internalformat, .width = width, .border = border, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, internalformat %d, width %d, border %d, format %d, type %d, pixels %p\n", texture, target, level, internalformat, width, border, format, type, pixels );
+    if ((status = UNIX_CALL( glTextureImage1DEXT, &args ))) WARN( "glTextureImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureImage2DEXT( GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTextureImage2DEXT_params args = { .texture = texture, .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .border = border, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, internalformat %d, width %d, height %d, border %d, format %d, type %d, pixels %p\n", texture, target, level, internalformat, width, height, border, format, type, pixels );
+    if ((status = UNIX_CALL( glTextureImage2DEXT, &args ))) WARN( "glTextureImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureImage2DMultisampleCoverageNV( GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations )
+{
+    struct glTextureImage2DMultisampleCoverageNV_params args = { .texture = texture, .target = target, .coverageSamples = coverageSamples, .colorSamples = colorSamples, .internalFormat = internalFormat, .width = width, .height = height, .fixedSampleLocations = fixedSampleLocations, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, coverageSamples %d, colorSamples %d, internalFormat %d, width %d, height %d, fixedSampleLocations %d\n", texture, target, coverageSamples, colorSamples, internalFormat, width, height, fixedSampleLocations );
+    if ((status = UNIX_CALL( glTextureImage2DMultisampleCoverageNV, &args ))) WARN( "glTextureImage2DMultisampleCoverageNV returned %#x\n", status );
+}
+
+static void WINAPI glTextureImage2DMultisampleNV( GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations )
+{
+    struct glTextureImage2DMultisampleNV_params args = { .texture = texture, .target = target, .samples = samples, .internalFormat = internalFormat, .width = width, .height = height, .fixedSampleLocations = fixedSampleLocations, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, samples %d, internalFormat %d, width %d, height %d, fixedSampleLocations %d\n", texture, target, samples, internalFormat, width, height, fixedSampleLocations );
+    if ((status = UNIX_CALL( glTextureImage2DMultisampleNV, &args ))) WARN( "glTextureImage2DMultisampleNV returned %#x\n", status );
+}
+
+static void WINAPI glTextureImage3DEXT( GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTextureImage3DEXT_params args = { .texture = texture, .target = target, .level = level, .internalformat = internalformat, .width = width, .height = height, .depth = depth, .border = border, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, internalformat %d, width %d, height %d, depth %d, border %d, format %d, type %d, pixels %p\n", texture, target, level, internalformat, width, height, depth, border, format, type, pixels );
+    if ((status = UNIX_CALL( glTextureImage3DEXT, &args ))) WARN( "glTextureImage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureImage3DMultisampleCoverageNV( GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations )
+{
+    struct glTextureImage3DMultisampleCoverageNV_params args = { .texture = texture, .target = target, .coverageSamples = coverageSamples, .colorSamples = colorSamples, .internalFormat = internalFormat, .width = width, .height = height, .depth = depth, .fixedSampleLocations = fixedSampleLocations, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, coverageSamples %d, colorSamples %d, internalFormat %d, width %d, height %d, depth %d, fixedSampleLocations %d\n", texture, target, coverageSamples, colorSamples, internalFormat, width, height, depth, fixedSampleLocations );
+    if ((status = UNIX_CALL( glTextureImage3DMultisampleCoverageNV, &args ))) WARN( "glTextureImage3DMultisampleCoverageNV returned %#x\n", status );
+}
+
+static void WINAPI glTextureImage3DMultisampleNV( GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations )
+{
+    struct glTextureImage3DMultisampleNV_params args = { .texture = texture, .target = target, .samples = samples, .internalFormat = internalFormat, .width = width, .height = height, .depth = depth, .fixedSampleLocations = fixedSampleLocations, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, samples %d, internalFormat %d, width %d, height %d, depth %d, fixedSampleLocations %d\n", texture, target, samples, internalFormat, width, height, depth, fixedSampleLocations );
+    if ((status = UNIX_CALL( glTextureImage3DMultisampleNV, &args ))) WARN( "glTextureImage3DMultisampleNV returned %#x\n", status );
+}
+
+static void WINAPI glTextureLightEXT( GLenum pname )
+{
+    struct glTextureLightEXT_params args = { .pname = pname, };
+    NTSTATUS status;
+    TRACE( "pname %d\n", pname );
+    if ((status = UNIX_CALL( glTextureLightEXT, &args ))) WARN( "glTextureLightEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureMaterialEXT( GLenum face, GLenum mode )
+{
+    struct glTextureMaterialEXT_params args = { .face = face, .mode = mode, };
+    NTSTATUS status;
+    TRACE( "face %d, mode %d\n", face, mode );
+    if ((status = UNIX_CALL( glTextureMaterialEXT, &args ))) WARN( "glTextureMaterialEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureNormalEXT( GLenum mode )
+{
+    struct glTextureNormalEXT_params args = { .mode = mode, };
+    NTSTATUS status;
+    TRACE( "mode %d\n", mode );
+    if ((status = UNIX_CALL( glTextureNormalEXT, &args ))) WARN( "glTextureNormalEXT returned %#x\n", status );
+}
+
+static void WINAPI glTexturePageCommitmentEXT( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit )
+{
+    struct glTexturePageCommitmentEXT_params args = { .texture = texture, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .commit = commit, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, commit %d\n", texture, level, xoffset, yoffset, zoffset, width, height, depth, commit );
+    if ((status = UNIX_CALL( glTexturePageCommitmentEXT, &args ))) WARN( "glTexturePageCommitmentEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureParameterIiv( GLuint texture, GLenum pname, const GLint *params )
+{
+    struct glTextureParameterIiv_params args = { .texture = texture, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, pname %d, params %p\n", texture, pname, params );
+    if ((status = UNIX_CALL( glTextureParameterIiv, &args ))) WARN( "glTextureParameterIiv returned %#x\n", status );
+}
+
+static void WINAPI glTextureParameterIivEXT( GLuint texture, GLenum target, GLenum pname, const GLint *params )
+{
+    struct glTextureParameterIivEXT_params args = { .texture = texture, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, pname %d, params %p\n", texture, target, pname, params );
+    if ((status = UNIX_CALL( glTextureParameterIivEXT, &args ))) WARN( "glTextureParameterIivEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureParameterIuiv( GLuint texture, GLenum pname, const GLuint *params )
+{
+    struct glTextureParameterIuiv_params args = { .texture = texture, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, pname %d, params %p\n", texture, pname, params );
+    if ((status = UNIX_CALL( glTextureParameterIuiv, &args ))) WARN( "glTextureParameterIuiv returned %#x\n", status );
+}
+
+static void WINAPI glTextureParameterIuivEXT( GLuint texture, GLenum target, GLenum pname, const GLuint *params )
+{
+    struct glTextureParameterIuivEXT_params args = { .texture = texture, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, pname %d, params %p\n", texture, target, pname, params );
+    if ((status = UNIX_CALL( glTextureParameterIuivEXT, &args ))) WARN( "glTextureParameterIuivEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureParameterf( GLuint texture, GLenum pname, GLfloat param )
+{
+    struct glTextureParameterf_params args = { .texture = texture, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "texture %d, pname %d, param %f\n", texture, pname, param );
+    if ((status = UNIX_CALL( glTextureParameterf, &args ))) WARN( "glTextureParameterf returned %#x\n", status );
+}
+
+static void WINAPI glTextureParameterfEXT( GLuint texture, GLenum target, GLenum pname, GLfloat param )
+{
+    struct glTextureParameterfEXT_params args = { .texture = texture, .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, pname %d, param %f\n", texture, target, pname, param );
+    if ((status = UNIX_CALL( glTextureParameterfEXT, &args ))) WARN( "glTextureParameterfEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureParameterfv( GLuint texture, GLenum pname, const GLfloat *param )
+{
+    struct glTextureParameterfv_params args = { .texture = texture, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "texture %d, pname %d, param %p\n", texture, pname, param );
+    if ((status = UNIX_CALL( glTextureParameterfv, &args ))) WARN( "glTextureParameterfv returned %#x\n", status );
+}
+
+static void WINAPI glTextureParameterfvEXT( GLuint texture, GLenum target, GLenum pname, const GLfloat *params )
+{
+    struct glTextureParameterfvEXT_params args = { .texture = texture, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, pname %d, params %p\n", texture, target, pname, params );
+    if ((status = UNIX_CALL( glTextureParameterfvEXT, &args ))) WARN( "glTextureParameterfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureParameteri( GLuint texture, GLenum pname, GLint param )
+{
+    struct glTextureParameteri_params args = { .texture = texture, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "texture %d, pname %d, param %d\n", texture, pname, param );
+    if ((status = UNIX_CALL( glTextureParameteri, &args ))) WARN( "glTextureParameteri returned %#x\n", status );
+}
+
+static void WINAPI glTextureParameteriEXT( GLuint texture, GLenum target, GLenum pname, GLint param )
+{
+    struct glTextureParameteriEXT_params args = { .texture = texture, .target = target, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, pname %d, param %d\n", texture, target, pname, param );
+    if ((status = UNIX_CALL( glTextureParameteriEXT, &args ))) WARN( "glTextureParameteriEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureParameteriv( GLuint texture, GLenum pname, const GLint *param )
+{
+    struct glTextureParameteriv_params args = { .texture = texture, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "texture %d, pname %d, param %p\n", texture, pname, param );
+    if ((status = UNIX_CALL( glTextureParameteriv, &args ))) WARN( "glTextureParameteriv returned %#x\n", status );
+}
+
+static void WINAPI glTextureParameterivEXT( GLuint texture, GLenum target, GLenum pname, const GLint *params )
+{
+    struct glTextureParameterivEXT_params args = { .texture = texture, .target = target, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, pname %d, params %p\n", texture, target, pname, params );
+    if ((status = UNIX_CALL( glTextureParameterivEXT, &args ))) WARN( "glTextureParameterivEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureRangeAPPLE( GLenum target, GLsizei length, const void *pointer )
+{
+    struct glTextureRangeAPPLE_params args = { .target = target, .length = length, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "target %d, length %d, pointer %p\n", target, length, pointer );
+    if ((status = UNIX_CALL( glTextureRangeAPPLE, &args ))) WARN( "glTextureRangeAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glTextureRenderbufferEXT( GLuint texture, GLenum target, GLuint renderbuffer )
+{
+    struct glTextureRenderbufferEXT_params args = { .texture = texture, .target = target, .renderbuffer = renderbuffer, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, renderbuffer %d\n", texture, target, renderbuffer );
+    if ((status = UNIX_CALL( glTextureRenderbufferEXT, &args ))) WARN( "glTextureRenderbufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorage1D( GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width )
+{
+    struct glTextureStorage1D_params args = { .texture = texture, .levels = levels, .internalformat = internalformat, .width = width, };
+    NTSTATUS status;
+    TRACE( "texture %d, levels %d, internalformat %d, width %d\n", texture, levels, internalformat, width );
+    if ((status = UNIX_CALL( glTextureStorage1D, &args ))) WARN( "glTextureStorage1D returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorage1DEXT( GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width )
+{
+    struct glTextureStorage1DEXT_params args = { .texture = texture, .target = target, .levels = levels, .internalformat = internalformat, .width = width, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, levels %d, internalformat %d, width %d\n", texture, target, levels, internalformat, width );
+    if ((status = UNIX_CALL( glTextureStorage1DEXT, &args ))) WARN( "glTextureStorage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorage2D( GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glTextureStorage2D_params args = { .texture = texture, .levels = levels, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "texture %d, levels %d, internalformat %d, width %d, height %d\n", texture, levels, internalformat, width, height );
+    if ((status = UNIX_CALL( glTextureStorage2D, &args ))) WARN( "glTextureStorage2D returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorage2DEXT( GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height )
+{
+    struct glTextureStorage2DEXT_params args = { .texture = texture, .target = target, .levels = levels, .internalformat = internalformat, .width = width, .height = height, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, levels %d, internalformat %d, width %d, height %d\n", texture, target, levels, internalformat, width, height );
+    if ((status = UNIX_CALL( glTextureStorage2DEXT, &args ))) WARN( "glTextureStorage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorage2DMultisample( GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations )
+{
+    struct glTextureStorage2DMultisample_params args = { .texture = texture, .samples = samples, .internalformat = internalformat, .width = width, .height = height, .fixedsamplelocations = fixedsamplelocations, };
+    NTSTATUS status;
+    TRACE( "texture %d, samples %d, internalformat %d, width %d, height %d, fixedsamplelocations %d\n", texture, samples, internalformat, width, height, fixedsamplelocations );
+    if ((status = UNIX_CALL( glTextureStorage2DMultisample, &args ))) WARN( "glTextureStorage2DMultisample returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorage2DMultisampleEXT( GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations )
+{
+    struct glTextureStorage2DMultisampleEXT_params args = { .texture = texture, .target = target, .samples = samples, .internalformat = internalformat, .width = width, .height = height, .fixedsamplelocations = fixedsamplelocations, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, samples %d, internalformat %d, width %d, height %d, fixedsamplelocations %d\n", texture, target, samples, internalformat, width, height, fixedsamplelocations );
+    if ((status = UNIX_CALL( glTextureStorage2DMultisampleEXT, &args ))) WARN( "glTextureStorage2DMultisampleEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorage3D( GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth )
+{
+    struct glTextureStorage3D_params args = { .texture = texture, .levels = levels, .internalformat = internalformat, .width = width, .height = height, .depth = depth, };
+    NTSTATUS status;
+    TRACE( "texture %d, levels %d, internalformat %d, width %d, height %d, depth %d\n", texture, levels, internalformat, width, height, depth );
+    if ((status = UNIX_CALL( glTextureStorage3D, &args ))) WARN( "glTextureStorage3D returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorage3DEXT( GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth )
+{
+    struct glTextureStorage3DEXT_params args = { .texture = texture, .target = target, .levels = levels, .internalformat = internalformat, .width = width, .height = height, .depth = depth, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, levels %d, internalformat %d, width %d, height %d, depth %d\n", texture, target, levels, internalformat, width, height, depth );
+    if ((status = UNIX_CALL( glTextureStorage3DEXT, &args ))) WARN( "glTextureStorage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorage3DMultisample( GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations )
+{
+    struct glTextureStorage3DMultisample_params args = { .texture = texture, .samples = samples, .internalformat = internalformat, .width = width, .height = height, .depth = depth, .fixedsamplelocations = fixedsamplelocations, };
+    NTSTATUS status;
+    TRACE( "texture %d, samples %d, internalformat %d, width %d, height %d, depth %d, fixedsamplelocations %d\n", texture, samples, internalformat, width, height, depth, fixedsamplelocations );
+    if ((status = UNIX_CALL( glTextureStorage3DMultisample, &args ))) WARN( "glTextureStorage3DMultisample returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorage3DMultisampleEXT( GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations )
+{
+    struct glTextureStorage3DMultisampleEXT_params args = { .texture = texture, .target = target, .samples = samples, .internalformat = internalformat, .width = width, .height = height, .depth = depth, .fixedsamplelocations = fixedsamplelocations, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, samples %d, internalformat %d, width %d, height %d, depth %d, fixedsamplelocations %d\n", texture, target, samples, internalformat, width, height, depth, fixedsamplelocations );
+    if ((status = UNIX_CALL( glTextureStorage3DMultisampleEXT, &args ))) WARN( "glTextureStorage3DMultisampleEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorageMem1DEXT( GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset )
+{
+    struct glTextureStorageMem1DEXT_params args = { .texture = texture, .levels = levels, .internalFormat = internalFormat, .width = width, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "texture %d, levels %d, internalFormat %d, width %d, memory %d, offset %s\n", texture, levels, internalFormat, width, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glTextureStorageMem1DEXT, &args ))) WARN( "glTextureStorageMem1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorageMem2DEXT( GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset )
+{
+    struct glTextureStorageMem2DEXT_params args = { .texture = texture, .levels = levels, .internalFormat = internalFormat, .width = width, .height = height, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "texture %d, levels %d, internalFormat %d, width %d, height %d, memory %d, offset %s\n", texture, levels, internalFormat, width, height, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glTextureStorageMem2DEXT, &args ))) WARN( "glTextureStorageMem2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorageMem2DMultisampleEXT( GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset )
+{
+    struct glTextureStorageMem2DMultisampleEXT_params args = { .texture = texture, .samples = samples, .internalFormat = internalFormat, .width = width, .height = height, .fixedSampleLocations = fixedSampleLocations, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "texture %d, samples %d, internalFormat %d, width %d, height %d, fixedSampleLocations %d, memory %d, offset %s\n", texture, samples, internalFormat, width, height, fixedSampleLocations, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glTextureStorageMem2DMultisampleEXT, &args ))) WARN( "glTextureStorageMem2DMultisampleEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorageMem3DEXT( GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset )
+{
+    struct glTextureStorageMem3DEXT_params args = { .texture = texture, .levels = levels, .internalFormat = internalFormat, .width = width, .height = height, .depth = depth, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "texture %d, levels %d, internalFormat %d, width %d, height %d, depth %d, memory %d, offset %s\n", texture, levels, internalFormat, width, height, depth, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glTextureStorageMem3DEXT, &args ))) WARN( "glTextureStorageMem3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorageMem3DMultisampleEXT( GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset )
+{
+    struct glTextureStorageMem3DMultisampleEXT_params args = { .texture = texture, .samples = samples, .internalFormat = internalFormat, .width = width, .height = height, .depth = depth, .fixedSampleLocations = fixedSampleLocations, .memory = memory, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "texture %d, samples %d, internalFormat %d, width %d, height %d, depth %d, fixedSampleLocations %d, memory %d, offset %s\n", texture, samples, internalFormat, width, height, depth, fixedSampleLocations, memory, wine_dbgstr_longlong(offset) );
+    if ((status = UNIX_CALL( glTextureStorageMem3DMultisampleEXT, &args ))) WARN( "glTextureStorageMem3DMultisampleEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureStorageSparseAMD( GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags )
+{
+    struct glTextureStorageSparseAMD_params args = { .texture = texture, .target = target, .internalFormat = internalFormat, .width = width, .height = height, .depth = depth, .layers = layers, .flags = flags, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, internalFormat %d, width %d, height %d, depth %d, layers %d, flags %d\n", texture, target, internalFormat, width, height, depth, layers, flags );
+    if ((status = UNIX_CALL( glTextureStorageSparseAMD, &args ))) WARN( "glTextureStorageSparseAMD returned %#x\n", status );
+}
+
+static void WINAPI glTextureSubImage1D( GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTextureSubImage1D_params args = { .texture = texture, .level = level, .xoffset = xoffset, .width = width, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, width %d, format %d, type %d, pixels %p\n", texture, level, xoffset, width, format, type, pixels );
+    if ((status = UNIX_CALL( glTextureSubImage1D, &args ))) WARN( "glTextureSubImage1D returned %#x\n", status );
+}
+
+static void WINAPI glTextureSubImage1DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTextureSubImage1DEXT_params args = { .texture = texture, .target = target, .level = level, .xoffset = xoffset, .width = width, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, xoffset %d, width %d, format %d, type %d, pixels %p\n", texture, target, level, xoffset, width, format, type, pixels );
+    if ((status = UNIX_CALL( glTextureSubImage1DEXT, &args ))) WARN( "glTextureSubImage1DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureSubImage2D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTextureSubImage2D_params args = { .texture = texture, .level = level, .xoffset = xoffset, .yoffset = yoffset, .width = width, .height = height, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, yoffset %d, width %d, height %d, format %d, type %d, pixels %p\n", texture, level, xoffset, yoffset, width, height, format, type, pixels );
+    if ((status = UNIX_CALL( glTextureSubImage2D, &args ))) WARN( "glTextureSubImage2D returned %#x\n", status );
+}
+
+static void WINAPI glTextureSubImage2DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTextureSubImage2DEXT_params args = { .texture = texture, .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .width = width, .height = height, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, xoffset %d, yoffset %d, width %d, height %d, format %d, type %d, pixels %p\n", texture, target, level, xoffset, yoffset, width, height, format, type, pixels );
+    if ((status = UNIX_CALL( glTextureSubImage2DEXT, &args ))) WARN( "glTextureSubImage2DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureSubImage3D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTextureSubImage3D_params args = { .texture = texture, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, format %d, type %d, pixels %p\n", texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
+    if ((status = UNIX_CALL( glTextureSubImage3D, &args ))) WARN( "glTextureSubImage3D returned %#x\n", status );
+}
+
+static void WINAPI glTextureSubImage3DEXT( GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels )
+{
+    struct glTextureSubImage3DEXT_params args = { .texture = texture, .target = target, .level = level, .xoffset = xoffset, .yoffset = yoffset, .zoffset = zoffset, .width = width, .height = height, .depth = depth, .format = format, .type = type, .pixels = pixels, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, level %d, xoffset %d, yoffset %d, zoffset %d, width %d, height %d, depth %d, format %d, type %d, pixels %p\n", texture, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels );
+    if ((status = UNIX_CALL( glTextureSubImage3DEXT, &args ))) WARN( "glTextureSubImage3DEXT returned %#x\n", status );
+}
+
+static void WINAPI glTextureView( GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers )
+{
+    struct glTextureView_params args = { .texture = texture, .target = target, .origtexture = origtexture, .internalformat = internalformat, .minlevel = minlevel, .numlevels = numlevels, .minlayer = minlayer, .numlayers = numlayers, };
+    NTSTATUS status;
+    TRACE( "texture %d, target %d, origtexture %d, internalformat %d, minlevel %d, numlevels %d, minlayer %d, numlayers %d\n", texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers );
+    if ((status = UNIX_CALL( glTextureView, &args ))) WARN( "glTextureView returned %#x\n", status );
+}
+
+static void WINAPI glTrackMatrixNV( GLenum target, GLuint address, GLenum matrix, GLenum transform )
+{
+    struct glTrackMatrixNV_params args = { .target = target, .address = address, .matrix = matrix, .transform = transform, };
+    NTSTATUS status;
+    TRACE( "target %d, address %d, matrix %d, transform %d\n", target, address, matrix, transform );
+    if ((status = UNIX_CALL( glTrackMatrixNV, &args ))) WARN( "glTrackMatrixNV returned %#x\n", status );
+}
+
+static void WINAPI glTransformFeedbackAttribsNV( GLsizei count, const GLint *attribs, GLenum bufferMode )
+{
+    struct glTransformFeedbackAttribsNV_params args = { .count = count, .attribs = attribs, .bufferMode = bufferMode, };
+    NTSTATUS status;
+    TRACE( "count %d, attribs %p, bufferMode %d\n", count, attribs, bufferMode );
+    if ((status = UNIX_CALL( glTransformFeedbackAttribsNV, &args ))) WARN( "glTransformFeedbackAttribsNV returned %#x\n", status );
+}
+
+static void WINAPI glTransformFeedbackBufferBase( GLuint xfb, GLuint index, GLuint buffer )
+{
+    struct glTransformFeedbackBufferBase_params args = { .xfb = xfb, .index = index, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "xfb %d, index %d, buffer %d\n", xfb, index, buffer );
+    if ((status = UNIX_CALL( glTransformFeedbackBufferBase, &args ))) WARN( "glTransformFeedbackBufferBase returned %#x\n", status );
+}
+
+static void WINAPI glTransformFeedbackBufferRange( GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size )
+{
+    struct glTransformFeedbackBufferRange_params args = { .xfb = xfb, .index = index, .buffer = buffer, .offset = offset, .size = size, };
+    NTSTATUS status;
+    TRACE( "xfb %d, index %d, buffer %d, offset %ld, size %ld\n", xfb, index, buffer, offset, size );
+    if ((status = UNIX_CALL( glTransformFeedbackBufferRange, &args ))) WARN( "glTransformFeedbackBufferRange returned %#x\n", status );
+}
+
+static void WINAPI glTransformFeedbackStreamAttribsNV( GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode )
+{
+    struct glTransformFeedbackStreamAttribsNV_params args = { .count = count, .attribs = attribs, .nbuffers = nbuffers, .bufstreams = bufstreams, .bufferMode = bufferMode, };
+    NTSTATUS status;
+    TRACE( "count %d, attribs %p, nbuffers %d, bufstreams %p, bufferMode %d\n", count, attribs, nbuffers, bufstreams, bufferMode );
+    if ((status = UNIX_CALL( glTransformFeedbackStreamAttribsNV, &args ))) WARN( "glTransformFeedbackStreamAttribsNV returned %#x\n", status );
+}
+
+static void WINAPI glTransformFeedbackVaryings( GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode )
+{
+    struct glTransformFeedbackVaryings_params args = { .program = program, .count = count, .varyings = varyings, .bufferMode = bufferMode, };
+    NTSTATUS status;
+    TRACE( "program %d, count %d, varyings %p, bufferMode %d\n", program, count, varyings, bufferMode );
+    if ((status = UNIX_CALL( glTransformFeedbackVaryings, &args ))) WARN( "glTransformFeedbackVaryings returned %#x\n", status );
+}
+
+static void WINAPI glTransformFeedbackVaryingsEXT( GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode )
+{
+    struct glTransformFeedbackVaryingsEXT_params args = { .program = program, .count = count, .varyings = varyings, .bufferMode = bufferMode, };
+    NTSTATUS status;
+    TRACE( "program %d, count %d, varyings %p, bufferMode %d\n", program, count, varyings, bufferMode );
+    if ((status = UNIX_CALL( glTransformFeedbackVaryingsEXT, &args ))) WARN( "glTransformFeedbackVaryingsEXT returned %#x\n", status );
+}
+
+static void WINAPI glTransformFeedbackVaryingsNV( GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode )
+{
+    struct glTransformFeedbackVaryingsNV_params args = { .program = program, .count = count, .locations = locations, .bufferMode = bufferMode, };
+    NTSTATUS status;
+    TRACE( "program %d, count %d, locations %p, bufferMode %d\n", program, count, locations, bufferMode );
+    if ((status = UNIX_CALL( glTransformFeedbackVaryingsNV, &args ))) WARN( "glTransformFeedbackVaryingsNV returned %#x\n", status );
+}
+
+static void WINAPI glTransformPathNV( GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues )
+{
+    struct glTransformPathNV_params args = { .resultPath = resultPath, .srcPath = srcPath, .transformType = transformType, .transformValues = transformValues, };
+    NTSTATUS status;
+    TRACE( "resultPath %d, srcPath %d, transformType %d, transformValues %p\n", resultPath, srcPath, transformType, transformValues );
+    if ((status = UNIX_CALL( glTransformPathNV, &args ))) WARN( "glTransformPathNV returned %#x\n", status );
+}
+
+static void WINAPI glTranslatexOES( GLfixed x, GLfixed y, GLfixed z )
+{
+    struct glTranslatexOES_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d\n", x, y, z );
+    if ((status = UNIX_CALL( glTranslatexOES, &args ))) WARN( "glTranslatexOES returned %#x\n", status );
+}
+
+static void WINAPI glUniform1d( GLint location, GLdouble x )
+{
+    struct glUniform1d_params args = { .location = location, .x = x, };
+    NTSTATUS status;
+    TRACE( "location %d, x %f\n", location, x );
+    if ((status = UNIX_CALL( glUniform1d, &args ))) WARN( "glUniform1d returned %#x\n", status );
+}
+
+static void WINAPI glUniform1dv( GLint location, GLsizei count, const GLdouble *value )
+{
+    struct glUniform1dv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform1dv, &args ))) WARN( "glUniform1dv returned %#x\n", status );
+}
+
+static void WINAPI glUniform1f( GLint location, GLfloat v0 )
+{
+    struct glUniform1f_params args = { .location = location, .v0 = v0, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %f\n", location, v0 );
+    if ((status = UNIX_CALL( glUniform1f, &args ))) WARN( "glUniform1f returned %#x\n", status );
+}
+
+static void WINAPI glUniform1fARB( GLint location, GLfloat v0 )
+{
+    struct glUniform1fARB_params args = { .location = location, .v0 = v0, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %f\n", location, v0 );
+    if ((status = UNIX_CALL( glUniform1fARB, &args ))) WARN( "glUniform1fARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform1fv( GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glUniform1fv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform1fv, &args ))) WARN( "glUniform1fv returned %#x\n", status );
+}
+
+static void WINAPI glUniform1fvARB( GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glUniform1fvARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform1fvARB, &args ))) WARN( "glUniform1fvARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform1i( GLint location, GLint v0 )
+{
+    struct glUniform1i_params args = { .location = location, .v0 = v0, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d\n", location, v0 );
+    if ((status = UNIX_CALL( glUniform1i, &args ))) WARN( "glUniform1i returned %#x\n", status );
+}
+
+static void WINAPI glUniform1i64ARB( GLint location, GLint64 x )
+{
+    struct glUniform1i64ARB_params args = { .location = location, .x = x, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s\n", location, wine_dbgstr_longlong(x) );
+    if ((status = UNIX_CALL( glUniform1i64ARB, &args ))) WARN( "glUniform1i64ARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform1i64NV( GLint location, GLint64EXT x )
+{
+    struct glUniform1i64NV_params args = { .location = location, .x = x, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s\n", location, wine_dbgstr_longlong(x) );
+    if ((status = UNIX_CALL( glUniform1i64NV, &args ))) WARN( "glUniform1i64NV returned %#x\n", status );
+}
+
+static void WINAPI glUniform1i64vARB( GLint location, GLsizei count, const GLint64 *value )
+{
+    struct glUniform1i64vARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform1i64vARB, &args ))) WARN( "glUniform1i64vARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform1i64vNV( GLint location, GLsizei count, const GLint64EXT *value )
+{
+    struct glUniform1i64vNV_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform1i64vNV, &args ))) WARN( "glUniform1i64vNV returned %#x\n", status );
+}
+
+static void WINAPI glUniform1iARB( GLint location, GLint v0 )
+{
+    struct glUniform1iARB_params args = { .location = location, .v0 = v0, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d\n", location, v0 );
+    if ((status = UNIX_CALL( glUniform1iARB, &args ))) WARN( "glUniform1iARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform1iv( GLint location, GLsizei count, const GLint *value )
+{
+    struct glUniform1iv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform1iv, &args ))) WARN( "glUniform1iv returned %#x\n", status );
+}
+
+static void WINAPI glUniform1ivARB( GLint location, GLsizei count, const GLint *value )
+{
+    struct glUniform1ivARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform1ivARB, &args ))) WARN( "glUniform1ivARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform1ui( GLint location, GLuint v0 )
+{
+    struct glUniform1ui_params args = { .location = location, .v0 = v0, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d\n", location, v0 );
+    if ((status = UNIX_CALL( glUniform1ui, &args ))) WARN( "glUniform1ui returned %#x\n", status );
+}
+
+static void WINAPI glUniform1ui64ARB( GLint location, GLuint64 x )
+{
+    struct glUniform1ui64ARB_params args = { .location = location, .x = x, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s\n", location, wine_dbgstr_longlong(x) );
+    if ((status = UNIX_CALL( glUniform1ui64ARB, &args ))) WARN( "glUniform1ui64ARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform1ui64NV( GLint location, GLuint64EXT x )
+{
+    struct glUniform1ui64NV_params args = { .location = location, .x = x, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s\n", location, wine_dbgstr_longlong(x) );
+    if ((status = UNIX_CALL( glUniform1ui64NV, &args ))) WARN( "glUniform1ui64NV returned %#x\n", status );
+}
+
+static void WINAPI glUniform1ui64vARB( GLint location, GLsizei count, const GLuint64 *value )
+{
+    struct glUniform1ui64vARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform1ui64vARB, &args ))) WARN( "glUniform1ui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform1ui64vNV( GLint location, GLsizei count, const GLuint64EXT *value )
+{
+    struct glUniform1ui64vNV_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform1ui64vNV, &args ))) WARN( "glUniform1ui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glUniform1uiEXT( GLint location, GLuint v0 )
+{
+    struct glUniform1uiEXT_params args = { .location = location, .v0 = v0, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d\n", location, v0 );
+    if ((status = UNIX_CALL( glUniform1uiEXT, &args ))) WARN( "glUniform1uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glUniform1uiv( GLint location, GLsizei count, const GLuint *value )
+{
+    struct glUniform1uiv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform1uiv, &args ))) WARN( "glUniform1uiv returned %#x\n", status );
+}
+
+static void WINAPI glUniform1uivEXT( GLint location, GLsizei count, const GLuint *value )
+{
+    struct glUniform1uivEXT_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform1uivEXT, &args ))) WARN( "glUniform1uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glUniform2d( GLint location, GLdouble x, GLdouble y )
+{
+    struct glUniform2d_params args = { .location = location, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "location %d, x %f, y %f\n", location, x, y );
+    if ((status = UNIX_CALL( glUniform2d, &args ))) WARN( "glUniform2d returned %#x\n", status );
+}
+
+static void WINAPI glUniform2dv( GLint location, GLsizei count, const GLdouble *value )
+{
+    struct glUniform2dv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform2dv, &args ))) WARN( "glUniform2dv returned %#x\n", status );
+}
+
+static void WINAPI glUniform2f( GLint location, GLfloat v0, GLfloat v1 )
+{
+    struct glUniform2f_params args = { .location = location, .v0 = v0, .v1 = v1, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %f, v1 %f\n", location, v0, v1 );
+    if ((status = UNIX_CALL( glUniform2f, &args ))) WARN( "glUniform2f returned %#x\n", status );
+}
+
+static void WINAPI glUniform2fARB( GLint location, GLfloat v0, GLfloat v1 )
+{
+    struct glUniform2fARB_params args = { .location = location, .v0 = v0, .v1 = v1, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %f, v1 %f\n", location, v0, v1 );
+    if ((status = UNIX_CALL( glUniform2fARB, &args ))) WARN( "glUniform2fARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform2fv( GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glUniform2fv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform2fv, &args ))) WARN( "glUniform2fv returned %#x\n", status );
+}
+
+static void WINAPI glUniform2fvARB( GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glUniform2fvARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform2fvARB, &args ))) WARN( "glUniform2fvARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform2i( GLint location, GLint v0, GLint v1 )
+{
+    struct glUniform2i_params args = { .location = location, .v0 = v0, .v1 = v1, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d, v1 %d\n", location, v0, v1 );
+    if ((status = UNIX_CALL( glUniform2i, &args ))) WARN( "glUniform2i returned %#x\n", status );
+}
+
+static void WINAPI glUniform2i64ARB( GLint location, GLint64 x, GLint64 y )
+{
+    struct glUniform2i64ARB_params args = { .location = location, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s, y %s\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+    if ((status = UNIX_CALL( glUniform2i64ARB, &args ))) WARN( "glUniform2i64ARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform2i64NV( GLint location, GLint64EXT x, GLint64EXT y )
+{
+    struct glUniform2i64NV_params args = { .location = location, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s, y %s\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+    if ((status = UNIX_CALL( glUniform2i64NV, &args ))) WARN( "glUniform2i64NV returned %#x\n", status );
+}
+
+static void WINAPI glUniform2i64vARB( GLint location, GLsizei count, const GLint64 *value )
+{
+    struct glUniform2i64vARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform2i64vARB, &args ))) WARN( "glUniform2i64vARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform2i64vNV( GLint location, GLsizei count, const GLint64EXT *value )
+{
+    struct glUniform2i64vNV_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform2i64vNV, &args ))) WARN( "glUniform2i64vNV returned %#x\n", status );
+}
+
+static void WINAPI glUniform2iARB( GLint location, GLint v0, GLint v1 )
+{
+    struct glUniform2iARB_params args = { .location = location, .v0 = v0, .v1 = v1, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d, v1 %d\n", location, v0, v1 );
+    if ((status = UNIX_CALL( glUniform2iARB, &args ))) WARN( "glUniform2iARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform2iv( GLint location, GLsizei count, const GLint *value )
+{
+    struct glUniform2iv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform2iv, &args ))) WARN( "glUniform2iv returned %#x\n", status );
+}
+
+static void WINAPI glUniform2ivARB( GLint location, GLsizei count, const GLint *value )
+{
+    struct glUniform2ivARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform2ivARB, &args ))) WARN( "glUniform2ivARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform2ui( GLint location, GLuint v0, GLuint v1 )
+{
+    struct glUniform2ui_params args = { .location = location, .v0 = v0, .v1 = v1, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d, v1 %d\n", location, v0, v1 );
+    if ((status = UNIX_CALL( glUniform2ui, &args ))) WARN( "glUniform2ui returned %#x\n", status );
+}
+
+static void WINAPI glUniform2ui64ARB( GLint location, GLuint64 x, GLuint64 y )
+{
+    struct glUniform2ui64ARB_params args = { .location = location, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s, y %s\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+    if ((status = UNIX_CALL( glUniform2ui64ARB, &args ))) WARN( "glUniform2ui64ARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform2ui64NV( GLint location, GLuint64EXT x, GLuint64EXT y )
+{
+    struct glUniform2ui64NV_params args = { .location = location, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s, y %s\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+    if ((status = UNIX_CALL( glUniform2ui64NV, &args ))) WARN( "glUniform2ui64NV returned %#x\n", status );
+}
+
+static void WINAPI glUniform2ui64vARB( GLint location, GLsizei count, const GLuint64 *value )
+{
+    struct glUniform2ui64vARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform2ui64vARB, &args ))) WARN( "glUniform2ui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform2ui64vNV( GLint location, GLsizei count, const GLuint64EXT *value )
+{
+    struct glUniform2ui64vNV_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform2ui64vNV, &args ))) WARN( "glUniform2ui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glUniform2uiEXT( GLint location, GLuint v0, GLuint v1 )
+{
+    struct glUniform2uiEXT_params args = { .location = location, .v0 = v0, .v1 = v1, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d, v1 %d\n", location, v0, v1 );
+    if ((status = UNIX_CALL( glUniform2uiEXT, &args ))) WARN( "glUniform2uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glUniform2uiv( GLint location, GLsizei count, const GLuint *value )
+{
+    struct glUniform2uiv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform2uiv, &args ))) WARN( "glUniform2uiv returned %#x\n", status );
+}
+
+static void WINAPI glUniform2uivEXT( GLint location, GLsizei count, const GLuint *value )
+{
+    struct glUniform2uivEXT_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform2uivEXT, &args ))) WARN( "glUniform2uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glUniform3d( GLint location, GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glUniform3d_params args = { .location = location, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "location %d, x %f, y %f, z %f\n", location, x, y, z );
+    if ((status = UNIX_CALL( glUniform3d, &args ))) WARN( "glUniform3d returned %#x\n", status );
+}
+
+static void WINAPI glUniform3dv( GLint location, GLsizei count, const GLdouble *value )
+{
+    struct glUniform3dv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform3dv, &args ))) WARN( "glUniform3dv returned %#x\n", status );
+}
+
+static void WINAPI glUniform3f( GLint location, GLfloat v0, GLfloat v1, GLfloat v2 )
+{
+    struct glUniform3f_params args = { .location = location, .v0 = v0, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %f, v1 %f, v2 %f\n", location, v0, v1, v2 );
+    if ((status = UNIX_CALL( glUniform3f, &args ))) WARN( "glUniform3f returned %#x\n", status );
+}
+
+static void WINAPI glUniform3fARB( GLint location, GLfloat v0, GLfloat v1, GLfloat v2 )
+{
+    struct glUniform3fARB_params args = { .location = location, .v0 = v0, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %f, v1 %f, v2 %f\n", location, v0, v1, v2 );
+    if ((status = UNIX_CALL( glUniform3fARB, &args ))) WARN( "glUniform3fARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform3fv( GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glUniform3fv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform3fv, &args ))) WARN( "glUniform3fv returned %#x\n", status );
+}
+
+static void WINAPI glUniform3fvARB( GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glUniform3fvARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform3fvARB, &args ))) WARN( "glUniform3fvARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform3i( GLint location, GLint v0, GLint v1, GLint v2 )
+{
+    struct glUniform3i_params args = { .location = location, .v0 = v0, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d, v1 %d, v2 %d\n", location, v0, v1, v2 );
+    if ((status = UNIX_CALL( glUniform3i, &args ))) WARN( "glUniform3i returned %#x\n", status );
+}
+
+static void WINAPI glUniform3i64ARB( GLint location, GLint64 x, GLint64 y, GLint64 z )
+{
+    struct glUniform3i64ARB_params args = { .location = location, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s, y %s, z %s\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+    if ((status = UNIX_CALL( glUniform3i64ARB, &args ))) WARN( "glUniform3i64ARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform3i64NV( GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z )
+{
+    struct glUniform3i64NV_params args = { .location = location, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s, y %s, z %s\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+    if ((status = UNIX_CALL( glUniform3i64NV, &args ))) WARN( "glUniform3i64NV returned %#x\n", status );
+}
+
+static void WINAPI glUniform3i64vARB( GLint location, GLsizei count, const GLint64 *value )
+{
+    struct glUniform3i64vARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform3i64vARB, &args ))) WARN( "glUniform3i64vARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform3i64vNV( GLint location, GLsizei count, const GLint64EXT *value )
+{
+    struct glUniform3i64vNV_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform3i64vNV, &args ))) WARN( "glUniform3i64vNV returned %#x\n", status );
+}
+
+static void WINAPI glUniform3iARB( GLint location, GLint v0, GLint v1, GLint v2 )
+{
+    struct glUniform3iARB_params args = { .location = location, .v0 = v0, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d, v1 %d, v2 %d\n", location, v0, v1, v2 );
+    if ((status = UNIX_CALL( glUniform3iARB, &args ))) WARN( "glUniform3iARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform3iv( GLint location, GLsizei count, const GLint *value )
+{
+    struct glUniform3iv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform3iv, &args ))) WARN( "glUniform3iv returned %#x\n", status );
+}
+
+static void WINAPI glUniform3ivARB( GLint location, GLsizei count, const GLint *value )
+{
+    struct glUniform3ivARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform3ivARB, &args ))) WARN( "glUniform3ivARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform3ui( GLint location, GLuint v0, GLuint v1, GLuint v2 )
+{
+    struct glUniform3ui_params args = { .location = location, .v0 = v0, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d, v1 %d, v2 %d\n", location, v0, v1, v2 );
+    if ((status = UNIX_CALL( glUniform3ui, &args ))) WARN( "glUniform3ui returned %#x\n", status );
+}
+
+static void WINAPI glUniform3ui64ARB( GLint location, GLuint64 x, GLuint64 y, GLuint64 z )
+{
+    struct glUniform3ui64ARB_params args = { .location = location, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s, y %s, z %s\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+    if ((status = UNIX_CALL( glUniform3ui64ARB, &args ))) WARN( "glUniform3ui64ARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform3ui64NV( GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z )
+{
+    struct glUniform3ui64NV_params args = { .location = location, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s, y %s, z %s\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+    if ((status = UNIX_CALL( glUniform3ui64NV, &args ))) WARN( "glUniform3ui64NV returned %#x\n", status );
+}
+
+static void WINAPI glUniform3ui64vARB( GLint location, GLsizei count, const GLuint64 *value )
+{
+    struct glUniform3ui64vARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform3ui64vARB, &args ))) WARN( "glUniform3ui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform3ui64vNV( GLint location, GLsizei count, const GLuint64EXT *value )
+{
+    struct glUniform3ui64vNV_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform3ui64vNV, &args ))) WARN( "glUniform3ui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glUniform3uiEXT( GLint location, GLuint v0, GLuint v1, GLuint v2 )
+{
+    struct glUniform3uiEXT_params args = { .location = location, .v0 = v0, .v1 = v1, .v2 = v2, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d, v1 %d, v2 %d\n", location, v0, v1, v2 );
+    if ((status = UNIX_CALL( glUniform3uiEXT, &args ))) WARN( "glUniform3uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glUniform3uiv( GLint location, GLsizei count, const GLuint *value )
+{
+    struct glUniform3uiv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform3uiv, &args ))) WARN( "glUniform3uiv returned %#x\n", status );
+}
+
+static void WINAPI glUniform3uivEXT( GLint location, GLsizei count, const GLuint *value )
+{
+    struct glUniform3uivEXT_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform3uivEXT, &args ))) WARN( "glUniform3uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glUniform4d( GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glUniform4d_params args = { .location = location, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "location %d, x %f, y %f, z %f, w %f\n", location, x, y, z, w );
+    if ((status = UNIX_CALL( glUniform4d, &args ))) WARN( "glUniform4d returned %#x\n", status );
+}
+
+static void WINAPI glUniform4dv( GLint location, GLsizei count, const GLdouble *value )
+{
+    struct glUniform4dv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform4dv, &args ))) WARN( "glUniform4dv returned %#x\n", status );
+}
+
+static void WINAPI glUniform4f( GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3 )
+{
+    struct glUniform4f_params args = { .location = location, .v0 = v0, .v1 = v1, .v2 = v2, .v3 = v3, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %f, v1 %f, v2 %f, v3 %f\n", location, v0, v1, v2, v3 );
+    if ((status = UNIX_CALL( glUniform4f, &args ))) WARN( "glUniform4f returned %#x\n", status );
+}
+
+static void WINAPI glUniform4fARB( GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3 )
+{
+    struct glUniform4fARB_params args = { .location = location, .v0 = v0, .v1 = v1, .v2 = v2, .v3 = v3, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %f, v1 %f, v2 %f, v3 %f\n", location, v0, v1, v2, v3 );
+    if ((status = UNIX_CALL( glUniform4fARB, &args ))) WARN( "glUniform4fARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform4fv( GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glUniform4fv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform4fv, &args ))) WARN( "glUniform4fv returned %#x\n", status );
+}
+
+static void WINAPI glUniform4fvARB( GLint location, GLsizei count, const GLfloat *value )
+{
+    struct glUniform4fvARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform4fvARB, &args ))) WARN( "glUniform4fvARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform4i( GLint location, GLint v0, GLint v1, GLint v2, GLint v3 )
+{
+    struct glUniform4i_params args = { .location = location, .v0 = v0, .v1 = v1, .v2 = v2, .v3 = v3, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d, v1 %d, v2 %d, v3 %d\n", location, v0, v1, v2, v3 );
+    if ((status = UNIX_CALL( glUniform4i, &args ))) WARN( "glUniform4i returned %#x\n", status );
+}
+
+static void WINAPI glUniform4i64ARB( GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w )
+{
+    struct glUniform4i64ARB_params args = { .location = location, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s, y %s, z %s, w %s\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+    if ((status = UNIX_CALL( glUniform4i64ARB, &args ))) WARN( "glUniform4i64ARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform4i64NV( GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w )
+{
+    struct glUniform4i64NV_params args = { .location = location, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s, y %s, z %s, w %s\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+    if ((status = UNIX_CALL( glUniform4i64NV, &args ))) WARN( "glUniform4i64NV returned %#x\n", status );
+}
+
+static void WINAPI glUniform4i64vARB( GLint location, GLsizei count, const GLint64 *value )
+{
+    struct glUniform4i64vARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform4i64vARB, &args ))) WARN( "glUniform4i64vARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform4i64vNV( GLint location, GLsizei count, const GLint64EXT *value )
+{
+    struct glUniform4i64vNV_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform4i64vNV, &args ))) WARN( "glUniform4i64vNV returned %#x\n", status );
+}
+
+static void WINAPI glUniform4iARB( GLint location, GLint v0, GLint v1, GLint v2, GLint v3 )
+{
+    struct glUniform4iARB_params args = { .location = location, .v0 = v0, .v1 = v1, .v2 = v2, .v3 = v3, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d, v1 %d, v2 %d, v3 %d\n", location, v0, v1, v2, v3 );
+    if ((status = UNIX_CALL( glUniform4iARB, &args ))) WARN( "glUniform4iARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform4iv( GLint location, GLsizei count, const GLint *value )
+{
+    struct glUniform4iv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform4iv, &args ))) WARN( "glUniform4iv returned %#x\n", status );
+}
+
+static void WINAPI glUniform4ivARB( GLint location, GLsizei count, const GLint *value )
+{
+    struct glUniform4ivARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform4ivARB, &args ))) WARN( "glUniform4ivARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform4ui( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 )
+{
+    struct glUniform4ui_params args = { .location = location, .v0 = v0, .v1 = v1, .v2 = v2, .v3 = v3, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d, v1 %d, v2 %d, v3 %d\n", location, v0, v1, v2, v3 );
+    if ((status = UNIX_CALL( glUniform4ui, &args ))) WARN( "glUniform4ui returned %#x\n", status );
+}
+
+static void WINAPI glUniform4ui64ARB( GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w )
+{
+    struct glUniform4ui64ARB_params args = { .location = location, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s, y %s, z %s, w %s\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+    if ((status = UNIX_CALL( glUniform4ui64ARB, &args ))) WARN( "glUniform4ui64ARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform4ui64NV( GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w )
+{
+    struct glUniform4ui64NV_params args = { .location = location, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "location %d, x %s, y %s, z %s, w %s\n", location, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+    if ((status = UNIX_CALL( glUniform4ui64NV, &args ))) WARN( "glUniform4ui64NV returned %#x\n", status );
+}
+
+static void WINAPI glUniform4ui64vARB( GLint location, GLsizei count, const GLuint64 *value )
+{
+    struct glUniform4ui64vARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform4ui64vARB, &args ))) WARN( "glUniform4ui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glUniform4ui64vNV( GLint location, GLsizei count, const GLuint64EXT *value )
+{
+    struct glUniform4ui64vNV_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform4ui64vNV, &args ))) WARN( "glUniform4ui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glUniform4uiEXT( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 )
+{
+    struct glUniform4uiEXT_params args = { .location = location, .v0 = v0, .v1 = v1, .v2 = v2, .v3 = v3, };
+    NTSTATUS status;
+    TRACE( "location %d, v0 %d, v1 %d, v2 %d, v3 %d\n", location, v0, v1, v2, v3 );
+    if ((status = UNIX_CALL( glUniform4uiEXT, &args ))) WARN( "glUniform4uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glUniform4uiv( GLint location, GLsizei count, const GLuint *value )
+{
+    struct glUniform4uiv_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform4uiv, &args ))) WARN( "glUniform4uiv returned %#x\n", status );
+}
+
+static void WINAPI glUniform4uivEXT( GLint location, GLsizei count, const GLuint *value )
+{
+    struct glUniform4uivEXT_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniform4uivEXT, &args ))) WARN( "glUniform4uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glUniformBlockBinding( GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding )
+{
+    struct glUniformBlockBinding_params args = { .program = program, .uniformBlockIndex = uniformBlockIndex, .uniformBlockBinding = uniformBlockBinding, };
+    NTSTATUS status;
+    TRACE( "program %d, uniformBlockIndex %d, uniformBlockBinding %d\n", program, uniformBlockIndex, uniformBlockBinding );
+    if ((status = UNIX_CALL( glUniformBlockBinding, &args ))) WARN( "glUniformBlockBinding returned %#x\n", status );
+}
+
+static void WINAPI glUniformBufferEXT( GLuint program, GLint location, GLuint buffer )
+{
+    struct glUniformBufferEXT_params args = { .program = program, .location = location, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "program %d, location %d, buffer %d\n", program, location, buffer );
+    if ((status = UNIX_CALL( glUniformBufferEXT, &args ))) WARN( "glUniformBufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glUniformHandleui64ARB( GLint location, GLuint64 value )
+{
+    struct glUniformHandleui64ARB_params args = { .location = location, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, value %s\n", location, wine_dbgstr_longlong(value) );
+    if ((status = UNIX_CALL( glUniformHandleui64ARB, &args ))) WARN( "glUniformHandleui64ARB returned %#x\n", status );
+}
+
+static void WINAPI glUniformHandleui64NV( GLint location, GLuint64 value )
+{
+    struct glUniformHandleui64NV_params args = { .location = location, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, value %s\n", location, wine_dbgstr_longlong(value) );
+    if ((status = UNIX_CALL( glUniformHandleui64NV, &args ))) WARN( "glUniformHandleui64NV returned %#x\n", status );
+}
+
+static void WINAPI glUniformHandleui64vARB( GLint location, GLsizei count, const GLuint64 *value )
+{
+    struct glUniformHandleui64vARB_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniformHandleui64vARB, &args ))) WARN( "glUniformHandleui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glUniformHandleui64vNV( GLint location, GLsizei count, const GLuint64 *value )
+{
+    struct glUniformHandleui64vNV_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniformHandleui64vNV, &args ))) WARN( "glUniformHandleui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix2dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glUniformMatrix2dv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix2dv, &args ))) WARN( "glUniformMatrix2dv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glUniformMatrix2fv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix2fv, &args ))) WARN( "glUniformMatrix2fv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix2fvARB( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glUniformMatrix2fvARB_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix2fvARB, &args ))) WARN( "glUniformMatrix2fvARB returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix2x3dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glUniformMatrix2x3dv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix2x3dv, &args ))) WARN( "glUniformMatrix2x3dv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix2x3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glUniformMatrix2x3fv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix2x3fv, &args ))) WARN( "glUniformMatrix2x3fv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix2x4dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glUniformMatrix2x4dv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix2x4dv, &args ))) WARN( "glUniformMatrix2x4dv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix2x4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glUniformMatrix2x4fv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix2x4fv, &args ))) WARN( "glUniformMatrix2x4fv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix3dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glUniformMatrix3dv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix3dv, &args ))) WARN( "glUniformMatrix3dv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glUniformMatrix3fv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix3fv, &args ))) WARN( "glUniformMatrix3fv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix3fvARB( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glUniformMatrix3fvARB_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix3fvARB, &args ))) WARN( "glUniformMatrix3fvARB returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix3x2dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glUniformMatrix3x2dv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix3x2dv, &args ))) WARN( "glUniformMatrix3x2dv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix3x2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glUniformMatrix3x2fv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix3x2fv, &args ))) WARN( "glUniformMatrix3x2fv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix3x4dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glUniformMatrix3x4dv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix3x4dv, &args ))) WARN( "glUniformMatrix3x4dv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix3x4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glUniformMatrix3x4fv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix3x4fv, &args ))) WARN( "glUniformMatrix3x4fv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix4dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glUniformMatrix4dv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix4dv, &args ))) WARN( "glUniformMatrix4dv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix4fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glUniformMatrix4fv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix4fv, &args ))) WARN( "glUniformMatrix4fv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix4fvARB( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glUniformMatrix4fvARB_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix4fvARB, &args ))) WARN( "glUniformMatrix4fvARB returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix4x2dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glUniformMatrix4x2dv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix4x2dv, &args ))) WARN( "glUniformMatrix4x2dv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix4x2fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glUniformMatrix4x2fv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix4x2fv, &args ))) WARN( "glUniformMatrix4x2fv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix4x3dv( GLint location, GLsizei count, GLboolean transpose, const GLdouble *value )
+{
+    struct glUniformMatrix4x3dv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix4x3dv, &args ))) WARN( "glUniformMatrix4x3dv returned %#x\n", status );
+}
+
+static void WINAPI glUniformMatrix4x3fv( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
+{
+    struct glUniformMatrix4x3fv_params args = { .location = location, .count = count, .transpose = transpose, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, transpose %d, value %p\n", location, count, transpose, value );
+    if ((status = UNIX_CALL( glUniformMatrix4x3fv, &args ))) WARN( "glUniformMatrix4x3fv returned %#x\n", status );
+}
+
+static void WINAPI glUniformSubroutinesuiv( GLenum shadertype, GLsizei count, const GLuint *indices )
+{
+    struct glUniformSubroutinesuiv_params args = { .shadertype = shadertype, .count = count, .indices = indices, };
+    NTSTATUS status;
+    TRACE( "shadertype %d, count %d, indices %p\n", shadertype, count, indices );
+    if ((status = UNIX_CALL( glUniformSubroutinesuiv, &args ))) WARN( "glUniformSubroutinesuiv returned %#x\n", status );
+}
+
+static void WINAPI glUniformui64NV( GLint location, GLuint64EXT value )
+{
+    struct glUniformui64NV_params args = { .location = location, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, value %s\n", location, wine_dbgstr_longlong(value) );
+    if ((status = UNIX_CALL( glUniformui64NV, &args ))) WARN( "glUniformui64NV returned %#x\n", status );
+}
+
+static void WINAPI glUniformui64vNV( GLint location, GLsizei count, const GLuint64EXT *value )
+{
+    struct glUniformui64vNV_params args = { .location = location, .count = count, .value = value, };
+    NTSTATUS status;
+    TRACE( "location %d, count %d, value %p\n", location, count, value );
+    if ((status = UNIX_CALL( glUniformui64vNV, &args ))) WARN( "glUniformui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glUnlockArraysEXT(void)
+{
+    struct glUnlockArraysEXT_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glUnlockArraysEXT, &args ))) WARN( "glUnlockArraysEXT returned %#x\n", status );
+}
+
+static GLboolean WINAPI glUnmapBuffer( GLenum target )
+{
+    struct glUnmapBuffer_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glUnmapBuffer, &args ))) WARN( "glUnmapBuffer returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glUnmapBufferARB( GLenum target )
+{
+    struct glUnmapBufferARB_params args = { .target = target, };
+    NTSTATUS status;
+    TRACE( "target %d\n", target );
+    if ((status = UNIX_CALL( glUnmapBufferARB, &args ))) WARN( "glUnmapBufferARB returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glUnmapNamedBuffer( GLuint buffer )
+{
+    struct glUnmapNamedBuffer_params args = { .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "buffer %d\n", buffer );
+    if ((status = UNIX_CALL( glUnmapNamedBuffer, &args ))) WARN( "glUnmapNamedBuffer returned %#x\n", status );
+    return args.ret;
+}
+
+static GLboolean WINAPI glUnmapNamedBufferEXT( GLuint buffer )
+{
+    struct glUnmapNamedBufferEXT_params args = { .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "buffer %d\n", buffer );
+    if ((status = UNIX_CALL( glUnmapNamedBufferEXT, &args ))) WARN( "glUnmapNamedBufferEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glUnmapObjectBufferATI( GLuint buffer )
+{
+    struct glUnmapObjectBufferATI_params args = { .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "buffer %d\n", buffer );
+    if ((status = UNIX_CALL( glUnmapObjectBufferATI, &args ))) WARN( "glUnmapObjectBufferATI returned %#x\n", status );
+}
+
+static void WINAPI glUnmapTexture2DINTEL( GLuint texture, GLint level )
+{
+    struct glUnmapTexture2DINTEL_params args = { .texture = texture, .level = level, };
+    NTSTATUS status;
+    TRACE( "texture %d, level %d\n", texture, level );
+    if ((status = UNIX_CALL( glUnmapTexture2DINTEL, &args ))) WARN( "glUnmapTexture2DINTEL returned %#x\n", status );
+}
+
+static void WINAPI glUpdateObjectBufferATI( GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve )
+{
+    struct glUpdateObjectBufferATI_params args = { .buffer = buffer, .offset = offset, .size = size, .pointer = pointer, .preserve = preserve, };
+    NTSTATUS status;
+    TRACE( "buffer %d, offset %d, size %d, pointer %p, preserve %d\n", buffer, offset, size, pointer, preserve );
+    if ((status = UNIX_CALL( glUpdateObjectBufferATI, &args ))) WARN( "glUpdateObjectBufferATI returned %#x\n", status );
+}
+
+static void WINAPI glUploadGpuMaskNVX( GLbitfield mask )
+{
+    struct glUploadGpuMaskNVX_params args = { .mask = mask, };
+    NTSTATUS status;
+    TRACE( "mask %d\n", mask );
+    if ((status = UNIX_CALL( glUploadGpuMaskNVX, &args ))) WARN( "glUploadGpuMaskNVX returned %#x\n", status );
+}
+
+static void WINAPI glUseProgram( GLuint program )
+{
+    struct glUseProgram_params args = { .program = program, };
+    NTSTATUS status;
+    TRACE( "program %d\n", program );
+    if ((status = UNIX_CALL( glUseProgram, &args ))) WARN( "glUseProgram returned %#x\n", status );
+}
+
+static void WINAPI glUseProgramObjectARB( GLhandleARB programObj )
+{
+    struct glUseProgramObjectARB_params args = { .programObj = programObj, };
+    NTSTATUS status;
+    TRACE( "programObj %d\n", programObj );
+    if ((status = UNIX_CALL( glUseProgramObjectARB, &args ))) WARN( "glUseProgramObjectARB returned %#x\n", status );
+}
+
+static void WINAPI glUseProgramStages( GLuint pipeline, GLbitfield stages, GLuint program )
+{
+    struct glUseProgramStages_params args = { .pipeline = pipeline, .stages = stages, .program = program, };
+    NTSTATUS status;
+    TRACE( "pipeline %d, stages %d, program %d\n", pipeline, stages, program );
+    if ((status = UNIX_CALL( glUseProgramStages, &args ))) WARN( "glUseProgramStages returned %#x\n", status );
+}
+
+static void WINAPI glUseShaderProgramEXT( GLenum type, GLuint program )
+{
+    struct glUseShaderProgramEXT_params args = { .type = type, .program = program, };
+    NTSTATUS status;
+    TRACE( "type %d, program %d\n", type, program );
+    if ((status = UNIX_CALL( glUseShaderProgramEXT, &args ))) WARN( "glUseShaderProgramEXT returned %#x\n", status );
+}
+
+static void WINAPI glVDPAUFiniNV(void)
+{
+    struct glVDPAUFiniNV_params args;
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( glVDPAUFiniNV, &args ))) WARN( "glVDPAUFiniNV returned %#x\n", status );
+}
+
+static void WINAPI glVDPAUGetSurfaceivNV( GLvdpauSurfaceNV surface, GLenum pname, GLsizei count, GLsizei *length, GLint *values )
+{
+    struct glVDPAUGetSurfaceivNV_params args = { .surface = surface, .pname = pname, .count = count, .length = length, .values = values, };
+    NTSTATUS status;
+    TRACE( "surface %ld, pname %d, count %d, length %p, values %p\n", surface, pname, count, length, values );
+    if ((status = UNIX_CALL( glVDPAUGetSurfaceivNV, &args ))) WARN( "glVDPAUGetSurfaceivNV returned %#x\n", status );
+}
+
+static void WINAPI glVDPAUInitNV( const void *vdpDevice, const void *getProcAddress )
+{
+    struct glVDPAUInitNV_params args = { .vdpDevice = vdpDevice, .getProcAddress = getProcAddress, };
+    NTSTATUS status;
+    TRACE( "vdpDevice %p, getProcAddress %p\n", vdpDevice, getProcAddress );
+    if ((status = UNIX_CALL( glVDPAUInitNV, &args ))) WARN( "glVDPAUInitNV returned %#x\n", status );
+}
+
+static GLboolean WINAPI glVDPAUIsSurfaceNV( GLvdpauSurfaceNV surface )
+{
+    struct glVDPAUIsSurfaceNV_params args = { .surface = surface, };
+    NTSTATUS status;
+    TRACE( "surface %ld\n", surface );
+    if ((status = UNIX_CALL( glVDPAUIsSurfaceNV, &args ))) WARN( "glVDPAUIsSurfaceNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glVDPAUMapSurfacesNV( GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces )
+{
+    struct glVDPAUMapSurfacesNV_params args = { .numSurfaces = numSurfaces, .surfaces = surfaces, };
+    NTSTATUS status;
+    TRACE( "numSurfaces %d, surfaces %p\n", numSurfaces, surfaces );
+    if ((status = UNIX_CALL( glVDPAUMapSurfacesNV, &args ))) WARN( "glVDPAUMapSurfacesNV returned %#x\n", status );
+}
+
+static GLvdpauSurfaceNV WINAPI glVDPAURegisterOutputSurfaceNV( const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames )
+{
+    struct glVDPAURegisterOutputSurfaceNV_params args = { .vdpSurface = vdpSurface, .target = target, .numTextureNames = numTextureNames, .textureNames = textureNames, };
+    NTSTATUS status;
+    TRACE( "vdpSurface %p, target %d, numTextureNames %d, textureNames %p\n", vdpSurface, target, numTextureNames, textureNames );
+    if ((status = UNIX_CALL( glVDPAURegisterOutputSurfaceNV, &args ))) WARN( "glVDPAURegisterOutputSurfaceNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLvdpauSurfaceNV WINAPI glVDPAURegisterVideoSurfaceNV( const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames )
+{
+    struct glVDPAURegisterVideoSurfaceNV_params args = { .vdpSurface = vdpSurface, .target = target, .numTextureNames = numTextureNames, .textureNames = textureNames, };
+    NTSTATUS status;
+    TRACE( "vdpSurface %p, target %d, numTextureNames %d, textureNames %p\n", vdpSurface, target, numTextureNames, textureNames );
+    if ((status = UNIX_CALL( glVDPAURegisterVideoSurfaceNV, &args ))) WARN( "glVDPAURegisterVideoSurfaceNV returned %#x\n", status );
+    return args.ret;
+}
+
+static GLvdpauSurfaceNV WINAPI glVDPAURegisterVideoSurfaceWithPictureStructureNV( const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure )
+{
+    struct glVDPAURegisterVideoSurfaceWithPictureStructureNV_params args = { .vdpSurface = vdpSurface, .target = target, .numTextureNames = numTextureNames, .textureNames = textureNames, .isFrameStructure = isFrameStructure, };
+    NTSTATUS status;
+    TRACE( "vdpSurface %p, target %d, numTextureNames %d, textureNames %p, isFrameStructure %d\n", vdpSurface, target, numTextureNames, textureNames, isFrameStructure );
+    if ((status = UNIX_CALL( glVDPAURegisterVideoSurfaceWithPictureStructureNV, &args ))) WARN( "glVDPAURegisterVideoSurfaceWithPictureStructureNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glVDPAUSurfaceAccessNV( GLvdpauSurfaceNV surface, GLenum access )
+{
+    struct glVDPAUSurfaceAccessNV_params args = { .surface = surface, .access = access, };
+    NTSTATUS status;
+    TRACE( "surface %ld, access %d\n", surface, access );
+    if ((status = UNIX_CALL( glVDPAUSurfaceAccessNV, &args ))) WARN( "glVDPAUSurfaceAccessNV returned %#x\n", status );
+}
+
+static void WINAPI glVDPAUUnmapSurfacesNV( GLsizei numSurface, const GLvdpauSurfaceNV *surfaces )
+{
+    struct glVDPAUUnmapSurfacesNV_params args = { .numSurface = numSurface, .surfaces = surfaces, };
+    NTSTATUS status;
+    TRACE( "numSurface %d, surfaces %p\n", numSurface, surfaces );
+    if ((status = UNIX_CALL( glVDPAUUnmapSurfacesNV, &args ))) WARN( "glVDPAUUnmapSurfacesNV returned %#x\n", status );
+}
+
+static void WINAPI glVDPAUUnregisterSurfaceNV( GLvdpauSurfaceNV surface )
+{
+    struct glVDPAUUnregisterSurfaceNV_params args = { .surface = surface, };
+    NTSTATUS status;
+    TRACE( "surface %ld\n", surface );
+    if ((status = UNIX_CALL( glVDPAUUnregisterSurfaceNV, &args ))) WARN( "glVDPAUUnregisterSurfaceNV returned %#x\n", status );
+}
+
+static void WINAPI glValidateProgram( GLuint program )
+{
+    struct glValidateProgram_params args = { .program = program, };
+    NTSTATUS status;
+    TRACE( "program %d\n", program );
+    if ((status = UNIX_CALL( glValidateProgram, &args ))) WARN( "glValidateProgram returned %#x\n", status );
+}
+
+static void WINAPI glValidateProgramARB( GLhandleARB programObj )
+{
+    struct glValidateProgramARB_params args = { .programObj = programObj, };
+    NTSTATUS status;
+    TRACE( "programObj %d\n", programObj );
+    if ((status = UNIX_CALL( glValidateProgramARB, &args ))) WARN( "glValidateProgramARB returned %#x\n", status );
+}
+
+static void WINAPI glValidateProgramPipeline( GLuint pipeline )
+{
+    struct glValidateProgramPipeline_params args = { .pipeline = pipeline, };
+    NTSTATUS status;
+    TRACE( "pipeline %d\n", pipeline );
+    if ((status = UNIX_CALL( glValidateProgramPipeline, &args ))) WARN( "glValidateProgramPipeline returned %#x\n", status );
+}
+
+static void WINAPI glVariantArrayObjectATI( GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset )
+{
+    struct glVariantArrayObjectATI_params args = { .id = id, .type = type, .stride = stride, .buffer = buffer, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "id %d, type %d, stride %d, buffer %d, offset %d\n", id, type, stride, buffer, offset );
+    if ((status = UNIX_CALL( glVariantArrayObjectATI, &args ))) WARN( "glVariantArrayObjectATI returned %#x\n", status );
+}
+
+static void WINAPI glVariantPointerEXT( GLuint id, GLenum type, GLuint stride, const void *addr )
+{
+    struct glVariantPointerEXT_params args = { .id = id, .type = type, .stride = stride, .addr = addr, };
+    NTSTATUS status;
+    TRACE( "id %d, type %d, stride %d, addr %p\n", id, type, stride, addr );
+    if ((status = UNIX_CALL( glVariantPointerEXT, &args ))) WARN( "glVariantPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glVariantbvEXT( GLuint id, const GLbyte *addr )
+{
+    struct glVariantbvEXT_params args = { .id = id, .addr = addr, };
+    NTSTATUS status;
+    TRACE( "id %d, addr %p\n", id, addr );
+    if ((status = UNIX_CALL( glVariantbvEXT, &args ))) WARN( "glVariantbvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVariantdvEXT( GLuint id, const GLdouble *addr )
+{
+    struct glVariantdvEXT_params args = { .id = id, .addr = addr, };
+    NTSTATUS status;
+    TRACE( "id %d, addr %p\n", id, addr );
+    if ((status = UNIX_CALL( glVariantdvEXT, &args ))) WARN( "glVariantdvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVariantfvEXT( GLuint id, const GLfloat *addr )
+{
+    struct glVariantfvEXT_params args = { .id = id, .addr = addr, };
+    NTSTATUS status;
+    TRACE( "id %d, addr %p\n", id, addr );
+    if ((status = UNIX_CALL( glVariantfvEXT, &args ))) WARN( "glVariantfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVariantivEXT( GLuint id, const GLint *addr )
+{
+    struct glVariantivEXT_params args = { .id = id, .addr = addr, };
+    NTSTATUS status;
+    TRACE( "id %d, addr %p\n", id, addr );
+    if ((status = UNIX_CALL( glVariantivEXT, &args ))) WARN( "glVariantivEXT returned %#x\n", status );
+}
+
+static void WINAPI glVariantsvEXT( GLuint id, const GLshort *addr )
+{
+    struct glVariantsvEXT_params args = { .id = id, .addr = addr, };
+    NTSTATUS status;
+    TRACE( "id %d, addr %p\n", id, addr );
+    if ((status = UNIX_CALL( glVariantsvEXT, &args ))) WARN( "glVariantsvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVariantubvEXT( GLuint id, const GLubyte *addr )
+{
+    struct glVariantubvEXT_params args = { .id = id, .addr = addr, };
+    NTSTATUS status;
+    TRACE( "id %d, addr %p\n", id, addr );
+    if ((status = UNIX_CALL( glVariantubvEXT, &args ))) WARN( "glVariantubvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVariantuivEXT( GLuint id, const GLuint *addr )
+{
+    struct glVariantuivEXT_params args = { .id = id, .addr = addr, };
+    NTSTATUS status;
+    TRACE( "id %d, addr %p\n", id, addr );
+    if ((status = UNIX_CALL( glVariantuivEXT, &args ))) WARN( "glVariantuivEXT returned %#x\n", status );
+}
+
+static void WINAPI glVariantusvEXT( GLuint id, const GLushort *addr )
+{
+    struct glVariantusvEXT_params args = { .id = id, .addr = addr, };
+    NTSTATUS status;
+    TRACE( "id %d, addr %p\n", id, addr );
+    if ((status = UNIX_CALL( glVariantusvEXT, &args ))) WARN( "glVariantusvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertex2bOES( GLbyte x, GLbyte y )
+{
+    struct glVertex2bOES_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d\n", x, y );
+    if ((status = UNIX_CALL( glVertex2bOES, &args ))) WARN( "glVertex2bOES returned %#x\n", status );
+}
+
+static void WINAPI glVertex2bvOES( const GLbyte *coords )
+{
+    struct glVertex2bvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glVertex2bvOES, &args ))) WARN( "glVertex2bvOES returned %#x\n", status );
+}
+
+static void WINAPI glVertex2hNV( GLhalfNV x, GLhalfNV y )
+{
+    struct glVertex2hNV_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d\n", x, y );
+    if ((status = UNIX_CALL( glVertex2hNV, &args ))) WARN( "glVertex2hNV returned %#x\n", status );
+}
+
+static void WINAPI glVertex2hvNV( const GLhalfNV *v )
+{
+    struct glVertex2hvNV_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glVertex2hvNV, &args ))) WARN( "glVertex2hvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertex2xOES( GLfixed x )
+{
+    struct glVertex2xOES_params args = { .x = x, };
+    NTSTATUS status;
+    TRACE( "x %d\n", x );
+    if ((status = UNIX_CALL( glVertex2xOES, &args ))) WARN( "glVertex2xOES returned %#x\n", status );
+}
+
+static void WINAPI glVertex2xvOES( const GLfixed *coords )
+{
+    struct glVertex2xvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glVertex2xvOES, &args ))) WARN( "glVertex2xvOES returned %#x\n", status );
+}
+
+static void WINAPI glVertex3bOES( GLbyte x, GLbyte y, GLbyte z )
+{
+    struct glVertex3bOES_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d\n", x, y, z );
+    if ((status = UNIX_CALL( glVertex3bOES, &args ))) WARN( "glVertex3bOES returned %#x\n", status );
+}
+
+static void WINAPI glVertex3bvOES( const GLbyte *coords )
+{
+    struct glVertex3bvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glVertex3bvOES, &args ))) WARN( "glVertex3bvOES returned %#x\n", status );
+}
+
+static void WINAPI glVertex3hNV( GLhalfNV x, GLhalfNV y, GLhalfNV z )
+{
+    struct glVertex3hNV_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d\n", x, y, z );
+    if ((status = UNIX_CALL( glVertex3hNV, &args ))) WARN( "glVertex3hNV returned %#x\n", status );
+}
+
+static void WINAPI glVertex3hvNV( const GLhalfNV *v )
+{
+    struct glVertex3hvNV_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glVertex3hvNV, &args ))) WARN( "glVertex3hvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertex3xOES( GLfixed x, GLfixed y )
+{
+    struct glVertex3xOES_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d\n", x, y );
+    if ((status = UNIX_CALL( glVertex3xOES, &args ))) WARN( "glVertex3xOES returned %#x\n", status );
+}
+
+static void WINAPI glVertex3xvOES( const GLfixed *coords )
+{
+    struct glVertex3xvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glVertex3xvOES, &args ))) WARN( "glVertex3xvOES returned %#x\n", status );
+}
+
+static void WINAPI glVertex4bOES( GLbyte x, GLbyte y, GLbyte z, GLbyte w )
+{
+    struct glVertex4bOES_params args = { .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d, w %d\n", x, y, z, w );
+    if ((status = UNIX_CALL( glVertex4bOES, &args ))) WARN( "glVertex4bOES returned %#x\n", status );
+}
+
+static void WINAPI glVertex4bvOES( const GLbyte *coords )
+{
+    struct glVertex4bvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glVertex4bvOES, &args ))) WARN( "glVertex4bvOES returned %#x\n", status );
+}
+
+static void WINAPI glVertex4hNV( GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w )
+{
+    struct glVertex4hNV_params args = { .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d, w %d\n", x, y, z, w );
+    if ((status = UNIX_CALL( glVertex4hNV, &args ))) WARN( "glVertex4hNV returned %#x\n", status );
+}
+
+static void WINAPI glVertex4hvNV( const GLhalfNV *v )
+{
+    struct glVertex4hvNV_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glVertex4hvNV, &args ))) WARN( "glVertex4hvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertex4xOES( GLfixed x, GLfixed y, GLfixed z )
+{
+    struct glVertex4xOES_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d\n", x, y, z );
+    if ((status = UNIX_CALL( glVertex4xOES, &args ))) WARN( "glVertex4xOES returned %#x\n", status );
+}
+
+static void WINAPI glVertex4xvOES( const GLfixed *coords )
+{
+    struct glVertex4xvOES_params args = { .coords = coords, };
+    NTSTATUS status;
+    TRACE( "coords %p\n", coords );
+    if ((status = UNIX_CALL( glVertex4xvOES, &args ))) WARN( "glVertex4xvOES returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayAttribBinding( GLuint vaobj, GLuint attribindex, GLuint bindingindex )
+{
+    struct glVertexArrayAttribBinding_params args = { .vaobj = vaobj, .attribindex = attribindex, .bindingindex = bindingindex, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, attribindex %d, bindingindex %d\n", vaobj, attribindex, bindingindex );
+    if ((status = UNIX_CALL( glVertexArrayAttribBinding, &args ))) WARN( "glVertexArrayAttribBinding returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayAttribFormat( GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset )
+{
+    struct glVertexArrayAttribFormat_params args = { .vaobj = vaobj, .attribindex = attribindex, .size = size, .type = type, .normalized = normalized, .relativeoffset = relativeoffset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, attribindex %d, size %d, type %d, normalized %d, relativeoffset %d\n", vaobj, attribindex, size, type, normalized, relativeoffset );
+    if ((status = UNIX_CALL( glVertexArrayAttribFormat, &args ))) WARN( "glVertexArrayAttribFormat returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayAttribIFormat( GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset )
+{
+    struct glVertexArrayAttribIFormat_params args = { .vaobj = vaobj, .attribindex = attribindex, .size = size, .type = type, .relativeoffset = relativeoffset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, attribindex %d, size %d, type %d, relativeoffset %d\n", vaobj, attribindex, size, type, relativeoffset );
+    if ((status = UNIX_CALL( glVertexArrayAttribIFormat, &args ))) WARN( "glVertexArrayAttribIFormat returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayAttribLFormat( GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset )
+{
+    struct glVertexArrayAttribLFormat_params args = { .vaobj = vaobj, .attribindex = attribindex, .size = size, .type = type, .relativeoffset = relativeoffset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, attribindex %d, size %d, type %d, relativeoffset %d\n", vaobj, attribindex, size, type, relativeoffset );
+    if ((status = UNIX_CALL( glVertexArrayAttribLFormat, &args ))) WARN( "glVertexArrayAttribLFormat returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayBindVertexBufferEXT( GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride )
+{
+    struct glVertexArrayBindVertexBufferEXT_params args = { .vaobj = vaobj, .bindingindex = bindingindex, .buffer = buffer, .offset = offset, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, bindingindex %d, buffer %d, offset %ld, stride %d\n", vaobj, bindingindex, buffer, offset, stride );
+    if ((status = UNIX_CALL( glVertexArrayBindVertexBufferEXT, &args ))) WARN( "glVertexArrayBindVertexBufferEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayBindingDivisor( GLuint vaobj, GLuint bindingindex, GLuint divisor )
+{
+    struct glVertexArrayBindingDivisor_params args = { .vaobj = vaobj, .bindingindex = bindingindex, .divisor = divisor, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, bindingindex %d, divisor %d\n", vaobj, bindingindex, divisor );
+    if ((status = UNIX_CALL( glVertexArrayBindingDivisor, &args ))) WARN( "glVertexArrayBindingDivisor returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayColorOffsetEXT( GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset )
+{
+    struct glVertexArrayColorOffsetEXT_params args = { .vaobj = vaobj, .buffer = buffer, .size = size, .type = type, .stride = stride, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, buffer %d, size %d, type %d, stride %d, offset %ld\n", vaobj, buffer, size, type, stride, offset );
+    if ((status = UNIX_CALL( glVertexArrayColorOffsetEXT, &args ))) WARN( "glVertexArrayColorOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayEdgeFlagOffsetEXT( GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset )
+{
+    struct glVertexArrayEdgeFlagOffsetEXT_params args = { .vaobj = vaobj, .buffer = buffer, .stride = stride, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, buffer %d, stride %d, offset %ld\n", vaobj, buffer, stride, offset );
+    if ((status = UNIX_CALL( glVertexArrayEdgeFlagOffsetEXT, &args ))) WARN( "glVertexArrayEdgeFlagOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayElementBuffer( GLuint vaobj, GLuint buffer )
+{
+    struct glVertexArrayElementBuffer_params args = { .vaobj = vaobj, .buffer = buffer, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, buffer %d\n", vaobj, buffer );
+    if ((status = UNIX_CALL( glVertexArrayElementBuffer, &args ))) WARN( "glVertexArrayElementBuffer returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayFogCoordOffsetEXT( GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset )
+{
+    struct glVertexArrayFogCoordOffsetEXT_params args = { .vaobj = vaobj, .buffer = buffer, .type = type, .stride = stride, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, buffer %d, type %d, stride %d, offset %ld\n", vaobj, buffer, type, stride, offset );
+    if ((status = UNIX_CALL( glVertexArrayFogCoordOffsetEXT, &args ))) WARN( "glVertexArrayFogCoordOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayIndexOffsetEXT( GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset )
+{
+    struct glVertexArrayIndexOffsetEXT_params args = { .vaobj = vaobj, .buffer = buffer, .type = type, .stride = stride, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, buffer %d, type %d, stride %d, offset %ld\n", vaobj, buffer, type, stride, offset );
+    if ((status = UNIX_CALL( glVertexArrayIndexOffsetEXT, &args ))) WARN( "glVertexArrayIndexOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayMultiTexCoordOffsetEXT( GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset )
+{
+    struct glVertexArrayMultiTexCoordOffsetEXT_params args = { .vaobj = vaobj, .buffer = buffer, .texunit = texunit, .size = size, .type = type, .stride = stride, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, buffer %d, texunit %d, size %d, type %d, stride %d, offset %ld\n", vaobj, buffer, texunit, size, type, stride, offset );
+    if ((status = UNIX_CALL( glVertexArrayMultiTexCoordOffsetEXT, &args ))) WARN( "glVertexArrayMultiTexCoordOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayNormalOffsetEXT( GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset )
+{
+    struct glVertexArrayNormalOffsetEXT_params args = { .vaobj = vaobj, .buffer = buffer, .type = type, .stride = stride, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, buffer %d, type %d, stride %d, offset %ld\n", vaobj, buffer, type, stride, offset );
+    if ((status = UNIX_CALL( glVertexArrayNormalOffsetEXT, &args ))) WARN( "glVertexArrayNormalOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayParameteriAPPLE( GLenum pname, GLint param )
+{
+    struct glVertexArrayParameteriAPPLE_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glVertexArrayParameteriAPPLE, &args ))) WARN( "glVertexArrayParameteriAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayRangeAPPLE( GLsizei length, void *pointer )
+{
+    struct glVertexArrayRangeAPPLE_params args = { .length = length, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "length %d, pointer %p\n", length, pointer );
+    if ((status = UNIX_CALL( glVertexArrayRangeAPPLE, &args ))) WARN( "glVertexArrayRangeAPPLE returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayRangeNV( GLsizei length, const void *pointer )
+{
+    struct glVertexArrayRangeNV_params args = { .length = length, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "length %d, pointer %p\n", length, pointer );
+    if ((status = UNIX_CALL( glVertexArrayRangeNV, &args ))) WARN( "glVertexArrayRangeNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexArraySecondaryColorOffsetEXT( GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset )
+{
+    struct glVertexArraySecondaryColorOffsetEXT_params args = { .vaobj = vaobj, .buffer = buffer, .size = size, .type = type, .stride = stride, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, buffer %d, size %d, type %d, stride %d, offset %ld\n", vaobj, buffer, size, type, stride, offset );
+    if ((status = UNIX_CALL( glVertexArraySecondaryColorOffsetEXT, &args ))) WARN( "glVertexArraySecondaryColorOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayTexCoordOffsetEXT( GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset )
+{
+    struct glVertexArrayTexCoordOffsetEXT_params args = { .vaobj = vaobj, .buffer = buffer, .size = size, .type = type, .stride = stride, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, buffer %d, size %d, type %d, stride %d, offset %ld\n", vaobj, buffer, size, type, stride, offset );
+    if ((status = UNIX_CALL( glVertexArrayTexCoordOffsetEXT, &args ))) WARN( "glVertexArrayTexCoordOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayVertexAttribBindingEXT( GLuint vaobj, GLuint attribindex, GLuint bindingindex )
+{
+    struct glVertexArrayVertexAttribBindingEXT_params args = { .vaobj = vaobj, .attribindex = attribindex, .bindingindex = bindingindex, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, attribindex %d, bindingindex %d\n", vaobj, attribindex, bindingindex );
+    if ((status = UNIX_CALL( glVertexArrayVertexAttribBindingEXT, &args ))) WARN( "glVertexArrayVertexAttribBindingEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayVertexAttribDivisorEXT( GLuint vaobj, GLuint index, GLuint divisor )
+{
+    struct glVertexArrayVertexAttribDivisorEXT_params args = { .vaobj = vaobj, .index = index, .divisor = divisor, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, index %d, divisor %d\n", vaobj, index, divisor );
+    if ((status = UNIX_CALL( glVertexArrayVertexAttribDivisorEXT, &args ))) WARN( "glVertexArrayVertexAttribDivisorEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayVertexAttribFormatEXT( GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset )
+{
+    struct glVertexArrayVertexAttribFormatEXT_params args = { .vaobj = vaobj, .attribindex = attribindex, .size = size, .type = type, .normalized = normalized, .relativeoffset = relativeoffset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, attribindex %d, size %d, type %d, normalized %d, relativeoffset %d\n", vaobj, attribindex, size, type, normalized, relativeoffset );
+    if ((status = UNIX_CALL( glVertexArrayVertexAttribFormatEXT, &args ))) WARN( "glVertexArrayVertexAttribFormatEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayVertexAttribIFormatEXT( GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset )
+{
+    struct glVertexArrayVertexAttribIFormatEXT_params args = { .vaobj = vaobj, .attribindex = attribindex, .size = size, .type = type, .relativeoffset = relativeoffset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, attribindex %d, size %d, type %d, relativeoffset %d\n", vaobj, attribindex, size, type, relativeoffset );
+    if ((status = UNIX_CALL( glVertexArrayVertexAttribIFormatEXT, &args ))) WARN( "glVertexArrayVertexAttribIFormatEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayVertexAttribIOffsetEXT( GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset )
+{
+    struct glVertexArrayVertexAttribIOffsetEXT_params args = { .vaobj = vaobj, .buffer = buffer, .index = index, .size = size, .type = type, .stride = stride, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, buffer %d, index %d, size %d, type %d, stride %d, offset %ld\n", vaobj, buffer, index, size, type, stride, offset );
+    if ((status = UNIX_CALL( glVertexArrayVertexAttribIOffsetEXT, &args ))) WARN( "glVertexArrayVertexAttribIOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayVertexAttribLFormatEXT( GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset )
+{
+    struct glVertexArrayVertexAttribLFormatEXT_params args = { .vaobj = vaobj, .attribindex = attribindex, .size = size, .type = type, .relativeoffset = relativeoffset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, attribindex %d, size %d, type %d, relativeoffset %d\n", vaobj, attribindex, size, type, relativeoffset );
+    if ((status = UNIX_CALL( glVertexArrayVertexAttribLFormatEXT, &args ))) WARN( "glVertexArrayVertexAttribLFormatEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayVertexAttribLOffsetEXT( GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset )
+{
+    struct glVertexArrayVertexAttribLOffsetEXT_params args = { .vaobj = vaobj, .buffer = buffer, .index = index, .size = size, .type = type, .stride = stride, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, buffer %d, index %d, size %d, type %d, stride %d, offset %ld\n", vaobj, buffer, index, size, type, stride, offset );
+    if ((status = UNIX_CALL( glVertexArrayVertexAttribLOffsetEXT, &args ))) WARN( "glVertexArrayVertexAttribLOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayVertexAttribOffsetEXT( GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset )
+{
+    struct glVertexArrayVertexAttribOffsetEXT_params args = { .vaobj = vaobj, .buffer = buffer, .index = index, .size = size, .type = type, .normalized = normalized, .stride = stride, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, buffer %d, index %d, size %d, type %d, normalized %d, stride %d, offset %ld\n", vaobj, buffer, index, size, type, normalized, stride, offset );
+    if ((status = UNIX_CALL( glVertexArrayVertexAttribOffsetEXT, &args ))) WARN( "glVertexArrayVertexAttribOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayVertexBindingDivisorEXT( GLuint vaobj, GLuint bindingindex, GLuint divisor )
+{
+    struct glVertexArrayVertexBindingDivisorEXT_params args = { .vaobj = vaobj, .bindingindex = bindingindex, .divisor = divisor, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, bindingindex %d, divisor %d\n", vaobj, bindingindex, divisor );
+    if ((status = UNIX_CALL( glVertexArrayVertexBindingDivisorEXT, &args ))) WARN( "glVertexArrayVertexBindingDivisorEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayVertexBuffer( GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride )
+{
+    struct glVertexArrayVertexBuffer_params args = { .vaobj = vaobj, .bindingindex = bindingindex, .buffer = buffer, .offset = offset, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, bindingindex %d, buffer %d, offset %ld, stride %d\n", vaobj, bindingindex, buffer, offset, stride );
+    if ((status = UNIX_CALL( glVertexArrayVertexBuffer, &args ))) WARN( "glVertexArrayVertexBuffer returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayVertexBuffers( GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides )
+{
+    struct glVertexArrayVertexBuffers_params args = { .vaobj = vaobj, .first = first, .count = count, .buffers = buffers, .offsets = offsets, .strides = strides, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, first %d, count %d, buffers %p, offsets %p, strides %p\n", vaobj, first, count, buffers, offsets, strides );
+    if ((status = UNIX_CALL( glVertexArrayVertexBuffers, &args ))) WARN( "glVertexArrayVertexBuffers returned %#x\n", status );
+}
+
+static void WINAPI glVertexArrayVertexOffsetEXT( GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset )
+{
+    struct glVertexArrayVertexOffsetEXT_params args = { .vaobj = vaobj, .buffer = buffer, .size = size, .type = type, .stride = stride, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "vaobj %d, buffer %d, size %d, type %d, stride %d, offset %ld\n", vaobj, buffer, size, type, stride, offset );
+    if ((status = UNIX_CALL( glVertexArrayVertexOffsetEXT, &args ))) WARN( "glVertexArrayVertexOffsetEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1d( GLuint index, GLdouble x )
+{
+    struct glVertexAttrib1d_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttrib1d, &args ))) WARN( "glVertexAttrib1d returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1dARB( GLuint index, GLdouble x )
+{
+    struct glVertexAttrib1dARB_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttrib1dARB, &args ))) WARN( "glVertexAttrib1dARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1dNV( GLuint index, GLdouble x )
+{
+    struct glVertexAttrib1dNV_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttrib1dNV, &args ))) WARN( "glVertexAttrib1dNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1dv( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttrib1dv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib1dv, &args ))) WARN( "glVertexAttrib1dv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1dvARB( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttrib1dvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib1dvARB, &args ))) WARN( "glVertexAttrib1dvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1dvNV( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttrib1dvNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib1dvNV, &args ))) WARN( "glVertexAttrib1dvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1f( GLuint index, GLfloat x )
+{
+    struct glVertexAttrib1f_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttrib1f, &args ))) WARN( "glVertexAttrib1f returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1fARB( GLuint index, GLfloat x )
+{
+    struct glVertexAttrib1fARB_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttrib1fARB, &args ))) WARN( "glVertexAttrib1fARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1fNV( GLuint index, GLfloat x )
+{
+    struct glVertexAttrib1fNV_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttrib1fNV, &args ))) WARN( "glVertexAttrib1fNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1fv( GLuint index, const GLfloat *v )
+{
+    struct glVertexAttrib1fv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib1fv, &args ))) WARN( "glVertexAttrib1fv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1fvARB( GLuint index, const GLfloat *v )
+{
+    struct glVertexAttrib1fvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib1fvARB, &args ))) WARN( "glVertexAttrib1fvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1fvNV( GLuint index, const GLfloat *v )
+{
+    struct glVertexAttrib1fvNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib1fvNV, &args ))) WARN( "glVertexAttrib1fvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1hNV( GLuint index, GLhalfNV x )
+{
+    struct glVertexAttrib1hNV_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttrib1hNV, &args ))) WARN( "glVertexAttrib1hNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1hvNV( GLuint index, const GLhalfNV *v )
+{
+    struct glVertexAttrib1hvNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib1hvNV, &args ))) WARN( "glVertexAttrib1hvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1s( GLuint index, GLshort x )
+{
+    struct glVertexAttrib1s_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttrib1s, &args ))) WARN( "glVertexAttrib1s returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1sARB( GLuint index, GLshort x )
+{
+    struct glVertexAttrib1sARB_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttrib1sARB, &args ))) WARN( "glVertexAttrib1sARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1sNV( GLuint index, GLshort x )
+{
+    struct glVertexAttrib1sNV_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttrib1sNV, &args ))) WARN( "glVertexAttrib1sNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1sv( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib1sv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib1sv, &args ))) WARN( "glVertexAttrib1sv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1svARB( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib1svARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib1svARB, &args ))) WARN( "glVertexAttrib1svARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib1svNV( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib1svNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib1svNV, &args ))) WARN( "glVertexAttrib1svNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2d( GLuint index, GLdouble x, GLdouble y )
+{
+    struct glVertexAttrib2d_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttrib2d, &args ))) WARN( "glVertexAttrib2d returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2dARB( GLuint index, GLdouble x, GLdouble y )
+{
+    struct glVertexAttrib2dARB_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttrib2dARB, &args ))) WARN( "glVertexAttrib2dARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2dNV( GLuint index, GLdouble x, GLdouble y )
+{
+    struct glVertexAttrib2dNV_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttrib2dNV, &args ))) WARN( "glVertexAttrib2dNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2dv( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttrib2dv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib2dv, &args ))) WARN( "glVertexAttrib2dv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2dvARB( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttrib2dvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib2dvARB, &args ))) WARN( "glVertexAttrib2dvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2dvNV( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttrib2dvNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib2dvNV, &args ))) WARN( "glVertexAttrib2dvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2f( GLuint index, GLfloat x, GLfloat y )
+{
+    struct glVertexAttrib2f_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttrib2f, &args ))) WARN( "glVertexAttrib2f returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2fARB( GLuint index, GLfloat x, GLfloat y )
+{
+    struct glVertexAttrib2fARB_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttrib2fARB, &args ))) WARN( "glVertexAttrib2fARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2fNV( GLuint index, GLfloat x, GLfloat y )
+{
+    struct glVertexAttrib2fNV_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttrib2fNV, &args ))) WARN( "glVertexAttrib2fNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2fv( GLuint index, const GLfloat *v )
+{
+    struct glVertexAttrib2fv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib2fv, &args ))) WARN( "glVertexAttrib2fv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2fvARB( GLuint index, const GLfloat *v )
+{
+    struct glVertexAttrib2fvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib2fvARB, &args ))) WARN( "glVertexAttrib2fvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2fvNV( GLuint index, const GLfloat *v )
+{
+    struct glVertexAttrib2fvNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib2fvNV, &args ))) WARN( "glVertexAttrib2fvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2hNV( GLuint index, GLhalfNV x, GLhalfNV y )
+{
+    struct glVertexAttrib2hNV_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttrib2hNV, &args ))) WARN( "glVertexAttrib2hNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2hvNV( GLuint index, const GLhalfNV *v )
+{
+    struct glVertexAttrib2hvNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib2hvNV, &args ))) WARN( "glVertexAttrib2hvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2s( GLuint index, GLshort x, GLshort y )
+{
+    struct glVertexAttrib2s_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttrib2s, &args ))) WARN( "glVertexAttrib2s returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2sARB( GLuint index, GLshort x, GLshort y )
+{
+    struct glVertexAttrib2sARB_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttrib2sARB, &args ))) WARN( "glVertexAttrib2sARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2sNV( GLuint index, GLshort x, GLshort y )
+{
+    struct glVertexAttrib2sNV_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttrib2sNV, &args ))) WARN( "glVertexAttrib2sNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2sv( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib2sv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib2sv, &args ))) WARN( "glVertexAttrib2sv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2svARB( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib2svARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib2svARB, &args ))) WARN( "glVertexAttrib2svARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib2svNV( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib2svNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib2svNV, &args ))) WARN( "glVertexAttrib2svNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3d( GLuint index, GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glVertexAttrib3d_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttrib3d, &args ))) WARN( "glVertexAttrib3d returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3dARB( GLuint index, GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glVertexAttrib3dARB_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttrib3dARB, &args ))) WARN( "glVertexAttrib3dARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3dNV( GLuint index, GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glVertexAttrib3dNV_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttrib3dNV, &args ))) WARN( "glVertexAttrib3dNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3dv( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttrib3dv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib3dv, &args ))) WARN( "glVertexAttrib3dv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3dvARB( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttrib3dvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib3dvARB, &args ))) WARN( "glVertexAttrib3dvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3dvNV( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttrib3dvNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib3dvNV, &args ))) WARN( "glVertexAttrib3dvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3f( GLuint index, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glVertexAttrib3f_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttrib3f, &args ))) WARN( "glVertexAttrib3f returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3fARB( GLuint index, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glVertexAttrib3fARB_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttrib3fARB, &args ))) WARN( "glVertexAttrib3fARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3fNV( GLuint index, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glVertexAttrib3fNV_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttrib3fNV, &args ))) WARN( "glVertexAttrib3fNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3fv( GLuint index, const GLfloat *v )
+{
+    struct glVertexAttrib3fv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib3fv, &args ))) WARN( "glVertexAttrib3fv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3fvARB( GLuint index, const GLfloat *v )
+{
+    struct glVertexAttrib3fvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib3fvARB, &args ))) WARN( "glVertexAttrib3fvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3fvNV( GLuint index, const GLfloat *v )
+{
+    struct glVertexAttrib3fvNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib3fvNV, &args ))) WARN( "glVertexAttrib3fvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3hNV( GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z )
+{
+    struct glVertexAttrib3hNV_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttrib3hNV, &args ))) WARN( "glVertexAttrib3hNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3hvNV( GLuint index, const GLhalfNV *v )
+{
+    struct glVertexAttrib3hvNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib3hvNV, &args ))) WARN( "glVertexAttrib3hvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3s( GLuint index, GLshort x, GLshort y, GLshort z )
+{
+    struct glVertexAttrib3s_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttrib3s, &args ))) WARN( "glVertexAttrib3s returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3sARB( GLuint index, GLshort x, GLshort y, GLshort z )
+{
+    struct glVertexAttrib3sARB_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttrib3sARB, &args ))) WARN( "glVertexAttrib3sARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3sNV( GLuint index, GLshort x, GLshort y, GLshort z )
+{
+    struct glVertexAttrib3sNV_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttrib3sNV, &args ))) WARN( "glVertexAttrib3sNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3sv( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib3sv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib3sv, &args ))) WARN( "glVertexAttrib3sv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3svARB( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib3svARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib3svARB, &args ))) WARN( "glVertexAttrib3svARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib3svNV( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib3svNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib3svNV, &args ))) WARN( "glVertexAttrib3svNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4Nbv( GLuint index, const GLbyte *v )
+{
+    struct glVertexAttrib4Nbv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4Nbv, &args ))) WARN( "glVertexAttrib4Nbv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4NbvARB( GLuint index, const GLbyte *v )
+{
+    struct glVertexAttrib4NbvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4NbvARB, &args ))) WARN( "glVertexAttrib4NbvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4Niv( GLuint index, const GLint *v )
+{
+    struct glVertexAttrib4Niv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4Niv, &args ))) WARN( "glVertexAttrib4Niv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4NivARB( GLuint index, const GLint *v )
+{
+    struct glVertexAttrib4NivARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4NivARB, &args ))) WARN( "glVertexAttrib4NivARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4Nsv( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib4Nsv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4Nsv, &args ))) WARN( "glVertexAttrib4Nsv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4NsvARB( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib4NsvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4NsvARB, &args ))) WARN( "glVertexAttrib4NsvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4Nub( GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w )
+{
+    struct glVertexAttrib4Nub_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d, w %d\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttrib4Nub, &args ))) WARN( "glVertexAttrib4Nub returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4NubARB( GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w )
+{
+    struct glVertexAttrib4NubARB_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d, w %d\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttrib4NubARB, &args ))) WARN( "glVertexAttrib4NubARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4Nubv( GLuint index, const GLubyte *v )
+{
+    struct glVertexAttrib4Nubv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4Nubv, &args ))) WARN( "glVertexAttrib4Nubv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4NubvARB( GLuint index, const GLubyte *v )
+{
+    struct glVertexAttrib4NubvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4NubvARB, &args ))) WARN( "glVertexAttrib4NubvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4Nuiv( GLuint index, const GLuint *v )
+{
+    struct glVertexAttrib4Nuiv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4Nuiv, &args ))) WARN( "glVertexAttrib4Nuiv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4NuivARB( GLuint index, const GLuint *v )
+{
+    struct glVertexAttrib4NuivARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4NuivARB, &args ))) WARN( "glVertexAttrib4NuivARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4Nusv( GLuint index, const GLushort *v )
+{
+    struct glVertexAttrib4Nusv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4Nusv, &args ))) WARN( "glVertexAttrib4Nusv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4NusvARB( GLuint index, const GLushort *v )
+{
+    struct glVertexAttrib4NusvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4NusvARB, &args ))) WARN( "glVertexAttrib4NusvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4bv( GLuint index, const GLbyte *v )
+{
+    struct glVertexAttrib4bv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4bv, &args ))) WARN( "glVertexAttrib4bv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4bvARB( GLuint index, const GLbyte *v )
+{
+    struct glVertexAttrib4bvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4bvARB, &args ))) WARN( "glVertexAttrib4bvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4d( GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glVertexAttrib4d_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f, w %f\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttrib4d, &args ))) WARN( "glVertexAttrib4d returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4dARB( GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glVertexAttrib4dARB_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f, w %f\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttrib4dARB, &args ))) WARN( "glVertexAttrib4dARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4dNV( GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glVertexAttrib4dNV_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f, w %f\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttrib4dNV, &args ))) WARN( "glVertexAttrib4dNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4dv( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttrib4dv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4dv, &args ))) WARN( "glVertexAttrib4dv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4dvARB( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttrib4dvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4dvARB, &args ))) WARN( "glVertexAttrib4dvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4dvNV( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttrib4dvNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4dvNV, &args ))) WARN( "glVertexAttrib4dvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4f( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
+{
+    struct glVertexAttrib4f_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f, w %f\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttrib4f, &args ))) WARN( "glVertexAttrib4f returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4fARB( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
+{
+    struct glVertexAttrib4fARB_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f, w %f\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttrib4fARB, &args ))) WARN( "glVertexAttrib4fARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4fNV( GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
+{
+    struct glVertexAttrib4fNV_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f, w %f\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttrib4fNV, &args ))) WARN( "glVertexAttrib4fNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4fv( GLuint index, const GLfloat *v )
+{
+    struct glVertexAttrib4fv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4fv, &args ))) WARN( "glVertexAttrib4fv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4fvARB( GLuint index, const GLfloat *v )
+{
+    struct glVertexAttrib4fvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4fvARB, &args ))) WARN( "glVertexAttrib4fvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4fvNV( GLuint index, const GLfloat *v )
+{
+    struct glVertexAttrib4fvNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4fvNV, &args ))) WARN( "glVertexAttrib4fvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4hNV( GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w )
+{
+    struct glVertexAttrib4hNV_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d, w %d\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttrib4hNV, &args ))) WARN( "glVertexAttrib4hNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4hvNV( GLuint index, const GLhalfNV *v )
+{
+    struct glVertexAttrib4hvNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4hvNV, &args ))) WARN( "glVertexAttrib4hvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4iv( GLuint index, const GLint *v )
+{
+    struct glVertexAttrib4iv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4iv, &args ))) WARN( "glVertexAttrib4iv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4ivARB( GLuint index, const GLint *v )
+{
+    struct glVertexAttrib4ivARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4ivARB, &args ))) WARN( "glVertexAttrib4ivARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4s( GLuint index, GLshort x, GLshort y, GLshort z, GLshort w )
+{
+    struct glVertexAttrib4s_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d, w %d\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttrib4s, &args ))) WARN( "glVertexAttrib4s returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4sARB( GLuint index, GLshort x, GLshort y, GLshort z, GLshort w )
+{
+    struct glVertexAttrib4sARB_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d, w %d\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttrib4sARB, &args ))) WARN( "glVertexAttrib4sARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4sNV( GLuint index, GLshort x, GLshort y, GLshort z, GLshort w )
+{
+    struct glVertexAttrib4sNV_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d, w %d\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttrib4sNV, &args ))) WARN( "glVertexAttrib4sNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4sv( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib4sv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4sv, &args ))) WARN( "glVertexAttrib4sv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4svARB( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib4svARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4svARB, &args ))) WARN( "glVertexAttrib4svARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4svNV( GLuint index, const GLshort *v )
+{
+    struct glVertexAttrib4svNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4svNV, &args ))) WARN( "glVertexAttrib4svNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4ubNV( GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w )
+{
+    struct glVertexAttrib4ubNV_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d, w %d\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttrib4ubNV, &args ))) WARN( "glVertexAttrib4ubNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4ubv( GLuint index, const GLubyte *v )
+{
+    struct glVertexAttrib4ubv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4ubv, &args ))) WARN( "glVertexAttrib4ubv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4ubvARB( GLuint index, const GLubyte *v )
+{
+    struct glVertexAttrib4ubvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4ubvARB, &args ))) WARN( "glVertexAttrib4ubvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4ubvNV( GLuint index, const GLubyte *v )
+{
+    struct glVertexAttrib4ubvNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4ubvNV, &args ))) WARN( "glVertexAttrib4ubvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4uiv( GLuint index, const GLuint *v )
+{
+    struct glVertexAttrib4uiv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4uiv, &args ))) WARN( "glVertexAttrib4uiv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4uivARB( GLuint index, const GLuint *v )
+{
+    struct glVertexAttrib4uivARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4uivARB, &args ))) WARN( "glVertexAttrib4uivARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4usv( GLuint index, const GLushort *v )
+{
+    struct glVertexAttrib4usv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4usv, &args ))) WARN( "glVertexAttrib4usv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttrib4usvARB( GLuint index, const GLushort *v )
+{
+    struct glVertexAttrib4usvARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttrib4usvARB, &args ))) WARN( "glVertexAttrib4usvARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribArrayObjectATI( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset )
+{
+    struct glVertexAttribArrayObjectATI_params args = { .index = index, .size = size, .type = type, .normalized = normalized, .stride = stride, .buffer = buffer, .offset = offset, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, type %d, normalized %d, stride %d, buffer %d, offset %d\n", index, size, type, normalized, stride, buffer, offset );
+    if ((status = UNIX_CALL( glVertexAttribArrayObjectATI, &args ))) WARN( "glVertexAttribArrayObjectATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribBinding( GLuint attribindex, GLuint bindingindex )
+{
+    struct glVertexAttribBinding_params args = { .attribindex = attribindex, .bindingindex = bindingindex, };
+    NTSTATUS status;
+    TRACE( "attribindex %d, bindingindex %d\n", attribindex, bindingindex );
+    if ((status = UNIX_CALL( glVertexAttribBinding, &args ))) WARN( "glVertexAttribBinding returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribDivisor( GLuint index, GLuint divisor )
+{
+    struct glVertexAttribDivisor_params args = { .index = index, .divisor = divisor, };
+    NTSTATUS status;
+    TRACE( "index %d, divisor %d\n", index, divisor );
+    if ((status = UNIX_CALL( glVertexAttribDivisor, &args ))) WARN( "glVertexAttribDivisor returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribDivisorARB( GLuint index, GLuint divisor )
+{
+    struct glVertexAttribDivisorARB_params args = { .index = index, .divisor = divisor, };
+    NTSTATUS status;
+    TRACE( "index %d, divisor %d\n", index, divisor );
+    if ((status = UNIX_CALL( glVertexAttribDivisorARB, &args ))) WARN( "glVertexAttribDivisorARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribFormat( GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset )
+{
+    struct glVertexAttribFormat_params args = { .attribindex = attribindex, .size = size, .type = type, .normalized = normalized, .relativeoffset = relativeoffset, };
+    NTSTATUS status;
+    TRACE( "attribindex %d, size %d, type %d, normalized %d, relativeoffset %d\n", attribindex, size, type, normalized, relativeoffset );
+    if ((status = UNIX_CALL( glVertexAttribFormat, &args ))) WARN( "glVertexAttribFormat returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribFormatNV( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride )
+{
+    struct glVertexAttribFormatNV_params args = { .index = index, .size = size, .type = type, .normalized = normalized, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, type %d, normalized %d, stride %d\n", index, size, type, normalized, stride );
+    if ((status = UNIX_CALL( glVertexAttribFormatNV, &args ))) WARN( "glVertexAttribFormatNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI1i( GLuint index, GLint x )
+{
+    struct glVertexAttribI1i_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttribI1i, &args ))) WARN( "glVertexAttribI1i returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI1iEXT( GLuint index, GLint x )
+{
+    struct glVertexAttribI1iEXT_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttribI1iEXT, &args ))) WARN( "glVertexAttribI1iEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI1iv( GLuint index, const GLint *v )
+{
+    struct glVertexAttribI1iv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI1iv, &args ))) WARN( "glVertexAttribI1iv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI1ivEXT( GLuint index, const GLint *v )
+{
+    struct glVertexAttribI1ivEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI1ivEXT, &args ))) WARN( "glVertexAttribI1ivEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI1ui( GLuint index, GLuint x )
+{
+    struct glVertexAttribI1ui_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttribI1ui, &args ))) WARN( "glVertexAttribI1ui returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI1uiEXT( GLuint index, GLuint x )
+{
+    struct glVertexAttribI1uiEXT_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttribI1uiEXT, &args ))) WARN( "glVertexAttribI1uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI1uiv( GLuint index, const GLuint *v )
+{
+    struct glVertexAttribI1uiv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI1uiv, &args ))) WARN( "glVertexAttribI1uiv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI1uivEXT( GLuint index, const GLuint *v )
+{
+    struct glVertexAttribI1uivEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI1uivEXT, &args ))) WARN( "glVertexAttribI1uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI2i( GLuint index, GLint x, GLint y )
+{
+    struct glVertexAttribI2i_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttribI2i, &args ))) WARN( "glVertexAttribI2i returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI2iEXT( GLuint index, GLint x, GLint y )
+{
+    struct glVertexAttribI2iEXT_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttribI2iEXT, &args ))) WARN( "glVertexAttribI2iEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI2iv( GLuint index, const GLint *v )
+{
+    struct glVertexAttribI2iv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI2iv, &args ))) WARN( "glVertexAttribI2iv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI2ivEXT( GLuint index, const GLint *v )
+{
+    struct glVertexAttribI2ivEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI2ivEXT, &args ))) WARN( "glVertexAttribI2ivEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI2ui( GLuint index, GLuint x, GLuint y )
+{
+    struct glVertexAttribI2ui_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttribI2ui, &args ))) WARN( "glVertexAttribI2ui returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI2uiEXT( GLuint index, GLuint x, GLuint y )
+{
+    struct glVertexAttribI2uiEXT_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttribI2uiEXT, &args ))) WARN( "glVertexAttribI2uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI2uiv( GLuint index, const GLuint *v )
+{
+    struct glVertexAttribI2uiv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI2uiv, &args ))) WARN( "glVertexAttribI2uiv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI2uivEXT( GLuint index, const GLuint *v )
+{
+    struct glVertexAttribI2uivEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI2uivEXT, &args ))) WARN( "glVertexAttribI2uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI3i( GLuint index, GLint x, GLint y, GLint z )
+{
+    struct glVertexAttribI3i_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttribI3i, &args ))) WARN( "glVertexAttribI3i returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI3iEXT( GLuint index, GLint x, GLint y, GLint z )
+{
+    struct glVertexAttribI3iEXT_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttribI3iEXT, &args ))) WARN( "glVertexAttribI3iEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI3iv( GLuint index, const GLint *v )
+{
+    struct glVertexAttribI3iv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI3iv, &args ))) WARN( "glVertexAttribI3iv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI3ivEXT( GLuint index, const GLint *v )
+{
+    struct glVertexAttribI3ivEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI3ivEXT, &args ))) WARN( "glVertexAttribI3ivEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI3ui( GLuint index, GLuint x, GLuint y, GLuint z )
+{
+    struct glVertexAttribI3ui_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttribI3ui, &args ))) WARN( "glVertexAttribI3ui returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI3uiEXT( GLuint index, GLuint x, GLuint y, GLuint z )
+{
+    struct glVertexAttribI3uiEXT_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttribI3uiEXT, &args ))) WARN( "glVertexAttribI3uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI3uiv( GLuint index, const GLuint *v )
+{
+    struct glVertexAttribI3uiv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI3uiv, &args ))) WARN( "glVertexAttribI3uiv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI3uivEXT( GLuint index, const GLuint *v )
+{
+    struct glVertexAttribI3uivEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI3uivEXT, &args ))) WARN( "glVertexAttribI3uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4bv( GLuint index, const GLbyte *v )
+{
+    struct glVertexAttribI4bv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI4bv, &args ))) WARN( "glVertexAttribI4bv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4bvEXT( GLuint index, const GLbyte *v )
+{
+    struct glVertexAttribI4bvEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI4bvEXT, &args ))) WARN( "glVertexAttribI4bvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4i( GLuint index, GLint x, GLint y, GLint z, GLint w )
+{
+    struct glVertexAttribI4i_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d, w %d\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttribI4i, &args ))) WARN( "glVertexAttribI4i returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4iEXT( GLuint index, GLint x, GLint y, GLint z, GLint w )
+{
+    struct glVertexAttribI4iEXT_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d, w %d\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttribI4iEXT, &args ))) WARN( "glVertexAttribI4iEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4iv( GLuint index, const GLint *v )
+{
+    struct glVertexAttribI4iv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI4iv, &args ))) WARN( "glVertexAttribI4iv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4ivEXT( GLuint index, const GLint *v )
+{
+    struct glVertexAttribI4ivEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI4ivEXT, &args ))) WARN( "glVertexAttribI4ivEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4sv( GLuint index, const GLshort *v )
+{
+    struct glVertexAttribI4sv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI4sv, &args ))) WARN( "glVertexAttribI4sv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4svEXT( GLuint index, const GLshort *v )
+{
+    struct glVertexAttribI4svEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI4svEXT, &args ))) WARN( "glVertexAttribI4svEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4ubv( GLuint index, const GLubyte *v )
+{
+    struct glVertexAttribI4ubv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI4ubv, &args ))) WARN( "glVertexAttribI4ubv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4ubvEXT( GLuint index, const GLubyte *v )
+{
+    struct glVertexAttribI4ubvEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI4ubvEXT, &args ))) WARN( "glVertexAttribI4ubvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4ui( GLuint index, GLuint x, GLuint y, GLuint z, GLuint w )
+{
+    struct glVertexAttribI4ui_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d, w %d\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttribI4ui, &args ))) WARN( "glVertexAttribI4ui returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4uiEXT( GLuint index, GLuint x, GLuint y, GLuint z, GLuint w )
+{
+    struct glVertexAttribI4uiEXT_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %d, y %d, z %d, w %d\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttribI4uiEXT, &args ))) WARN( "glVertexAttribI4uiEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4uiv( GLuint index, const GLuint *v )
+{
+    struct glVertexAttribI4uiv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI4uiv, &args ))) WARN( "glVertexAttribI4uiv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4uivEXT( GLuint index, const GLuint *v )
+{
+    struct glVertexAttribI4uivEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI4uivEXT, &args ))) WARN( "glVertexAttribI4uivEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4usv( GLuint index, const GLushort *v )
+{
+    struct glVertexAttribI4usv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI4usv, &args ))) WARN( "glVertexAttribI4usv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribI4usvEXT( GLuint index, const GLushort *v )
+{
+    struct glVertexAttribI4usvEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribI4usvEXT, &args ))) WARN( "glVertexAttribI4usvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribIFormat( GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset )
+{
+    struct glVertexAttribIFormat_params args = { .attribindex = attribindex, .size = size, .type = type, .relativeoffset = relativeoffset, };
+    NTSTATUS status;
+    TRACE( "attribindex %d, size %d, type %d, relativeoffset %d\n", attribindex, size, type, relativeoffset );
+    if ((status = UNIX_CALL( glVertexAttribIFormat, &args ))) WARN( "glVertexAttribIFormat returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribIFormatNV( GLuint index, GLint size, GLenum type, GLsizei stride )
+{
+    struct glVertexAttribIFormatNV_params args = { .index = index, .size = size, .type = type, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, type %d, stride %d\n", index, size, type, stride );
+    if ((status = UNIX_CALL( glVertexAttribIFormatNV, &args ))) WARN( "glVertexAttribIFormatNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribIPointer( GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glVertexAttribIPointer_params args = { .index = index, .size = size, .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, type %d, stride %d, pointer %p\n", index, size, type, stride, pointer );
+    if ((status = UNIX_CALL( glVertexAttribIPointer, &args ))) WARN( "glVertexAttribIPointer returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribIPointerEXT( GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glVertexAttribIPointerEXT_params args = { .index = index, .size = size, .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, type %d, stride %d, pointer %p\n", index, size, type, stride, pointer );
+    if ((status = UNIX_CALL( glVertexAttribIPointerEXT, &args ))) WARN( "glVertexAttribIPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL1d( GLuint index, GLdouble x )
+{
+    struct glVertexAttribL1d_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttribL1d, &args ))) WARN( "glVertexAttribL1d returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL1dEXT( GLuint index, GLdouble x )
+{
+    struct glVertexAttribL1dEXT_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f\n", index, x );
+    if ((status = UNIX_CALL( glVertexAttribL1dEXT, &args ))) WARN( "glVertexAttribL1dEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL1dv( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttribL1dv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL1dv, &args ))) WARN( "glVertexAttribL1dv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL1dvEXT( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttribL1dvEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL1dvEXT, &args ))) WARN( "glVertexAttribL1dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL1i64NV( GLuint index, GLint64EXT x )
+{
+    struct glVertexAttribL1i64NV_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %s\n", index, wine_dbgstr_longlong(x) );
+    if ((status = UNIX_CALL( glVertexAttribL1i64NV, &args ))) WARN( "glVertexAttribL1i64NV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL1i64vNV( GLuint index, const GLint64EXT *v )
+{
+    struct glVertexAttribL1i64vNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL1i64vNV, &args ))) WARN( "glVertexAttribL1i64vNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL1ui64ARB( GLuint index, GLuint64EXT x )
+{
+    struct glVertexAttribL1ui64ARB_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %s\n", index, wine_dbgstr_longlong(x) );
+    if ((status = UNIX_CALL( glVertexAttribL1ui64ARB, &args ))) WARN( "glVertexAttribL1ui64ARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL1ui64NV( GLuint index, GLuint64EXT x )
+{
+    struct glVertexAttribL1ui64NV_params args = { .index = index, .x = x, };
+    NTSTATUS status;
+    TRACE( "index %d, x %s\n", index, wine_dbgstr_longlong(x) );
+    if ((status = UNIX_CALL( glVertexAttribL1ui64NV, &args ))) WARN( "glVertexAttribL1ui64NV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL1ui64vARB( GLuint index, const GLuint64EXT *v )
+{
+    struct glVertexAttribL1ui64vARB_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL1ui64vARB, &args ))) WARN( "glVertexAttribL1ui64vARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL1ui64vNV( GLuint index, const GLuint64EXT *v )
+{
+    struct glVertexAttribL1ui64vNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL1ui64vNV, &args ))) WARN( "glVertexAttribL1ui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL2d( GLuint index, GLdouble x, GLdouble y )
+{
+    struct glVertexAttribL2d_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttribL2d, &args ))) WARN( "glVertexAttribL2d returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL2dEXT( GLuint index, GLdouble x, GLdouble y )
+{
+    struct glVertexAttribL2dEXT_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f\n", index, x, y );
+    if ((status = UNIX_CALL( glVertexAttribL2dEXT, &args ))) WARN( "glVertexAttribL2dEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL2dv( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttribL2dv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL2dv, &args ))) WARN( "glVertexAttribL2dv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL2dvEXT( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttribL2dvEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL2dvEXT, &args ))) WARN( "glVertexAttribL2dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL2i64NV( GLuint index, GLint64EXT x, GLint64EXT y )
+{
+    struct glVertexAttribL2i64NV_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %s, y %s\n", index, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+    if ((status = UNIX_CALL( glVertexAttribL2i64NV, &args ))) WARN( "glVertexAttribL2i64NV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL2i64vNV( GLuint index, const GLint64EXT *v )
+{
+    struct glVertexAttribL2i64vNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL2i64vNV, &args ))) WARN( "glVertexAttribL2i64vNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL2ui64NV( GLuint index, GLuint64EXT x, GLuint64EXT y )
+{
+    struct glVertexAttribL2ui64NV_params args = { .index = index, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "index %d, x %s, y %s\n", index, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y) );
+    if ((status = UNIX_CALL( glVertexAttribL2ui64NV, &args ))) WARN( "glVertexAttribL2ui64NV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL2ui64vNV( GLuint index, const GLuint64EXT *v )
+{
+    struct glVertexAttribL2ui64vNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL2ui64vNV, &args ))) WARN( "glVertexAttribL2ui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL3d( GLuint index, GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glVertexAttribL3d_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttribL3d, &args ))) WARN( "glVertexAttribL3d returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL3dEXT( GLuint index, GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glVertexAttribL3dEXT_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f\n", index, x, y, z );
+    if ((status = UNIX_CALL( glVertexAttribL3dEXT, &args ))) WARN( "glVertexAttribL3dEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL3dv( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttribL3dv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL3dv, &args ))) WARN( "glVertexAttribL3dv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL3dvEXT( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttribL3dvEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL3dvEXT, &args ))) WARN( "glVertexAttribL3dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL3i64NV( GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z )
+{
+    struct glVertexAttribL3i64NV_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %s, y %s, z %s\n", index, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+    if ((status = UNIX_CALL( glVertexAttribL3i64NV, &args ))) WARN( "glVertexAttribL3i64NV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL3i64vNV( GLuint index, const GLint64EXT *v )
+{
+    struct glVertexAttribL3i64vNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL3i64vNV, &args ))) WARN( "glVertexAttribL3i64vNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL3ui64NV( GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z )
+{
+    struct glVertexAttribL3ui64NV_params args = { .index = index, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "index %d, x %s, y %s, z %s\n", index, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z) );
+    if ((status = UNIX_CALL( glVertexAttribL3ui64NV, &args ))) WARN( "glVertexAttribL3ui64NV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL3ui64vNV( GLuint index, const GLuint64EXT *v )
+{
+    struct glVertexAttribL3ui64vNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL3ui64vNV, &args ))) WARN( "glVertexAttribL3ui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL4d( GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glVertexAttribL4d_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f, w %f\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttribL4d, &args ))) WARN( "glVertexAttribL4d returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL4dEXT( GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glVertexAttribL4dEXT_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, z %f, w %f\n", index, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexAttribL4dEXT, &args ))) WARN( "glVertexAttribL4dEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL4dv( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttribL4dv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL4dv, &args ))) WARN( "glVertexAttribL4dv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL4dvEXT( GLuint index, const GLdouble *v )
+{
+    struct glVertexAttribL4dvEXT_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL4dvEXT, &args ))) WARN( "glVertexAttribL4dvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL4i64NV( GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w )
+{
+    struct glVertexAttribL4i64NV_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %s, y %s, z %s, w %s\n", index, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+    if ((status = UNIX_CALL( glVertexAttribL4i64NV, &args ))) WARN( "glVertexAttribL4i64NV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL4i64vNV( GLuint index, const GLint64EXT *v )
+{
+    struct glVertexAttribL4i64vNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL4i64vNV, &args ))) WARN( "glVertexAttribL4i64vNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL4ui64NV( GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w )
+{
+    struct glVertexAttribL4ui64NV_params args = { .index = index, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "index %d, x %s, y %s, z %s, w %s\n", index, wine_dbgstr_longlong(x), wine_dbgstr_longlong(y), wine_dbgstr_longlong(z), wine_dbgstr_longlong(w) );
+    if ((status = UNIX_CALL( glVertexAttribL4ui64NV, &args ))) WARN( "glVertexAttribL4ui64NV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribL4ui64vNV( GLuint index, const GLuint64EXT *v )
+{
+    struct glVertexAttribL4ui64vNV_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glVertexAttribL4ui64vNV, &args ))) WARN( "glVertexAttribL4ui64vNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribLFormat( GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset )
+{
+    struct glVertexAttribLFormat_params args = { .attribindex = attribindex, .size = size, .type = type, .relativeoffset = relativeoffset, };
+    NTSTATUS status;
+    TRACE( "attribindex %d, size %d, type %d, relativeoffset %d\n", attribindex, size, type, relativeoffset );
+    if ((status = UNIX_CALL( glVertexAttribLFormat, &args ))) WARN( "glVertexAttribLFormat returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribLFormatNV( GLuint index, GLint size, GLenum type, GLsizei stride )
+{
+    struct glVertexAttribLFormatNV_params args = { .index = index, .size = size, .type = type, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, type %d, stride %d\n", index, size, type, stride );
+    if ((status = UNIX_CALL( glVertexAttribLFormatNV, &args ))) WARN( "glVertexAttribLFormatNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribLPointer( GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glVertexAttribLPointer_params args = { .index = index, .size = size, .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, type %d, stride %d, pointer %p\n", index, size, type, stride, pointer );
+    if ((status = UNIX_CALL( glVertexAttribLPointer, &args ))) WARN( "glVertexAttribLPointer returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribLPointerEXT( GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glVertexAttribLPointerEXT_params args = { .index = index, .size = size, .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, type %d, stride %d, pointer %p\n", index, size, type, stride, pointer );
+    if ((status = UNIX_CALL( glVertexAttribLPointerEXT, &args ))) WARN( "glVertexAttribLPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribP1ui( GLuint index, GLenum type, GLboolean normalized, GLuint value )
+{
+    struct glVertexAttribP1ui_params args = { .index = index, .type = type, .normalized = normalized, .value = value, };
+    NTSTATUS status;
+    TRACE( "index %d, type %d, normalized %d, value %d\n", index, type, normalized, value );
+    if ((status = UNIX_CALL( glVertexAttribP1ui, &args ))) WARN( "glVertexAttribP1ui returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribP1uiv( GLuint index, GLenum type, GLboolean normalized, const GLuint *value )
+{
+    struct glVertexAttribP1uiv_params args = { .index = index, .type = type, .normalized = normalized, .value = value, };
+    NTSTATUS status;
+    TRACE( "index %d, type %d, normalized %d, value %p\n", index, type, normalized, value );
+    if ((status = UNIX_CALL( glVertexAttribP1uiv, &args ))) WARN( "glVertexAttribP1uiv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribP2ui( GLuint index, GLenum type, GLboolean normalized, GLuint value )
+{
+    struct glVertexAttribP2ui_params args = { .index = index, .type = type, .normalized = normalized, .value = value, };
+    NTSTATUS status;
+    TRACE( "index %d, type %d, normalized %d, value %d\n", index, type, normalized, value );
+    if ((status = UNIX_CALL( glVertexAttribP2ui, &args ))) WARN( "glVertexAttribP2ui returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribP2uiv( GLuint index, GLenum type, GLboolean normalized, const GLuint *value )
+{
+    struct glVertexAttribP2uiv_params args = { .index = index, .type = type, .normalized = normalized, .value = value, };
+    NTSTATUS status;
+    TRACE( "index %d, type %d, normalized %d, value %p\n", index, type, normalized, value );
+    if ((status = UNIX_CALL( glVertexAttribP2uiv, &args ))) WARN( "glVertexAttribP2uiv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribP3ui( GLuint index, GLenum type, GLboolean normalized, GLuint value )
+{
+    struct glVertexAttribP3ui_params args = { .index = index, .type = type, .normalized = normalized, .value = value, };
+    NTSTATUS status;
+    TRACE( "index %d, type %d, normalized %d, value %d\n", index, type, normalized, value );
+    if ((status = UNIX_CALL( glVertexAttribP3ui, &args ))) WARN( "glVertexAttribP3ui returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribP3uiv( GLuint index, GLenum type, GLboolean normalized, const GLuint *value )
+{
+    struct glVertexAttribP3uiv_params args = { .index = index, .type = type, .normalized = normalized, .value = value, };
+    NTSTATUS status;
+    TRACE( "index %d, type %d, normalized %d, value %p\n", index, type, normalized, value );
+    if ((status = UNIX_CALL( glVertexAttribP3uiv, &args ))) WARN( "glVertexAttribP3uiv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribP4ui( GLuint index, GLenum type, GLboolean normalized, GLuint value )
+{
+    struct glVertexAttribP4ui_params args = { .index = index, .type = type, .normalized = normalized, .value = value, };
+    NTSTATUS status;
+    TRACE( "index %d, type %d, normalized %d, value %d\n", index, type, normalized, value );
+    if ((status = UNIX_CALL( glVertexAttribP4ui, &args ))) WARN( "glVertexAttribP4ui returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribP4uiv( GLuint index, GLenum type, GLboolean normalized, const GLuint *value )
+{
+    struct glVertexAttribP4uiv_params args = { .index = index, .type = type, .normalized = normalized, .value = value, };
+    NTSTATUS status;
+    TRACE( "index %d, type %d, normalized %d, value %p\n", index, type, normalized, value );
+    if ((status = UNIX_CALL( glVertexAttribP4uiv, &args ))) WARN( "glVertexAttribP4uiv returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribParameteriAMD( GLuint index, GLenum pname, GLint param )
+{
+    struct glVertexAttribParameteriAMD_params args = { .index = index, .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "index %d, pname %d, param %d\n", index, pname, param );
+    if ((status = UNIX_CALL( glVertexAttribParameteriAMD, &args ))) WARN( "glVertexAttribParameteriAMD returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer )
+{
+    struct glVertexAttribPointer_params args = { .index = index, .size = size, .type = type, .normalized = normalized, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, type %d, normalized %d, stride %d, pointer %p\n", index, size, type, normalized, stride, pointer );
+    if ((status = UNIX_CALL( glVertexAttribPointer, &args ))) WARN( "glVertexAttribPointer returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribPointerARB( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer )
+{
+    struct glVertexAttribPointerARB_params args = { .index = index, .size = size, .type = type, .normalized = normalized, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "index %d, size %d, type %d, normalized %d, stride %d, pointer %p\n", index, size, type, normalized, stride, pointer );
+    if ((status = UNIX_CALL( glVertexAttribPointerARB, &args ))) WARN( "glVertexAttribPointerARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribPointerNV( GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glVertexAttribPointerNV_params args = { .index = index, .fsize = fsize, .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "index %d, fsize %d, type %d, stride %d, pointer %p\n", index, fsize, type, stride, pointer );
+    if ((status = UNIX_CALL( glVertexAttribPointerNV, &args ))) WARN( "glVertexAttribPointerNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs1dvNV( GLuint index, GLsizei count, const GLdouble *v )
+{
+    struct glVertexAttribs1dvNV_params args = { .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, count %d, v %p\n", index, count, v );
+    if ((status = UNIX_CALL( glVertexAttribs1dvNV, &args ))) WARN( "glVertexAttribs1dvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs1fvNV( GLuint index, GLsizei count, const GLfloat *v )
+{
+    struct glVertexAttribs1fvNV_params args = { .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, count %d, v %p\n", index, count, v );
+    if ((status = UNIX_CALL( glVertexAttribs1fvNV, &args ))) WARN( "glVertexAttribs1fvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs1hvNV( GLuint index, GLsizei n, const GLhalfNV *v )
+{
+    struct glVertexAttribs1hvNV_params args = { .index = index, .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, n %d, v %p\n", index, n, v );
+    if ((status = UNIX_CALL( glVertexAttribs1hvNV, &args ))) WARN( "glVertexAttribs1hvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs1svNV( GLuint index, GLsizei count, const GLshort *v )
+{
+    struct glVertexAttribs1svNV_params args = { .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, count %d, v %p\n", index, count, v );
+    if ((status = UNIX_CALL( glVertexAttribs1svNV, &args ))) WARN( "glVertexAttribs1svNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs2dvNV( GLuint index, GLsizei count, const GLdouble *v )
+{
+    struct glVertexAttribs2dvNV_params args = { .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, count %d, v %p\n", index, count, v );
+    if ((status = UNIX_CALL( glVertexAttribs2dvNV, &args ))) WARN( "glVertexAttribs2dvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs2fvNV( GLuint index, GLsizei count, const GLfloat *v )
+{
+    struct glVertexAttribs2fvNV_params args = { .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, count %d, v %p\n", index, count, v );
+    if ((status = UNIX_CALL( glVertexAttribs2fvNV, &args ))) WARN( "glVertexAttribs2fvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs2hvNV( GLuint index, GLsizei n, const GLhalfNV *v )
+{
+    struct glVertexAttribs2hvNV_params args = { .index = index, .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, n %d, v %p\n", index, n, v );
+    if ((status = UNIX_CALL( glVertexAttribs2hvNV, &args ))) WARN( "glVertexAttribs2hvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs2svNV( GLuint index, GLsizei count, const GLshort *v )
+{
+    struct glVertexAttribs2svNV_params args = { .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, count %d, v %p\n", index, count, v );
+    if ((status = UNIX_CALL( glVertexAttribs2svNV, &args ))) WARN( "glVertexAttribs2svNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs3dvNV( GLuint index, GLsizei count, const GLdouble *v )
+{
+    struct glVertexAttribs3dvNV_params args = { .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, count %d, v %p\n", index, count, v );
+    if ((status = UNIX_CALL( glVertexAttribs3dvNV, &args ))) WARN( "glVertexAttribs3dvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs3fvNV( GLuint index, GLsizei count, const GLfloat *v )
+{
+    struct glVertexAttribs3fvNV_params args = { .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, count %d, v %p\n", index, count, v );
+    if ((status = UNIX_CALL( glVertexAttribs3fvNV, &args ))) WARN( "glVertexAttribs3fvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs3hvNV( GLuint index, GLsizei n, const GLhalfNV *v )
+{
+    struct glVertexAttribs3hvNV_params args = { .index = index, .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, n %d, v %p\n", index, n, v );
+    if ((status = UNIX_CALL( glVertexAttribs3hvNV, &args ))) WARN( "glVertexAttribs3hvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs3svNV( GLuint index, GLsizei count, const GLshort *v )
+{
+    struct glVertexAttribs3svNV_params args = { .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, count %d, v %p\n", index, count, v );
+    if ((status = UNIX_CALL( glVertexAttribs3svNV, &args ))) WARN( "glVertexAttribs3svNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs4dvNV( GLuint index, GLsizei count, const GLdouble *v )
+{
+    struct glVertexAttribs4dvNV_params args = { .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, count %d, v %p\n", index, count, v );
+    if ((status = UNIX_CALL( glVertexAttribs4dvNV, &args ))) WARN( "glVertexAttribs4dvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs4fvNV( GLuint index, GLsizei count, const GLfloat *v )
+{
+    struct glVertexAttribs4fvNV_params args = { .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, count %d, v %p\n", index, count, v );
+    if ((status = UNIX_CALL( glVertexAttribs4fvNV, &args ))) WARN( "glVertexAttribs4fvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs4hvNV( GLuint index, GLsizei n, const GLhalfNV *v )
+{
+    struct glVertexAttribs4hvNV_params args = { .index = index, .n = n, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, n %d, v %p\n", index, n, v );
+    if ((status = UNIX_CALL( glVertexAttribs4hvNV, &args ))) WARN( "glVertexAttribs4hvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs4svNV( GLuint index, GLsizei count, const GLshort *v )
+{
+    struct glVertexAttribs4svNV_params args = { .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, count %d, v %p\n", index, count, v );
+    if ((status = UNIX_CALL( glVertexAttribs4svNV, &args ))) WARN( "glVertexAttribs4svNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexAttribs4ubvNV( GLuint index, GLsizei count, const GLubyte *v )
+{
+    struct glVertexAttribs4ubvNV_params args = { .index = index, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, count %d, v %p\n", index, count, v );
+    if ((status = UNIX_CALL( glVertexAttribs4ubvNV, &args ))) WARN( "glVertexAttribs4ubvNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexBindingDivisor( GLuint bindingindex, GLuint divisor )
+{
+    struct glVertexBindingDivisor_params args = { .bindingindex = bindingindex, .divisor = divisor, };
+    NTSTATUS status;
+    TRACE( "bindingindex %d, divisor %d\n", bindingindex, divisor );
+    if ((status = UNIX_CALL( glVertexBindingDivisor, &args ))) WARN( "glVertexBindingDivisor returned %#x\n", status );
+}
+
+static void WINAPI glVertexBlendARB( GLint count )
+{
+    struct glVertexBlendARB_params args = { .count = count, };
+    NTSTATUS status;
+    TRACE( "count %d\n", count );
+    if ((status = UNIX_CALL( glVertexBlendARB, &args ))) WARN( "glVertexBlendARB returned %#x\n", status );
+}
+
+static void WINAPI glVertexBlendEnvfATI( GLenum pname, GLfloat param )
+{
+    struct glVertexBlendEnvfATI_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %f\n", pname, param );
+    if ((status = UNIX_CALL( glVertexBlendEnvfATI, &args ))) WARN( "glVertexBlendEnvfATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexBlendEnviATI( GLenum pname, GLint param )
+{
+    struct glVertexBlendEnviATI_params args = { .pname = pname, .param = param, };
+    NTSTATUS status;
+    TRACE( "pname %d, param %d\n", pname, param );
+    if ((status = UNIX_CALL( glVertexBlendEnviATI, &args ))) WARN( "glVertexBlendEnviATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexFormatNV( GLint size, GLenum type, GLsizei stride )
+{
+    struct glVertexFormatNV_params args = { .size = size, .type = type, .stride = stride, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d\n", size, type, stride );
+    if ((status = UNIX_CALL( glVertexFormatNV, &args ))) WARN( "glVertexFormatNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexP2ui( GLenum type, GLuint value )
+{
+    struct glVertexP2ui_params args = { .type = type, .value = value, };
+    NTSTATUS status;
+    TRACE( "type %d, value %d\n", type, value );
+    if ((status = UNIX_CALL( glVertexP2ui, &args ))) WARN( "glVertexP2ui returned %#x\n", status );
+}
+
+static void WINAPI glVertexP2uiv( GLenum type, const GLuint *value )
+{
+    struct glVertexP2uiv_params args = { .type = type, .value = value, };
+    NTSTATUS status;
+    TRACE( "type %d, value %p\n", type, value );
+    if ((status = UNIX_CALL( glVertexP2uiv, &args ))) WARN( "glVertexP2uiv returned %#x\n", status );
+}
+
+static void WINAPI glVertexP3ui( GLenum type, GLuint value )
+{
+    struct glVertexP3ui_params args = { .type = type, .value = value, };
+    NTSTATUS status;
+    TRACE( "type %d, value %d\n", type, value );
+    if ((status = UNIX_CALL( glVertexP3ui, &args ))) WARN( "glVertexP3ui returned %#x\n", status );
+}
+
+static void WINAPI glVertexP3uiv( GLenum type, const GLuint *value )
+{
+    struct glVertexP3uiv_params args = { .type = type, .value = value, };
+    NTSTATUS status;
+    TRACE( "type %d, value %p\n", type, value );
+    if ((status = UNIX_CALL( glVertexP3uiv, &args ))) WARN( "glVertexP3uiv returned %#x\n", status );
+}
+
+static void WINAPI glVertexP4ui( GLenum type, GLuint value )
+{
+    struct glVertexP4ui_params args = { .type = type, .value = value, };
+    NTSTATUS status;
+    TRACE( "type %d, value %d\n", type, value );
+    if ((status = UNIX_CALL( glVertexP4ui, &args ))) WARN( "glVertexP4ui returned %#x\n", status );
+}
+
+static void WINAPI glVertexP4uiv( GLenum type, const GLuint *value )
+{
+    struct glVertexP4uiv_params args = { .type = type, .value = value, };
+    NTSTATUS status;
+    TRACE( "type %d, value %p\n", type, value );
+    if ((status = UNIX_CALL( glVertexP4uiv, &args ))) WARN( "glVertexP4uiv returned %#x\n", status );
+}
+
+static void WINAPI glVertexPointerEXT( GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer )
+{
+    struct glVertexPointerEXT_params args = { .size = size, .type = type, .stride = stride, .count = count, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d, count %d, pointer %p\n", size, type, stride, count, pointer );
+    if ((status = UNIX_CALL( glVertexPointerEXT, &args ))) WARN( "glVertexPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexPointerListIBM( GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride )
+{
+    struct glVertexPointerListIBM_params args = { .size = size, .type = type, .stride = stride, .pointer = pointer, .ptrstride = ptrstride, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d, pointer %p, ptrstride %d\n", size, type, stride, pointer, ptrstride );
+    if ((status = UNIX_CALL( glVertexPointerListIBM, &args ))) WARN( "glVertexPointerListIBM returned %#x\n", status );
+}
+
+static void WINAPI glVertexPointervINTEL( GLint size, GLenum type, const void **pointer )
+{
+    struct glVertexPointervINTEL_params args = { .size = size, .type = type, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, pointer %p\n", size, type, pointer );
+    if ((status = UNIX_CALL( glVertexPointervINTEL, &args ))) WARN( "glVertexPointervINTEL returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream1dATI( GLenum stream, GLdouble x )
+{
+    struct glVertexStream1dATI_params args = { .stream = stream, .x = x, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %f\n", stream, x );
+    if ((status = UNIX_CALL( glVertexStream1dATI, &args ))) WARN( "glVertexStream1dATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream1dvATI( GLenum stream, const GLdouble *coords )
+{
+    struct glVertexStream1dvATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream1dvATI, &args ))) WARN( "glVertexStream1dvATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream1fATI( GLenum stream, GLfloat x )
+{
+    struct glVertexStream1fATI_params args = { .stream = stream, .x = x, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %f\n", stream, x );
+    if ((status = UNIX_CALL( glVertexStream1fATI, &args ))) WARN( "glVertexStream1fATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream1fvATI( GLenum stream, const GLfloat *coords )
+{
+    struct glVertexStream1fvATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream1fvATI, &args ))) WARN( "glVertexStream1fvATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream1iATI( GLenum stream, GLint x )
+{
+    struct glVertexStream1iATI_params args = { .stream = stream, .x = x, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %d\n", stream, x );
+    if ((status = UNIX_CALL( glVertexStream1iATI, &args ))) WARN( "glVertexStream1iATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream1ivATI( GLenum stream, const GLint *coords )
+{
+    struct glVertexStream1ivATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream1ivATI, &args ))) WARN( "glVertexStream1ivATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream1sATI( GLenum stream, GLshort x )
+{
+    struct glVertexStream1sATI_params args = { .stream = stream, .x = x, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %d\n", stream, x );
+    if ((status = UNIX_CALL( glVertexStream1sATI, &args ))) WARN( "glVertexStream1sATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream1svATI( GLenum stream, const GLshort *coords )
+{
+    struct glVertexStream1svATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream1svATI, &args ))) WARN( "glVertexStream1svATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream2dATI( GLenum stream, GLdouble x, GLdouble y )
+{
+    struct glVertexStream2dATI_params args = { .stream = stream, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %f, y %f\n", stream, x, y );
+    if ((status = UNIX_CALL( glVertexStream2dATI, &args ))) WARN( "glVertexStream2dATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream2dvATI( GLenum stream, const GLdouble *coords )
+{
+    struct glVertexStream2dvATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream2dvATI, &args ))) WARN( "glVertexStream2dvATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream2fATI( GLenum stream, GLfloat x, GLfloat y )
+{
+    struct glVertexStream2fATI_params args = { .stream = stream, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %f, y %f\n", stream, x, y );
+    if ((status = UNIX_CALL( glVertexStream2fATI, &args ))) WARN( "glVertexStream2fATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream2fvATI( GLenum stream, const GLfloat *coords )
+{
+    struct glVertexStream2fvATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream2fvATI, &args ))) WARN( "glVertexStream2fvATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream2iATI( GLenum stream, GLint x, GLint y )
+{
+    struct glVertexStream2iATI_params args = { .stream = stream, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %d, y %d\n", stream, x, y );
+    if ((status = UNIX_CALL( glVertexStream2iATI, &args ))) WARN( "glVertexStream2iATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream2ivATI( GLenum stream, const GLint *coords )
+{
+    struct glVertexStream2ivATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream2ivATI, &args ))) WARN( "glVertexStream2ivATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream2sATI( GLenum stream, GLshort x, GLshort y )
+{
+    struct glVertexStream2sATI_params args = { .stream = stream, .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %d, y %d\n", stream, x, y );
+    if ((status = UNIX_CALL( glVertexStream2sATI, &args ))) WARN( "glVertexStream2sATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream2svATI( GLenum stream, const GLshort *coords )
+{
+    struct glVertexStream2svATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream2svATI, &args ))) WARN( "glVertexStream2svATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream3dATI( GLenum stream, GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glVertexStream3dATI_params args = { .stream = stream, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %f, y %f, z %f\n", stream, x, y, z );
+    if ((status = UNIX_CALL( glVertexStream3dATI, &args ))) WARN( "glVertexStream3dATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream3dvATI( GLenum stream, const GLdouble *coords )
+{
+    struct glVertexStream3dvATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream3dvATI, &args ))) WARN( "glVertexStream3dvATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream3fATI( GLenum stream, GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glVertexStream3fATI_params args = { .stream = stream, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %f, y %f, z %f\n", stream, x, y, z );
+    if ((status = UNIX_CALL( glVertexStream3fATI, &args ))) WARN( "glVertexStream3fATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream3fvATI( GLenum stream, const GLfloat *coords )
+{
+    struct glVertexStream3fvATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream3fvATI, &args ))) WARN( "glVertexStream3fvATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream3iATI( GLenum stream, GLint x, GLint y, GLint z )
+{
+    struct glVertexStream3iATI_params args = { .stream = stream, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %d, y %d, z %d\n", stream, x, y, z );
+    if ((status = UNIX_CALL( glVertexStream3iATI, &args ))) WARN( "glVertexStream3iATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream3ivATI( GLenum stream, const GLint *coords )
+{
+    struct glVertexStream3ivATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream3ivATI, &args ))) WARN( "glVertexStream3ivATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream3sATI( GLenum stream, GLshort x, GLshort y, GLshort z )
+{
+    struct glVertexStream3sATI_params args = { .stream = stream, .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %d, y %d, z %d\n", stream, x, y, z );
+    if ((status = UNIX_CALL( glVertexStream3sATI, &args ))) WARN( "glVertexStream3sATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream3svATI( GLenum stream, const GLshort *coords )
+{
+    struct glVertexStream3svATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream3svATI, &args ))) WARN( "glVertexStream3svATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream4dATI( GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glVertexStream4dATI_params args = { .stream = stream, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %f, y %f, z %f, w %f\n", stream, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexStream4dATI, &args ))) WARN( "glVertexStream4dATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream4dvATI( GLenum stream, const GLdouble *coords )
+{
+    struct glVertexStream4dvATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream4dvATI, &args ))) WARN( "glVertexStream4dvATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream4fATI( GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w )
+{
+    struct glVertexStream4fATI_params args = { .stream = stream, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %f, y %f, z %f, w %f\n", stream, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexStream4fATI, &args ))) WARN( "glVertexStream4fATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream4fvATI( GLenum stream, const GLfloat *coords )
+{
+    struct glVertexStream4fvATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream4fvATI, &args ))) WARN( "glVertexStream4fvATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream4iATI( GLenum stream, GLint x, GLint y, GLint z, GLint w )
+{
+    struct glVertexStream4iATI_params args = { .stream = stream, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %d, y %d, z %d, w %d\n", stream, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexStream4iATI, &args ))) WARN( "glVertexStream4iATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream4ivATI( GLenum stream, const GLint *coords )
+{
+    struct glVertexStream4ivATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream4ivATI, &args ))) WARN( "glVertexStream4ivATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream4sATI( GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w )
+{
+    struct glVertexStream4sATI_params args = { .stream = stream, .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "stream %d, x %d, y %d, z %d, w %d\n", stream, x, y, z, w );
+    if ((status = UNIX_CALL( glVertexStream4sATI, &args ))) WARN( "glVertexStream4sATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexStream4svATI( GLenum stream, const GLshort *coords )
+{
+    struct glVertexStream4svATI_params args = { .stream = stream, .coords = coords, };
+    NTSTATUS status;
+    TRACE( "stream %d, coords %p\n", stream, coords );
+    if ((status = UNIX_CALL( glVertexStream4svATI, &args ))) WARN( "glVertexStream4svATI returned %#x\n", status );
+}
+
+static void WINAPI glVertexWeightPointerEXT( GLint size, GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glVertexWeightPointerEXT_params args = { .size = size, .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d, pointer %p\n", size, type, stride, pointer );
+    if ((status = UNIX_CALL( glVertexWeightPointerEXT, &args ))) WARN( "glVertexWeightPointerEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexWeightfEXT( GLfloat weight )
+{
+    struct glVertexWeightfEXT_params args = { .weight = weight, };
+    NTSTATUS status;
+    TRACE( "weight %f\n", weight );
+    if ((status = UNIX_CALL( glVertexWeightfEXT, &args ))) WARN( "glVertexWeightfEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexWeightfvEXT( const GLfloat *weight )
+{
+    struct glVertexWeightfvEXT_params args = { .weight = weight, };
+    NTSTATUS status;
+    TRACE( "weight %p\n", weight );
+    if ((status = UNIX_CALL( glVertexWeightfvEXT, &args ))) WARN( "glVertexWeightfvEXT returned %#x\n", status );
+}
+
+static void WINAPI glVertexWeighthNV( GLhalfNV weight )
+{
+    struct glVertexWeighthNV_params args = { .weight = weight, };
+    NTSTATUS status;
+    TRACE( "weight %d\n", weight );
+    if ((status = UNIX_CALL( glVertexWeighthNV, &args ))) WARN( "glVertexWeighthNV returned %#x\n", status );
+}
+
+static void WINAPI glVertexWeighthvNV( const GLhalfNV *weight )
+{
+    struct glVertexWeighthvNV_params args = { .weight = weight, };
+    NTSTATUS status;
+    TRACE( "weight %p\n", weight );
+    if ((status = UNIX_CALL( glVertexWeighthvNV, &args ))) WARN( "glVertexWeighthvNV returned %#x\n", status );
+}
+
+static GLenum WINAPI glVideoCaptureNV( GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time )
+{
+    struct glVideoCaptureNV_params args = { .video_capture_slot = video_capture_slot, .sequence_num = sequence_num, .capture_time = capture_time, };
+    NTSTATUS status;
+    TRACE( "video_capture_slot %d, sequence_num %p, capture_time %p\n", video_capture_slot, sequence_num, capture_time );
+    if ((status = UNIX_CALL( glVideoCaptureNV, &args ))) WARN( "glVideoCaptureNV returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI glVideoCaptureStreamParameterdvNV( GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params )
+{
+    struct glVideoCaptureStreamParameterdvNV_params args = { .video_capture_slot = video_capture_slot, .stream = stream, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "video_capture_slot %d, stream %d, pname %d, params %p\n", video_capture_slot, stream, pname, params );
+    if ((status = UNIX_CALL( glVideoCaptureStreamParameterdvNV, &args ))) WARN( "glVideoCaptureStreamParameterdvNV returned %#x\n", status );
+}
+
+static void WINAPI glVideoCaptureStreamParameterfvNV( GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params )
+{
+    struct glVideoCaptureStreamParameterfvNV_params args = { .video_capture_slot = video_capture_slot, .stream = stream, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "video_capture_slot %d, stream %d, pname %d, params %p\n", video_capture_slot, stream, pname, params );
+    if ((status = UNIX_CALL( glVideoCaptureStreamParameterfvNV, &args ))) WARN( "glVideoCaptureStreamParameterfvNV returned %#x\n", status );
+}
+
+static void WINAPI glVideoCaptureStreamParameterivNV( GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params )
+{
+    struct glVideoCaptureStreamParameterivNV_params args = { .video_capture_slot = video_capture_slot, .stream = stream, .pname = pname, .params = params, };
+    NTSTATUS status;
+    TRACE( "video_capture_slot %d, stream %d, pname %d, params %p\n", video_capture_slot, stream, pname, params );
+    if ((status = UNIX_CALL( glVideoCaptureStreamParameterivNV, &args ))) WARN( "glVideoCaptureStreamParameterivNV returned %#x\n", status );
+}
+
+static void WINAPI glViewportArrayv( GLuint first, GLsizei count, const GLfloat *v )
+{
+    struct glViewportArrayv_params args = { .first = first, .count = count, .v = v, };
+    NTSTATUS status;
+    TRACE( "first %d, count %d, v %p\n", first, count, v );
+    if ((status = UNIX_CALL( glViewportArrayv, &args ))) WARN( "glViewportArrayv returned %#x\n", status );
+}
+
+static void WINAPI glViewportIndexedf( GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h )
+{
+    struct glViewportIndexedf_params args = { .index = index, .x = x, .y = y, .w = w, .h = h, };
+    NTSTATUS status;
+    TRACE( "index %d, x %f, y %f, w %f, h %f\n", index, x, y, w, h );
+    if ((status = UNIX_CALL( glViewportIndexedf, &args ))) WARN( "glViewportIndexedf returned %#x\n", status );
+}
+
+static void WINAPI glViewportIndexedfv( GLuint index, const GLfloat *v )
+{
+    struct glViewportIndexedfv_params args = { .index = index, .v = v, };
+    NTSTATUS status;
+    TRACE( "index %d, v %p\n", index, v );
+    if ((status = UNIX_CALL( glViewportIndexedfv, &args ))) WARN( "glViewportIndexedfv returned %#x\n", status );
+}
+
+static void WINAPI glViewportPositionWScaleNV( GLuint index, GLfloat xcoeff, GLfloat ycoeff )
+{
+    struct glViewportPositionWScaleNV_params args = { .index = index, .xcoeff = xcoeff, .ycoeff = ycoeff, };
+    NTSTATUS status;
+    TRACE( "index %d, xcoeff %f, ycoeff %f\n", index, xcoeff, ycoeff );
+    if ((status = UNIX_CALL( glViewportPositionWScaleNV, &args ))) WARN( "glViewportPositionWScaleNV returned %#x\n", status );
+}
+
+static void WINAPI glViewportSwizzleNV( GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew )
+{
+    struct glViewportSwizzleNV_params args = { .index = index, .swizzlex = swizzlex, .swizzley = swizzley, .swizzlez = swizzlez, .swizzlew = swizzlew, };
+    NTSTATUS status;
+    TRACE( "index %d, swizzlex %d, swizzley %d, swizzlez %d, swizzlew %d\n", index, swizzlex, swizzley, swizzlez, swizzlew );
+    if ((status = UNIX_CALL( glViewportSwizzleNV, &args ))) WARN( "glViewportSwizzleNV returned %#x\n", status );
+}
+
+static void WINAPI glWaitSemaphoreEXT( GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts )
+{
+    struct glWaitSemaphoreEXT_params args = { .semaphore = semaphore, .numBufferBarriers = numBufferBarriers, .buffers = buffers, .numTextureBarriers = numTextureBarriers, .textures = textures, .srcLayouts = srcLayouts, };
+    NTSTATUS status;
+    TRACE( "semaphore %d, numBufferBarriers %d, buffers %p, numTextureBarriers %d, textures %p, srcLayouts %p\n", semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, srcLayouts );
+    if ((status = UNIX_CALL( glWaitSemaphoreEXT, &args ))) WARN( "glWaitSemaphoreEXT returned %#x\n", status );
+}
+
+static void WINAPI glWaitSemaphoreui64NVX( GLuint waitGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray )
+{
+    struct glWaitSemaphoreui64NVX_params args = { .waitGpu = waitGpu, .fenceObjectCount = fenceObjectCount, .semaphoreArray = semaphoreArray, .fenceValueArray = fenceValueArray, };
+    NTSTATUS status;
+    TRACE( "waitGpu %d, fenceObjectCount %d, semaphoreArray %p, fenceValueArray %p\n", waitGpu, fenceObjectCount, semaphoreArray, fenceValueArray );
+    if ((status = UNIX_CALL( glWaitSemaphoreui64NVX, &args ))) WARN( "glWaitSemaphoreui64NVX returned %#x\n", status );
+}
+
+static void WINAPI glWaitSync( GLsync sync, GLbitfield flags, GLuint64 timeout )
+{
+    struct glWaitSync_params args = { .sync = sync, .flags = flags, .timeout = timeout, };
+    NTSTATUS status;
+    TRACE( "sync %p, flags %d, timeout %s\n", sync, flags, wine_dbgstr_longlong(timeout) );
+    if ((status = UNIX_CALL( glWaitSync, &args ))) WARN( "glWaitSync returned %#x\n", status );
+}
+
+static void WINAPI glWaitVkSemaphoreNV( GLuint64 vkSemaphore )
+{
+    struct glWaitVkSemaphoreNV_params args = { .vkSemaphore = vkSemaphore, };
+    NTSTATUS status;
+    TRACE( "vkSemaphore %s\n", wine_dbgstr_longlong(vkSemaphore) );
+    if ((status = UNIX_CALL( glWaitVkSemaphoreNV, &args ))) WARN( "glWaitVkSemaphoreNV returned %#x\n", status );
+}
+
+static void WINAPI glWeightPathsNV( GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights )
+{
+    struct glWeightPathsNV_params args = { .resultPath = resultPath, .numPaths = numPaths, .paths = paths, .weights = weights, };
+    NTSTATUS status;
+    TRACE( "resultPath %d, numPaths %d, paths %p, weights %p\n", resultPath, numPaths, paths, weights );
+    if ((status = UNIX_CALL( glWeightPathsNV, &args ))) WARN( "glWeightPathsNV returned %#x\n", status );
+}
+
+static void WINAPI glWeightPointerARB( GLint size, GLenum type, GLsizei stride, const void *pointer )
+{
+    struct glWeightPointerARB_params args = { .size = size, .type = type, .stride = stride, .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "size %d, type %d, stride %d, pointer %p\n", size, type, stride, pointer );
+    if ((status = UNIX_CALL( glWeightPointerARB, &args ))) WARN( "glWeightPointerARB returned %#x\n", status );
+}
+
+static void WINAPI glWeightbvARB( GLint size, const GLbyte *weights )
+{
+    struct glWeightbvARB_params args = { .size = size, .weights = weights, };
+    NTSTATUS status;
+    TRACE( "size %d, weights %p\n", size, weights );
+    if ((status = UNIX_CALL( glWeightbvARB, &args ))) WARN( "glWeightbvARB returned %#x\n", status );
+}
+
+static void WINAPI glWeightdvARB( GLint size, const GLdouble *weights )
+{
+    struct glWeightdvARB_params args = { .size = size, .weights = weights, };
+    NTSTATUS status;
+    TRACE( "size %d, weights %p\n", size, weights );
+    if ((status = UNIX_CALL( glWeightdvARB, &args ))) WARN( "glWeightdvARB returned %#x\n", status );
+}
+
+static void WINAPI glWeightfvARB( GLint size, const GLfloat *weights )
+{
+    struct glWeightfvARB_params args = { .size = size, .weights = weights, };
+    NTSTATUS status;
+    TRACE( "size %d, weights %p\n", size, weights );
+    if ((status = UNIX_CALL( glWeightfvARB, &args ))) WARN( "glWeightfvARB returned %#x\n", status );
+}
+
+static void WINAPI glWeightivARB( GLint size, const GLint *weights )
+{
+    struct glWeightivARB_params args = { .size = size, .weights = weights, };
+    NTSTATUS status;
+    TRACE( "size %d, weights %p\n", size, weights );
+    if ((status = UNIX_CALL( glWeightivARB, &args ))) WARN( "glWeightivARB returned %#x\n", status );
+}
+
+static void WINAPI glWeightsvARB( GLint size, const GLshort *weights )
+{
+    struct glWeightsvARB_params args = { .size = size, .weights = weights, };
+    NTSTATUS status;
+    TRACE( "size %d, weights %p\n", size, weights );
+    if ((status = UNIX_CALL( glWeightsvARB, &args ))) WARN( "glWeightsvARB returned %#x\n", status );
+}
+
+static void WINAPI glWeightubvARB( GLint size, const GLubyte *weights )
+{
+    struct glWeightubvARB_params args = { .size = size, .weights = weights, };
+    NTSTATUS status;
+    TRACE( "size %d, weights %p\n", size, weights );
+    if ((status = UNIX_CALL( glWeightubvARB, &args ))) WARN( "glWeightubvARB returned %#x\n", status );
+}
+
+static void WINAPI glWeightuivARB( GLint size, const GLuint *weights )
+{
+    struct glWeightuivARB_params args = { .size = size, .weights = weights, };
+    NTSTATUS status;
+    TRACE( "size %d, weights %p\n", size, weights );
+    if ((status = UNIX_CALL( glWeightuivARB, &args ))) WARN( "glWeightuivARB returned %#x\n", status );
+}
+
+static void WINAPI glWeightusvARB( GLint size, const GLushort *weights )
+{
+    struct glWeightusvARB_params args = { .size = size, .weights = weights, };
+    NTSTATUS status;
+    TRACE( "size %d, weights %p\n", size, weights );
+    if ((status = UNIX_CALL( glWeightusvARB, &args ))) WARN( "glWeightusvARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2d( GLdouble x, GLdouble y )
+{
+    struct glWindowPos2d_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f\n", x, y );
+    if ((status = UNIX_CALL( glWindowPos2d, &args ))) WARN( "glWindowPos2d returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2dARB( GLdouble x, GLdouble y )
+{
+    struct glWindowPos2dARB_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f\n", x, y );
+    if ((status = UNIX_CALL( glWindowPos2dARB, &args ))) WARN( "glWindowPos2dARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2dMESA( GLdouble x, GLdouble y )
+{
+    struct glWindowPos2dMESA_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f\n", x, y );
+    if ((status = UNIX_CALL( glWindowPos2dMESA, &args ))) WARN( "glWindowPos2dMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2dv( const GLdouble *v )
+{
+    struct glWindowPos2dv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos2dv, &args ))) WARN( "glWindowPos2dv returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2dvARB( const GLdouble *v )
+{
+    struct glWindowPos2dvARB_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos2dvARB, &args ))) WARN( "glWindowPos2dvARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2dvMESA( const GLdouble *v )
+{
+    struct glWindowPos2dvMESA_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos2dvMESA, &args ))) WARN( "glWindowPos2dvMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2f( GLfloat x, GLfloat y )
+{
+    struct glWindowPos2f_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f\n", x, y );
+    if ((status = UNIX_CALL( glWindowPos2f, &args ))) WARN( "glWindowPos2f returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2fARB( GLfloat x, GLfloat y )
+{
+    struct glWindowPos2fARB_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f\n", x, y );
+    if ((status = UNIX_CALL( glWindowPos2fARB, &args ))) WARN( "glWindowPos2fARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2fMESA( GLfloat x, GLfloat y )
+{
+    struct glWindowPos2fMESA_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f\n", x, y );
+    if ((status = UNIX_CALL( glWindowPos2fMESA, &args ))) WARN( "glWindowPos2fMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2fv( const GLfloat *v )
+{
+    struct glWindowPos2fv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos2fv, &args ))) WARN( "glWindowPos2fv returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2fvARB( const GLfloat *v )
+{
+    struct glWindowPos2fvARB_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos2fvARB, &args ))) WARN( "glWindowPos2fvARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2fvMESA( const GLfloat *v )
+{
+    struct glWindowPos2fvMESA_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos2fvMESA, &args ))) WARN( "glWindowPos2fvMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2i( GLint x, GLint y )
+{
+    struct glWindowPos2i_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d\n", x, y );
+    if ((status = UNIX_CALL( glWindowPos2i, &args ))) WARN( "glWindowPos2i returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2iARB( GLint x, GLint y )
+{
+    struct glWindowPos2iARB_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d\n", x, y );
+    if ((status = UNIX_CALL( glWindowPos2iARB, &args ))) WARN( "glWindowPos2iARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2iMESA( GLint x, GLint y )
+{
+    struct glWindowPos2iMESA_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d\n", x, y );
+    if ((status = UNIX_CALL( glWindowPos2iMESA, &args ))) WARN( "glWindowPos2iMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2iv( const GLint *v )
+{
+    struct glWindowPos2iv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos2iv, &args ))) WARN( "glWindowPos2iv returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2ivARB( const GLint *v )
+{
+    struct glWindowPos2ivARB_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos2ivARB, &args ))) WARN( "glWindowPos2ivARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2ivMESA( const GLint *v )
+{
+    struct glWindowPos2ivMESA_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos2ivMESA, &args ))) WARN( "glWindowPos2ivMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2s( GLshort x, GLshort y )
+{
+    struct glWindowPos2s_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d\n", x, y );
+    if ((status = UNIX_CALL( glWindowPos2s, &args ))) WARN( "glWindowPos2s returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2sARB( GLshort x, GLshort y )
+{
+    struct glWindowPos2sARB_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d\n", x, y );
+    if ((status = UNIX_CALL( glWindowPos2sARB, &args ))) WARN( "glWindowPos2sARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2sMESA( GLshort x, GLshort y )
+{
+    struct glWindowPos2sMESA_params args = { .x = x, .y = y, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d\n", x, y );
+    if ((status = UNIX_CALL( glWindowPos2sMESA, &args ))) WARN( "glWindowPos2sMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2sv( const GLshort *v )
+{
+    struct glWindowPos2sv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos2sv, &args ))) WARN( "glWindowPos2sv returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2svARB( const GLshort *v )
+{
+    struct glWindowPos2svARB_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos2svARB, &args ))) WARN( "glWindowPos2svARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos2svMESA( const GLshort *v )
+{
+    struct glWindowPos2svMESA_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos2svMESA, &args ))) WARN( "glWindowPos2svMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3d( GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glWindowPos3d_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f, z %f\n", x, y, z );
+    if ((status = UNIX_CALL( glWindowPos3d, &args ))) WARN( "glWindowPos3d returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3dARB( GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glWindowPos3dARB_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f, z %f\n", x, y, z );
+    if ((status = UNIX_CALL( glWindowPos3dARB, &args ))) WARN( "glWindowPos3dARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3dMESA( GLdouble x, GLdouble y, GLdouble z )
+{
+    struct glWindowPos3dMESA_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f, z %f\n", x, y, z );
+    if ((status = UNIX_CALL( glWindowPos3dMESA, &args ))) WARN( "glWindowPos3dMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3dv( const GLdouble *v )
+{
+    struct glWindowPos3dv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos3dv, &args ))) WARN( "glWindowPos3dv returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3dvARB( const GLdouble *v )
+{
+    struct glWindowPos3dvARB_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos3dvARB, &args ))) WARN( "glWindowPos3dvARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3dvMESA( const GLdouble *v )
+{
+    struct glWindowPos3dvMESA_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos3dvMESA, &args ))) WARN( "glWindowPos3dvMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3f( GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glWindowPos3f_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f, z %f\n", x, y, z );
+    if ((status = UNIX_CALL( glWindowPos3f, &args ))) WARN( "glWindowPos3f returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3fARB( GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glWindowPos3fARB_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f, z %f\n", x, y, z );
+    if ((status = UNIX_CALL( glWindowPos3fARB, &args ))) WARN( "glWindowPos3fARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3fMESA( GLfloat x, GLfloat y, GLfloat z )
+{
+    struct glWindowPos3fMESA_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f, z %f\n", x, y, z );
+    if ((status = UNIX_CALL( glWindowPos3fMESA, &args ))) WARN( "glWindowPos3fMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3fv( const GLfloat *v )
+{
+    struct glWindowPos3fv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos3fv, &args ))) WARN( "glWindowPos3fv returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3fvARB( const GLfloat *v )
+{
+    struct glWindowPos3fvARB_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos3fvARB, &args ))) WARN( "glWindowPos3fvARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3fvMESA( const GLfloat *v )
+{
+    struct glWindowPos3fvMESA_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos3fvMESA, &args ))) WARN( "glWindowPos3fvMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3i( GLint x, GLint y, GLint z )
+{
+    struct glWindowPos3i_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d\n", x, y, z );
+    if ((status = UNIX_CALL( glWindowPos3i, &args ))) WARN( "glWindowPos3i returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3iARB( GLint x, GLint y, GLint z )
+{
+    struct glWindowPos3iARB_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d\n", x, y, z );
+    if ((status = UNIX_CALL( glWindowPos3iARB, &args ))) WARN( "glWindowPos3iARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3iMESA( GLint x, GLint y, GLint z )
+{
+    struct glWindowPos3iMESA_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d\n", x, y, z );
+    if ((status = UNIX_CALL( glWindowPos3iMESA, &args ))) WARN( "glWindowPos3iMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3iv( const GLint *v )
+{
+    struct glWindowPos3iv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos3iv, &args ))) WARN( "glWindowPos3iv returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3ivARB( const GLint *v )
+{
+    struct glWindowPos3ivARB_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos3ivARB, &args ))) WARN( "glWindowPos3ivARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3ivMESA( const GLint *v )
+{
+    struct glWindowPos3ivMESA_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos3ivMESA, &args ))) WARN( "glWindowPos3ivMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3s( GLshort x, GLshort y, GLshort z )
+{
+    struct glWindowPos3s_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d\n", x, y, z );
+    if ((status = UNIX_CALL( glWindowPos3s, &args ))) WARN( "glWindowPos3s returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3sARB( GLshort x, GLshort y, GLshort z )
+{
+    struct glWindowPos3sARB_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d\n", x, y, z );
+    if ((status = UNIX_CALL( glWindowPos3sARB, &args ))) WARN( "glWindowPos3sARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3sMESA( GLshort x, GLshort y, GLshort z )
+{
+    struct glWindowPos3sMESA_params args = { .x = x, .y = y, .z = z, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d\n", x, y, z );
+    if ((status = UNIX_CALL( glWindowPos3sMESA, &args ))) WARN( "glWindowPos3sMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3sv( const GLshort *v )
+{
+    struct glWindowPos3sv_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos3sv, &args ))) WARN( "glWindowPos3sv returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3svARB( const GLshort *v )
+{
+    struct glWindowPos3svARB_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos3svARB, &args ))) WARN( "glWindowPos3svARB returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos3svMESA( const GLshort *v )
+{
+    struct glWindowPos3svMESA_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos3svMESA, &args ))) WARN( "glWindowPos3svMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos4dMESA( GLdouble x, GLdouble y, GLdouble z, GLdouble w )
+{
+    struct glWindowPos4dMESA_params args = { .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f, z %f, w %f\n", x, y, z, w );
+    if ((status = UNIX_CALL( glWindowPos4dMESA, &args ))) WARN( "glWindowPos4dMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos4dvMESA( const GLdouble *v )
+{
+    struct glWindowPos4dvMESA_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos4dvMESA, &args ))) WARN( "glWindowPos4dvMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w )
+{
+    struct glWindowPos4fMESA_params args = { .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "x %f, y %f, z %f, w %f\n", x, y, z, w );
+    if ((status = UNIX_CALL( glWindowPos4fMESA, &args ))) WARN( "glWindowPos4fMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos4fvMESA( const GLfloat *v )
+{
+    struct glWindowPos4fvMESA_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos4fvMESA, &args ))) WARN( "glWindowPos4fvMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos4iMESA( GLint x, GLint y, GLint z, GLint w )
+{
+    struct glWindowPos4iMESA_params args = { .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d, w %d\n", x, y, z, w );
+    if ((status = UNIX_CALL( glWindowPos4iMESA, &args ))) WARN( "glWindowPos4iMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos4ivMESA( const GLint *v )
+{
+    struct glWindowPos4ivMESA_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos4ivMESA, &args ))) WARN( "glWindowPos4ivMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos4sMESA( GLshort x, GLshort y, GLshort z, GLshort w )
+{
+    struct glWindowPos4sMESA_params args = { .x = x, .y = y, .z = z, .w = w, };
+    NTSTATUS status;
+    TRACE( "x %d, y %d, z %d, w %d\n", x, y, z, w );
+    if ((status = UNIX_CALL( glWindowPos4sMESA, &args ))) WARN( "glWindowPos4sMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowPos4svMESA( const GLshort *v )
+{
+    struct glWindowPos4svMESA_params args = { .v = v, };
+    NTSTATUS status;
+    TRACE( "v %p\n", v );
+    if ((status = UNIX_CALL( glWindowPos4svMESA, &args ))) WARN( "glWindowPos4svMESA returned %#x\n", status );
+}
+
+static void WINAPI glWindowRectanglesEXT( GLenum mode, GLsizei count, const GLint *box )
+{
+    struct glWindowRectanglesEXT_params args = { .mode = mode, .count = count, .box = box, };
+    NTSTATUS status;
+    TRACE( "mode %d, count %d, box %p\n", mode, count, box );
+    if ((status = UNIX_CALL( glWindowRectanglesEXT, &args ))) WARN( "glWindowRectanglesEXT returned %#x\n", status );
+}
+
+static void WINAPI glWriteMaskEXT( GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW )
+{
+    struct glWriteMaskEXT_params args = { .res = res, .in = in, .outX = outX, .outY = outY, .outZ = outZ, .outW = outW, };
+    NTSTATUS status;
+    TRACE( "res %d, in %d, outX %d, outY %d, outZ %d, outW %d\n", res, in, outX, outY, outZ, outW );
+    if ((status = UNIX_CALL( glWriteMaskEXT, &args ))) WARN( "glWriteMaskEXT returned %#x\n", status );
+}
+
+static void * WINAPI wglAllocateMemoryNV( GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority )
+{
+    struct wglAllocateMemoryNV_params args = { .size = size, .readfreq = readfreq, .writefreq = writefreq, .priority = priority, };
+    NTSTATUS status;
+    TRACE( "size %d, readfreq %f, writefreq %f, priority %f\n", size, readfreq, writefreq, priority );
+    if ((status = UNIX_CALL( wglAllocateMemoryNV, &args ))) WARN( "wglAllocateMemoryNV returned %#x\n", status );
+    return args.ret;
+}
+
+static BOOL WINAPI wglChoosePixelFormatARB( HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats )
+{
+    struct wglChoosePixelFormatARB_params args = { .hdc = hdc, .piAttribIList = piAttribIList, .pfAttribFList = pfAttribFList, .nMaxFormats = nMaxFormats, .piFormats = piFormats, .nNumFormats = nNumFormats, };
+    NTSTATUS status;
+    TRACE( "hdc %p, piAttribIList %p, pfAttribFList %p, nMaxFormats %u, piFormats %p, nNumFormats %p\n", hdc, piAttribIList, pfAttribFList, nMaxFormats, piFormats, nNumFormats );
+    if ((status = UNIX_CALL( wglChoosePixelFormatARB, &args ))) WARN( "wglChoosePixelFormatARB returned %#x\n", status );
+    return args.ret;
+}
+
+static void WINAPI wglFreeMemoryNV( void *pointer )
+{
+    struct wglFreeMemoryNV_params args = { .pointer = pointer, };
+    NTSTATUS status;
+    TRACE( "pointer %p\n", pointer );
+    if ((status = UNIX_CALL( wglFreeMemoryNV, &args ))) WARN( "wglFreeMemoryNV returned %#x\n", status );
+}
+
+static const char * WINAPI wglGetExtensionsStringARB( HDC hdc )
+{
+    struct wglGetExtensionsStringARB_params args = { .hdc = hdc, };
+    NTSTATUS status;
+    TRACE( "hdc %p\n", hdc );
+    if ((status = UNIX_CALL( wglGetExtensionsStringARB, &args ))) WARN( "wglGetExtensionsStringARB returned %#x\n", status );
+    return args.ret;
+}
+
+static const char * WINAPI wglGetExtensionsStringEXT(void)
+{
+    struct wglGetExtensionsStringEXT_params args = {0};
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( wglGetExtensionsStringEXT, &args ))) WARN( "wglGetExtensionsStringEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static BOOL WINAPI wglGetPixelFormatAttribfvARB( HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues )
+{
+    struct wglGetPixelFormatAttribfvARB_params args = { .hdc = hdc, .iPixelFormat = iPixelFormat, .iLayerPlane = iLayerPlane, .nAttributes = nAttributes, .piAttributes = piAttributes, .pfValues = pfValues, };
+    NTSTATUS status;
+    TRACE( "hdc %p, iPixelFormat %d, iLayerPlane %d, nAttributes %u, piAttributes %p, pfValues %p\n", hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, pfValues );
+    if ((status = UNIX_CALL( wglGetPixelFormatAttribfvARB, &args ))) WARN( "wglGetPixelFormatAttribfvARB returned %#x\n", status );
+    return args.ret;
+}
+
+static BOOL WINAPI wglGetPixelFormatAttribivARB( HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues )
+{
+    struct wglGetPixelFormatAttribivARB_params args = { .hdc = hdc, .iPixelFormat = iPixelFormat, .iLayerPlane = iLayerPlane, .nAttributes = nAttributes, .piAttributes = piAttributes, .piValues = piValues, };
+    NTSTATUS status;
+    TRACE( "hdc %p, iPixelFormat %d, iLayerPlane %d, nAttributes %u, piAttributes %p, piValues %p\n", hdc, iPixelFormat, iLayerPlane, nAttributes, piAttributes, piValues );
+    if ((status = UNIX_CALL( wglGetPixelFormatAttribivARB, &args ))) WARN( "wglGetPixelFormatAttribivARB returned %#x\n", status );
+    return args.ret;
+}
+
+static int WINAPI wglGetSwapIntervalEXT(void)
+{
+    struct wglGetSwapIntervalEXT_params args = {0};
+    NTSTATUS status;
+    TRACE( "\n" );
+    if ((status = UNIX_CALL( wglGetSwapIntervalEXT, &args ))) WARN( "wglGetSwapIntervalEXT returned %#x\n", status );
+    return args.ret;
+}
+
+static BOOL WINAPI wglQueryCurrentRendererIntegerWINE( GLenum attribute, GLuint *value )
+{
+    struct wglQueryCurrentRendererIntegerWINE_params args = { .attribute = attribute, .value = value, };
+    NTSTATUS status;
+    TRACE( "attribute %d, value %p\n", attribute, value );
+    if ((status = UNIX_CALL( wglQueryCurrentRendererIntegerWINE, &args ))) WARN( "wglQueryCurrentRendererIntegerWINE returned %#x\n", status );
+    return args.ret;
+}
+
+static const GLchar * WINAPI wglQueryCurrentRendererStringWINE( GLenum attribute )
+{
+    struct wglQueryCurrentRendererStringWINE_params args = { .attribute = attribute, };
+    NTSTATUS status;
+    TRACE( "attribute %d\n", attribute );
+    if ((status = UNIX_CALL( wglQueryCurrentRendererStringWINE, &args ))) WARN( "wglQueryCurrentRendererStringWINE returned %#x\n", status );
+    return args.ret;
+}
+
+static BOOL WINAPI wglQueryRendererIntegerWINE( HDC dc, GLint renderer, GLenum attribute, GLuint *value )
+{
+    struct wglQueryRendererIntegerWINE_params args = { .dc = dc, .renderer = renderer, .attribute = attribute, .value = value, };
+    NTSTATUS status;
+    TRACE( "dc %p, renderer %d, attribute %d, value %p\n", dc, renderer, attribute, value );
+    if ((status = UNIX_CALL( wglQueryRendererIntegerWINE, &args ))) WARN( "wglQueryRendererIntegerWINE returned %#x\n", status );
+    return args.ret;
+}
+
+static const GLchar * WINAPI wglQueryRendererStringWINE( HDC dc, GLint renderer, GLenum attribute )
+{
+    struct wglQueryRendererStringWINE_params args = { .dc = dc, .renderer = renderer, .attribute = attribute, };
+    NTSTATUS status;
+    TRACE( "dc %p, renderer %d, attribute %d\n", dc, renderer, attribute );
+    if ((status = UNIX_CALL( wglQueryRendererStringWINE, &args ))) WARN( "wglQueryRendererStringWINE returned %#x\n", status );
+    return args.ret;
+}
+
+static BOOL WINAPI wglSetPixelFormatWINE( HDC hdc, int format )
+{
+    struct wglSetPixelFormatWINE_params args = { .hdc = hdc, .format = format, };
+    NTSTATUS status;
+    TRACE( "hdc %p, format %d\n", hdc, format );
+    if ((status = UNIX_CALL( wglSetPixelFormatWINE, &args ))) WARN( "wglSetPixelFormatWINE returned %#x\n", status );
+    return args.ret;
+}
+
+static BOOL WINAPI wglSwapIntervalEXT( int interval )
+{
+    struct wglSwapIntervalEXT_params args = { .interval = interval, };
+    NTSTATUS status;
+    TRACE( "interval %d\n", interval );
+    if ((status = UNIX_CALL( wglSwapIntervalEXT, &args ))) WARN( "wglSwapIntervalEXT returned %#x\n", status );
+    return args.ret;
+}
+
+extern void WINAPI glDebugMessageCallback( GLDEBUGPROC callback, const void *userParam ) DECLSPEC_HIDDEN;
+extern void WINAPI glDebugMessageCallbackAMD( GLDEBUGPROCAMD callback, void *userParam ) DECLSPEC_HIDDEN;
+extern void WINAPI glDebugMessageCallbackARB( GLDEBUGPROCARB callback, const void *userParam ) DECLSPEC_HIDDEN;
+extern const GLubyte * WINAPI glGetStringi( GLenum name, GLuint index ) DECLSPEC_HIDDEN;
+extern BOOL WINAPI wglBindTexImageARB( HPBUFFERARB hPbuffer, int iBuffer ) DECLSPEC_HIDDEN;
+extern HGLRC WINAPI wglCreateContextAttribsARB( HDC hDC, HGLRC hShareContext, const int *attribList ) DECLSPEC_HIDDEN;
+extern HPBUFFERARB WINAPI wglCreatePbufferARB( HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList ) DECLSPEC_HIDDEN;
+extern BOOL WINAPI wglDestroyPbufferARB( HPBUFFERARB hPbuffer ) DECLSPEC_HIDDEN;
+extern HDC WINAPI wglGetCurrentReadDCARB(void) DECLSPEC_HIDDEN;
+extern HDC WINAPI wglGetPbufferDCARB( HPBUFFERARB hPbuffer ) DECLSPEC_HIDDEN;
+extern BOOL WINAPI wglMakeContextCurrentARB( HDC hDrawDC, HDC hReadDC, HGLRC hglrc ) DECLSPEC_HIDDEN;
+extern BOOL WINAPI wglQueryPbufferARB( HPBUFFERARB hPbuffer, int iAttribute, int *piValue ) DECLSPEC_HIDDEN;
+extern int WINAPI wglReleasePbufferDCARB( HPBUFFERARB hPbuffer, HDC hDC ) DECLSPEC_HIDDEN;
+extern BOOL WINAPI wglReleaseTexImageARB( HPBUFFERARB hPbuffer, int iBuffer ) DECLSPEC_HIDDEN;
+extern BOOL WINAPI wglSetPbufferAttribARB( HPBUFFERARB hPbuffer, const int *piAttribList ) DECLSPEC_HIDDEN;
+
+const int extension_registry_size = 2694;
+const OpenGL_extension extension_registry[2694] =
+{
+    { "glAccumxOES", "GL_OES_fixed_point", glAccumxOES },
+    { "glAcquireKeyedMutexWin32EXT", "GL_EXT_win32_keyed_mutex", glAcquireKeyedMutexWin32EXT },
+    { "glActiveProgramEXT", "GL_EXT_separate_shader_objects", glActiveProgramEXT },
+    { "glActiveShaderProgram", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glActiveShaderProgram },
+    { "glActiveStencilFaceEXT", "GL_EXT_stencil_two_side", glActiveStencilFaceEXT },
+    { "glActiveTexture", "GL_VERSION_1_3", glActiveTexture },
+    { "glActiveTextureARB", "GL_ARB_multitexture", glActiveTextureARB },
+    { "glActiveVaryingNV", "GL_NV_transform_feedback", glActiveVaryingNV },
+    { "glAlphaFragmentOp1ATI", "GL_ATI_fragment_shader", glAlphaFragmentOp1ATI },
+    { "glAlphaFragmentOp2ATI", "GL_ATI_fragment_shader", glAlphaFragmentOp2ATI },
+    { "glAlphaFragmentOp3ATI", "GL_ATI_fragment_shader", glAlphaFragmentOp3ATI },
+    { "glAlphaFuncxOES", "GL_OES_fixed_point", glAlphaFuncxOES },
+    { "glAlphaToCoverageDitherControlNV", "GL_NV_alpha_to_coverage_dither_control", glAlphaToCoverageDitherControlNV },
+    { "glApplyFramebufferAttachmentCMAAINTEL", "GL_INTEL_framebuffer_CMAA", glApplyFramebufferAttachmentCMAAINTEL },
+    { "glApplyTextureEXT", "GL_EXT_light_texture", glApplyTextureEXT },
+    { "glAreProgramsResidentNV", "GL_NV_vertex_program", glAreProgramsResidentNV },
+    { "glAreTexturesResidentEXT", "GL_EXT_texture_object", glAreTexturesResidentEXT },
+    { "glArrayElementEXT", "GL_EXT_vertex_array", glArrayElementEXT },
+    { "glArrayObjectATI", "GL_ATI_vertex_array_object", glArrayObjectATI },
+    { "glAsyncCopyBufferSubDataNVX", "GL_NVX_gpu_multicast2", glAsyncCopyBufferSubDataNVX },
+    { "glAsyncCopyImageSubDataNVX", "GL_NVX_gpu_multicast2", glAsyncCopyImageSubDataNVX },
+    { "glAsyncMarkerSGIX", "GL_SGIX_async", glAsyncMarkerSGIX },
+    { "glAttachObjectARB", "GL_ARB_shader_objects", glAttachObjectARB },
+    { "glAttachShader", "GL_VERSION_2_0", glAttachShader },
+    { "glBeginConditionalRender", "GL_VERSION_3_0", glBeginConditionalRender },
+    { "glBeginConditionalRenderNV", "GL_NV_conditional_render", glBeginConditionalRenderNV },
+    { "glBeginConditionalRenderNVX", "GL_NVX_conditional_render", glBeginConditionalRenderNVX },
+    { "glBeginFragmentShaderATI", "GL_ATI_fragment_shader", glBeginFragmentShaderATI },
+    { "glBeginOcclusionQueryNV", "GL_NV_occlusion_query", glBeginOcclusionQueryNV },
+    { "glBeginPerfMonitorAMD", "GL_AMD_performance_monitor", glBeginPerfMonitorAMD },
+    { "glBeginPerfQueryINTEL", "GL_INTEL_performance_query", glBeginPerfQueryINTEL },
+    { "glBeginQuery", "GL_VERSION_1_5", glBeginQuery },
+    { "glBeginQueryARB", "GL_ARB_occlusion_query", glBeginQueryARB },
+    { "glBeginQueryIndexed", "GL_ARB_transform_feedback3 GL_VERSION_4_0", glBeginQueryIndexed },
+    { "glBeginTransformFeedback", "GL_VERSION_3_0", glBeginTransformFeedback },
+    { "glBeginTransformFeedbackEXT", "GL_EXT_transform_feedback", glBeginTransformFeedbackEXT },
+    { "glBeginTransformFeedbackNV", "GL_NV_transform_feedback", glBeginTransformFeedbackNV },
+    { "glBeginVertexShaderEXT", "GL_EXT_vertex_shader", glBeginVertexShaderEXT },
+    { "glBeginVideoCaptureNV", "GL_NV_video_capture", glBeginVideoCaptureNV },
+    { "glBindAttribLocation", "GL_VERSION_2_0", glBindAttribLocation },
+    { "glBindAttribLocationARB", "GL_ARB_vertex_shader", glBindAttribLocationARB },
+    { "glBindBuffer", "GL_VERSION_1_5", glBindBuffer },
+    { "glBindBufferARB", "GL_ARB_vertex_buffer_object", glBindBufferARB },
+    { "glBindBufferBase", "GL_ARB_uniform_buffer_object GL_VERSION_3_0", glBindBufferBase },
+    { "glBindBufferBaseEXT", "GL_EXT_transform_feedback", glBindBufferBaseEXT },
+    { "glBindBufferBaseNV", "GL_NV_transform_feedback", glBindBufferBaseNV },
+    { "glBindBufferOffsetEXT", "GL_EXT_transform_feedback", glBindBufferOffsetEXT },
+    { "glBindBufferOffsetNV", "GL_NV_transform_feedback", glBindBufferOffsetNV },
+    { "glBindBufferRange", "GL_ARB_uniform_buffer_object GL_VERSION_3_0", glBindBufferRange },
+    { "glBindBufferRangeEXT", "GL_EXT_transform_feedback", glBindBufferRangeEXT },
+    { "glBindBufferRangeNV", "GL_NV_transform_feedback", glBindBufferRangeNV },
+    { "glBindBuffersBase", "GL_ARB_multi_bind GL_VERSION_4_4", glBindBuffersBase },
+    { "glBindBuffersRange", "GL_ARB_multi_bind GL_VERSION_4_4", glBindBuffersRange },
+    { "glBindFragDataLocation", "GL_VERSION_3_0", glBindFragDataLocation },
+    { "glBindFragDataLocationEXT", "GL_EXT_gpu_shader4", glBindFragDataLocationEXT },
+    { "glBindFragDataLocationIndexed", "GL_ARB_blend_func_extended GL_VERSION_3_3", glBindFragDataLocationIndexed },
+    { "glBindFragmentShaderATI", "GL_ATI_fragment_shader", glBindFragmentShaderATI },
+    { "glBindFramebuffer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glBindFramebuffer },
+    { "glBindFramebufferEXT", "GL_EXT_framebuffer_object", glBindFramebufferEXT },
+    { "glBindImageTexture", "GL_ARB_shader_image_load_store GL_VERSION_4_2", glBindImageTexture },
+    { "glBindImageTextureEXT", "GL_EXT_shader_image_load_store", glBindImageTextureEXT },
+    { "glBindImageTextures", "GL_ARB_multi_bind GL_VERSION_4_4", glBindImageTextures },
+    { "glBindLightParameterEXT", "GL_EXT_vertex_shader", glBindLightParameterEXT },
+    { "glBindMaterialParameterEXT", "GL_EXT_vertex_shader", glBindMaterialParameterEXT },
+    { "glBindMultiTextureEXT", "GL_EXT_direct_state_access", glBindMultiTextureEXT },
+    { "glBindParameterEXT", "GL_EXT_vertex_shader", glBindParameterEXT },
+    { "glBindProgramARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glBindProgramARB },
+    { "glBindProgramNV", "GL_NV_vertex_program", glBindProgramNV },
+    { "glBindProgramPipeline", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glBindProgramPipeline },
+    { "glBindRenderbuffer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glBindRenderbuffer },
+    { "glBindRenderbufferEXT", "GL_EXT_framebuffer_object", glBindRenderbufferEXT },
+    { "glBindSampler", "GL_ARB_sampler_objects GL_VERSION_3_3", glBindSampler },
+    { "glBindSamplers", "GL_ARB_multi_bind GL_VERSION_4_4", glBindSamplers },
+    { "glBindShadingRateImageNV", "GL_NV_shading_rate_image", glBindShadingRateImageNV },
+    { "glBindTexGenParameterEXT", "GL_EXT_vertex_shader", glBindTexGenParameterEXT },
+    { "glBindTextureEXT", "GL_EXT_texture_object", glBindTextureEXT },
+    { "glBindTextureUnit", "GL_ARB_direct_state_access GL_VERSION_4_5", glBindTextureUnit },
+    { "glBindTextureUnitParameterEXT", "GL_EXT_vertex_shader", glBindTextureUnitParameterEXT },
+    { "glBindTextures", "GL_ARB_multi_bind GL_VERSION_4_4", glBindTextures },
+    { "glBindTransformFeedback", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glBindTransformFeedback },
+    { "glBindTransformFeedbackNV", "GL_NV_transform_feedback2", glBindTransformFeedbackNV },
+    { "glBindVertexArray", "GL_ARB_vertex_array_object GL_VERSION_3_0", glBindVertexArray },
+    { "glBindVertexArrayAPPLE", "GL_APPLE_vertex_array_object", glBindVertexArrayAPPLE },
+    { "glBindVertexBuffer", "GL_ARB_vertex_attrib_binding GL_VERSION_4_3", glBindVertexBuffer },
+    { "glBindVertexBuffers", "GL_ARB_multi_bind GL_VERSION_4_4", glBindVertexBuffers },
+    { "glBindVertexShaderEXT", "GL_EXT_vertex_shader", glBindVertexShaderEXT },
+    { "glBindVideoCaptureStreamBufferNV", "GL_NV_video_capture", glBindVideoCaptureStreamBufferNV },
+    { "glBindVideoCaptureStreamTextureNV", "GL_NV_video_capture", glBindVideoCaptureStreamTextureNV },
+    { "glBinormal3bEXT", "GL_EXT_coordinate_frame", glBinormal3bEXT },
+    { "glBinormal3bvEXT", "GL_EXT_coordinate_frame", glBinormal3bvEXT },
+    { "glBinormal3dEXT", "GL_EXT_coordinate_frame", glBinormal3dEXT },
+    { "glBinormal3dvEXT", "GL_EXT_coordinate_frame", glBinormal3dvEXT },
+    { "glBinormal3fEXT", "GL_EXT_coordinate_frame", glBinormal3fEXT },
+    { "glBinormal3fvEXT", "GL_EXT_coordinate_frame", glBinormal3fvEXT },
+    { "glBinormal3iEXT", "GL_EXT_coordinate_frame", glBinormal3iEXT },
+    { "glBinormal3ivEXT", "GL_EXT_coordinate_frame", glBinormal3ivEXT },
+    { "glBinormal3sEXT", "GL_EXT_coordinate_frame", glBinormal3sEXT },
+    { "glBinormal3svEXT", "GL_EXT_coordinate_frame", glBinormal3svEXT },
+    { "glBinormalPointerEXT", "GL_EXT_coordinate_frame", glBinormalPointerEXT },
+    { "glBitmapxOES", "GL_OES_fixed_point", glBitmapxOES },
+    { "glBlendBarrierKHR", "GL_KHR_blend_equation_advanced", glBlendBarrierKHR },
+    { "glBlendBarrierNV", "GL_NV_blend_equation_advanced", glBlendBarrierNV },
+    { "glBlendColor", "GL_ARB_imaging GL_VERSION_1_4", glBlendColor },
+    { "glBlendColorEXT", "GL_EXT_blend_color", glBlendColorEXT },
+    { "glBlendColorxOES", "GL_OES_fixed_point", glBlendColorxOES },
+    { "glBlendEquation", "GL_ARB_imaging GL_VERSION_1_4", glBlendEquation },
+    { "glBlendEquationEXT", "GL_EXT_blend_minmax", glBlendEquationEXT },
+    { "glBlendEquationIndexedAMD", "GL_AMD_draw_buffers_blend", glBlendEquationIndexedAMD },
+    { "glBlendEquationSeparate", "GL_VERSION_2_0", glBlendEquationSeparate },
+    { "glBlendEquationSeparateEXT", "GL_EXT_blend_equation_separate", glBlendEquationSeparateEXT },
+    { "glBlendEquationSeparateIndexedAMD", "GL_AMD_draw_buffers_blend", glBlendEquationSeparateIndexedAMD },
+    { "glBlendEquationSeparatei", "GL_VERSION_4_0", glBlendEquationSeparatei },
+    { "glBlendEquationSeparateiARB", "GL_ARB_draw_buffers_blend", glBlendEquationSeparateiARB },
+    { "glBlendEquationi", "GL_VERSION_4_0", glBlendEquationi },
+    { "glBlendEquationiARB", "GL_ARB_draw_buffers_blend", glBlendEquationiARB },
+    { "glBlendFuncIndexedAMD", "GL_AMD_draw_buffers_blend", glBlendFuncIndexedAMD },
+    { "glBlendFuncSeparate", "GL_VERSION_1_4", glBlendFuncSeparate },
+    { "glBlendFuncSeparateEXT", "GL_EXT_blend_func_separate", glBlendFuncSeparateEXT },
+    { "glBlendFuncSeparateINGR", "GL_INGR_blend_func_separate", glBlendFuncSeparateINGR },
+    { "glBlendFuncSeparateIndexedAMD", "GL_AMD_draw_buffers_blend", glBlendFuncSeparateIndexedAMD },
+    { "glBlendFuncSeparatei", "GL_VERSION_4_0", glBlendFuncSeparatei },
+    { "glBlendFuncSeparateiARB", "GL_ARB_draw_buffers_blend", glBlendFuncSeparateiARB },
+    { "glBlendFunci", "GL_VERSION_4_0", glBlendFunci },
+    { "glBlendFunciARB", "GL_ARB_draw_buffers_blend", glBlendFunciARB },
+    { "glBlendParameteriNV", "GL_NV_blend_equation_advanced", glBlendParameteriNV },
+    { "glBlitFramebuffer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glBlitFramebuffer },
+    { "glBlitFramebufferEXT", "GL_EXT_framebuffer_blit", glBlitFramebufferEXT },
+    { "glBlitNamedFramebuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glBlitNamedFramebuffer },
+    { "glBufferAddressRangeNV", "GL_NV_vertex_buffer_unified_memory", glBufferAddressRangeNV },
+    { "glBufferAttachMemoryNV", "GL_NV_memory_attachment", glBufferAttachMemoryNV },
+    { "glBufferData", "GL_VERSION_1_5", glBufferData },
+    { "glBufferDataARB", "GL_ARB_vertex_buffer_object", glBufferDataARB },
+    { "glBufferPageCommitmentARB", "GL_ARB_sparse_buffer", glBufferPageCommitmentARB },
+    { "glBufferParameteriAPPLE", "GL_APPLE_flush_buffer_range", glBufferParameteriAPPLE },
+    { "glBufferRegionEnabled", "GL_KTX_buffer_region", glBufferRegionEnabled },
+    { "glBufferStorage", "GL_ARB_buffer_storage GL_VERSION_4_4", glBufferStorage },
+    { "glBufferStorageExternalEXT", "GL_EXT_external_buffer", glBufferStorageExternalEXT },
+    { "glBufferStorageMemEXT", "GL_EXT_memory_object", glBufferStorageMemEXT },
+    { "glBufferSubData", "GL_VERSION_1_5", glBufferSubData },
+    { "glBufferSubDataARB", "GL_ARB_vertex_buffer_object", glBufferSubDataARB },
+    { "glCallCommandListNV", "GL_NV_command_list", glCallCommandListNV },
+    { "glCheckFramebufferStatus", "GL_ARB_framebuffer_object GL_VERSION_3_0", glCheckFramebufferStatus },
+    { "glCheckFramebufferStatusEXT", "GL_EXT_framebuffer_object", glCheckFramebufferStatusEXT },
+    { "glCheckNamedFramebufferStatus", "GL_ARB_direct_state_access GL_VERSION_4_5", glCheckNamedFramebufferStatus },
+    { "glCheckNamedFramebufferStatusEXT", "GL_EXT_direct_state_access", glCheckNamedFramebufferStatusEXT },
+    { "glClampColor", "GL_VERSION_3_0", glClampColor },
+    { "glClampColorARB", "GL_ARB_color_buffer_float", glClampColorARB },
+    { "glClearAccumxOES", "GL_OES_fixed_point", glClearAccumxOES },
+    { "glClearBufferData", "GL_ARB_clear_buffer_object GL_VERSION_4_3", glClearBufferData },
+    { "glClearBufferSubData", "GL_ARB_clear_buffer_object GL_VERSION_4_3", glClearBufferSubData },
+    { "glClearBufferfi", "GL_VERSION_3_0", glClearBufferfi },
+    { "glClearBufferfv", "GL_VERSION_3_0", glClearBufferfv },
+    { "glClearBufferiv", "GL_VERSION_3_0", glClearBufferiv },
+    { "glClearBufferuiv", "GL_VERSION_3_0", glClearBufferuiv },
+    { "glClearColorIiEXT", "GL_EXT_texture_integer", glClearColorIiEXT },
+    { "glClearColorIuiEXT", "GL_EXT_texture_integer", glClearColorIuiEXT },
+    { "glClearColorxOES", "GL_OES_fixed_point", glClearColorxOES },
+    { "glClearDepthdNV", "GL_NV_depth_buffer_float", glClearDepthdNV },
+    { "glClearDepthf", "GL_ARB_ES2_compatibility GL_VERSION_4_1", glClearDepthf },
+    { "glClearDepthfOES", "GL_OES_single_precision", glClearDepthfOES },
+    { "glClearDepthxOES", "GL_OES_fixed_point", glClearDepthxOES },
+    { "glClearNamedBufferData", "GL_ARB_direct_state_access GL_VERSION_4_5", glClearNamedBufferData },
+    { "glClearNamedBufferDataEXT", "GL_EXT_direct_state_access", glClearNamedBufferDataEXT },
+    { "glClearNamedBufferSubData", "GL_ARB_direct_state_access GL_VERSION_4_5", glClearNamedBufferSubData },
+    { "glClearNamedBufferSubDataEXT", "GL_EXT_direct_state_access", glClearNamedBufferSubDataEXT },
+    { "glClearNamedFramebufferfi", "GL_ARB_direct_state_access GL_VERSION_4_5", glClearNamedFramebufferfi },
+    { "glClearNamedFramebufferfv", "GL_ARB_direct_state_access GL_VERSION_4_5", glClearNamedFramebufferfv },
+    { "glClearNamedFramebufferiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glClearNamedFramebufferiv },
+    { "glClearNamedFramebufferuiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glClearNamedFramebufferuiv },
+    { "glClearTexImage", "GL_ARB_clear_texture GL_VERSION_4_4", glClearTexImage },
+    { "glClearTexSubImage", "GL_ARB_clear_texture GL_VERSION_4_4", glClearTexSubImage },
+    { "glClientActiveTexture", "GL_VERSION_1_3", glClientActiveTexture },
+    { "glClientActiveTextureARB", "GL_ARB_multitexture", glClientActiveTextureARB },
+    { "glClientActiveVertexStreamATI", "GL_ATI_vertex_streams", glClientActiveVertexStreamATI },
+    { "glClientAttribDefaultEXT", "GL_EXT_direct_state_access", glClientAttribDefaultEXT },
+    { "glClientWaitSemaphoreui64NVX", "GL_NVX_progress_fence", glClientWaitSemaphoreui64NVX },
+    { "glClientWaitSync", "GL_ARB_sync GL_VERSION_3_2", glClientWaitSync },
+    { "glClipControl", "GL_ARB_clip_control GL_VERSION_4_5", glClipControl },
+    { "glClipPlanefOES", "GL_OES_single_precision", glClipPlanefOES },
+    { "glClipPlanexOES", "GL_OES_fixed_point", glClipPlanexOES },
+    { "glColor3fVertex3fSUN", "GL_SUN_vertex", glColor3fVertex3fSUN },
+    { "glColor3fVertex3fvSUN", "GL_SUN_vertex", glColor3fVertex3fvSUN },
+    { "glColor3hNV", "GL_NV_half_float", glColor3hNV },
+    { "glColor3hvNV", "GL_NV_half_float", glColor3hvNV },
+    { "glColor3xOES", "GL_OES_fixed_point", glColor3xOES },
+    { "glColor3xvOES", "GL_OES_fixed_point", glColor3xvOES },
+    { "glColor4fNormal3fVertex3fSUN", "GL_SUN_vertex", glColor4fNormal3fVertex3fSUN },
+    { "glColor4fNormal3fVertex3fvSUN", "GL_SUN_vertex", glColor4fNormal3fVertex3fvSUN },
+    { "glColor4hNV", "GL_NV_half_float", glColor4hNV },
+    { "glColor4hvNV", "GL_NV_half_float", glColor4hvNV },
+    { "glColor4ubVertex2fSUN", "GL_SUN_vertex", glColor4ubVertex2fSUN },
+    { "glColor4ubVertex2fvSUN", "GL_SUN_vertex", glColor4ubVertex2fvSUN },
+    { "glColor4ubVertex3fSUN", "GL_SUN_vertex", glColor4ubVertex3fSUN },
+    { "glColor4ubVertex3fvSUN", "GL_SUN_vertex", glColor4ubVertex3fvSUN },
+    { "glColor4xOES", "GL_OES_fixed_point", glColor4xOES },
+    { "glColor4xvOES", "GL_OES_fixed_point", glColor4xvOES },
+    { "glColorFormatNV", "GL_NV_vertex_buffer_unified_memory", glColorFormatNV },
+    { "glColorFragmentOp1ATI", "GL_ATI_fragment_shader", glColorFragmentOp1ATI },
+    { "glColorFragmentOp2ATI", "GL_ATI_fragment_shader", glColorFragmentOp2ATI },
+    { "glColorFragmentOp3ATI", "GL_ATI_fragment_shader", glColorFragmentOp3ATI },
+    { "glColorMaskIndexedEXT", "GL_EXT_draw_buffers2", glColorMaskIndexedEXT },
+    { "glColorMaski", "GL_VERSION_3_0", glColorMaski },
+    { "glColorP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glColorP3ui },
+    { "glColorP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glColorP3uiv },
+    { "glColorP4ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glColorP4ui },
+    { "glColorP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glColorP4uiv },
+    { "glColorPointerEXT", "GL_EXT_vertex_array", glColorPointerEXT },
+    { "glColorPointerListIBM", "GL_IBM_vertex_array_lists", glColorPointerListIBM },
+    { "glColorPointervINTEL", "GL_INTEL_parallel_arrays", glColorPointervINTEL },
+    { "glColorSubTable", "GL_ARB_imaging", glColorSubTable },
+    { "glColorSubTableEXT", "GL_EXT_color_subtable", glColorSubTableEXT },
+    { "glColorTable", "GL_ARB_imaging", glColorTable },
+    { "glColorTableEXT", "GL_EXT_paletted_texture", glColorTableEXT },
+    { "glColorTableParameterfv", "GL_ARB_imaging", glColorTableParameterfv },
+    { "glColorTableParameterfvSGI", "GL_SGI_color_table", glColorTableParameterfvSGI },
+    { "glColorTableParameteriv", "GL_ARB_imaging", glColorTableParameteriv },
+    { "glColorTableParameterivSGI", "GL_SGI_color_table", glColorTableParameterivSGI },
+    { "glColorTableSGI", "GL_SGI_color_table", glColorTableSGI },
+    { "glCombinerInputNV", "GL_NV_register_combiners", glCombinerInputNV },
+    { "glCombinerOutputNV", "GL_NV_register_combiners", glCombinerOutputNV },
+    { "glCombinerParameterfNV", "GL_NV_register_combiners", glCombinerParameterfNV },
+    { "glCombinerParameterfvNV", "GL_NV_register_combiners", glCombinerParameterfvNV },
+    { "glCombinerParameteriNV", "GL_NV_register_combiners", glCombinerParameteriNV },
+    { "glCombinerParameterivNV", "GL_NV_register_combiners", glCombinerParameterivNV },
+    { "glCombinerStageParameterfvNV", "GL_NV_register_combiners2", glCombinerStageParameterfvNV },
+    { "glCommandListSegmentsNV", "GL_NV_command_list", glCommandListSegmentsNV },
+    { "glCompileCommandListNV", "GL_NV_command_list", glCompileCommandListNV },
+    { "glCompileShader", "GL_VERSION_2_0", glCompileShader },
+    { "glCompileShaderARB", "GL_ARB_shader_objects", glCompileShaderARB },
+    { "glCompileShaderIncludeARB", "GL_ARB_shading_language_include", glCompileShaderIncludeARB },
+    { "glCompressedMultiTexImage1DEXT", "GL_EXT_direct_state_access", glCompressedMultiTexImage1DEXT },
+    { "glCompressedMultiTexImage2DEXT", "GL_EXT_direct_state_access", glCompressedMultiTexImage2DEXT },
+    { "glCompressedMultiTexImage3DEXT", "GL_EXT_direct_state_access", glCompressedMultiTexImage3DEXT },
+    { "glCompressedMultiTexSubImage1DEXT", "GL_EXT_direct_state_access", glCompressedMultiTexSubImage1DEXT },
+    { "glCompressedMultiTexSubImage2DEXT", "GL_EXT_direct_state_access", glCompressedMultiTexSubImage2DEXT },
+    { "glCompressedMultiTexSubImage3DEXT", "GL_EXT_direct_state_access", glCompressedMultiTexSubImage3DEXT },
+    { "glCompressedTexImage1D", "GL_VERSION_1_3", glCompressedTexImage1D },
+    { "glCompressedTexImage1DARB", "GL_ARB_texture_compression", glCompressedTexImage1DARB },
+    { "glCompressedTexImage2D", "GL_VERSION_1_3", glCompressedTexImage2D },
+    { "glCompressedTexImage2DARB", "GL_ARB_texture_compression", glCompressedTexImage2DARB },
+    { "glCompressedTexImage3D", "GL_VERSION_1_3", glCompressedTexImage3D },
+    { "glCompressedTexImage3DARB", "GL_ARB_texture_compression", glCompressedTexImage3DARB },
+    { "glCompressedTexSubImage1D", "GL_VERSION_1_3", glCompressedTexSubImage1D },
+    { "glCompressedTexSubImage1DARB", "GL_ARB_texture_compression", glCompressedTexSubImage1DARB },
+    { "glCompressedTexSubImage2D", "GL_VERSION_1_3", glCompressedTexSubImage2D },
+    { "glCompressedTexSubImage2DARB", "GL_ARB_texture_compression", glCompressedTexSubImage2DARB },
+    { "glCompressedTexSubImage3D", "GL_VERSION_1_3", glCompressedTexSubImage3D },
+    { "glCompressedTexSubImage3DARB", "GL_ARB_texture_compression", glCompressedTexSubImage3DARB },
+    { "glCompressedTextureImage1DEXT", "GL_EXT_direct_state_access", glCompressedTextureImage1DEXT },
+    { "glCompressedTextureImage2DEXT", "GL_EXT_direct_state_access", glCompressedTextureImage2DEXT },
+    { "glCompressedTextureImage3DEXT", "GL_EXT_direct_state_access", glCompressedTextureImage3DEXT },
+    { "glCompressedTextureSubImage1D", "GL_ARB_direct_state_access GL_VERSION_4_5", glCompressedTextureSubImage1D },
+    { "glCompressedTextureSubImage1DEXT", "GL_EXT_direct_state_access", glCompressedTextureSubImage1DEXT },
+    { "glCompressedTextureSubImage2D", "GL_ARB_direct_state_access GL_VERSION_4_5", glCompressedTextureSubImage2D },
+    { "glCompressedTextureSubImage2DEXT", "GL_EXT_direct_state_access", glCompressedTextureSubImage2DEXT },
+    { "glCompressedTextureSubImage3D", "GL_ARB_direct_state_access GL_VERSION_4_5", glCompressedTextureSubImage3D },
+    { "glCompressedTextureSubImage3DEXT", "GL_EXT_direct_state_access", glCompressedTextureSubImage3DEXT },
+    { "glConservativeRasterParameterfNV", "GL_NV_conservative_raster_dilate", glConservativeRasterParameterfNV },
+    { "glConservativeRasterParameteriNV", "GL_NV_conservative_raster_pre_snap_triangles", glConservativeRasterParameteriNV },
+    { "glConvolutionFilter1D", "GL_ARB_imaging", glConvolutionFilter1D },
+    { "glConvolutionFilter1DEXT", "GL_EXT_convolution", glConvolutionFilter1DEXT },
+    { "glConvolutionFilter2D", "GL_ARB_imaging", glConvolutionFilter2D },
+    { "glConvolutionFilter2DEXT", "GL_EXT_convolution", glConvolutionFilter2DEXT },
+    { "glConvolutionParameterf", "GL_ARB_imaging", glConvolutionParameterf },
+    { "glConvolutionParameterfEXT", "GL_EXT_convolution", glConvolutionParameterfEXT },
+    { "glConvolutionParameterfv", "GL_ARB_imaging", glConvolutionParameterfv },
+    { "glConvolutionParameterfvEXT", "GL_EXT_convolution", glConvolutionParameterfvEXT },
+    { "glConvolutionParameteri", "GL_ARB_imaging", glConvolutionParameteri },
+    { "glConvolutionParameteriEXT", "GL_EXT_convolution", glConvolutionParameteriEXT },
+    { "glConvolutionParameteriv", "GL_ARB_imaging", glConvolutionParameteriv },
+    { "glConvolutionParameterivEXT", "GL_EXT_convolution", glConvolutionParameterivEXT },
+    { "glConvolutionParameterxOES", "GL_OES_fixed_point", glConvolutionParameterxOES },
+    { "glConvolutionParameterxvOES", "GL_OES_fixed_point", glConvolutionParameterxvOES },
+    { "glCopyBufferSubData", "GL_ARB_copy_buffer GL_VERSION_3_1", glCopyBufferSubData },
+    { "glCopyColorSubTable", "GL_ARB_imaging", glCopyColorSubTable },
+    { "glCopyColorSubTableEXT", "GL_EXT_color_subtable", glCopyColorSubTableEXT },
+    { "glCopyColorTable", "GL_ARB_imaging", glCopyColorTable },
+    { "glCopyColorTableSGI", "GL_SGI_color_table", glCopyColorTableSGI },
+    { "glCopyConvolutionFilter1D", "GL_ARB_imaging", glCopyConvolutionFilter1D },
+    { "glCopyConvolutionFilter1DEXT", "GL_EXT_convolution", glCopyConvolutionFilter1DEXT },
+    { "glCopyConvolutionFilter2D", "GL_ARB_imaging", glCopyConvolutionFilter2D },
+    { "glCopyConvolutionFilter2DEXT", "GL_EXT_convolution", glCopyConvolutionFilter2DEXT },
+    { "glCopyImageSubData", "GL_ARB_copy_image GL_VERSION_4_3", glCopyImageSubData },
+    { "glCopyImageSubDataNV", "GL_NV_copy_image", glCopyImageSubDataNV },
+    { "glCopyMultiTexImage1DEXT", "GL_EXT_direct_state_access", glCopyMultiTexImage1DEXT },
+    { "glCopyMultiTexImage2DEXT", "GL_EXT_direct_state_access", glCopyMultiTexImage2DEXT },
+    { "glCopyMultiTexSubImage1DEXT", "GL_EXT_direct_state_access", glCopyMultiTexSubImage1DEXT },
+    { "glCopyMultiTexSubImage2DEXT", "GL_EXT_direct_state_access", glCopyMultiTexSubImage2DEXT },
+    { "glCopyMultiTexSubImage3DEXT", "GL_EXT_direct_state_access", glCopyMultiTexSubImage3DEXT },
+    { "glCopyNamedBufferSubData", "GL_ARB_direct_state_access GL_VERSION_4_5", glCopyNamedBufferSubData },
+    { "glCopyPathNV", "GL_NV_path_rendering", glCopyPathNV },
+    { "glCopyTexImage1DEXT", "GL_EXT_copy_texture", glCopyTexImage1DEXT },
+    { "glCopyTexImage2DEXT", "GL_EXT_copy_texture", glCopyTexImage2DEXT },
+    { "glCopyTexSubImage1DEXT", "GL_EXT_copy_texture", glCopyTexSubImage1DEXT },
+    { "glCopyTexSubImage2DEXT", "GL_EXT_copy_texture", glCopyTexSubImage2DEXT },
+    { "glCopyTexSubImage3D", "GL_VERSION_1_2", glCopyTexSubImage3D },
+    { "glCopyTexSubImage3DEXT", "GL_EXT_copy_texture", glCopyTexSubImage3DEXT },
+    { "glCopyTextureImage1DEXT", "GL_EXT_direct_state_access", glCopyTextureImage1DEXT },
+    { "glCopyTextureImage2DEXT", "GL_EXT_direct_state_access", glCopyTextureImage2DEXT },
+    { "glCopyTextureSubImage1D", "GL_ARB_direct_state_access GL_VERSION_4_5", glCopyTextureSubImage1D },
+    { "glCopyTextureSubImage1DEXT", "GL_EXT_direct_state_access", glCopyTextureSubImage1DEXT },
+    { "glCopyTextureSubImage2D", "GL_ARB_direct_state_access GL_VERSION_4_5", glCopyTextureSubImage2D },
+    { "glCopyTextureSubImage2DEXT", "GL_EXT_direct_state_access", glCopyTextureSubImage2DEXT },
+    { "glCopyTextureSubImage3D", "GL_ARB_direct_state_access GL_VERSION_4_5", glCopyTextureSubImage3D },
+    { "glCopyTextureSubImage3DEXT", "GL_EXT_direct_state_access", glCopyTextureSubImage3DEXT },
+    { "glCoverFillPathInstancedNV", "GL_NV_path_rendering", glCoverFillPathInstancedNV },
+    { "glCoverFillPathNV", "GL_NV_path_rendering", glCoverFillPathNV },
+    { "glCoverStrokePathInstancedNV", "GL_NV_path_rendering", glCoverStrokePathInstancedNV },
+    { "glCoverStrokePathNV", "GL_NV_path_rendering", glCoverStrokePathNV },
+    { "glCoverageModulationNV", "GL_NV_framebuffer_mixed_samples", glCoverageModulationNV },
+    { "glCoverageModulationTableNV", "GL_NV_framebuffer_mixed_samples", glCoverageModulationTableNV },
+    { "glCreateBuffers", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateBuffers },
+    { "glCreateCommandListsNV", "GL_NV_command_list", glCreateCommandListsNV },
+    { "glCreateFramebuffers", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateFramebuffers },
+    { "glCreateMemoryObjectsEXT", "GL_EXT_memory_object", glCreateMemoryObjectsEXT },
+    { "glCreatePerfQueryINTEL", "GL_INTEL_performance_query", glCreatePerfQueryINTEL },
+    { "glCreateProgram", "GL_VERSION_2_0", glCreateProgram },
+    { "glCreateProgramObjectARB", "GL_ARB_shader_objects", glCreateProgramObjectARB },
+    { "glCreateProgramPipelines", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateProgramPipelines },
+    { "glCreateProgressFenceNVX", "GL_NVX_progress_fence", glCreateProgressFenceNVX },
+    { "glCreateQueries", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateQueries },
+    { "glCreateRenderbuffers", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateRenderbuffers },
+    { "glCreateSamplers", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateSamplers },
+    { "glCreateShader", "GL_VERSION_2_0", glCreateShader },
+    { "glCreateShaderObjectARB", "GL_ARB_shader_objects", glCreateShaderObjectARB },
+    { "glCreateShaderProgramEXT", "GL_EXT_separate_shader_objects", glCreateShaderProgramEXT },
+    { "glCreateShaderProgramv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glCreateShaderProgramv },
+    { "glCreateStatesNV", "GL_NV_command_list", glCreateStatesNV },
+    { "glCreateSyncFromCLeventARB", "GL_ARB_cl_event", glCreateSyncFromCLeventARB },
+    { "glCreateTextures", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateTextures },
+    { "glCreateTransformFeedbacks", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateTransformFeedbacks },
+    { "glCreateVertexArrays", "GL_ARB_direct_state_access GL_VERSION_4_5", glCreateVertexArrays },
+    { "glCullParameterdvEXT", "GL_EXT_cull_vertex", glCullParameterdvEXT },
+    { "glCullParameterfvEXT", "GL_EXT_cull_vertex", glCullParameterfvEXT },
+    { "glCurrentPaletteMatrixARB", "GL_ARB_matrix_palette", glCurrentPaletteMatrixARB },
+    { "glDebugMessageCallback", "GL_KHR_debug GL_VERSION_4_3", glDebugMessageCallback },
+    { "glDebugMessageCallbackAMD", "GL_AMD_debug_output", glDebugMessageCallbackAMD },
+    { "glDebugMessageCallbackARB", "GL_ARB_debug_output", glDebugMessageCallbackARB },
+    { "glDebugMessageControl", "GL_KHR_debug GL_VERSION_4_3", glDebugMessageControl },
+    { "glDebugMessageControlARB", "GL_ARB_debug_output", glDebugMessageControlARB },
+    { "glDebugMessageEnableAMD", "GL_AMD_debug_output", glDebugMessageEnableAMD },
+    { "glDebugMessageInsert", "GL_KHR_debug GL_VERSION_4_3", glDebugMessageInsert },
+    { "glDebugMessageInsertAMD", "GL_AMD_debug_output", glDebugMessageInsertAMD },
+    { "glDebugMessageInsertARB", "GL_ARB_debug_output", glDebugMessageInsertARB },
+    { "glDeformSGIX", "GL_SGIX_polynomial_ffd", glDeformSGIX },
+    { "glDeformationMap3dSGIX", "GL_SGIX_polynomial_ffd", glDeformationMap3dSGIX },
+    { "glDeformationMap3fSGIX", "GL_SGIX_polynomial_ffd", glDeformationMap3fSGIX },
+    { "glDeleteAsyncMarkersSGIX", "GL_SGIX_async", glDeleteAsyncMarkersSGIX },
+    { "glDeleteBufferRegion", "GL_KTX_buffer_region", glDeleteBufferRegion },
+    { "glDeleteBuffers", "GL_VERSION_1_5", glDeleteBuffers },
+    { "glDeleteBuffersARB", "GL_ARB_vertex_buffer_object", glDeleteBuffersARB },
+    { "glDeleteCommandListsNV", "GL_NV_command_list", glDeleteCommandListsNV },
+    { "glDeleteFencesAPPLE", "GL_APPLE_fence", glDeleteFencesAPPLE },
+    { "glDeleteFencesNV", "GL_NV_fence", glDeleteFencesNV },
+    { "glDeleteFragmentShaderATI", "GL_ATI_fragment_shader", glDeleteFragmentShaderATI },
+    { "glDeleteFramebuffers", "GL_ARB_framebuffer_object GL_VERSION_3_0", glDeleteFramebuffers },
+    { "glDeleteFramebuffersEXT", "GL_EXT_framebuffer_object", glDeleteFramebuffersEXT },
+    { "glDeleteMemoryObjectsEXT", "GL_EXT_memory_object", glDeleteMemoryObjectsEXT },
+    { "glDeleteNamedStringARB", "GL_ARB_shading_language_include", glDeleteNamedStringARB },
+    { "glDeleteNamesAMD", "GL_AMD_name_gen_delete", glDeleteNamesAMD },
+    { "glDeleteObjectARB", "GL_ARB_shader_objects", glDeleteObjectARB },
+    { "glDeleteObjectBufferATI", "GL_ATI_vertex_array_object", glDeleteObjectBufferATI },
+    { "glDeleteOcclusionQueriesNV", "GL_NV_occlusion_query", glDeleteOcclusionQueriesNV },
+    { "glDeletePathsNV", "GL_NV_path_rendering", glDeletePathsNV },
+    { "glDeletePerfMonitorsAMD", "GL_AMD_performance_monitor", glDeletePerfMonitorsAMD },
+    { "glDeletePerfQueryINTEL", "GL_INTEL_performance_query", glDeletePerfQueryINTEL },
+    { "glDeleteProgram", "GL_VERSION_2_0", glDeleteProgram },
+    { "glDeleteProgramPipelines", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glDeleteProgramPipelines },
+    { "glDeleteProgramsARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glDeleteProgramsARB },
+    { "glDeleteProgramsNV", "GL_NV_vertex_program", glDeleteProgramsNV },
+    { "glDeleteQueries", "GL_VERSION_1_5", glDeleteQueries },
+    { "glDeleteQueriesARB", "GL_ARB_occlusion_query", glDeleteQueriesARB },
+    { "glDeleteQueryResourceTagNV", "GL_NV_query_resource_tag", glDeleteQueryResourceTagNV },
+    { "glDeleteRenderbuffers", "GL_ARB_framebuffer_object GL_VERSION_3_0", glDeleteRenderbuffers },
+    { "glDeleteRenderbuffersEXT", "GL_EXT_framebuffer_object", glDeleteRenderbuffersEXT },
+    { "glDeleteSamplers", "GL_ARB_sampler_objects GL_VERSION_3_3", glDeleteSamplers },
+    { "glDeleteSemaphoresEXT", "GL_EXT_semaphore", glDeleteSemaphoresEXT },
+    { "glDeleteShader", "GL_VERSION_2_0", glDeleteShader },
+    { "glDeleteStatesNV", "GL_NV_command_list", glDeleteStatesNV },
+    { "glDeleteSync", "GL_ARB_sync GL_VERSION_3_2", glDeleteSync },
+    { "glDeleteTexturesEXT", "GL_EXT_texture_object", glDeleteTexturesEXT },
+    { "glDeleteTransformFeedbacks", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glDeleteTransformFeedbacks },
+    { "glDeleteTransformFeedbacksNV", "GL_NV_transform_feedback2", glDeleteTransformFeedbacksNV },
+    { "glDeleteVertexArrays", "GL_ARB_vertex_array_object GL_VERSION_3_0", glDeleteVertexArrays },
+    { "glDeleteVertexArraysAPPLE", "GL_APPLE_vertex_array_object", glDeleteVertexArraysAPPLE },
+    { "glDeleteVertexShaderEXT", "GL_EXT_vertex_shader", glDeleteVertexShaderEXT },
+    { "glDepthBoundsEXT", "GL_EXT_depth_bounds_test", glDepthBoundsEXT },
+    { "glDepthBoundsdNV", "GL_NV_depth_buffer_float", glDepthBoundsdNV },
+    { "glDepthRangeArraydvNV", "GL_ARB_viewport_array", glDepthRangeArraydvNV },
+    { "glDepthRangeArrayv", "GL_ARB_viewport_array GL_VERSION_4_1", glDepthRangeArrayv },
+    { "glDepthRangeIndexed", "GL_ARB_viewport_array GL_VERSION_4_1", glDepthRangeIndexed },
+    { "glDepthRangeIndexeddNV", "GL_ARB_viewport_array", glDepthRangeIndexeddNV },
+    { "glDepthRangedNV", "GL_NV_depth_buffer_float", glDepthRangedNV },
+    { "glDepthRangef", "GL_ARB_ES2_compatibility GL_VERSION_4_1", glDepthRangef },
+    { "glDepthRangefOES", "GL_OES_single_precision", glDepthRangefOES },
+    { "glDepthRangexOES", "GL_OES_fixed_point", glDepthRangexOES },
+    { "glDetachObjectARB", "GL_ARB_shader_objects", glDetachObjectARB },
+    { "glDetachShader", "GL_VERSION_2_0", glDetachShader },
+    { "glDetailTexFuncSGIS", "GL_SGIS_detail_texture", glDetailTexFuncSGIS },
+    { "glDisableClientStateIndexedEXT", "GL_EXT_direct_state_access", glDisableClientStateIndexedEXT },
+    { "glDisableClientStateiEXT", "GL_EXT_direct_state_access", glDisableClientStateiEXT },
+    { "glDisableIndexedEXT", "GL_EXT_direct_state_access GL_EXT_draw_buffers2", glDisableIndexedEXT },
+    { "glDisableVariantClientStateEXT", "GL_EXT_vertex_shader", glDisableVariantClientStateEXT },
+    { "glDisableVertexArrayAttrib", "GL_ARB_direct_state_access GL_VERSION_4_5", glDisableVertexArrayAttrib },
+    { "glDisableVertexArrayAttribEXT", "GL_EXT_direct_state_access", glDisableVertexArrayAttribEXT },
+    { "glDisableVertexArrayEXT", "GL_EXT_direct_state_access", glDisableVertexArrayEXT },
+    { "glDisableVertexAttribAPPLE", "GL_APPLE_vertex_program_evaluators", glDisableVertexAttribAPPLE },
+    { "glDisableVertexAttribArray", "GL_VERSION_2_0", glDisableVertexAttribArray },
+    { "glDisableVertexAttribArrayARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glDisableVertexAttribArrayARB },
+    { "glDisablei", "GL_VERSION_3_0", glDisablei },
+    { "glDispatchCompute", "GL_ARB_compute_shader GL_VERSION_4_3", glDispatchCompute },
+    { "glDispatchComputeGroupSizeARB", "GL_ARB_compute_variable_group_size", glDispatchComputeGroupSizeARB },
+    { "glDispatchComputeIndirect", "GL_ARB_compute_shader GL_VERSION_4_3", glDispatchComputeIndirect },
+    { "glDrawArraysEXT", "GL_EXT_vertex_array", glDrawArraysEXT },
+    { "glDrawArraysIndirect", "GL_ARB_draw_indirect GL_VERSION_4_0", glDrawArraysIndirect },
+    { "glDrawArraysInstanced", "GL_VERSION_3_1", glDrawArraysInstanced },
+    { "glDrawArraysInstancedARB", "GL_ARB_draw_instanced", glDrawArraysInstancedARB },
+    { "glDrawArraysInstancedBaseInstance", "GL_ARB_base_instance GL_VERSION_4_2", glDrawArraysInstancedBaseInstance },
+    { "glDrawArraysInstancedEXT", "GL_EXT_draw_instanced", glDrawArraysInstancedEXT },
+    { "glDrawBufferRegion", "GL_KTX_buffer_region", glDrawBufferRegion },
+    { "glDrawBuffers", "GL_VERSION_2_0", glDrawBuffers },
+    { "glDrawBuffersARB", "GL_ARB_draw_buffers", glDrawBuffersARB },
+    { "glDrawBuffersATI", "GL_ATI_draw_buffers", glDrawBuffersATI },
+    { "glDrawCommandsAddressNV", "GL_NV_command_list", glDrawCommandsAddressNV },
+    { "glDrawCommandsNV", "GL_NV_command_list", glDrawCommandsNV },
+    { "glDrawCommandsStatesAddressNV", "GL_NV_command_list", glDrawCommandsStatesAddressNV },
+    { "glDrawCommandsStatesNV", "GL_NV_command_list", glDrawCommandsStatesNV },
+    { "glDrawElementArrayAPPLE", "GL_APPLE_element_array", glDrawElementArrayAPPLE },
+    { "glDrawElementArrayATI", "GL_ATI_element_array", glDrawElementArrayATI },
+    { "glDrawElementsBaseVertex", "GL_ARB_draw_elements_base_vertex GL_VERSION_3_2", glDrawElementsBaseVertex },
+    { "glDrawElementsIndirect", "GL_ARB_draw_indirect GL_VERSION_4_0", glDrawElementsIndirect },
+    { "glDrawElementsInstanced", "GL_VERSION_3_1", glDrawElementsInstanced },
+    { "glDrawElementsInstancedARB", "GL_ARB_draw_instanced", glDrawElementsInstancedARB },
+    { "glDrawElementsInstancedBaseInstance", "GL_ARB_base_instance GL_VERSION_4_2", glDrawElementsInstancedBaseInstance },
+    { "glDrawElementsInstancedBaseVertex", "GL_ARB_draw_elements_base_vertex GL_VERSION_3_2", glDrawElementsInstancedBaseVertex },
+    { "glDrawElementsInstancedBaseVertexBaseInstance", "GL_ARB_base_instance GL_VERSION_4_2", glDrawElementsInstancedBaseVertexBaseInstance },
+    { "glDrawElementsInstancedEXT", "GL_EXT_draw_instanced", glDrawElementsInstancedEXT },
+    { "glDrawMeshArraysSUN", "GL_SUN_mesh_array", glDrawMeshArraysSUN },
+    { "glDrawMeshTasksIndirectNV", "GL_NV_mesh_shader", glDrawMeshTasksIndirectNV },
+    { "glDrawMeshTasksNV", "GL_NV_mesh_shader", glDrawMeshTasksNV },
+    { "glDrawRangeElementArrayAPPLE", "GL_APPLE_element_array", glDrawRangeElementArrayAPPLE },
+    { "glDrawRangeElementArrayATI", "GL_ATI_element_array", glDrawRangeElementArrayATI },
+    { "glDrawRangeElements", "GL_VERSION_1_2", glDrawRangeElements },
+    { "glDrawRangeElementsBaseVertex", "GL_ARB_draw_elements_base_vertex GL_VERSION_3_2", glDrawRangeElementsBaseVertex },
+    { "glDrawRangeElementsEXT", "GL_EXT_draw_range_elements", glDrawRangeElementsEXT },
+    { "glDrawTextureNV", "GL_NV_draw_texture", glDrawTextureNV },
+    { "glDrawTransformFeedback", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glDrawTransformFeedback },
+    { "glDrawTransformFeedbackInstanced", "GL_ARB_transform_feedback_instanced GL_VERSION_4_2", glDrawTransformFeedbackInstanced },
+    { "glDrawTransformFeedbackNV", "GL_NV_transform_feedback2", glDrawTransformFeedbackNV },
+    { "glDrawTransformFeedbackStream", "GL_ARB_transform_feedback3 GL_VERSION_4_0", glDrawTransformFeedbackStream },
+    { "glDrawTransformFeedbackStreamInstanced", "GL_ARB_transform_feedback_instanced GL_VERSION_4_2", glDrawTransformFeedbackStreamInstanced },
+    { "glDrawVkImageNV", "GL_NV_draw_vulkan_image", glDrawVkImageNV },
+    { "glEGLImageTargetTexStorageEXT", "GL_EXT_EGL_image_storage", glEGLImageTargetTexStorageEXT },
+    { "glEGLImageTargetTextureStorageEXT", "GL_EXT_EGL_image_storage", glEGLImageTargetTextureStorageEXT },
+    { "glEdgeFlagFormatNV", "GL_NV_vertex_buffer_unified_memory", glEdgeFlagFormatNV },
+    { "glEdgeFlagPointerEXT", "GL_EXT_vertex_array", glEdgeFlagPointerEXT },
+    { "glEdgeFlagPointerListIBM", "GL_IBM_vertex_array_lists", glEdgeFlagPointerListIBM },
+    { "glElementPointerAPPLE", "GL_APPLE_element_array", glElementPointerAPPLE },
+    { "glElementPointerATI", "GL_ATI_element_array", glElementPointerATI },
+    { "glEnableClientStateIndexedEXT", "GL_EXT_direct_state_access", glEnableClientStateIndexedEXT },
+    { "glEnableClientStateiEXT", "GL_EXT_direct_state_access", glEnableClientStateiEXT },
+    { "glEnableIndexedEXT", "GL_EXT_direct_state_access GL_EXT_draw_buffers2", glEnableIndexedEXT },
+    { "glEnableVariantClientStateEXT", "GL_EXT_vertex_shader", glEnableVariantClientStateEXT },
+    { "glEnableVertexArrayAttrib", "GL_ARB_direct_state_access GL_VERSION_4_5", glEnableVertexArrayAttrib },
+    { "glEnableVertexArrayAttribEXT", "GL_EXT_direct_state_access", glEnableVertexArrayAttribEXT },
+    { "glEnableVertexArrayEXT", "GL_EXT_direct_state_access", glEnableVertexArrayEXT },
+    { "glEnableVertexAttribAPPLE", "GL_APPLE_vertex_program_evaluators", glEnableVertexAttribAPPLE },
+    { "glEnableVertexAttribArray", "GL_VERSION_2_0", glEnableVertexAttribArray },
+    { "glEnableVertexAttribArrayARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glEnableVertexAttribArrayARB },
+    { "glEnablei", "GL_VERSION_3_0", glEnablei },
+    { "glEndConditionalRender", "GL_VERSION_3_0", glEndConditionalRender },
+    { "glEndConditionalRenderNV", "GL_NV_conditional_render", glEndConditionalRenderNV },
+    { "glEndConditionalRenderNVX", "GL_NVX_conditional_render", glEndConditionalRenderNVX },
+    { "glEndFragmentShaderATI", "GL_ATI_fragment_shader", glEndFragmentShaderATI },
+    { "glEndOcclusionQueryNV", "GL_NV_occlusion_query", glEndOcclusionQueryNV },
+    { "glEndPerfMonitorAMD", "GL_AMD_performance_monitor", glEndPerfMonitorAMD },
+    { "glEndPerfQueryINTEL", "GL_INTEL_performance_query", glEndPerfQueryINTEL },
+    { "glEndQuery", "GL_VERSION_1_5", glEndQuery },
+    { "glEndQueryARB", "GL_ARB_occlusion_query", glEndQueryARB },
+    { "glEndQueryIndexed", "GL_ARB_transform_feedback3 GL_VERSION_4_0", glEndQueryIndexed },
+    { "glEndTransformFeedback", "GL_VERSION_3_0", glEndTransformFeedback },
+    { "glEndTransformFeedbackEXT", "GL_EXT_transform_feedback", glEndTransformFeedbackEXT },
+    { "glEndTransformFeedbackNV", "GL_NV_transform_feedback", glEndTransformFeedbackNV },
+    { "glEndVertexShaderEXT", "GL_EXT_vertex_shader", glEndVertexShaderEXT },
+    { "glEndVideoCaptureNV", "GL_NV_video_capture", glEndVideoCaptureNV },
+    { "glEvalCoord1xOES", "GL_OES_fixed_point", glEvalCoord1xOES },
+    { "glEvalCoord1xvOES", "GL_OES_fixed_point", glEvalCoord1xvOES },
+    { "glEvalCoord2xOES", "GL_OES_fixed_point", glEvalCoord2xOES },
+    { "glEvalCoord2xvOES", "GL_OES_fixed_point", glEvalCoord2xvOES },
+    { "glEvalMapsNV", "GL_NV_evaluators", glEvalMapsNV },
+    { "glEvaluateDepthValuesARB", "GL_ARB_sample_locations", glEvaluateDepthValuesARB },
+    { "glExecuteProgramNV", "GL_NV_vertex_program", glExecuteProgramNV },
+    { "glExtractComponentEXT", "GL_EXT_vertex_shader", glExtractComponentEXT },
+    { "glFeedbackBufferxOES", "GL_OES_fixed_point", glFeedbackBufferxOES },
+    { "glFenceSync", "GL_ARB_sync GL_VERSION_3_2", glFenceSync },
+    { "glFinalCombinerInputNV", "GL_NV_register_combiners", glFinalCombinerInputNV },
+    { "glFinishAsyncSGIX", "GL_SGIX_async", glFinishAsyncSGIX },
+    { "glFinishFenceAPPLE", "GL_APPLE_fence", glFinishFenceAPPLE },
+    { "glFinishFenceNV", "GL_NV_fence", glFinishFenceNV },
+    { "glFinishObjectAPPLE", "GL_APPLE_fence", glFinishObjectAPPLE },
+    { "glFinishTextureSUNX", "GL_SUNX_constant_data", glFinishTextureSUNX },
+    { "glFlushMappedBufferRange", "GL_ARB_map_buffer_range GL_VERSION_3_0", glFlushMappedBufferRange },
+    { "glFlushMappedBufferRangeAPPLE", "GL_APPLE_flush_buffer_range", glFlushMappedBufferRangeAPPLE },
+    { "glFlushMappedNamedBufferRange", "GL_ARB_direct_state_access GL_VERSION_4_5", glFlushMappedNamedBufferRange },
+    { "glFlushMappedNamedBufferRangeEXT", "GL_EXT_direct_state_access", glFlushMappedNamedBufferRangeEXT },
+    { "glFlushPixelDataRangeNV", "GL_NV_pixel_data_range", glFlushPixelDataRangeNV },
+    { "glFlushRasterSGIX", "GL_SGIX_flush_raster", glFlushRasterSGIX },
+    { "glFlushStaticDataIBM", "GL_IBM_static_data", glFlushStaticDataIBM },
+    { "glFlushVertexArrayRangeAPPLE", "GL_APPLE_vertex_array_range", glFlushVertexArrayRangeAPPLE },
+    { "glFlushVertexArrayRangeNV", "GL_NV_vertex_array_range", glFlushVertexArrayRangeNV },
+    { "glFogCoordFormatNV", "GL_NV_vertex_buffer_unified_memory", glFogCoordFormatNV },
+    { "glFogCoordPointer", "GL_VERSION_1_4", glFogCoordPointer },
+    { "glFogCoordPointerEXT", "GL_EXT_fog_coord", glFogCoordPointerEXT },
+    { "glFogCoordPointerListIBM", "GL_IBM_vertex_array_lists", glFogCoordPointerListIBM },
+    { "glFogCoordd", "GL_VERSION_1_4", glFogCoordd },
+    { "glFogCoorddEXT", "GL_EXT_fog_coord", glFogCoorddEXT },
+    { "glFogCoorddv", "GL_VERSION_1_4", glFogCoorddv },
+    { "glFogCoorddvEXT", "GL_EXT_fog_coord", glFogCoorddvEXT },
+    { "glFogCoordf", "GL_VERSION_1_4", glFogCoordf },
+    { "glFogCoordfEXT", "GL_EXT_fog_coord", glFogCoordfEXT },
+    { "glFogCoordfv", "GL_VERSION_1_4", glFogCoordfv },
+    { "glFogCoordfvEXT", "GL_EXT_fog_coord", glFogCoordfvEXT },
+    { "glFogCoordhNV", "GL_NV_half_float", glFogCoordhNV },
+    { "glFogCoordhvNV", "GL_NV_half_float", glFogCoordhvNV },
+    { "glFogFuncSGIS", "GL_SGIS_fog_function", glFogFuncSGIS },
+    { "glFogxOES", "GL_OES_fixed_point", glFogxOES },
+    { "glFogxvOES", "GL_OES_fixed_point", glFogxvOES },
+    { "glFragmentColorMaterialSGIX", "GL_SGIX_fragment_lighting", glFragmentColorMaterialSGIX },
+    { "glFragmentCoverageColorNV", "GL_NV_fragment_coverage_to_color", glFragmentCoverageColorNV },
+    { "glFragmentLightModelfSGIX", "GL_SGIX_fragment_lighting", glFragmentLightModelfSGIX },
+    { "glFragmentLightModelfvSGIX", "GL_SGIX_fragment_lighting", glFragmentLightModelfvSGIX },
+    { "glFragmentLightModeliSGIX", "GL_SGIX_fragment_lighting", glFragmentLightModeliSGIX },
+    { "glFragmentLightModelivSGIX", "GL_SGIX_fragment_lighting", glFragmentLightModelivSGIX },
+    { "glFragmentLightfSGIX", "GL_SGIX_fragment_lighting", glFragmentLightfSGIX },
+    { "glFragmentLightfvSGIX", "GL_SGIX_fragment_lighting", glFragmentLightfvSGIX },
+    { "glFragmentLightiSGIX", "GL_SGIX_fragment_lighting", glFragmentLightiSGIX },
+    { "glFragmentLightivSGIX", "GL_SGIX_fragment_lighting", glFragmentLightivSGIX },
+    { "glFragmentMaterialfSGIX", "GL_SGIX_fragment_lighting", glFragmentMaterialfSGIX },
+    { "glFragmentMaterialfvSGIX", "GL_SGIX_fragment_lighting", glFragmentMaterialfvSGIX },
+    { "glFragmentMaterialiSGIX", "GL_SGIX_fragment_lighting", glFragmentMaterialiSGIX },
+    { "glFragmentMaterialivSGIX", "GL_SGIX_fragment_lighting", glFragmentMaterialivSGIX },
+    { "glFrameTerminatorGREMEDY", "GL_GREMEDY_frame_terminator", glFrameTerminatorGREMEDY },
+    { "glFrameZoomSGIX", "GL_SGIX_framezoom", glFrameZoomSGIX },
+    { "glFramebufferDrawBufferEXT", "GL_EXT_direct_state_access", glFramebufferDrawBufferEXT },
+    { "glFramebufferDrawBuffersEXT", "GL_EXT_direct_state_access", glFramebufferDrawBuffersEXT },
+    { "glFramebufferFetchBarrierEXT", "GL_EXT_shader_framebuffer_fetch_non_coherent", glFramebufferFetchBarrierEXT },
+    { "glFramebufferParameteri", "GL_ARB_framebuffer_no_attachments GL_VERSION_4_3", glFramebufferParameteri },
+    { "glFramebufferParameteriMESA", "GL_MESA_framebuffer_flip_y", glFramebufferParameteriMESA },
+    { "glFramebufferReadBufferEXT", "GL_EXT_direct_state_access", glFramebufferReadBufferEXT },
+    { "glFramebufferRenderbuffer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glFramebufferRenderbuffer },
+    { "glFramebufferRenderbufferEXT", "GL_EXT_framebuffer_object", glFramebufferRenderbufferEXT },
+    { "glFramebufferSampleLocationsfvARB", "GL_ARB_sample_locations", glFramebufferSampleLocationsfvARB },
+    { "glFramebufferSampleLocationsfvNV", "GL_NV_sample_locations", glFramebufferSampleLocationsfvNV },
+    { "glFramebufferSamplePositionsfvAMD", "GL_AMD_framebuffer_sample_positions", glFramebufferSamplePositionsfvAMD },
+    { "glFramebufferTexture", "GL_VERSION_3_2", glFramebufferTexture },
+    { "glFramebufferTexture1D", "GL_ARB_framebuffer_object GL_VERSION_3_0", glFramebufferTexture1D },
+    { "glFramebufferTexture1DEXT", "GL_EXT_framebuffer_object", glFramebufferTexture1DEXT },
+    { "glFramebufferTexture2D", "GL_ARB_framebuffer_object GL_VERSION_3_0", glFramebufferTexture2D },
+    { "glFramebufferTexture2DEXT", "GL_EXT_framebuffer_object", glFramebufferTexture2DEXT },
+    { "glFramebufferTexture3D", "GL_ARB_framebuffer_object GL_VERSION_3_0", glFramebufferTexture3D },
+    { "glFramebufferTexture3DEXT", "GL_EXT_framebuffer_object", glFramebufferTexture3DEXT },
+    { "glFramebufferTextureARB", "GL_ARB_geometry_shader4", glFramebufferTextureARB },
+    { "glFramebufferTextureEXT", "GL_NV_geometry_program4", glFramebufferTextureEXT },
+    { "glFramebufferTextureFaceARB", "GL_ARB_geometry_shader4", glFramebufferTextureFaceARB },
+    { "glFramebufferTextureFaceEXT", "GL_NV_geometry_program4", glFramebufferTextureFaceEXT },
+    { "glFramebufferTextureLayer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glFramebufferTextureLayer },
+    { "glFramebufferTextureLayerARB", "GL_ARB_geometry_shader4", glFramebufferTextureLayerARB },
+    { "glFramebufferTextureLayerEXT", "GL_EXT_texture_array GL_NV_geometry_program4", glFramebufferTextureLayerEXT },
+    { "glFramebufferTextureMultiviewOVR", "GL_OVR_multiview", glFramebufferTextureMultiviewOVR },
+    { "glFreeObjectBufferATI", "GL_ATI_vertex_array_object", glFreeObjectBufferATI },
+    { "glFrustumfOES", "GL_OES_single_precision", glFrustumfOES },
+    { "glFrustumxOES", "GL_OES_fixed_point", glFrustumxOES },
+    { "glGenAsyncMarkersSGIX", "GL_SGIX_async", glGenAsyncMarkersSGIX },
+    { "glGenBuffers", "GL_VERSION_1_5", glGenBuffers },
+    { "glGenBuffersARB", "GL_ARB_vertex_buffer_object", glGenBuffersARB },
+    { "glGenFencesAPPLE", "GL_APPLE_fence", glGenFencesAPPLE },
+    { "glGenFencesNV", "GL_NV_fence", glGenFencesNV },
+    { "glGenFragmentShadersATI", "GL_ATI_fragment_shader", glGenFragmentShadersATI },
+    { "glGenFramebuffers", "GL_ARB_framebuffer_object GL_VERSION_3_0", glGenFramebuffers },
+    { "glGenFramebuffersEXT", "GL_EXT_framebuffer_object", glGenFramebuffersEXT },
+    { "glGenNamesAMD", "GL_AMD_name_gen_delete", glGenNamesAMD },
+    { "glGenOcclusionQueriesNV", "GL_NV_occlusion_query", glGenOcclusionQueriesNV },
+    { "glGenPathsNV", "GL_NV_path_rendering", glGenPathsNV },
+    { "glGenPerfMonitorsAMD", "GL_AMD_performance_monitor", glGenPerfMonitorsAMD },
+    { "glGenProgramPipelines", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glGenProgramPipelines },
+    { "glGenProgramsARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGenProgramsARB },
+    { "glGenProgramsNV", "GL_NV_vertex_program", glGenProgramsNV },
+    { "glGenQueries", "GL_VERSION_1_5", glGenQueries },
+    { "glGenQueriesARB", "GL_ARB_occlusion_query", glGenQueriesARB },
+    { "glGenQueryResourceTagNV", "GL_NV_query_resource_tag", glGenQueryResourceTagNV },
+    { "glGenRenderbuffers", "GL_ARB_framebuffer_object GL_VERSION_3_0", glGenRenderbuffers },
+    { "glGenRenderbuffersEXT", "GL_EXT_framebuffer_object", glGenRenderbuffersEXT },
+    { "glGenSamplers", "GL_ARB_sampler_objects GL_VERSION_3_3", glGenSamplers },
+    { "glGenSemaphoresEXT", "GL_EXT_semaphore", glGenSemaphoresEXT },
+    { "glGenSymbolsEXT", "GL_EXT_vertex_shader", glGenSymbolsEXT },
+    { "glGenTexturesEXT", "GL_EXT_texture_object", glGenTexturesEXT },
+    { "glGenTransformFeedbacks", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glGenTransformFeedbacks },
+    { "glGenTransformFeedbacksNV", "GL_NV_transform_feedback2", glGenTransformFeedbacksNV },
+    { "glGenVertexArrays", "GL_ARB_vertex_array_object GL_VERSION_3_0", glGenVertexArrays },
+    { "glGenVertexArraysAPPLE", "GL_APPLE_vertex_array_object", glGenVertexArraysAPPLE },
+    { "glGenVertexShadersEXT", "GL_EXT_vertex_shader", glGenVertexShadersEXT },
+    { "glGenerateMipmap", "GL_ARB_framebuffer_object GL_VERSION_3_0", glGenerateMipmap },
+    { "glGenerateMipmapEXT", "GL_EXT_framebuffer_object", glGenerateMipmapEXT },
+    { "glGenerateMultiTexMipmapEXT", "GL_EXT_direct_state_access", glGenerateMultiTexMipmapEXT },
+    { "glGenerateTextureMipmap", "GL_ARB_direct_state_access GL_VERSION_4_5", glGenerateTextureMipmap },
+    { "glGenerateTextureMipmapEXT", "GL_EXT_direct_state_access", glGenerateTextureMipmapEXT },
+    { "glGetActiveAtomicCounterBufferiv", "GL_ARB_shader_atomic_counters GL_VERSION_4_2", glGetActiveAtomicCounterBufferiv },
+    { "glGetActiveAttrib", "GL_VERSION_2_0", glGetActiveAttrib },
+    { "glGetActiveAttribARB", "GL_ARB_vertex_shader", glGetActiveAttribARB },
+    { "glGetActiveSubroutineName", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetActiveSubroutineName },
+    { "glGetActiveSubroutineUniformName", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetActiveSubroutineUniformName },
+    { "glGetActiveSubroutineUniformiv", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetActiveSubroutineUniformiv },
+    { "glGetActiveUniform", "GL_VERSION_2_0", glGetActiveUniform },
+    { "glGetActiveUniformARB", "GL_ARB_shader_objects", glGetActiveUniformARB },
+    { "glGetActiveUniformBlockName", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glGetActiveUniformBlockName },
+    { "glGetActiveUniformBlockiv", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glGetActiveUniformBlockiv },
+    { "glGetActiveUniformName", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glGetActiveUniformName },
+    { "glGetActiveUniformsiv", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glGetActiveUniformsiv },
+    { "glGetActiveVaryingNV", "GL_NV_transform_feedback", glGetActiveVaryingNV },
+    { "glGetArrayObjectfvATI", "GL_ATI_vertex_array_object", glGetArrayObjectfvATI },
+    { "glGetArrayObjectivATI", "GL_ATI_vertex_array_object", glGetArrayObjectivATI },
+    { "glGetAttachedObjectsARB", "GL_ARB_shader_objects", glGetAttachedObjectsARB },
+    { "glGetAttachedShaders", "GL_VERSION_2_0", glGetAttachedShaders },
+    { "glGetAttribLocation", "GL_VERSION_2_0", glGetAttribLocation },
+    { "glGetAttribLocationARB", "GL_ARB_vertex_shader", glGetAttribLocationARB },
+    { "glGetBooleanIndexedvEXT", "GL_EXT_direct_state_access GL_EXT_draw_buffers2", glGetBooleanIndexedvEXT },
+    { "glGetBooleani_v", "GL_VERSION_3_0", glGetBooleani_v },
+    { "glGetBufferParameteri64v", "GL_VERSION_3_2", glGetBufferParameteri64v },
+    { "glGetBufferParameteriv", "GL_VERSION_1_5", glGetBufferParameteriv },
+    { "glGetBufferParameterivARB", "GL_ARB_vertex_buffer_object", glGetBufferParameterivARB },
+    { "glGetBufferParameterui64vNV", "GL_NV_shader_buffer_load", glGetBufferParameterui64vNV },
+    { "glGetBufferPointerv", "GL_VERSION_1_5", glGetBufferPointerv },
+    { "glGetBufferPointervARB", "GL_ARB_vertex_buffer_object", glGetBufferPointervARB },
+    { "glGetBufferSubData", "GL_VERSION_1_5", glGetBufferSubData },
+    { "glGetBufferSubDataARB", "GL_ARB_vertex_buffer_object", glGetBufferSubDataARB },
+    { "glGetClipPlanefOES", "GL_OES_single_precision", glGetClipPlanefOES },
+    { "glGetClipPlanexOES", "GL_OES_fixed_point", glGetClipPlanexOES },
+    { "glGetColorTable", "GL_ARB_imaging", glGetColorTable },
+    { "glGetColorTableEXT", "GL_EXT_paletted_texture", glGetColorTableEXT },
+    { "glGetColorTableParameterfv", "GL_ARB_imaging", glGetColorTableParameterfv },
+    { "glGetColorTableParameterfvEXT", "GL_EXT_paletted_texture", glGetColorTableParameterfvEXT },
+    { "glGetColorTableParameterfvSGI", "GL_SGI_color_table", glGetColorTableParameterfvSGI },
+    { "glGetColorTableParameteriv", "GL_ARB_imaging", glGetColorTableParameteriv },
+    { "glGetColorTableParameterivEXT", "GL_EXT_paletted_texture", glGetColorTableParameterivEXT },
+    { "glGetColorTableParameterivSGI", "GL_SGI_color_table", glGetColorTableParameterivSGI },
+    { "glGetColorTableSGI", "GL_SGI_color_table", glGetColorTableSGI },
+    { "glGetCombinerInputParameterfvNV", "GL_NV_register_combiners", glGetCombinerInputParameterfvNV },
+    { "glGetCombinerInputParameterivNV", "GL_NV_register_combiners", glGetCombinerInputParameterivNV },
+    { "glGetCombinerOutputParameterfvNV", "GL_NV_register_combiners", glGetCombinerOutputParameterfvNV },
+    { "glGetCombinerOutputParameterivNV", "GL_NV_register_combiners", glGetCombinerOutputParameterivNV },
+    { "glGetCombinerStageParameterfvNV", "GL_NV_register_combiners2", glGetCombinerStageParameterfvNV },
+    { "glGetCommandHeaderNV", "GL_NV_command_list", glGetCommandHeaderNV },
+    { "glGetCompressedMultiTexImageEXT", "GL_EXT_direct_state_access", glGetCompressedMultiTexImageEXT },
+    { "glGetCompressedTexImage", "GL_VERSION_1_3", glGetCompressedTexImage },
+    { "glGetCompressedTexImageARB", "GL_ARB_texture_compression", glGetCompressedTexImageARB },
+    { "glGetCompressedTextureImage", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetCompressedTextureImage },
+    { "glGetCompressedTextureImageEXT", "GL_EXT_direct_state_access", glGetCompressedTextureImageEXT },
+    { "glGetCompressedTextureSubImage", "GL_ARB_get_texture_sub_image GL_VERSION_4_5", glGetCompressedTextureSubImage },
+    { "glGetConvolutionFilter", "GL_ARB_imaging", glGetConvolutionFilter },
+    { "glGetConvolutionFilterEXT", "GL_EXT_convolution", glGetConvolutionFilterEXT },
+    { "glGetConvolutionParameterfv", "GL_ARB_imaging", glGetConvolutionParameterfv },
+    { "glGetConvolutionParameterfvEXT", "GL_EXT_convolution", glGetConvolutionParameterfvEXT },
+    { "glGetConvolutionParameteriv", "GL_ARB_imaging", glGetConvolutionParameteriv },
+    { "glGetConvolutionParameterivEXT", "GL_EXT_convolution", glGetConvolutionParameterivEXT },
+    { "glGetConvolutionParameterxvOES", "GL_OES_fixed_point", glGetConvolutionParameterxvOES },
+    { "glGetCoverageModulationTableNV", "GL_NV_framebuffer_mixed_samples", glGetCoverageModulationTableNV },
+    { "glGetDebugMessageLog", "GL_KHR_debug GL_VERSION_4_3", glGetDebugMessageLog },
+    { "glGetDebugMessageLogAMD", "GL_AMD_debug_output", glGetDebugMessageLogAMD },
+    { "glGetDebugMessageLogARB", "GL_ARB_debug_output", glGetDebugMessageLogARB },
+    { "glGetDetailTexFuncSGIS", "GL_SGIS_detail_texture", glGetDetailTexFuncSGIS },
+    { "glGetDoubleIndexedvEXT", "GL_EXT_direct_state_access", glGetDoubleIndexedvEXT },
+    { "glGetDoublei_v", "GL_ARB_viewport_array GL_VERSION_4_1", glGetDoublei_v },
+    { "glGetDoublei_vEXT", "GL_EXT_direct_state_access", glGetDoublei_vEXT },
+    { "glGetFenceivNV", "GL_NV_fence", glGetFenceivNV },
+    { "glGetFinalCombinerInputParameterfvNV", "GL_NV_register_combiners", glGetFinalCombinerInputParameterfvNV },
+    { "glGetFinalCombinerInputParameterivNV", "GL_NV_register_combiners", glGetFinalCombinerInputParameterivNV },
+    { "glGetFirstPerfQueryIdINTEL", "GL_INTEL_performance_query", glGetFirstPerfQueryIdINTEL },
+    { "glGetFixedvOES", "GL_OES_fixed_point", glGetFixedvOES },
+    { "glGetFloatIndexedvEXT", "GL_EXT_direct_state_access", glGetFloatIndexedvEXT },
+    { "glGetFloati_v", "GL_ARB_viewport_array GL_VERSION_4_1", glGetFloati_v },
+    { "glGetFloati_vEXT", "GL_EXT_direct_state_access", glGetFloati_vEXT },
+    { "glGetFogFuncSGIS", "GL_SGIS_fog_function", glGetFogFuncSGIS },
+    { "glGetFragDataIndex", "GL_ARB_blend_func_extended GL_VERSION_3_3", glGetFragDataIndex },
+    { "glGetFragDataLocation", "GL_VERSION_3_0", glGetFragDataLocation },
+    { "glGetFragDataLocationEXT", "GL_EXT_gpu_shader4", glGetFragDataLocationEXT },
+    { "glGetFragmentLightfvSGIX", "GL_SGIX_fragment_lighting", glGetFragmentLightfvSGIX },
+    { "glGetFragmentLightivSGIX", "GL_SGIX_fragment_lighting", glGetFragmentLightivSGIX },
+    { "glGetFragmentMaterialfvSGIX", "GL_SGIX_fragment_lighting", glGetFragmentMaterialfvSGIX },
+    { "glGetFragmentMaterialivSGIX", "GL_SGIX_fragment_lighting", glGetFragmentMaterialivSGIX },
+    { "glGetFramebufferAttachmentParameteriv", "GL_ARB_framebuffer_object GL_VERSION_3_0", glGetFramebufferAttachmentParameteriv },
+    { "glGetFramebufferAttachmentParameterivEXT", "GL_EXT_framebuffer_object", glGetFramebufferAttachmentParameterivEXT },
+    { "glGetFramebufferParameterfvAMD", "GL_AMD_framebuffer_sample_positions", glGetFramebufferParameterfvAMD },
+    { "glGetFramebufferParameteriv", "GL_ARB_framebuffer_no_attachments GL_VERSION_4_3", glGetFramebufferParameteriv },
+    { "glGetFramebufferParameterivEXT", "GL_EXT_direct_state_access", glGetFramebufferParameterivEXT },
+    { "glGetFramebufferParameterivMESA", "GL_MESA_framebuffer_flip_y", glGetFramebufferParameterivMESA },
+    { "glGetGraphicsResetStatus", "GL_KHR_robustness GL_VERSION_4_5", glGetGraphicsResetStatus },
+    { "glGetGraphicsResetStatusARB", "GL_ARB_robustness", glGetGraphicsResetStatusARB },
+    { "glGetHandleARB", "GL_ARB_shader_objects", glGetHandleARB },
+    { "glGetHistogram", "GL_ARB_imaging", glGetHistogram },
+    { "glGetHistogramEXT", "GL_EXT_histogram", glGetHistogramEXT },
+    { "glGetHistogramParameterfv", "GL_ARB_imaging", glGetHistogramParameterfv },
+    { "glGetHistogramParameterfvEXT", "GL_EXT_histogram", glGetHistogramParameterfvEXT },
+    { "glGetHistogramParameteriv", "GL_ARB_imaging", glGetHistogramParameteriv },
+    { "glGetHistogramParameterivEXT", "GL_EXT_histogram", glGetHistogramParameterivEXT },
+    { "glGetHistogramParameterxvOES", "GL_OES_fixed_point", glGetHistogramParameterxvOES },
+    { "glGetImageHandleARB", "GL_ARB_bindless_texture", glGetImageHandleARB },
+    { "glGetImageHandleNV", "GL_NV_bindless_texture", glGetImageHandleNV },
+    { "glGetImageTransformParameterfvHP", "GL_HP_image_transform", glGetImageTransformParameterfvHP },
+    { "glGetImageTransformParameterivHP", "GL_HP_image_transform", glGetImageTransformParameterivHP },
+    { "glGetInfoLogARB", "GL_ARB_shader_objects", glGetInfoLogARB },
+    { "glGetInstrumentsSGIX", "GL_SGIX_instruments", glGetInstrumentsSGIX },
+    { "glGetInteger64i_v", "GL_VERSION_3_2", glGetInteger64i_v },
+    { "glGetInteger64v", "GL_ARB_sync GL_VERSION_3_2", glGetInteger64v },
+    { "glGetIntegerIndexedvEXT", "GL_EXT_direct_state_access GL_EXT_draw_buffers2", glGetIntegerIndexedvEXT },
+    { "glGetIntegeri_v", "GL_ARB_uniform_buffer_object GL_VERSION_3_0", glGetIntegeri_v },
+    { "glGetIntegerui64i_vNV", "GL_NV_vertex_buffer_unified_memory", glGetIntegerui64i_vNV },
+    { "glGetIntegerui64vNV", "GL_NV_shader_buffer_load", glGetIntegerui64vNV },
+    { "glGetInternalformatSampleivNV", "GL_NV_internalformat_sample_query", glGetInternalformatSampleivNV },
+    { "glGetInternalformati64v", "GL_ARB_internalformat_query2 GL_VERSION_4_3", glGetInternalformati64v },
+    { "glGetInternalformativ", "GL_ARB_internalformat_query GL_VERSION_4_2", glGetInternalformativ },
+    { "glGetInvariantBooleanvEXT", "GL_EXT_vertex_shader", glGetInvariantBooleanvEXT },
+    { "glGetInvariantFloatvEXT", "GL_EXT_vertex_shader", glGetInvariantFloatvEXT },
+    { "glGetInvariantIntegervEXT", "GL_EXT_vertex_shader", glGetInvariantIntegervEXT },
+    { "glGetLightxOES", "GL_OES_fixed_point", glGetLightxOES },
+    { "glGetListParameterfvSGIX", "GL_SGIX_list_priority", glGetListParameterfvSGIX },
+    { "glGetListParameterivSGIX", "GL_SGIX_list_priority", glGetListParameterivSGIX },
+    { "glGetLocalConstantBooleanvEXT", "GL_EXT_vertex_shader", glGetLocalConstantBooleanvEXT },
+    { "glGetLocalConstantFloatvEXT", "GL_EXT_vertex_shader", glGetLocalConstantFloatvEXT },
+    { "glGetLocalConstantIntegervEXT", "GL_EXT_vertex_shader", glGetLocalConstantIntegervEXT },
+    { "glGetMapAttribParameterfvNV", "GL_NV_evaluators", glGetMapAttribParameterfvNV },
+    { "glGetMapAttribParameterivNV", "GL_NV_evaluators", glGetMapAttribParameterivNV },
+    { "glGetMapControlPointsNV", "GL_NV_evaluators", glGetMapControlPointsNV },
+    { "glGetMapParameterfvNV", "GL_NV_evaluators", glGetMapParameterfvNV },
+    { "glGetMapParameterivNV", "GL_NV_evaluators", glGetMapParameterivNV },
+    { "glGetMapxvOES", "GL_OES_fixed_point", glGetMapxvOES },
+    { "glGetMaterialxOES", "GL_OES_fixed_point", glGetMaterialxOES },
+    { "glGetMemoryObjectDetachedResourcesuivNV", "GL_NV_memory_attachment", glGetMemoryObjectDetachedResourcesuivNV },
+    { "glGetMemoryObjectParameterivEXT", "GL_EXT_memory_object", glGetMemoryObjectParameterivEXT },
+    { "glGetMinmax", "GL_ARB_imaging", glGetMinmax },
+    { "glGetMinmaxEXT", "GL_EXT_histogram", glGetMinmaxEXT },
+    { "glGetMinmaxParameterfv", "GL_ARB_imaging", glGetMinmaxParameterfv },
+    { "glGetMinmaxParameterfvEXT", "GL_EXT_histogram", glGetMinmaxParameterfvEXT },
+    { "glGetMinmaxParameteriv", "GL_ARB_imaging", glGetMinmaxParameteriv },
+    { "glGetMinmaxParameterivEXT", "GL_EXT_histogram", glGetMinmaxParameterivEXT },
+    { "glGetMultiTexEnvfvEXT", "GL_EXT_direct_state_access", glGetMultiTexEnvfvEXT },
+    { "glGetMultiTexEnvivEXT", "GL_EXT_direct_state_access", glGetMultiTexEnvivEXT },
+    { "glGetMultiTexGendvEXT", "GL_EXT_direct_state_access", glGetMultiTexGendvEXT },
+    { "glGetMultiTexGenfvEXT", "GL_EXT_direct_state_access", glGetMultiTexGenfvEXT },
+    { "glGetMultiTexGenivEXT", "GL_EXT_direct_state_access", glGetMultiTexGenivEXT },
+    { "glGetMultiTexImageEXT", "GL_EXT_direct_state_access", glGetMultiTexImageEXT },
+    { "glGetMultiTexLevelParameterfvEXT", "GL_EXT_direct_state_access", glGetMultiTexLevelParameterfvEXT },
+    { "glGetMultiTexLevelParameterivEXT", "GL_EXT_direct_state_access", glGetMultiTexLevelParameterivEXT },
+    { "glGetMultiTexParameterIivEXT", "GL_EXT_direct_state_access", glGetMultiTexParameterIivEXT },
+    { "glGetMultiTexParameterIuivEXT", "GL_EXT_direct_state_access", glGetMultiTexParameterIuivEXT },
+    { "glGetMultiTexParameterfvEXT", "GL_EXT_direct_state_access", glGetMultiTexParameterfvEXT },
+    { "glGetMultiTexParameterivEXT", "GL_EXT_direct_state_access", glGetMultiTexParameterivEXT },
+    { "glGetMultisamplefv", "GL_ARB_texture_multisample GL_VERSION_3_2", glGetMultisamplefv },
+    { "glGetMultisamplefvNV", "GL_NV_explicit_multisample", glGetMultisamplefvNV },
+    { "glGetNamedBufferParameteri64v", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedBufferParameteri64v },
+    { "glGetNamedBufferParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedBufferParameteriv },
+    { "glGetNamedBufferParameterivEXT", "GL_EXT_direct_state_access", glGetNamedBufferParameterivEXT },
+    { "glGetNamedBufferParameterui64vNV", "GL_NV_shader_buffer_load", glGetNamedBufferParameterui64vNV },
+    { "glGetNamedBufferPointerv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedBufferPointerv },
+    { "glGetNamedBufferPointervEXT", "GL_EXT_direct_state_access", glGetNamedBufferPointervEXT },
+    { "glGetNamedBufferSubData", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedBufferSubData },
+    { "glGetNamedBufferSubDataEXT", "GL_EXT_direct_state_access", glGetNamedBufferSubDataEXT },
+    { "glGetNamedFramebufferAttachmentParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedFramebufferAttachmentParameteriv },
+    { "glGetNamedFramebufferAttachmentParameterivEXT", "GL_EXT_direct_state_access", glGetNamedFramebufferAttachmentParameterivEXT },
+    { "glGetNamedFramebufferParameterfvAMD", "GL_AMD_framebuffer_sample_positions", glGetNamedFramebufferParameterfvAMD },
+    { "glGetNamedFramebufferParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedFramebufferParameteriv },
+    { "glGetNamedFramebufferParameterivEXT", "GL_EXT_direct_state_access", glGetNamedFramebufferParameterivEXT },
+    { "glGetNamedProgramLocalParameterIivEXT", "GL_EXT_direct_state_access", glGetNamedProgramLocalParameterIivEXT },
+    { "glGetNamedProgramLocalParameterIuivEXT", "GL_EXT_direct_state_access", glGetNamedProgramLocalParameterIuivEXT },
+    { "glGetNamedProgramLocalParameterdvEXT", "GL_EXT_direct_state_access", glGetNamedProgramLocalParameterdvEXT },
+    { "glGetNamedProgramLocalParameterfvEXT", "GL_EXT_direct_state_access", glGetNamedProgramLocalParameterfvEXT },
+    { "glGetNamedProgramStringEXT", "GL_EXT_direct_state_access", glGetNamedProgramStringEXT },
+    { "glGetNamedProgramivEXT", "GL_EXT_direct_state_access", glGetNamedProgramivEXT },
+    { "glGetNamedRenderbufferParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetNamedRenderbufferParameteriv },
+    { "glGetNamedRenderbufferParameterivEXT", "GL_EXT_direct_state_access", glGetNamedRenderbufferParameterivEXT },
+    { "glGetNamedStringARB", "GL_ARB_shading_language_include", glGetNamedStringARB },
+    { "glGetNamedStringivARB", "GL_ARB_shading_language_include", glGetNamedStringivARB },
+    { "glGetNextPerfQueryIdINTEL", "GL_INTEL_performance_query", glGetNextPerfQueryIdINTEL },
+    { "glGetObjectBufferfvATI", "GL_ATI_vertex_array_object", glGetObjectBufferfvATI },
+    { "glGetObjectBufferivATI", "GL_ATI_vertex_array_object", glGetObjectBufferivATI },
+    { "glGetObjectLabel", "GL_KHR_debug GL_VERSION_4_3", glGetObjectLabel },
+    { "glGetObjectLabelEXT", "GL_EXT_debug_label", glGetObjectLabelEXT },
+    { "glGetObjectParameterfvARB", "GL_ARB_shader_objects", glGetObjectParameterfvARB },
+    { "glGetObjectParameterivAPPLE", "GL_APPLE_object_purgeable", glGetObjectParameterivAPPLE },
+    { "glGetObjectParameterivARB", "GL_ARB_shader_objects", glGetObjectParameterivARB },
+    { "glGetObjectPtrLabel", "GL_KHR_debug GL_VERSION_4_3", glGetObjectPtrLabel },
+    { "glGetOcclusionQueryivNV", "GL_NV_occlusion_query", glGetOcclusionQueryivNV },
+    { "glGetOcclusionQueryuivNV", "GL_NV_occlusion_query", glGetOcclusionQueryuivNV },
+    { "glGetPathColorGenfvNV", "GL_NV_path_rendering", glGetPathColorGenfvNV },
+    { "glGetPathColorGenivNV", "GL_NV_path_rendering", glGetPathColorGenivNV },
+    { "glGetPathCommandsNV", "GL_NV_path_rendering", glGetPathCommandsNV },
+    { "glGetPathCoordsNV", "GL_NV_path_rendering", glGetPathCoordsNV },
+    { "glGetPathDashArrayNV", "GL_NV_path_rendering", glGetPathDashArrayNV },
+    { "glGetPathLengthNV", "GL_NV_path_rendering", glGetPathLengthNV },
+    { "glGetPathMetricRangeNV", "GL_NV_path_rendering", glGetPathMetricRangeNV },
+    { "glGetPathMetricsNV", "GL_NV_path_rendering", glGetPathMetricsNV },
+    { "glGetPathParameterfvNV", "GL_NV_path_rendering", glGetPathParameterfvNV },
+    { "glGetPathParameterivNV", "GL_NV_path_rendering", glGetPathParameterivNV },
+    { "glGetPathSpacingNV", "GL_NV_path_rendering", glGetPathSpacingNV },
+    { "glGetPathTexGenfvNV", "GL_NV_path_rendering", glGetPathTexGenfvNV },
+    { "glGetPathTexGenivNV", "GL_NV_path_rendering", glGetPathTexGenivNV },
+    { "glGetPerfCounterInfoINTEL", "GL_INTEL_performance_query", glGetPerfCounterInfoINTEL },
+    { "glGetPerfMonitorCounterDataAMD", "GL_AMD_performance_monitor", glGetPerfMonitorCounterDataAMD },
+    { "glGetPerfMonitorCounterInfoAMD", "GL_AMD_performance_monitor", glGetPerfMonitorCounterInfoAMD },
+    { "glGetPerfMonitorCounterStringAMD", "GL_AMD_performance_monitor", glGetPerfMonitorCounterStringAMD },
+    { "glGetPerfMonitorCountersAMD", "GL_AMD_performance_monitor", glGetPerfMonitorCountersAMD },
+    { "glGetPerfMonitorGroupStringAMD", "GL_AMD_performance_monitor", glGetPerfMonitorGroupStringAMD },
+    { "glGetPerfMonitorGroupsAMD", "GL_AMD_performance_monitor", glGetPerfMonitorGroupsAMD },
+    { "glGetPerfQueryDataINTEL", "GL_INTEL_performance_query", glGetPerfQueryDataINTEL },
+    { "glGetPerfQueryIdByNameINTEL", "GL_INTEL_performance_query", glGetPerfQueryIdByNameINTEL },
+    { "glGetPerfQueryInfoINTEL", "GL_INTEL_performance_query", glGetPerfQueryInfoINTEL },
+    { "glGetPixelMapxv", "GL_OES_fixed_point", glGetPixelMapxv },
+    { "glGetPixelTexGenParameterfvSGIS", "GL_SGIS_pixel_texture", glGetPixelTexGenParameterfvSGIS },
+    { "glGetPixelTexGenParameterivSGIS", "GL_SGIS_pixel_texture", glGetPixelTexGenParameterivSGIS },
+    { "glGetPixelTransformParameterfvEXT", "GL_EXT_pixel_transform", glGetPixelTransformParameterfvEXT },
+    { "glGetPixelTransformParameterivEXT", "GL_EXT_pixel_transform", glGetPixelTransformParameterivEXT },
+    { "glGetPointerIndexedvEXT", "GL_EXT_direct_state_access", glGetPointerIndexedvEXT },
+    { "glGetPointeri_vEXT", "GL_EXT_direct_state_access", glGetPointeri_vEXT },
+    { "glGetPointervEXT", "GL_EXT_vertex_array", glGetPointervEXT },
+    { "glGetProgramBinary", "GL_ARB_get_program_binary GL_VERSION_4_1", glGetProgramBinary },
+    { "glGetProgramEnvParameterIivNV", "GL_NV_gpu_program4", glGetProgramEnvParameterIivNV },
+    { "glGetProgramEnvParameterIuivNV", "GL_NV_gpu_program4", glGetProgramEnvParameterIuivNV },
+    { "glGetProgramEnvParameterdvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGetProgramEnvParameterdvARB },
+    { "glGetProgramEnvParameterfvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGetProgramEnvParameterfvARB },
+    { "glGetProgramInfoLog", "GL_VERSION_2_0", glGetProgramInfoLog },
+    { "glGetProgramInterfaceiv", "GL_ARB_program_interface_query GL_VERSION_4_3", glGetProgramInterfaceiv },
+    { "glGetProgramLocalParameterIivNV", "GL_NV_gpu_program4", glGetProgramLocalParameterIivNV },
+    { "glGetProgramLocalParameterIuivNV", "GL_NV_gpu_program4", glGetProgramLocalParameterIuivNV },
+    { "glGetProgramLocalParameterdvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGetProgramLocalParameterdvARB },
+    { "glGetProgramLocalParameterfvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGetProgramLocalParameterfvARB },
+    { "glGetProgramNamedParameterdvNV", "GL_NV_fragment_program", glGetProgramNamedParameterdvNV },
+    { "glGetProgramNamedParameterfvNV", "GL_NV_fragment_program", glGetProgramNamedParameterfvNV },
+    { "glGetProgramParameterdvNV", "GL_NV_vertex_program", glGetProgramParameterdvNV },
+    { "glGetProgramParameterfvNV", "GL_NV_vertex_program", glGetProgramParameterfvNV },
+    { "glGetProgramPipelineInfoLog", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glGetProgramPipelineInfoLog },
+    { "glGetProgramPipelineiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glGetProgramPipelineiv },
+    { "glGetProgramResourceIndex", "GL_ARB_program_interface_query GL_VERSION_4_3", glGetProgramResourceIndex },
+    { "glGetProgramResourceLocation", "GL_ARB_program_interface_query GL_VERSION_4_3", glGetProgramResourceLocation },
+    { "glGetProgramResourceLocationIndex", "GL_ARB_program_interface_query GL_VERSION_4_3", glGetProgramResourceLocationIndex },
+    { "glGetProgramResourceName", "GL_ARB_program_interface_query GL_VERSION_4_3", glGetProgramResourceName },
+    { "glGetProgramResourcefvNV", "GL_NV_path_rendering", glGetProgramResourcefvNV },
+    { "glGetProgramResourceiv", "GL_ARB_program_interface_query GL_VERSION_4_3", glGetProgramResourceiv },
+    { "glGetProgramStageiv", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetProgramStageiv },
+    { "glGetProgramStringARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGetProgramStringARB },
+    { "glGetProgramStringNV", "GL_NV_vertex_program", glGetProgramStringNV },
+    { "glGetProgramSubroutineParameteruivNV", "GL_NV_gpu_program5", glGetProgramSubroutineParameteruivNV },
+    { "glGetProgramiv", "GL_VERSION_2_0", glGetProgramiv },
+    { "glGetProgramivARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glGetProgramivARB },
+    { "glGetProgramivNV", "GL_NV_vertex_program", glGetProgramivNV },
+    { "glGetQueryBufferObjecti64v", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetQueryBufferObjecti64v },
+    { "glGetQueryBufferObjectiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetQueryBufferObjectiv },
+    { "glGetQueryBufferObjectui64v", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetQueryBufferObjectui64v },
+    { "glGetQueryBufferObjectuiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetQueryBufferObjectuiv },
+    { "glGetQueryIndexediv", "GL_ARB_transform_feedback3 GL_VERSION_4_0", glGetQueryIndexediv },
+    { "glGetQueryObjecti64v", "GL_ARB_timer_query GL_VERSION_3_3", glGetQueryObjecti64v },
+    { "glGetQueryObjecti64vEXT", "GL_EXT_timer_query", glGetQueryObjecti64vEXT },
+    { "glGetQueryObjectiv", "GL_VERSION_1_5", glGetQueryObjectiv },
+    { "glGetQueryObjectivARB", "GL_ARB_occlusion_query", glGetQueryObjectivARB },
+    { "glGetQueryObjectui64v", "GL_ARB_timer_query GL_VERSION_3_3", glGetQueryObjectui64v },
+    { "glGetQueryObjectui64vEXT", "GL_EXT_timer_query", glGetQueryObjectui64vEXT },
+    { "glGetQueryObjectuiv", "GL_VERSION_1_5", glGetQueryObjectuiv },
+    { "glGetQueryObjectuivARB", "GL_ARB_occlusion_query", glGetQueryObjectuivARB },
+    { "glGetQueryiv", "GL_VERSION_1_5", glGetQueryiv },
+    { "glGetQueryivARB", "GL_ARB_occlusion_query", glGetQueryivARB },
+    { "glGetRenderbufferParameteriv", "GL_ARB_framebuffer_object GL_VERSION_3_0", glGetRenderbufferParameteriv },
+    { "glGetRenderbufferParameterivEXT", "GL_EXT_framebuffer_object", glGetRenderbufferParameterivEXT },
+    { "glGetSamplerParameterIiv", "GL_ARB_sampler_objects GL_VERSION_3_3", glGetSamplerParameterIiv },
+    { "glGetSamplerParameterIuiv", "GL_ARB_sampler_objects GL_VERSION_3_3", glGetSamplerParameterIuiv },
+    { "glGetSamplerParameterfv", "GL_ARB_sampler_objects GL_VERSION_3_3", glGetSamplerParameterfv },
+    { "glGetSamplerParameteriv", "GL_ARB_sampler_objects GL_VERSION_3_3", glGetSamplerParameteriv },
+    { "glGetSemaphoreParameterui64vEXT", "GL_EXT_semaphore", glGetSemaphoreParameterui64vEXT },
+    { "glGetSeparableFilter", "GL_ARB_imaging", glGetSeparableFilter },
+    { "glGetSeparableFilterEXT", "GL_EXT_convolution", glGetSeparableFilterEXT },
+    { "glGetShaderInfoLog", "GL_VERSION_2_0", glGetShaderInfoLog },
+    { "glGetShaderPrecisionFormat", "GL_ARB_ES2_compatibility GL_VERSION_4_1", glGetShaderPrecisionFormat },
+    { "glGetShaderSource", "GL_VERSION_2_0", glGetShaderSource },
+    { "glGetShaderSourceARB", "GL_ARB_shader_objects", glGetShaderSourceARB },
+    { "glGetShaderiv", "GL_VERSION_2_0", glGetShaderiv },
+    { "glGetShadingRateImagePaletteNV", "GL_NV_shading_rate_image", glGetShadingRateImagePaletteNV },
+    { "glGetShadingRateSampleLocationivNV", "GL_NV_shading_rate_image", glGetShadingRateSampleLocationivNV },
+    { "glGetSharpenTexFuncSGIS", "GL_SGIS_sharpen_texture", glGetSharpenTexFuncSGIS },
+    { "glGetStageIndexNV", "GL_NV_command_list", glGetStageIndexNV },
+    { "glGetStringi", "GL_VERSION_3_0", glGetStringi },
+    { "glGetSubroutineIndex", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetSubroutineIndex },
+    { "glGetSubroutineUniformLocation", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetSubroutineUniformLocation },
+    { "glGetSynciv", "GL_ARB_sync GL_VERSION_3_2", glGetSynciv },
+    { "glGetTexBumpParameterfvATI", "GL_ATI_envmap_bumpmap", glGetTexBumpParameterfvATI },
+    { "glGetTexBumpParameterivATI", "GL_ATI_envmap_bumpmap", glGetTexBumpParameterivATI },
+    { "glGetTexEnvxvOES", "GL_OES_fixed_point", glGetTexEnvxvOES },
+    { "glGetTexFilterFuncSGIS", "GL_SGIS_texture_filter4", glGetTexFilterFuncSGIS },
+    { "glGetTexGenxvOES", "GL_OES_fixed_point", glGetTexGenxvOES },
+    { "glGetTexLevelParameterxvOES", "GL_OES_fixed_point", glGetTexLevelParameterxvOES },
+    { "glGetTexParameterIiv", "GL_VERSION_3_0", glGetTexParameterIiv },
+    { "glGetTexParameterIivEXT", "GL_EXT_texture_integer", glGetTexParameterIivEXT },
+    { "glGetTexParameterIuiv", "GL_VERSION_3_0", glGetTexParameterIuiv },
+    { "glGetTexParameterIuivEXT", "GL_EXT_texture_integer", glGetTexParameterIuivEXT },
+    { "glGetTexParameterPointervAPPLE", "GL_APPLE_texture_range", glGetTexParameterPointervAPPLE },
+    { "glGetTexParameterxvOES", "GL_OES_fixed_point", glGetTexParameterxvOES },
+    { "glGetTextureHandleARB", "GL_ARB_bindless_texture", glGetTextureHandleARB },
+    { "glGetTextureHandleNV", "GL_NV_bindless_texture", glGetTextureHandleNV },
+    { "glGetTextureImage", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureImage },
+    { "glGetTextureImageEXT", "GL_EXT_direct_state_access", glGetTextureImageEXT },
+    { "glGetTextureLevelParameterfv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureLevelParameterfv },
+    { "glGetTextureLevelParameterfvEXT", "GL_EXT_direct_state_access", glGetTextureLevelParameterfvEXT },
+    { "glGetTextureLevelParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureLevelParameteriv },
+    { "glGetTextureLevelParameterivEXT", "GL_EXT_direct_state_access", glGetTextureLevelParameterivEXT },
+    { "glGetTextureParameterIiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureParameterIiv },
+    { "glGetTextureParameterIivEXT", "GL_EXT_direct_state_access", glGetTextureParameterIivEXT },
+    { "glGetTextureParameterIuiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureParameterIuiv },
+    { "glGetTextureParameterIuivEXT", "GL_EXT_direct_state_access", glGetTextureParameterIuivEXT },
+    { "glGetTextureParameterfv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureParameterfv },
+    { "glGetTextureParameterfvEXT", "GL_EXT_direct_state_access", glGetTextureParameterfvEXT },
+    { "glGetTextureParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTextureParameteriv },
+    { "glGetTextureParameterivEXT", "GL_EXT_direct_state_access", glGetTextureParameterivEXT },
+    { "glGetTextureSamplerHandleARB", "GL_ARB_bindless_texture", glGetTextureSamplerHandleARB },
+    { "glGetTextureSamplerHandleNV", "GL_NV_bindless_texture", glGetTextureSamplerHandleNV },
+    { "glGetTextureSubImage", "GL_ARB_get_texture_sub_image GL_VERSION_4_5", glGetTextureSubImage },
+    { "glGetTrackMatrixivNV", "GL_NV_vertex_program", glGetTrackMatrixivNV },
+    { "glGetTransformFeedbackVarying", "GL_VERSION_3_0", glGetTransformFeedbackVarying },
+    { "glGetTransformFeedbackVaryingEXT", "GL_EXT_transform_feedback", glGetTransformFeedbackVaryingEXT },
+    { "glGetTransformFeedbackVaryingNV", "GL_NV_transform_feedback", glGetTransformFeedbackVaryingNV },
+    { "glGetTransformFeedbacki64_v", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTransformFeedbacki64_v },
+    { "glGetTransformFeedbacki_v", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTransformFeedbacki_v },
+    { "glGetTransformFeedbackiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetTransformFeedbackiv },
+    { "glGetUniformBlockIndex", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glGetUniformBlockIndex },
+    { "glGetUniformBufferSizeEXT", "GL_EXT_bindable_uniform", glGetUniformBufferSizeEXT },
+    { "glGetUniformIndices", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glGetUniformIndices },
+    { "glGetUniformLocation", "GL_VERSION_2_0", glGetUniformLocation },
+    { "glGetUniformLocationARB", "GL_ARB_shader_objects", glGetUniformLocationARB },
+    { "glGetUniformOffsetEXT", "GL_EXT_bindable_uniform", glGetUniformOffsetEXT },
+    { "glGetUniformSubroutineuiv", "GL_ARB_shader_subroutine GL_VERSION_4_0", glGetUniformSubroutineuiv },
+    { "glGetUniformdv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glGetUniformdv },
+    { "glGetUniformfv", "GL_VERSION_2_0", glGetUniformfv },
+    { "glGetUniformfvARB", "GL_ARB_shader_objects", glGetUniformfvARB },
+    { "glGetUniformi64vARB", "GL_ARB_gpu_shader_int64", glGetUniformi64vARB },
+    { "glGetUniformi64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glGetUniformi64vNV },
+    { "glGetUniformiv", "GL_VERSION_2_0", glGetUniformiv },
+    { "glGetUniformivARB", "GL_ARB_shader_objects", glGetUniformivARB },
+    { "glGetUniformui64vARB", "GL_ARB_gpu_shader_int64", glGetUniformui64vARB },
+    { "glGetUniformui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_shader_buffer_load", glGetUniformui64vNV },
+    { "glGetUniformuiv", "GL_VERSION_3_0", glGetUniformuiv },
+    { "glGetUniformuivEXT", "GL_EXT_gpu_shader4", glGetUniformuivEXT },
+    { "glGetUnsignedBytei_vEXT", "GL_EXT_memory_object GL_EXT_semaphore", glGetUnsignedBytei_vEXT },
+    { "glGetUnsignedBytevEXT", "GL_EXT_memory_object GL_EXT_semaphore", glGetUnsignedBytevEXT },
+    { "glGetVariantArrayObjectfvATI", "GL_ATI_vertex_array_object", glGetVariantArrayObjectfvATI },
+    { "glGetVariantArrayObjectivATI", "GL_ATI_vertex_array_object", glGetVariantArrayObjectivATI },
+    { "glGetVariantBooleanvEXT", "GL_EXT_vertex_shader", glGetVariantBooleanvEXT },
+    { "glGetVariantFloatvEXT", "GL_EXT_vertex_shader", glGetVariantFloatvEXT },
+    { "glGetVariantIntegervEXT", "GL_EXT_vertex_shader", glGetVariantIntegervEXT },
+    { "glGetVariantPointervEXT", "GL_EXT_vertex_shader", glGetVariantPointervEXT },
+    { "glGetVaryingLocationNV", "GL_NV_transform_feedback", glGetVaryingLocationNV },
+    { "glGetVertexArrayIndexed64iv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetVertexArrayIndexed64iv },
+    { "glGetVertexArrayIndexediv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetVertexArrayIndexediv },
+    { "glGetVertexArrayIntegeri_vEXT", "GL_EXT_direct_state_access", glGetVertexArrayIntegeri_vEXT },
+    { "glGetVertexArrayIntegervEXT", "GL_EXT_direct_state_access", glGetVertexArrayIntegervEXT },
+    { "glGetVertexArrayPointeri_vEXT", "GL_EXT_direct_state_access", glGetVertexArrayPointeri_vEXT },
+    { "glGetVertexArrayPointervEXT", "GL_EXT_direct_state_access", glGetVertexArrayPointervEXT },
+    { "glGetVertexArrayiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glGetVertexArrayiv },
+    { "glGetVertexAttribArrayObjectfvATI", "GL_ATI_vertex_attrib_array_object", glGetVertexAttribArrayObjectfvATI },
+    { "glGetVertexAttribArrayObjectivATI", "GL_ATI_vertex_attrib_array_object", glGetVertexAttribArrayObjectivATI },
+    { "glGetVertexAttribIiv", "GL_VERSION_3_0", glGetVertexAttribIiv },
+    { "glGetVertexAttribIivEXT", "GL_NV_vertex_program4", glGetVertexAttribIivEXT },
+    { "glGetVertexAttribIuiv", "GL_VERSION_3_0", glGetVertexAttribIuiv },
+    { "glGetVertexAttribIuivEXT", "GL_NV_vertex_program4", glGetVertexAttribIuivEXT },
+    { "glGetVertexAttribLdv", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glGetVertexAttribLdv },
+    { "glGetVertexAttribLdvEXT", "GL_EXT_vertex_attrib_64bit", glGetVertexAttribLdvEXT },
+    { "glGetVertexAttribLi64vNV", "GL_NV_vertex_attrib_integer_64bit", glGetVertexAttribLi64vNV },
+    { "glGetVertexAttribLui64vARB", "GL_ARB_bindless_texture", glGetVertexAttribLui64vARB },
+    { "glGetVertexAttribLui64vNV", "GL_NV_vertex_attrib_integer_64bit", glGetVertexAttribLui64vNV },
+    { "glGetVertexAttribPointerv", "GL_VERSION_2_0", glGetVertexAttribPointerv },
+    { "glGetVertexAttribPointervARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glGetVertexAttribPointervARB },
+    { "glGetVertexAttribPointervNV", "GL_NV_vertex_program", glGetVertexAttribPointervNV },
+    { "glGetVertexAttribdv", "GL_VERSION_2_0", glGetVertexAttribdv },
+    { "glGetVertexAttribdvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glGetVertexAttribdvARB },
+    { "glGetVertexAttribdvNV", "GL_NV_vertex_program", glGetVertexAttribdvNV },
+    { "glGetVertexAttribfv", "GL_VERSION_2_0", glGetVertexAttribfv },
+    { "glGetVertexAttribfvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glGetVertexAttribfvARB },
+    { "glGetVertexAttribfvNV", "GL_NV_vertex_program", glGetVertexAttribfvNV },
+    { "glGetVertexAttribiv", "GL_VERSION_2_0", glGetVertexAttribiv },
+    { "glGetVertexAttribivARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glGetVertexAttribivARB },
+    { "glGetVertexAttribivNV", "GL_NV_vertex_program", glGetVertexAttribivNV },
+    { "glGetVideoCaptureStreamdvNV", "GL_NV_video_capture", glGetVideoCaptureStreamdvNV },
+    { "glGetVideoCaptureStreamfvNV", "GL_NV_video_capture", glGetVideoCaptureStreamfvNV },
+    { "glGetVideoCaptureStreamivNV", "GL_NV_video_capture", glGetVideoCaptureStreamivNV },
+    { "glGetVideoCaptureivNV", "GL_NV_video_capture", glGetVideoCaptureivNV },
+    { "glGetVideoi64vNV", "GL_NV_present_video", glGetVideoi64vNV },
+    { "glGetVideoivNV", "GL_NV_present_video", glGetVideoivNV },
+    { "glGetVideoui64vNV", "GL_NV_present_video", glGetVideoui64vNV },
+    { "glGetVideouivNV", "GL_NV_present_video", glGetVideouivNV },
+    { "glGetVkProcAddrNV", "GL_NV_draw_vulkan_image", glGetVkProcAddrNV },
+    { "glGetnColorTable", "GL_VERSION_4_5", glGetnColorTable },
+    { "glGetnColorTableARB", "GL_ARB_robustness", glGetnColorTableARB },
+    { "glGetnCompressedTexImage", "GL_VERSION_4_5", glGetnCompressedTexImage },
+    { "glGetnCompressedTexImageARB", "GL_ARB_robustness", glGetnCompressedTexImageARB },
+    { "glGetnConvolutionFilter", "GL_VERSION_4_5", glGetnConvolutionFilter },
+    { "glGetnConvolutionFilterARB", "GL_ARB_robustness", glGetnConvolutionFilterARB },
+    { "glGetnHistogram", "GL_VERSION_4_5", glGetnHistogram },
+    { "glGetnHistogramARB", "GL_ARB_robustness", glGetnHistogramARB },
+    { "glGetnMapdv", "GL_VERSION_4_5", glGetnMapdv },
+    { "glGetnMapdvARB", "GL_ARB_robustness", glGetnMapdvARB },
+    { "glGetnMapfv", "GL_VERSION_4_5", glGetnMapfv },
+    { "glGetnMapfvARB", "GL_ARB_robustness", glGetnMapfvARB },
+    { "glGetnMapiv", "GL_VERSION_4_5", glGetnMapiv },
+    { "glGetnMapivARB", "GL_ARB_robustness", glGetnMapivARB },
+    { "glGetnMinmax", "GL_VERSION_4_5", glGetnMinmax },
+    { "glGetnMinmaxARB", "GL_ARB_robustness", glGetnMinmaxARB },
+    { "glGetnPixelMapfv", "GL_VERSION_4_5", glGetnPixelMapfv },
+    { "glGetnPixelMapfvARB", "GL_ARB_robustness", glGetnPixelMapfvARB },
+    { "glGetnPixelMapuiv", "GL_VERSION_4_5", glGetnPixelMapuiv },
+    { "glGetnPixelMapuivARB", "GL_ARB_robustness", glGetnPixelMapuivARB },
+    { "glGetnPixelMapusv", "GL_VERSION_4_5", glGetnPixelMapusv },
+    { "glGetnPixelMapusvARB", "GL_ARB_robustness", glGetnPixelMapusvARB },
+    { "glGetnPolygonStipple", "GL_VERSION_4_5", glGetnPolygonStipple },
+    { "glGetnPolygonStippleARB", "GL_ARB_robustness", glGetnPolygonStippleARB },
+    { "glGetnSeparableFilter", "GL_VERSION_4_5", glGetnSeparableFilter },
+    { "glGetnSeparableFilterARB", "GL_ARB_robustness", glGetnSeparableFilterARB },
+    { "glGetnTexImage", "GL_VERSION_4_5", glGetnTexImage },
+    { "glGetnTexImageARB", "GL_ARB_robustness", glGetnTexImageARB },
+    { "glGetnUniformdv", "GL_VERSION_4_5", glGetnUniformdv },
+    { "glGetnUniformdvARB", "GL_ARB_robustness", glGetnUniformdvARB },
+    { "glGetnUniformfv", "GL_KHR_robustness GL_VERSION_4_5", glGetnUniformfv },
+    { "glGetnUniformfvARB", "GL_ARB_robustness", glGetnUniformfvARB },
+    { "glGetnUniformi64vARB", "GL_ARB_gpu_shader_int64", glGetnUniformi64vARB },
+    { "glGetnUniformiv", "GL_KHR_robustness GL_VERSION_4_5", glGetnUniformiv },
+    { "glGetnUniformivARB", "GL_ARB_robustness", glGetnUniformivARB },
+    { "glGetnUniformui64vARB", "GL_ARB_gpu_shader_int64", glGetnUniformui64vARB },
+    { "glGetnUniformuiv", "GL_KHR_robustness GL_VERSION_4_5", glGetnUniformuiv },
+    { "glGetnUniformuivARB", "GL_ARB_robustness", glGetnUniformuivARB },
+    { "glGlobalAlphaFactorbSUN", "GL_SUN_global_alpha", glGlobalAlphaFactorbSUN },
+    { "glGlobalAlphaFactordSUN", "GL_SUN_global_alpha", glGlobalAlphaFactordSUN },
+    { "glGlobalAlphaFactorfSUN", "GL_SUN_global_alpha", glGlobalAlphaFactorfSUN },
+    { "glGlobalAlphaFactoriSUN", "GL_SUN_global_alpha", glGlobalAlphaFactoriSUN },
+    { "glGlobalAlphaFactorsSUN", "GL_SUN_global_alpha", glGlobalAlphaFactorsSUN },
+    { "glGlobalAlphaFactorubSUN", "GL_SUN_global_alpha", glGlobalAlphaFactorubSUN },
+    { "glGlobalAlphaFactoruiSUN", "GL_SUN_global_alpha", glGlobalAlphaFactoruiSUN },
+    { "glGlobalAlphaFactorusSUN", "GL_SUN_global_alpha", glGlobalAlphaFactorusSUN },
+    { "glHintPGI", "GL_PGI_misc_hints", glHintPGI },
+    { "glHistogram", "GL_ARB_imaging", glHistogram },
+    { "glHistogramEXT", "GL_EXT_histogram", glHistogramEXT },
+    { "glIglooInterfaceSGIX", "GL_SGIX_igloo_interface", glIglooInterfaceSGIX },
+    { "glImageTransformParameterfHP", "GL_HP_image_transform", glImageTransformParameterfHP },
+    { "glImageTransformParameterfvHP", "GL_HP_image_transform", glImageTransformParameterfvHP },
+    { "glImageTransformParameteriHP", "GL_HP_image_transform", glImageTransformParameteriHP },
+    { "glImageTransformParameterivHP", "GL_HP_image_transform", glImageTransformParameterivHP },
+    { "glImportMemoryFdEXT", "GL_EXT_memory_object_fd", glImportMemoryFdEXT },
+    { "glImportMemoryWin32HandleEXT", "GL_EXT_memory_object_win32", glImportMemoryWin32HandleEXT },
+    { "glImportMemoryWin32NameEXT", "GL_EXT_memory_object_win32", glImportMemoryWin32NameEXT },
+    { "glImportSemaphoreFdEXT", "GL_EXT_semaphore_fd", glImportSemaphoreFdEXT },
+    { "glImportSemaphoreWin32HandleEXT", "GL_EXT_semaphore_win32", glImportSemaphoreWin32HandleEXT },
+    { "glImportSemaphoreWin32NameEXT", "GL_EXT_semaphore_win32", glImportSemaphoreWin32NameEXT },
+    { "glImportSyncEXT", "GL_EXT_x11_sync_object", glImportSyncEXT },
+    { "glIndexFormatNV", "GL_NV_vertex_buffer_unified_memory", glIndexFormatNV },
+    { "glIndexFuncEXT", "GL_EXT_index_func", glIndexFuncEXT },
+    { "glIndexMaterialEXT", "GL_EXT_index_material", glIndexMaterialEXT },
+    { "glIndexPointerEXT", "GL_EXT_vertex_array", glIndexPointerEXT },
+    { "glIndexPointerListIBM", "GL_IBM_vertex_array_lists", glIndexPointerListIBM },
+    { "glIndexxOES", "GL_OES_fixed_point", glIndexxOES },
+    { "glIndexxvOES", "GL_OES_fixed_point", glIndexxvOES },
+    { "glInsertComponentEXT", "GL_EXT_vertex_shader", glInsertComponentEXT },
+    { "glInsertEventMarkerEXT", "GL_EXT_debug_marker", glInsertEventMarkerEXT },
+    { "glInstrumentsBufferSGIX", "GL_SGIX_instruments", glInstrumentsBufferSGIX },
+    { "glInterpolatePathsNV", "GL_NV_path_rendering", glInterpolatePathsNV },
+    { "glInvalidateBufferData", "GL_ARB_invalidate_subdata GL_VERSION_4_3", glInvalidateBufferData },
+    { "glInvalidateBufferSubData", "GL_ARB_invalidate_subdata GL_VERSION_4_3", glInvalidateBufferSubData },
+    { "glInvalidateFramebuffer", "GL_ARB_invalidate_subdata GL_VERSION_4_3", glInvalidateFramebuffer },
+    { "glInvalidateNamedFramebufferData", "GL_ARB_direct_state_access GL_VERSION_4_5", glInvalidateNamedFramebufferData },
+    { "glInvalidateNamedFramebufferSubData", "GL_ARB_direct_state_access GL_VERSION_4_5", glInvalidateNamedFramebufferSubData },
+    { "glInvalidateSubFramebuffer", "GL_ARB_invalidate_subdata GL_VERSION_4_3", glInvalidateSubFramebuffer },
+    { "glInvalidateTexImage", "GL_ARB_invalidate_subdata GL_VERSION_4_3", glInvalidateTexImage },
+    { "glInvalidateTexSubImage", "GL_ARB_invalidate_subdata GL_VERSION_4_3", glInvalidateTexSubImage },
+    { "glIsAsyncMarkerSGIX", "GL_SGIX_async", glIsAsyncMarkerSGIX },
+    { "glIsBuffer", "GL_VERSION_1_5", glIsBuffer },
+    { "glIsBufferARB", "GL_ARB_vertex_buffer_object", glIsBufferARB },
+    { "glIsBufferResidentNV", "GL_NV_shader_buffer_load", glIsBufferResidentNV },
+    { "glIsCommandListNV", "GL_NV_command_list", glIsCommandListNV },
+    { "glIsEnabledIndexedEXT", "GL_EXT_direct_state_access GL_EXT_draw_buffers2", glIsEnabledIndexedEXT },
+    { "glIsEnabledi", "GL_VERSION_3_0", glIsEnabledi },
+    { "glIsFenceAPPLE", "GL_APPLE_fence", glIsFenceAPPLE },
+    { "glIsFenceNV", "GL_NV_fence", glIsFenceNV },
+    { "glIsFramebuffer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glIsFramebuffer },
+    { "glIsFramebufferEXT", "GL_EXT_framebuffer_object", glIsFramebufferEXT },
+    { "glIsImageHandleResidentARB", "GL_ARB_bindless_texture", glIsImageHandleResidentARB },
+    { "glIsImageHandleResidentNV", "GL_NV_bindless_texture", glIsImageHandleResidentNV },
+    { "glIsMemoryObjectEXT", "GL_EXT_memory_object", glIsMemoryObjectEXT },
+    { "glIsNameAMD", "GL_AMD_name_gen_delete", glIsNameAMD },
+    { "glIsNamedBufferResidentNV", "GL_NV_shader_buffer_load", glIsNamedBufferResidentNV },
+    { "glIsNamedStringARB", "GL_ARB_shading_language_include", glIsNamedStringARB },
+    { "glIsObjectBufferATI", "GL_ATI_vertex_array_object", glIsObjectBufferATI },
+    { "glIsOcclusionQueryNV", "GL_NV_occlusion_query", glIsOcclusionQueryNV },
+    { "glIsPathNV", "GL_NV_path_rendering", glIsPathNV },
+    { "glIsPointInFillPathNV", "GL_NV_path_rendering", glIsPointInFillPathNV },
+    { "glIsPointInStrokePathNV", "GL_NV_path_rendering", glIsPointInStrokePathNV },
+    { "glIsProgram", "GL_VERSION_2_0", glIsProgram },
+    { "glIsProgramARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glIsProgramARB },
+    { "glIsProgramNV", "GL_NV_vertex_program", glIsProgramNV },
+    { "glIsProgramPipeline", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glIsProgramPipeline },
+    { "glIsQuery", "GL_VERSION_1_5", glIsQuery },
+    { "glIsQueryARB", "GL_ARB_occlusion_query", glIsQueryARB },
+    { "glIsRenderbuffer", "GL_ARB_framebuffer_object GL_VERSION_3_0", glIsRenderbuffer },
+    { "glIsRenderbufferEXT", "GL_EXT_framebuffer_object", glIsRenderbufferEXT },
+    { "glIsSampler", "GL_ARB_sampler_objects GL_VERSION_3_3", glIsSampler },
+    { "glIsSemaphoreEXT", "GL_EXT_semaphore", glIsSemaphoreEXT },
+    { "glIsShader", "GL_VERSION_2_0", glIsShader },
+    { "glIsStateNV", "GL_NV_command_list", glIsStateNV },
+    { "glIsSync", "GL_ARB_sync GL_VERSION_3_2", glIsSync },
+    { "glIsTextureEXT", "GL_EXT_texture_object", glIsTextureEXT },
+    { "glIsTextureHandleResidentARB", "GL_ARB_bindless_texture", glIsTextureHandleResidentARB },
+    { "glIsTextureHandleResidentNV", "GL_NV_bindless_texture", glIsTextureHandleResidentNV },
+    { "glIsTransformFeedback", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glIsTransformFeedback },
+    { "glIsTransformFeedbackNV", "GL_NV_transform_feedback2", glIsTransformFeedbackNV },
+    { "glIsVariantEnabledEXT", "GL_EXT_vertex_shader", glIsVariantEnabledEXT },
+    { "glIsVertexArray", "GL_ARB_vertex_array_object GL_VERSION_3_0", glIsVertexArray },
+    { "glIsVertexArrayAPPLE", "GL_APPLE_vertex_array_object", glIsVertexArrayAPPLE },
+    { "glIsVertexAttribEnabledAPPLE", "GL_APPLE_vertex_program_evaluators", glIsVertexAttribEnabledAPPLE },
+    { "glLGPUCopyImageSubDataNVX", "GL_NVX_linked_gpu_multicast", glLGPUCopyImageSubDataNVX },
+    { "glLGPUInterlockNVX", "GL_NVX_linked_gpu_multicast", glLGPUInterlockNVX },
+    { "glLGPUNamedBufferSubDataNVX", "GL_NVX_linked_gpu_multicast", glLGPUNamedBufferSubDataNVX },
+    { "glLabelObjectEXT", "GL_EXT_debug_label", glLabelObjectEXT },
+    { "glLightEnviSGIX", "GL_SGIX_fragment_lighting", glLightEnviSGIX },
+    { "glLightModelxOES", "GL_OES_fixed_point", glLightModelxOES },
+    { "glLightModelxvOES", "GL_OES_fixed_point", glLightModelxvOES },
+    { "glLightxOES", "GL_OES_fixed_point", glLightxOES },
+    { "glLightxvOES", "GL_OES_fixed_point", glLightxvOES },
+    { "glLineWidthxOES", "GL_OES_fixed_point", glLineWidthxOES },
+    { "glLinkProgram", "GL_VERSION_2_0", glLinkProgram },
+    { "glLinkProgramARB", "GL_ARB_shader_objects", glLinkProgramARB },
+    { "glListDrawCommandsStatesClientNV", "GL_NV_command_list", glListDrawCommandsStatesClientNV },
+    { "glListParameterfSGIX", "GL_SGIX_list_priority", glListParameterfSGIX },
+    { "glListParameterfvSGIX", "GL_SGIX_list_priority", glListParameterfvSGIX },
+    { "glListParameteriSGIX", "GL_SGIX_list_priority", glListParameteriSGIX },
+    { "glListParameterivSGIX", "GL_SGIX_list_priority", glListParameterivSGIX },
+    { "glLoadIdentityDeformationMapSGIX", "GL_SGIX_polynomial_ffd", glLoadIdentityDeformationMapSGIX },
+    { "glLoadMatrixxOES", "GL_OES_fixed_point", glLoadMatrixxOES },
+    { "glLoadProgramNV", "GL_NV_vertex_program", glLoadProgramNV },
+    { "glLoadTransposeMatrixd", "GL_VERSION_1_3", glLoadTransposeMatrixd },
+    { "glLoadTransposeMatrixdARB", "GL_ARB_transpose_matrix", glLoadTransposeMatrixdARB },
+    { "glLoadTransposeMatrixf", "GL_VERSION_1_3", glLoadTransposeMatrixf },
+    { "glLoadTransposeMatrixfARB", "GL_ARB_transpose_matrix", glLoadTransposeMatrixfARB },
+    { "glLoadTransposeMatrixxOES", "GL_OES_fixed_point", glLoadTransposeMatrixxOES },
+    { "glLockArraysEXT", "GL_EXT_compiled_vertex_array", glLockArraysEXT },
+    { "glMTexCoord2fSGIS", "GL_SGIS_multitexture", glMTexCoord2fSGIS },
+    { "glMTexCoord2fvSGIS", "GL_SGIS_multitexture", glMTexCoord2fvSGIS },
+    { "glMakeBufferNonResidentNV", "GL_NV_shader_buffer_load", glMakeBufferNonResidentNV },
+    { "glMakeBufferResidentNV", "GL_NV_shader_buffer_load", glMakeBufferResidentNV },
+    { "glMakeImageHandleNonResidentARB", "GL_ARB_bindless_texture", glMakeImageHandleNonResidentARB },
+    { "glMakeImageHandleNonResidentNV", "GL_NV_bindless_texture", glMakeImageHandleNonResidentNV },
+    { "glMakeImageHandleResidentARB", "GL_ARB_bindless_texture", glMakeImageHandleResidentARB },
+    { "glMakeImageHandleResidentNV", "GL_NV_bindless_texture", glMakeImageHandleResidentNV },
+    { "glMakeNamedBufferNonResidentNV", "GL_NV_shader_buffer_load", glMakeNamedBufferNonResidentNV },
+    { "glMakeNamedBufferResidentNV", "GL_NV_shader_buffer_load", glMakeNamedBufferResidentNV },
+    { "glMakeTextureHandleNonResidentARB", "GL_ARB_bindless_texture", glMakeTextureHandleNonResidentARB },
+    { "glMakeTextureHandleNonResidentNV", "GL_NV_bindless_texture", glMakeTextureHandleNonResidentNV },
+    { "glMakeTextureHandleResidentARB", "GL_ARB_bindless_texture", glMakeTextureHandleResidentARB },
+    { "glMakeTextureHandleResidentNV", "GL_NV_bindless_texture", glMakeTextureHandleResidentNV },
+    { "glMap1xOES", "GL_OES_fixed_point", glMap1xOES },
+    { "glMap2xOES", "GL_OES_fixed_point", glMap2xOES },
+    { "glMapBuffer", "GL_VERSION_1_5", glMapBuffer },
+    { "glMapBufferARB", "GL_ARB_vertex_buffer_object", glMapBufferARB },
+    { "glMapBufferRange", "GL_ARB_map_buffer_range GL_VERSION_3_0", glMapBufferRange },
+    { "glMapControlPointsNV", "GL_NV_evaluators", glMapControlPointsNV },
+    { "glMapGrid1xOES", "GL_OES_fixed_point", glMapGrid1xOES },
+    { "glMapGrid2xOES", "GL_OES_fixed_point", glMapGrid2xOES },
+    { "glMapNamedBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glMapNamedBuffer },
+    { "glMapNamedBufferEXT", "GL_EXT_direct_state_access", glMapNamedBufferEXT },
+    { "glMapNamedBufferRange", "GL_ARB_direct_state_access GL_VERSION_4_5", glMapNamedBufferRange },
+    { "glMapNamedBufferRangeEXT", "GL_EXT_direct_state_access", glMapNamedBufferRangeEXT },
+    { "glMapObjectBufferATI", "GL_ATI_map_object_buffer", glMapObjectBufferATI },
+    { "glMapParameterfvNV", "GL_NV_evaluators", glMapParameterfvNV },
+    { "glMapParameterivNV", "GL_NV_evaluators", glMapParameterivNV },
+    { "glMapTexture2DINTEL", "GL_INTEL_map_texture", glMapTexture2DINTEL },
+    { "glMapVertexAttrib1dAPPLE", "GL_APPLE_vertex_program_evaluators", glMapVertexAttrib1dAPPLE },
+    { "glMapVertexAttrib1fAPPLE", "GL_APPLE_vertex_program_evaluators", glMapVertexAttrib1fAPPLE },
+    { "glMapVertexAttrib2dAPPLE", "GL_APPLE_vertex_program_evaluators", glMapVertexAttrib2dAPPLE },
+    { "glMapVertexAttrib2fAPPLE", "GL_APPLE_vertex_program_evaluators", glMapVertexAttrib2fAPPLE },
+    { "glMaterialxOES", "GL_OES_fixed_point", glMaterialxOES },
+    { "glMaterialxvOES", "GL_OES_fixed_point", glMaterialxvOES },
+    { "glMatrixFrustumEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixFrustumEXT },
+    { "glMatrixIndexPointerARB", "GL_ARB_matrix_palette", glMatrixIndexPointerARB },
+    { "glMatrixIndexubvARB", "GL_ARB_matrix_palette", glMatrixIndexubvARB },
+    { "glMatrixIndexuivARB", "GL_ARB_matrix_palette", glMatrixIndexuivARB },
+    { "glMatrixIndexusvARB", "GL_ARB_matrix_palette", glMatrixIndexusvARB },
+    { "glMatrixLoad3x2fNV", "GL_NV_path_rendering", glMatrixLoad3x2fNV },
+    { "glMatrixLoad3x3fNV", "GL_NV_path_rendering", glMatrixLoad3x3fNV },
+    { "glMatrixLoadIdentityEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixLoadIdentityEXT },
+    { "glMatrixLoadTranspose3x3fNV", "GL_NV_path_rendering", glMatrixLoadTranspose3x3fNV },
+    { "glMatrixLoadTransposedEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixLoadTransposedEXT },
+    { "glMatrixLoadTransposefEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixLoadTransposefEXT },
+    { "glMatrixLoaddEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixLoaddEXT },
+    { "glMatrixLoadfEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixLoadfEXT },
+    { "glMatrixMult3x2fNV", "GL_NV_path_rendering", glMatrixMult3x2fNV },
+    { "glMatrixMult3x3fNV", "GL_NV_path_rendering", glMatrixMult3x3fNV },
+    { "glMatrixMultTranspose3x3fNV", "GL_NV_path_rendering", glMatrixMultTranspose3x3fNV },
+    { "glMatrixMultTransposedEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixMultTransposedEXT },
+    { "glMatrixMultTransposefEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixMultTransposefEXT },
+    { "glMatrixMultdEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixMultdEXT },
+    { "glMatrixMultfEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixMultfEXT },
+    { "glMatrixOrthoEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixOrthoEXT },
+    { "glMatrixPopEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixPopEXT },
+    { "glMatrixPushEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixPushEXT },
+    { "glMatrixRotatedEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixRotatedEXT },
+    { "glMatrixRotatefEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixRotatefEXT },
+    { "glMatrixScaledEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixScaledEXT },
+    { "glMatrixScalefEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixScalefEXT },
+    { "glMatrixTranslatedEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixTranslatedEXT },
+    { "glMatrixTranslatefEXT", "GL_EXT_direct_state_access GL_NV_path_rendering", glMatrixTranslatefEXT },
+    { "glMaxShaderCompilerThreadsARB", "GL_ARB_parallel_shader_compile", glMaxShaderCompilerThreadsARB },
+    { "glMaxShaderCompilerThreadsKHR", "GL_KHR_parallel_shader_compile", glMaxShaderCompilerThreadsKHR },
+    { "glMemoryBarrier", "GL_ARB_shader_image_load_store GL_VERSION_4_2", glMemoryBarrier },
+    { "glMemoryBarrierByRegion", "GL_ARB_ES3_1_compatibility GL_VERSION_4_5", glMemoryBarrierByRegion },
+    { "glMemoryBarrierEXT", "GL_EXT_shader_image_load_store", glMemoryBarrierEXT },
+    { "glMemoryObjectParameterivEXT", "GL_EXT_memory_object", glMemoryObjectParameterivEXT },
+    { "glMinSampleShading", "GL_VERSION_4_0", glMinSampleShading },
+    { "glMinSampleShadingARB", "GL_ARB_sample_shading", glMinSampleShadingARB },
+    { "glMinmax", "GL_ARB_imaging", glMinmax },
+    { "glMinmaxEXT", "GL_EXT_histogram", glMinmaxEXT },
+    { "glMultMatrixxOES", "GL_OES_fixed_point", glMultMatrixxOES },
+    { "glMultTransposeMatrixd", "GL_VERSION_1_3", glMultTransposeMatrixd },
+    { "glMultTransposeMatrixdARB", "GL_ARB_transpose_matrix", glMultTransposeMatrixdARB },
+    { "glMultTransposeMatrixf", "GL_VERSION_1_3", glMultTransposeMatrixf },
+    { "glMultTransposeMatrixfARB", "GL_ARB_transpose_matrix", glMultTransposeMatrixfARB },
+    { "glMultTransposeMatrixxOES", "GL_OES_fixed_point", glMultTransposeMatrixxOES },
+    { "glMultiDrawArrays", "GL_VERSION_1_4", glMultiDrawArrays },
+    { "glMultiDrawArraysEXT", "GL_EXT_multi_draw_arrays", glMultiDrawArraysEXT },
+    { "glMultiDrawArraysIndirect", "GL_ARB_multi_draw_indirect GL_VERSION_4_3", glMultiDrawArraysIndirect },
+    { "glMultiDrawArraysIndirectAMD", "GL_AMD_multi_draw_indirect", glMultiDrawArraysIndirectAMD },
+    { "glMultiDrawArraysIndirectBindlessCountNV", "GL_NV_bindless_multi_draw_indirect_count", glMultiDrawArraysIndirectBindlessCountNV },
+    { "glMultiDrawArraysIndirectBindlessNV", "GL_NV_bindless_multi_draw_indirect", glMultiDrawArraysIndirectBindlessNV },
+    { "glMultiDrawArraysIndirectCount", "GL_VERSION_4_6", glMultiDrawArraysIndirectCount },
+    { "glMultiDrawArraysIndirectCountARB", "GL_ARB_indirect_parameters", glMultiDrawArraysIndirectCountARB },
+    { "glMultiDrawElementArrayAPPLE", "GL_APPLE_element_array", glMultiDrawElementArrayAPPLE },
+    { "glMultiDrawElements", "GL_VERSION_1_4", glMultiDrawElements },
+    { "glMultiDrawElementsBaseVertex", "GL_ARB_draw_elements_base_vertex GL_VERSION_3_2", glMultiDrawElementsBaseVertex },
+    { "glMultiDrawElementsEXT", "GL_EXT_multi_draw_arrays", glMultiDrawElementsEXT },
+    { "glMultiDrawElementsIndirect", "GL_ARB_multi_draw_indirect GL_VERSION_4_3", glMultiDrawElementsIndirect },
+    { "glMultiDrawElementsIndirectAMD", "GL_AMD_multi_draw_indirect", glMultiDrawElementsIndirectAMD },
+    { "glMultiDrawElementsIndirectBindlessCountNV", "GL_NV_bindless_multi_draw_indirect_count", glMultiDrawElementsIndirectBindlessCountNV },
+    { "glMultiDrawElementsIndirectBindlessNV", "GL_NV_bindless_multi_draw_indirect", glMultiDrawElementsIndirectBindlessNV },
+    { "glMultiDrawElementsIndirectCount", "GL_VERSION_4_6", glMultiDrawElementsIndirectCount },
+    { "glMultiDrawElementsIndirectCountARB", "GL_ARB_indirect_parameters", glMultiDrawElementsIndirectCountARB },
+    { "glMultiDrawMeshTasksIndirectCountNV", "GL_NV_mesh_shader", glMultiDrawMeshTasksIndirectCountNV },
+    { "glMultiDrawMeshTasksIndirectNV", "GL_NV_mesh_shader", glMultiDrawMeshTasksIndirectNV },
+    { "glMultiDrawRangeElementArrayAPPLE", "GL_APPLE_element_array", glMultiDrawRangeElementArrayAPPLE },
+    { "glMultiModeDrawArraysIBM", "GL_IBM_multimode_draw_arrays", glMultiModeDrawArraysIBM },
+    { "glMultiModeDrawElementsIBM", "GL_IBM_multimode_draw_arrays", glMultiModeDrawElementsIBM },
+    { "glMultiTexBufferEXT", "GL_EXT_direct_state_access", glMultiTexBufferEXT },
+    { "glMultiTexCoord1bOES", "GL_OES_byte_coordinates", glMultiTexCoord1bOES },
+    { "glMultiTexCoord1bvOES", "GL_OES_byte_coordinates", glMultiTexCoord1bvOES },
+    { "glMultiTexCoord1d", "GL_VERSION_1_3", glMultiTexCoord1d },
+    { "glMultiTexCoord1dARB", "GL_ARB_multitexture", glMultiTexCoord1dARB },
+    { "glMultiTexCoord1dSGIS", "GL_SGIS_multitexture", glMultiTexCoord1dSGIS },
+    { "glMultiTexCoord1dv", "GL_VERSION_1_3", glMultiTexCoord1dv },
+    { "glMultiTexCoord1dvARB", "GL_ARB_multitexture", glMultiTexCoord1dvARB },
+    { "glMultiTexCoord1dvSGIS", "GL_SGIS_multitexture", glMultiTexCoord1dvSGIS },
+    { "glMultiTexCoord1f", "GL_VERSION_1_3", glMultiTexCoord1f },
+    { "glMultiTexCoord1fARB", "GL_ARB_multitexture", glMultiTexCoord1fARB },
+    { "glMultiTexCoord1fSGIS", "GL_SGIS_multitexture", glMultiTexCoord1fSGIS },
+    { "glMultiTexCoord1fv", "GL_VERSION_1_3", glMultiTexCoord1fv },
+    { "glMultiTexCoord1fvARB", "GL_ARB_multitexture", glMultiTexCoord1fvARB },
+    { "glMultiTexCoord1fvSGIS", "GL_SGIS_multitexture", glMultiTexCoord1fvSGIS },
+    { "glMultiTexCoord1hNV", "GL_NV_half_float", glMultiTexCoord1hNV },
+    { "glMultiTexCoord1hvNV", "GL_NV_half_float", glMultiTexCoord1hvNV },
+    { "glMultiTexCoord1i", "GL_VERSION_1_3", glMultiTexCoord1i },
+    { "glMultiTexCoord1iARB", "GL_ARB_multitexture", glMultiTexCoord1iARB },
+    { "glMultiTexCoord1iSGIS", "GL_SGIS_multitexture", glMultiTexCoord1iSGIS },
+    { "glMultiTexCoord1iv", "GL_VERSION_1_3", glMultiTexCoord1iv },
+    { "glMultiTexCoord1ivARB", "GL_ARB_multitexture", glMultiTexCoord1ivARB },
+    { "glMultiTexCoord1ivSGIS", "GL_SGIS_multitexture", glMultiTexCoord1ivSGIS },
+    { "glMultiTexCoord1s", "GL_VERSION_1_3", glMultiTexCoord1s },
+    { "glMultiTexCoord1sARB", "GL_ARB_multitexture", glMultiTexCoord1sARB },
+    { "glMultiTexCoord1sSGIS", "GL_SGIS_multitexture", glMultiTexCoord1sSGIS },
+    { "glMultiTexCoord1sv", "GL_VERSION_1_3", glMultiTexCoord1sv },
+    { "glMultiTexCoord1svARB", "GL_ARB_multitexture", glMultiTexCoord1svARB },
+    { "glMultiTexCoord1svSGIS", "GL_SGIS_multitexture", glMultiTexCoord1svSGIS },
+    { "glMultiTexCoord1xOES", "GL_OES_fixed_point", glMultiTexCoord1xOES },
+    { "glMultiTexCoord1xvOES", "GL_OES_fixed_point", glMultiTexCoord1xvOES },
+    { "glMultiTexCoord2bOES", "GL_OES_byte_coordinates", glMultiTexCoord2bOES },
+    { "glMultiTexCoord2bvOES", "GL_OES_byte_coordinates", glMultiTexCoord2bvOES },
+    { "glMultiTexCoord2d", "GL_VERSION_1_3", glMultiTexCoord2d },
+    { "glMultiTexCoord2dARB", "GL_ARB_multitexture", glMultiTexCoord2dARB },
+    { "glMultiTexCoord2dSGIS", "GL_SGIS_multitexture", glMultiTexCoord2dSGIS },
+    { "glMultiTexCoord2dv", "GL_VERSION_1_3", glMultiTexCoord2dv },
+    { "glMultiTexCoord2dvARB", "GL_ARB_multitexture", glMultiTexCoord2dvARB },
+    { "glMultiTexCoord2dvSGIS", "GL_SGIS_multitexture", glMultiTexCoord2dvSGIS },
+    { "glMultiTexCoord2f", "GL_VERSION_1_3", glMultiTexCoord2f },
+    { "glMultiTexCoord2fARB", "GL_ARB_multitexture", glMultiTexCoord2fARB },
+    { "glMultiTexCoord2fSGIS", "GL_SGIS_multitexture", glMultiTexCoord2fSGIS },
+    { "glMultiTexCoord2fv", "GL_VERSION_1_3", glMultiTexCoord2fv },
+    { "glMultiTexCoord2fvARB", "GL_ARB_multitexture", glMultiTexCoord2fvARB },
+    { "glMultiTexCoord2fvSGIS", "GL_SGIS_multitexture", glMultiTexCoord2fvSGIS },
+    { "glMultiTexCoord2hNV", "GL_NV_half_float", glMultiTexCoord2hNV },
+    { "glMultiTexCoord2hvNV", "GL_NV_half_float", glMultiTexCoord2hvNV },
+    { "glMultiTexCoord2i", "GL_VERSION_1_3", glMultiTexCoord2i },
+    { "glMultiTexCoord2iARB", "GL_ARB_multitexture", glMultiTexCoord2iARB },
+    { "glMultiTexCoord2iSGIS", "GL_SGIS_multitexture", glMultiTexCoord2iSGIS },
+    { "glMultiTexCoord2iv", "GL_VERSION_1_3", glMultiTexCoord2iv },
+    { "glMultiTexCoord2ivARB", "GL_ARB_multitexture", glMultiTexCoord2ivARB },
+    { "glMultiTexCoord2ivSGIS", "GL_SGIS_multitexture", glMultiTexCoord2ivSGIS },
+    { "glMultiTexCoord2s", "GL_VERSION_1_3", glMultiTexCoord2s },
+    { "glMultiTexCoord2sARB", "GL_ARB_multitexture", glMultiTexCoord2sARB },
+    { "glMultiTexCoord2sSGIS", "GL_SGIS_multitexture", glMultiTexCoord2sSGIS },
+    { "glMultiTexCoord2sv", "GL_VERSION_1_3", glMultiTexCoord2sv },
+    { "glMultiTexCoord2svARB", "GL_ARB_multitexture", glMultiTexCoord2svARB },
+    { "glMultiTexCoord2svSGIS", "GL_SGIS_multitexture", glMultiTexCoord2svSGIS },
+    { "glMultiTexCoord2xOES", "GL_OES_fixed_point", glMultiTexCoord2xOES },
+    { "glMultiTexCoord2xvOES", "GL_OES_fixed_point", glMultiTexCoord2xvOES },
+    { "glMultiTexCoord3bOES", "GL_OES_byte_coordinates", glMultiTexCoord3bOES },
+    { "glMultiTexCoord3bvOES", "GL_OES_byte_coordinates", glMultiTexCoord3bvOES },
+    { "glMultiTexCoord3d", "GL_VERSION_1_3", glMultiTexCoord3d },
+    { "glMultiTexCoord3dARB", "GL_ARB_multitexture", glMultiTexCoord3dARB },
+    { "glMultiTexCoord3dSGIS", "GL_SGIS_multitexture", glMultiTexCoord3dSGIS },
+    { "glMultiTexCoord3dv", "GL_VERSION_1_3", glMultiTexCoord3dv },
+    { "glMultiTexCoord3dvARB", "GL_ARB_multitexture", glMultiTexCoord3dvARB },
+    { "glMultiTexCoord3dvSGIS", "GL_SGIS_multitexture", glMultiTexCoord3dvSGIS },
+    { "glMultiTexCoord3f", "GL_VERSION_1_3", glMultiTexCoord3f },
+    { "glMultiTexCoord3fARB", "GL_ARB_multitexture", glMultiTexCoord3fARB },
+    { "glMultiTexCoord3fSGIS", "GL_SGIS_multitexture", glMultiTexCoord3fSGIS },
+    { "glMultiTexCoord3fv", "GL_VERSION_1_3", glMultiTexCoord3fv },
+    { "glMultiTexCoord3fvARB", "GL_ARB_multitexture", glMultiTexCoord3fvARB },
+    { "glMultiTexCoord3fvSGIS", "GL_SGIS_multitexture", glMultiTexCoord3fvSGIS },
+    { "glMultiTexCoord3hNV", "GL_NV_half_float", glMultiTexCoord3hNV },
+    { "glMultiTexCoord3hvNV", "GL_NV_half_float", glMultiTexCoord3hvNV },
+    { "glMultiTexCoord3i", "GL_VERSION_1_3", glMultiTexCoord3i },
+    { "glMultiTexCoord3iARB", "GL_ARB_multitexture", glMultiTexCoord3iARB },
+    { "glMultiTexCoord3iSGIS", "GL_SGIS_multitexture", glMultiTexCoord3iSGIS },
+    { "glMultiTexCoord3iv", "GL_VERSION_1_3", glMultiTexCoord3iv },
+    { "glMultiTexCoord3ivARB", "GL_ARB_multitexture", glMultiTexCoord3ivARB },
+    { "glMultiTexCoord3ivSGIS", "GL_SGIS_multitexture", glMultiTexCoord3ivSGIS },
+    { "glMultiTexCoord3s", "GL_VERSION_1_3", glMultiTexCoord3s },
+    { "glMultiTexCoord3sARB", "GL_ARB_multitexture", glMultiTexCoord3sARB },
+    { "glMultiTexCoord3sSGIS", "GL_SGIS_multitexture", glMultiTexCoord3sSGIS },
+    { "glMultiTexCoord3sv", "GL_VERSION_1_3", glMultiTexCoord3sv },
+    { "glMultiTexCoord3svARB", "GL_ARB_multitexture", glMultiTexCoord3svARB },
+    { "glMultiTexCoord3svSGIS", "GL_SGIS_multitexture", glMultiTexCoord3svSGIS },
+    { "glMultiTexCoord3xOES", "GL_OES_fixed_point", glMultiTexCoord3xOES },
+    { "glMultiTexCoord3xvOES", "GL_OES_fixed_point", glMultiTexCoord3xvOES },
+    { "glMultiTexCoord4bOES", "GL_OES_byte_coordinates", glMultiTexCoord4bOES },
+    { "glMultiTexCoord4bvOES", "GL_OES_byte_coordinates", glMultiTexCoord4bvOES },
+    { "glMultiTexCoord4d", "GL_VERSION_1_3", glMultiTexCoord4d },
+    { "glMultiTexCoord4dARB", "GL_ARB_multitexture", glMultiTexCoord4dARB },
+    { "glMultiTexCoord4dSGIS", "GL_SGIS_multitexture", glMultiTexCoord4dSGIS },
+    { "glMultiTexCoord4dv", "GL_VERSION_1_3", glMultiTexCoord4dv },
+    { "glMultiTexCoord4dvARB", "GL_ARB_multitexture", glMultiTexCoord4dvARB },
+    { "glMultiTexCoord4dvSGIS", "GL_SGIS_multitexture", glMultiTexCoord4dvSGIS },
+    { "glMultiTexCoord4f", "GL_VERSION_1_3", glMultiTexCoord4f },
+    { "glMultiTexCoord4fARB", "GL_ARB_multitexture", glMultiTexCoord4fARB },
+    { "glMultiTexCoord4fSGIS", "GL_SGIS_multitexture", glMultiTexCoord4fSGIS },
+    { "glMultiTexCoord4fv", "GL_VERSION_1_3", glMultiTexCoord4fv },
+    { "glMultiTexCoord4fvARB", "GL_ARB_multitexture", glMultiTexCoord4fvARB },
+    { "glMultiTexCoord4fvSGIS", "GL_SGIS_multitexture", glMultiTexCoord4fvSGIS },
+    { "glMultiTexCoord4hNV", "GL_NV_half_float", glMultiTexCoord4hNV },
+    { "glMultiTexCoord4hvNV", "GL_NV_half_float", glMultiTexCoord4hvNV },
+    { "glMultiTexCoord4i", "GL_VERSION_1_3", glMultiTexCoord4i },
+    { "glMultiTexCoord4iARB", "GL_ARB_multitexture", glMultiTexCoord4iARB },
+    { "glMultiTexCoord4iSGIS", "GL_SGIS_multitexture", glMultiTexCoord4iSGIS },
+    { "glMultiTexCoord4iv", "GL_VERSION_1_3", glMultiTexCoord4iv },
+    { "glMultiTexCoord4ivARB", "GL_ARB_multitexture", glMultiTexCoord4ivARB },
+    { "glMultiTexCoord4ivSGIS", "GL_SGIS_multitexture", glMultiTexCoord4ivSGIS },
+    { "glMultiTexCoord4s", "GL_VERSION_1_3", glMultiTexCoord4s },
+    { "glMultiTexCoord4sARB", "GL_ARB_multitexture", glMultiTexCoord4sARB },
+    { "glMultiTexCoord4sSGIS", "GL_SGIS_multitexture", glMultiTexCoord4sSGIS },
+    { "glMultiTexCoord4sv", "GL_VERSION_1_3", glMultiTexCoord4sv },
+    { "glMultiTexCoord4svARB", "GL_ARB_multitexture", glMultiTexCoord4svARB },
+    { "glMultiTexCoord4svSGIS", "GL_SGIS_multitexture", glMultiTexCoord4svSGIS },
+    { "glMultiTexCoord4xOES", "GL_OES_fixed_point", glMultiTexCoord4xOES },
+    { "glMultiTexCoord4xvOES", "GL_OES_fixed_point", glMultiTexCoord4xvOES },
+    { "glMultiTexCoordP1ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP1ui },
+    { "glMultiTexCoordP1uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP1uiv },
+    { "glMultiTexCoordP2ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP2ui },
+    { "glMultiTexCoordP2uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP2uiv },
+    { "glMultiTexCoordP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP3ui },
+    { "glMultiTexCoordP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP3uiv },
+    { "glMultiTexCoordP4ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP4ui },
+    { "glMultiTexCoordP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glMultiTexCoordP4uiv },
+    { "glMultiTexCoordPointerEXT", "GL_EXT_direct_state_access", glMultiTexCoordPointerEXT },
+    { "glMultiTexCoordPointerSGIS", "GL_SGIS_multitexture", glMultiTexCoordPointerSGIS },
+    { "glMultiTexEnvfEXT", "GL_EXT_direct_state_access", glMultiTexEnvfEXT },
+    { "glMultiTexEnvfvEXT", "GL_EXT_direct_state_access", glMultiTexEnvfvEXT },
+    { "glMultiTexEnviEXT", "GL_EXT_direct_state_access", glMultiTexEnviEXT },
+    { "glMultiTexEnvivEXT", "GL_EXT_direct_state_access", glMultiTexEnvivEXT },
+    { "glMultiTexGendEXT", "GL_EXT_direct_state_access", glMultiTexGendEXT },
+    { "glMultiTexGendvEXT", "GL_EXT_direct_state_access", glMultiTexGendvEXT },
+    { "glMultiTexGenfEXT", "GL_EXT_direct_state_access", glMultiTexGenfEXT },
+    { "glMultiTexGenfvEXT", "GL_EXT_direct_state_access", glMultiTexGenfvEXT },
+    { "glMultiTexGeniEXT", "GL_EXT_direct_state_access", glMultiTexGeniEXT },
+    { "glMultiTexGenivEXT", "GL_EXT_direct_state_access", glMultiTexGenivEXT },
+    { "glMultiTexImage1DEXT", "GL_EXT_direct_state_access", glMultiTexImage1DEXT },
+    { "glMultiTexImage2DEXT", "GL_EXT_direct_state_access", glMultiTexImage2DEXT },
+    { "glMultiTexImage3DEXT", "GL_EXT_direct_state_access", glMultiTexImage3DEXT },
+    { "glMultiTexParameterIivEXT", "GL_EXT_direct_state_access", glMultiTexParameterIivEXT },
+    { "glMultiTexParameterIuivEXT", "GL_EXT_direct_state_access", glMultiTexParameterIuivEXT },
+    { "glMultiTexParameterfEXT", "GL_EXT_direct_state_access", glMultiTexParameterfEXT },
+    { "glMultiTexParameterfvEXT", "GL_EXT_direct_state_access", glMultiTexParameterfvEXT },
+    { "glMultiTexParameteriEXT", "GL_EXT_direct_state_access", glMultiTexParameteriEXT },
+    { "glMultiTexParameterivEXT", "GL_EXT_direct_state_access", glMultiTexParameterivEXT },
+    { "glMultiTexRenderbufferEXT", "GL_EXT_direct_state_access", glMultiTexRenderbufferEXT },
+    { "glMultiTexSubImage1DEXT", "GL_EXT_direct_state_access", glMultiTexSubImage1DEXT },
+    { "glMultiTexSubImage2DEXT", "GL_EXT_direct_state_access", glMultiTexSubImage2DEXT },
+    { "glMultiTexSubImage3DEXT", "GL_EXT_direct_state_access", glMultiTexSubImage3DEXT },
+    { "glMulticastBarrierNV", "GL_NV_gpu_multicast", glMulticastBarrierNV },
+    { "glMulticastBlitFramebufferNV", "GL_NV_gpu_multicast", glMulticastBlitFramebufferNV },
+    { "glMulticastBufferSubDataNV", "GL_NV_gpu_multicast", glMulticastBufferSubDataNV },
+    { "glMulticastCopyBufferSubDataNV", "GL_NV_gpu_multicast", glMulticastCopyBufferSubDataNV },
+    { "glMulticastCopyImageSubDataNV", "GL_NV_gpu_multicast", glMulticastCopyImageSubDataNV },
+    { "glMulticastFramebufferSampleLocationsfvNV", "GL_NV_gpu_multicast", glMulticastFramebufferSampleLocationsfvNV },
+    { "glMulticastGetQueryObjecti64vNV", "GL_NV_gpu_multicast", glMulticastGetQueryObjecti64vNV },
+    { "glMulticastGetQueryObjectivNV", "GL_NV_gpu_multicast", glMulticastGetQueryObjectivNV },
+    { "glMulticastGetQueryObjectui64vNV", "GL_NV_gpu_multicast", glMulticastGetQueryObjectui64vNV },
+    { "glMulticastGetQueryObjectuivNV", "GL_NV_gpu_multicast", glMulticastGetQueryObjectuivNV },
+    { "glMulticastScissorArrayvNVX", "GL_NVX_gpu_multicast2", glMulticastScissorArrayvNVX },
+    { "glMulticastViewportArrayvNVX", "GL_NVX_gpu_multicast2", glMulticastViewportArrayvNVX },
+    { "glMulticastViewportPositionWScaleNVX", "GL_NVX_gpu_multicast2", glMulticastViewportPositionWScaleNVX },
+    { "glMulticastWaitSyncNV", "GL_NV_gpu_multicast", glMulticastWaitSyncNV },
+    { "glNamedBufferAttachMemoryNV", "GL_NV_memory_attachment", glNamedBufferAttachMemoryNV },
+    { "glNamedBufferData", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedBufferData },
+    { "glNamedBufferDataEXT", "GL_EXT_direct_state_access", glNamedBufferDataEXT },
+    { "glNamedBufferPageCommitmentARB", "GL_ARB_sparse_buffer", glNamedBufferPageCommitmentARB },
+    { "glNamedBufferPageCommitmentEXT", "GL_ARB_sparse_buffer", glNamedBufferPageCommitmentEXT },
+    { "glNamedBufferStorage", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedBufferStorage },
+    { "glNamedBufferStorageEXT", "GL_EXT_direct_state_access", glNamedBufferStorageEXT },
+    { "glNamedBufferStorageExternalEXT", "GL_EXT_external_buffer", glNamedBufferStorageExternalEXT },
+    { "glNamedBufferStorageMemEXT", "GL_EXT_memory_object", glNamedBufferStorageMemEXT },
+    { "glNamedBufferSubData", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedBufferSubData },
+    { "glNamedBufferSubDataEXT", "GL_EXT_direct_state_access", glNamedBufferSubDataEXT },
+    { "glNamedCopyBufferSubDataEXT", "GL_EXT_direct_state_access", glNamedCopyBufferSubDataEXT },
+    { "glNamedFramebufferDrawBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferDrawBuffer },
+    { "glNamedFramebufferDrawBuffers", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferDrawBuffers },
+    { "glNamedFramebufferParameteri", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferParameteri },
+    { "glNamedFramebufferParameteriEXT", "GL_EXT_direct_state_access", glNamedFramebufferParameteriEXT },
+    { "glNamedFramebufferReadBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferReadBuffer },
+    { "glNamedFramebufferRenderbuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferRenderbuffer },
+    { "glNamedFramebufferRenderbufferEXT", "GL_EXT_direct_state_access", glNamedFramebufferRenderbufferEXT },
+    { "glNamedFramebufferSampleLocationsfvARB", "GL_ARB_sample_locations", glNamedFramebufferSampleLocationsfvARB },
+    { "glNamedFramebufferSampleLocationsfvNV", "GL_NV_sample_locations", glNamedFramebufferSampleLocationsfvNV },
+    { "glNamedFramebufferSamplePositionsfvAMD", "GL_AMD_framebuffer_sample_positions", glNamedFramebufferSamplePositionsfvAMD },
+    { "glNamedFramebufferTexture", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferTexture },
+    { "glNamedFramebufferTexture1DEXT", "GL_EXT_direct_state_access", glNamedFramebufferTexture1DEXT },
+    { "glNamedFramebufferTexture2DEXT", "GL_EXT_direct_state_access", glNamedFramebufferTexture2DEXT },
+    { "glNamedFramebufferTexture3DEXT", "GL_EXT_direct_state_access", glNamedFramebufferTexture3DEXT },
+    { "glNamedFramebufferTextureEXT", "GL_EXT_direct_state_access", glNamedFramebufferTextureEXT },
+    { "glNamedFramebufferTextureFaceEXT", "GL_EXT_direct_state_access", glNamedFramebufferTextureFaceEXT },
+    { "glNamedFramebufferTextureLayer", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedFramebufferTextureLayer },
+    { "glNamedFramebufferTextureLayerEXT", "GL_EXT_direct_state_access", glNamedFramebufferTextureLayerEXT },
+    { "glNamedProgramLocalParameter4dEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameter4dEXT },
+    { "glNamedProgramLocalParameter4dvEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameter4dvEXT },
+    { "glNamedProgramLocalParameter4fEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameter4fEXT },
+    { "glNamedProgramLocalParameter4fvEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameter4fvEXT },
+    { "glNamedProgramLocalParameterI4iEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameterI4iEXT },
+    { "glNamedProgramLocalParameterI4ivEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameterI4ivEXT },
+    { "glNamedProgramLocalParameterI4uiEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameterI4uiEXT },
+    { "glNamedProgramLocalParameterI4uivEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameterI4uivEXT },
+    { "glNamedProgramLocalParameters4fvEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParameters4fvEXT },
+    { "glNamedProgramLocalParametersI4ivEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParametersI4ivEXT },
+    { "glNamedProgramLocalParametersI4uivEXT", "GL_EXT_direct_state_access", glNamedProgramLocalParametersI4uivEXT },
+    { "glNamedProgramStringEXT", "GL_EXT_direct_state_access", glNamedProgramStringEXT },
+    { "glNamedRenderbufferStorage", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedRenderbufferStorage },
+    { "glNamedRenderbufferStorageEXT", "GL_EXT_direct_state_access", glNamedRenderbufferStorageEXT },
+    { "glNamedRenderbufferStorageMultisample", "GL_ARB_direct_state_access GL_VERSION_4_5", glNamedRenderbufferStorageMultisample },
+    { "glNamedRenderbufferStorageMultisampleAdvancedAMD", "GL_AMD_framebuffer_multisample_advanced", glNamedRenderbufferStorageMultisampleAdvancedAMD },
+    { "glNamedRenderbufferStorageMultisampleCoverageEXT", "GL_EXT_direct_state_access", glNamedRenderbufferStorageMultisampleCoverageEXT },
+    { "glNamedRenderbufferStorageMultisampleEXT", "GL_EXT_direct_state_access", glNamedRenderbufferStorageMultisampleEXT },
+    { "glNamedStringARB", "GL_ARB_shading_language_include", glNamedStringARB },
+    { "glNewBufferRegion", "GL_KTX_buffer_region", glNewBufferRegion },
+    { "glNewObjectBufferATI", "GL_ATI_vertex_array_object", glNewObjectBufferATI },
+    { "glNormal3fVertex3fSUN", "GL_SUN_vertex", glNormal3fVertex3fSUN },
+    { "glNormal3fVertex3fvSUN", "GL_SUN_vertex", glNormal3fVertex3fvSUN },
+    { "glNormal3hNV", "GL_NV_half_float", glNormal3hNV },
+    { "glNormal3hvNV", "GL_NV_half_float", glNormal3hvNV },
+    { "glNormal3xOES", "GL_OES_fixed_point", glNormal3xOES },
+    { "glNormal3xvOES", "GL_OES_fixed_point", glNormal3xvOES },
+    { "glNormalFormatNV", "GL_NV_vertex_buffer_unified_memory", glNormalFormatNV },
+    { "glNormalP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glNormalP3ui },
+    { "glNormalP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glNormalP3uiv },
+    { "glNormalPointerEXT", "GL_EXT_vertex_array", glNormalPointerEXT },
+    { "glNormalPointerListIBM", "GL_IBM_vertex_array_lists", glNormalPointerListIBM },
+    { "glNormalPointervINTEL", "GL_INTEL_parallel_arrays", glNormalPointervINTEL },
+    { "glNormalStream3bATI", "GL_ATI_vertex_streams", glNormalStream3bATI },
+    { "glNormalStream3bvATI", "GL_ATI_vertex_streams", glNormalStream3bvATI },
+    { "glNormalStream3dATI", "GL_ATI_vertex_streams", glNormalStream3dATI },
+    { "glNormalStream3dvATI", "GL_ATI_vertex_streams", glNormalStream3dvATI },
+    { "glNormalStream3fATI", "GL_ATI_vertex_streams", glNormalStream3fATI },
+    { "glNormalStream3fvATI", "GL_ATI_vertex_streams", glNormalStream3fvATI },
+    { "glNormalStream3iATI", "GL_ATI_vertex_streams", glNormalStream3iATI },
+    { "glNormalStream3ivATI", "GL_ATI_vertex_streams", glNormalStream3ivATI },
+    { "glNormalStream3sATI", "GL_ATI_vertex_streams", glNormalStream3sATI },
+    { "glNormalStream3svATI", "GL_ATI_vertex_streams", glNormalStream3svATI },
+    { "glObjectLabel", "GL_KHR_debug GL_VERSION_4_3", glObjectLabel },
+    { "glObjectPtrLabel", "GL_KHR_debug GL_VERSION_4_3", glObjectPtrLabel },
+    { "glObjectPurgeableAPPLE", "GL_APPLE_object_purgeable", glObjectPurgeableAPPLE },
+    { "glObjectUnpurgeableAPPLE", "GL_APPLE_object_purgeable", glObjectUnpurgeableAPPLE },
+    { "glOrthofOES", "GL_OES_single_precision", glOrthofOES },
+    { "glOrthoxOES", "GL_OES_fixed_point", glOrthoxOES },
+    { "glPNTrianglesfATI", "GL_ATI_pn_triangles", glPNTrianglesfATI },
+    { "glPNTrianglesiATI", "GL_ATI_pn_triangles", glPNTrianglesiATI },
+    { "glPassTexCoordATI", "GL_ATI_fragment_shader", glPassTexCoordATI },
+    { "glPassThroughxOES", "GL_OES_fixed_point", glPassThroughxOES },
+    { "glPatchParameterfv", "GL_ARB_tessellation_shader GL_VERSION_4_0", glPatchParameterfv },
+    { "glPatchParameteri", "GL_ARB_tessellation_shader GL_VERSION_4_0", glPatchParameteri },
+    { "glPathColorGenNV", "GL_NV_path_rendering", glPathColorGenNV },
+    { "glPathCommandsNV", "GL_NV_path_rendering", glPathCommandsNV },
+    { "glPathCoordsNV", "GL_NV_path_rendering", glPathCoordsNV },
+    { "glPathCoverDepthFuncNV", "GL_NV_path_rendering", glPathCoverDepthFuncNV },
+    { "glPathDashArrayNV", "GL_NV_path_rendering", glPathDashArrayNV },
+    { "glPathFogGenNV", "GL_NV_path_rendering", glPathFogGenNV },
+    { "glPathGlyphIndexArrayNV", "GL_NV_path_rendering", glPathGlyphIndexArrayNV },
+    { "glPathGlyphIndexRangeNV", "GL_NV_path_rendering", glPathGlyphIndexRangeNV },
+    { "glPathGlyphRangeNV", "GL_NV_path_rendering", glPathGlyphRangeNV },
+    { "glPathGlyphsNV", "GL_NV_path_rendering", glPathGlyphsNV },
+    { "glPathMemoryGlyphIndexArrayNV", "GL_NV_path_rendering", glPathMemoryGlyphIndexArrayNV },
+    { "glPathParameterfNV", "GL_NV_path_rendering", glPathParameterfNV },
+    { "glPathParameterfvNV", "GL_NV_path_rendering", glPathParameterfvNV },
+    { "glPathParameteriNV", "GL_NV_path_rendering", glPathParameteriNV },
+    { "glPathParameterivNV", "GL_NV_path_rendering", glPathParameterivNV },
+    { "glPathStencilDepthOffsetNV", "GL_NV_path_rendering", glPathStencilDepthOffsetNV },
+    { "glPathStencilFuncNV", "GL_NV_path_rendering", glPathStencilFuncNV },
+    { "glPathStringNV", "GL_NV_path_rendering", glPathStringNV },
+    { "glPathSubCommandsNV", "GL_NV_path_rendering", glPathSubCommandsNV },
+    { "glPathSubCoordsNV", "GL_NV_path_rendering", glPathSubCoordsNV },
+    { "glPathTexGenNV", "GL_NV_path_rendering", glPathTexGenNV },
+    { "glPauseTransformFeedback", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glPauseTransformFeedback },
+    { "glPauseTransformFeedbackNV", "GL_NV_transform_feedback2", glPauseTransformFeedbackNV },
+    { "glPixelDataRangeNV", "GL_NV_pixel_data_range", glPixelDataRangeNV },
+    { "glPixelMapx", "GL_OES_fixed_point", glPixelMapx },
+    { "glPixelStorex", "GL_OES_fixed_point", glPixelStorex },
+    { "glPixelTexGenParameterfSGIS", "GL_SGIS_pixel_texture", glPixelTexGenParameterfSGIS },
+    { "glPixelTexGenParameterfvSGIS", "GL_SGIS_pixel_texture", glPixelTexGenParameterfvSGIS },
+    { "glPixelTexGenParameteriSGIS", "GL_SGIS_pixel_texture", glPixelTexGenParameteriSGIS },
+    { "glPixelTexGenParameterivSGIS", "GL_SGIS_pixel_texture", glPixelTexGenParameterivSGIS },
+    { "glPixelTexGenSGIX", "GL_SGIX_pixel_texture", glPixelTexGenSGIX },
+    { "glPixelTransferxOES", "GL_OES_fixed_point", glPixelTransferxOES },
+    { "glPixelTransformParameterfEXT", "GL_EXT_pixel_transform", glPixelTransformParameterfEXT },
+    { "glPixelTransformParameterfvEXT", "GL_EXT_pixel_transform", glPixelTransformParameterfvEXT },
+    { "glPixelTransformParameteriEXT", "GL_EXT_pixel_transform", glPixelTransformParameteriEXT },
+    { "glPixelTransformParameterivEXT", "GL_EXT_pixel_transform", glPixelTransformParameterivEXT },
+    { "glPixelZoomxOES", "GL_OES_fixed_point", glPixelZoomxOES },
+    { "glPointAlongPathNV", "GL_NV_path_rendering", glPointAlongPathNV },
+    { "glPointParameterf", "GL_VERSION_1_4", glPointParameterf },
+    { "glPointParameterfARB", "GL_ARB_point_parameters", glPointParameterfARB },
+    { "glPointParameterfEXT", "GL_EXT_point_parameters", glPointParameterfEXT },
+    { "glPointParameterfSGIS", "GL_SGIS_point_parameters", glPointParameterfSGIS },
+    { "glPointParameterfv", "GL_VERSION_1_4", glPointParameterfv },
+    { "glPointParameterfvARB", "GL_ARB_point_parameters", glPointParameterfvARB },
+    { "glPointParameterfvEXT", "GL_EXT_point_parameters", glPointParameterfvEXT },
+    { "glPointParameterfvSGIS", "GL_SGIS_point_parameters", glPointParameterfvSGIS },
+    { "glPointParameteri", "GL_VERSION_1_4", glPointParameteri },
+    { "glPointParameteriNV", "GL_NV_point_sprite", glPointParameteriNV },
+    { "glPointParameteriv", "GL_VERSION_1_4", glPointParameteriv },
+    { "glPointParameterivNV", "GL_NV_point_sprite", glPointParameterivNV },
+    { "glPointParameterxvOES", "GL_OES_fixed_point", glPointParameterxvOES },
+    { "glPointSizexOES", "GL_OES_fixed_point", glPointSizexOES },
+    { "glPollAsyncSGIX", "GL_SGIX_async", glPollAsyncSGIX },
+    { "glPollInstrumentsSGIX", "GL_SGIX_instruments", glPollInstrumentsSGIX },
+    { "glPolygonOffsetClamp", "GL_ARB_polygon_offset_clamp GL_VERSION_4_6", glPolygonOffsetClamp },
+    { "glPolygonOffsetClampEXT", "GL_EXT_polygon_offset_clamp", glPolygonOffsetClampEXT },
+    { "glPolygonOffsetEXT", "GL_EXT_polygon_offset", glPolygonOffsetEXT },
+    { "glPolygonOffsetxOES", "GL_OES_fixed_point", glPolygonOffsetxOES },
+    { "glPopDebugGroup", "GL_KHR_debug GL_VERSION_4_3", glPopDebugGroup },
+    { "glPopGroupMarkerEXT", "GL_EXT_debug_marker", glPopGroupMarkerEXT },
+    { "glPresentFrameDualFillNV", "GL_NV_present_video", glPresentFrameDualFillNV },
+    { "glPresentFrameKeyedNV", "GL_NV_present_video", glPresentFrameKeyedNV },
+    { "glPrimitiveBoundingBoxARB", "GL_ARB_ES3_2_compatibility", glPrimitiveBoundingBoxARB },
+    { "glPrimitiveRestartIndex", "GL_VERSION_3_1", glPrimitiveRestartIndex },
+    { "glPrimitiveRestartIndexNV", "GL_NV_primitive_restart", glPrimitiveRestartIndexNV },
+    { "glPrimitiveRestartNV", "GL_NV_primitive_restart", glPrimitiveRestartNV },
+    { "glPrioritizeTexturesEXT", "GL_EXT_texture_object", glPrioritizeTexturesEXT },
+    { "glPrioritizeTexturesxOES", "GL_OES_fixed_point", glPrioritizeTexturesxOES },
+    { "glProgramBinary", "GL_ARB_get_program_binary GL_VERSION_4_1", glProgramBinary },
+    { "glProgramBufferParametersIivNV", "GL_NV_parameter_buffer_object", glProgramBufferParametersIivNV },
+    { "glProgramBufferParametersIuivNV", "GL_NV_parameter_buffer_object", glProgramBufferParametersIuivNV },
+    { "glProgramBufferParametersfvNV", "GL_NV_parameter_buffer_object", glProgramBufferParametersfvNV },
+    { "glProgramEnvParameter4dARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramEnvParameter4dARB },
+    { "glProgramEnvParameter4dvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramEnvParameter4dvARB },
+    { "glProgramEnvParameter4fARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramEnvParameter4fARB },
+    { "glProgramEnvParameter4fvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramEnvParameter4fvARB },
+    { "glProgramEnvParameterI4iNV", "GL_NV_gpu_program4", glProgramEnvParameterI4iNV },
+    { "glProgramEnvParameterI4ivNV", "GL_NV_gpu_program4", glProgramEnvParameterI4ivNV },
+    { "glProgramEnvParameterI4uiNV", "GL_NV_gpu_program4", glProgramEnvParameterI4uiNV },
+    { "glProgramEnvParameterI4uivNV", "GL_NV_gpu_program4", glProgramEnvParameterI4uivNV },
+    { "glProgramEnvParameters4fvEXT", "GL_EXT_gpu_program_parameters", glProgramEnvParameters4fvEXT },
+    { "glProgramEnvParametersI4ivNV", "GL_NV_gpu_program4", glProgramEnvParametersI4ivNV },
+    { "glProgramEnvParametersI4uivNV", "GL_NV_gpu_program4", glProgramEnvParametersI4uivNV },
+    { "glProgramLocalParameter4dARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramLocalParameter4dARB },
+    { "glProgramLocalParameter4dvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramLocalParameter4dvARB },
+    { "glProgramLocalParameter4fARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramLocalParameter4fARB },
+    { "glProgramLocalParameter4fvARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramLocalParameter4fvARB },
+    { "glProgramLocalParameterI4iNV", "GL_NV_gpu_program4", glProgramLocalParameterI4iNV },
+    { "glProgramLocalParameterI4ivNV", "GL_NV_gpu_program4", glProgramLocalParameterI4ivNV },
+    { "glProgramLocalParameterI4uiNV", "GL_NV_gpu_program4", glProgramLocalParameterI4uiNV },
+    { "glProgramLocalParameterI4uivNV", "GL_NV_gpu_program4", glProgramLocalParameterI4uivNV },
+    { "glProgramLocalParameters4fvEXT", "GL_EXT_gpu_program_parameters", glProgramLocalParameters4fvEXT },
+    { "glProgramLocalParametersI4ivNV", "GL_NV_gpu_program4", glProgramLocalParametersI4ivNV },
+    { "glProgramLocalParametersI4uivNV", "GL_NV_gpu_program4", glProgramLocalParametersI4uivNV },
+    { "glProgramNamedParameter4dNV", "GL_NV_fragment_program", glProgramNamedParameter4dNV },
+    { "glProgramNamedParameter4dvNV", "GL_NV_fragment_program", glProgramNamedParameter4dvNV },
+    { "glProgramNamedParameter4fNV", "GL_NV_fragment_program", glProgramNamedParameter4fNV },
+    { "glProgramNamedParameter4fvNV", "GL_NV_fragment_program", glProgramNamedParameter4fvNV },
+    { "glProgramParameter4dNV", "GL_NV_vertex_program", glProgramParameter4dNV },
+    { "glProgramParameter4dvNV", "GL_NV_vertex_program", glProgramParameter4dvNV },
+    { "glProgramParameter4fNV", "GL_NV_vertex_program", glProgramParameter4fNV },
+    { "glProgramParameter4fvNV", "GL_NV_vertex_program", glProgramParameter4fvNV },
+    { "glProgramParameteri", "GL_ARB_get_program_binary GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramParameteri },
+    { "glProgramParameteriARB", "GL_ARB_geometry_shader4", glProgramParameteriARB },
+    { "glProgramParameteriEXT", "GL_EXT_geometry_shader4", glProgramParameteriEXT },
+    { "glProgramParameters4dvNV", "GL_NV_vertex_program", glProgramParameters4dvNV },
+    { "glProgramParameters4fvNV", "GL_NV_vertex_program", glProgramParameters4fvNV },
+    { "glProgramPathFragmentInputGenNV", "GL_NV_path_rendering", glProgramPathFragmentInputGenNV },
+    { "glProgramStringARB", "GL_ARB_fragment_program GL_ARB_vertex_program", glProgramStringARB },
+    { "glProgramSubroutineParametersuivNV", "GL_NV_gpu_program5", glProgramSubroutineParametersuivNV },
+    { "glProgramUniform1d", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1d },
+    { "glProgramUniform1dEXT", "GL_EXT_direct_state_access", glProgramUniform1dEXT },
+    { "glProgramUniform1dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1dv },
+    { "glProgramUniform1dvEXT", "GL_EXT_direct_state_access", glProgramUniform1dvEXT },
+    { "glProgramUniform1f", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1f },
+    { "glProgramUniform1fEXT", "GL_EXT_direct_state_access", glProgramUniform1fEXT },
+    { "glProgramUniform1fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1fv },
+    { "glProgramUniform1fvEXT", "GL_EXT_direct_state_access", glProgramUniform1fvEXT },
+    { "glProgramUniform1i", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1i },
+    { "glProgramUniform1i64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform1i64ARB },
+    { "glProgramUniform1i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform1i64NV },
+    { "glProgramUniform1i64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform1i64vARB },
+    { "glProgramUniform1i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform1i64vNV },
+    { "glProgramUniform1iEXT", "GL_EXT_direct_state_access", glProgramUniform1iEXT },
+    { "glProgramUniform1iv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1iv },
+    { "glProgramUniform1ivEXT", "GL_EXT_direct_state_access", glProgramUniform1ivEXT },
+    { "glProgramUniform1ui", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1ui },
+    { "glProgramUniform1ui64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform1ui64ARB },
+    { "glProgramUniform1ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform1ui64NV },
+    { "glProgramUniform1ui64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform1ui64vARB },
+    { "glProgramUniform1ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform1ui64vNV },
+    { "glProgramUniform1uiEXT", "GL_EXT_direct_state_access", glProgramUniform1uiEXT },
+    { "glProgramUniform1uiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform1uiv },
+    { "glProgramUniform1uivEXT", "GL_EXT_direct_state_access", glProgramUniform1uivEXT },
+    { "glProgramUniform2d", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2d },
+    { "glProgramUniform2dEXT", "GL_EXT_direct_state_access", glProgramUniform2dEXT },
+    { "glProgramUniform2dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2dv },
+    { "glProgramUniform2dvEXT", "GL_EXT_direct_state_access", glProgramUniform2dvEXT },
+    { "glProgramUniform2f", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2f },
+    { "glProgramUniform2fEXT", "GL_EXT_direct_state_access", glProgramUniform2fEXT },
+    { "glProgramUniform2fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2fv },
+    { "glProgramUniform2fvEXT", "GL_EXT_direct_state_access", glProgramUniform2fvEXT },
+    { "glProgramUniform2i", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2i },
+    { "glProgramUniform2i64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform2i64ARB },
+    { "glProgramUniform2i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform2i64NV },
+    { "glProgramUniform2i64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform2i64vARB },
+    { "glProgramUniform2i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform2i64vNV },
+    { "glProgramUniform2iEXT", "GL_EXT_direct_state_access", glProgramUniform2iEXT },
+    { "glProgramUniform2iv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2iv },
+    { "glProgramUniform2ivEXT", "GL_EXT_direct_state_access", glProgramUniform2ivEXT },
+    { "glProgramUniform2ui", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2ui },
+    { "glProgramUniform2ui64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform2ui64ARB },
+    { "glProgramUniform2ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform2ui64NV },
+    { "glProgramUniform2ui64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform2ui64vARB },
+    { "glProgramUniform2ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform2ui64vNV },
+    { "glProgramUniform2uiEXT", "GL_EXT_direct_state_access", glProgramUniform2uiEXT },
+    { "glProgramUniform2uiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform2uiv },
+    { "glProgramUniform2uivEXT", "GL_EXT_direct_state_access", glProgramUniform2uivEXT },
+    { "glProgramUniform3d", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3d },
+    { "glProgramUniform3dEXT", "GL_EXT_direct_state_access", glProgramUniform3dEXT },
+    { "glProgramUniform3dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3dv },
+    { "glProgramUniform3dvEXT", "GL_EXT_direct_state_access", glProgramUniform3dvEXT },
+    { "glProgramUniform3f", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3f },
+    { "glProgramUniform3fEXT", "GL_EXT_direct_state_access", glProgramUniform3fEXT },
+    { "glProgramUniform3fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3fv },
+    { "glProgramUniform3fvEXT", "GL_EXT_direct_state_access", glProgramUniform3fvEXT },
+    { "glProgramUniform3i", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3i },
+    { "glProgramUniform3i64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform3i64ARB },
+    { "glProgramUniform3i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform3i64NV },
+    { "glProgramUniform3i64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform3i64vARB },
+    { "glProgramUniform3i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform3i64vNV },
+    { "glProgramUniform3iEXT", "GL_EXT_direct_state_access", glProgramUniform3iEXT },
+    { "glProgramUniform3iv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3iv },
+    { "glProgramUniform3ivEXT", "GL_EXT_direct_state_access", glProgramUniform3ivEXT },
+    { "glProgramUniform3ui", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3ui },
+    { "glProgramUniform3ui64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform3ui64ARB },
+    { "glProgramUniform3ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform3ui64NV },
+    { "glProgramUniform3ui64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform3ui64vARB },
+    { "glProgramUniform3ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform3ui64vNV },
+    { "glProgramUniform3uiEXT", "GL_EXT_direct_state_access", glProgramUniform3uiEXT },
+    { "glProgramUniform3uiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform3uiv },
+    { "glProgramUniform3uivEXT", "GL_EXT_direct_state_access", glProgramUniform3uivEXT },
+    { "glProgramUniform4d", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4d },
+    { "glProgramUniform4dEXT", "GL_EXT_direct_state_access", glProgramUniform4dEXT },
+    { "glProgramUniform4dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4dv },
+    { "glProgramUniform4dvEXT", "GL_EXT_direct_state_access", glProgramUniform4dvEXT },
+    { "glProgramUniform4f", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4f },
+    { "glProgramUniform4fEXT", "GL_EXT_direct_state_access", glProgramUniform4fEXT },
+    { "glProgramUniform4fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4fv },
+    { "glProgramUniform4fvEXT", "GL_EXT_direct_state_access", glProgramUniform4fvEXT },
+    { "glProgramUniform4i", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4i },
+    { "glProgramUniform4i64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform4i64ARB },
+    { "glProgramUniform4i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform4i64NV },
+    { "glProgramUniform4i64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform4i64vARB },
+    { "glProgramUniform4i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform4i64vNV },
+    { "glProgramUniform4iEXT", "GL_EXT_direct_state_access", glProgramUniform4iEXT },
+    { "glProgramUniform4iv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4iv },
+    { "glProgramUniform4ivEXT", "GL_EXT_direct_state_access", glProgramUniform4ivEXT },
+    { "glProgramUniform4ui", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4ui },
+    { "glProgramUniform4ui64ARB", "GL_ARB_gpu_shader_int64", glProgramUniform4ui64ARB },
+    { "glProgramUniform4ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform4ui64NV },
+    { "glProgramUniform4ui64vARB", "GL_ARB_gpu_shader_int64", glProgramUniform4ui64vARB },
+    { "glProgramUniform4ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glProgramUniform4ui64vNV },
+    { "glProgramUniform4uiEXT", "GL_EXT_direct_state_access", glProgramUniform4uiEXT },
+    { "glProgramUniform4uiv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniform4uiv },
+    { "glProgramUniform4uivEXT", "GL_EXT_direct_state_access", glProgramUniform4uivEXT },
+    { "glProgramUniformHandleui64ARB", "GL_ARB_bindless_texture", glProgramUniformHandleui64ARB },
+    { "glProgramUniformHandleui64NV", "GL_NV_bindless_texture", glProgramUniformHandleui64NV },
+    { "glProgramUniformHandleui64vARB", "GL_ARB_bindless_texture", glProgramUniformHandleui64vARB },
+    { "glProgramUniformHandleui64vNV", "GL_NV_bindless_texture", glProgramUniformHandleui64vNV },
+    { "glProgramUniformMatrix2dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix2dv },
+    { "glProgramUniformMatrix2dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix2dvEXT },
+    { "glProgramUniformMatrix2fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix2fv },
+    { "glProgramUniformMatrix2fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix2fvEXT },
+    { "glProgramUniformMatrix2x3dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix2x3dv },
+    { "glProgramUniformMatrix2x3dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix2x3dvEXT },
+    { "glProgramUniformMatrix2x3fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix2x3fv },
+    { "glProgramUniformMatrix2x3fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix2x3fvEXT },
+    { "glProgramUniformMatrix2x4dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix2x4dv },
+    { "glProgramUniformMatrix2x4dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix2x4dvEXT },
+    { "glProgramUniformMatrix2x4fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix2x4fv },
+    { "glProgramUniformMatrix2x4fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix2x4fvEXT },
+    { "glProgramUniformMatrix3dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix3dv },
+    { "glProgramUniformMatrix3dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix3dvEXT },
+    { "glProgramUniformMatrix3fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix3fv },
+    { "glProgramUniformMatrix3fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix3fvEXT },
+    { "glProgramUniformMatrix3x2dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix3x2dv },
+    { "glProgramUniformMatrix3x2dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix3x2dvEXT },
+    { "glProgramUniformMatrix3x2fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix3x2fv },
+    { "glProgramUniformMatrix3x2fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix3x2fvEXT },
+    { "glProgramUniformMatrix3x4dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix3x4dv },
+    { "glProgramUniformMatrix3x4dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix3x4dvEXT },
+    { "glProgramUniformMatrix3x4fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix3x4fv },
+    { "glProgramUniformMatrix3x4fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix3x4fvEXT },
+    { "glProgramUniformMatrix4dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix4dv },
+    { "glProgramUniformMatrix4dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix4dvEXT },
+    { "glProgramUniformMatrix4fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix4fv },
+    { "glProgramUniformMatrix4fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix4fvEXT },
+    { "glProgramUniformMatrix4x2dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix4x2dv },
+    { "glProgramUniformMatrix4x2dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix4x2dvEXT },
+    { "glProgramUniformMatrix4x2fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix4x2fv },
+    { "glProgramUniformMatrix4x2fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix4x2fvEXT },
+    { "glProgramUniformMatrix4x3dv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix4x3dv },
+    { "glProgramUniformMatrix4x3dvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix4x3dvEXT },
+    { "glProgramUniformMatrix4x3fv", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glProgramUniformMatrix4x3fv },
+    { "glProgramUniformMatrix4x3fvEXT", "GL_EXT_direct_state_access", glProgramUniformMatrix4x3fvEXT },
+    { "glProgramUniformui64NV", "GL_NV_shader_buffer_load", glProgramUniformui64NV },
+    { "glProgramUniformui64vNV", "GL_NV_shader_buffer_load", glProgramUniformui64vNV },
+    { "glProgramVertexLimitNV", "GL_NV_geometry_program4", glProgramVertexLimitNV },
+    { "glProvokingVertex", "GL_ARB_provoking_vertex GL_VERSION_3_2", glProvokingVertex },
+    { "glProvokingVertexEXT", "GL_EXT_provoking_vertex", glProvokingVertexEXT },
+    { "glPushClientAttribDefaultEXT", "GL_EXT_direct_state_access", glPushClientAttribDefaultEXT },
+    { "glPushDebugGroup", "GL_KHR_debug GL_VERSION_4_3", glPushDebugGroup },
+    { "glPushGroupMarkerEXT", "GL_EXT_debug_marker", glPushGroupMarkerEXT },
+    { "glQueryCounter", "GL_ARB_timer_query GL_VERSION_3_3", glQueryCounter },
+    { "glQueryMatrixxOES", "GL_OES_query_matrix", glQueryMatrixxOES },
+    { "glQueryObjectParameteruiAMD", "GL_AMD_occlusion_query_event", glQueryObjectParameteruiAMD },
+    { "glQueryResourceNV", "GL_NV_query_resource", glQueryResourceNV },
+    { "glQueryResourceTagNV", "GL_NV_query_resource_tag", glQueryResourceTagNV },
+    { "glRasterPos2xOES", "GL_OES_fixed_point", glRasterPos2xOES },
+    { "glRasterPos2xvOES", "GL_OES_fixed_point", glRasterPos2xvOES },
+    { "glRasterPos3xOES", "GL_OES_fixed_point", glRasterPos3xOES },
+    { "glRasterPos3xvOES", "GL_OES_fixed_point", glRasterPos3xvOES },
+    { "glRasterPos4xOES", "GL_OES_fixed_point", glRasterPos4xOES },
+    { "glRasterPos4xvOES", "GL_OES_fixed_point", glRasterPos4xvOES },
+    { "glRasterSamplesEXT", "GL_EXT_raster_multisample GL_NV_framebuffer_mixed_samples", glRasterSamplesEXT },
+    { "glReadBufferRegion", "GL_KTX_buffer_region", glReadBufferRegion },
+    { "glReadInstrumentsSGIX", "GL_SGIX_instruments", glReadInstrumentsSGIX },
+    { "glReadnPixels", "GL_KHR_robustness GL_VERSION_4_5", glReadnPixels },
+    { "glReadnPixelsARB", "GL_ARB_robustness", glReadnPixelsARB },
+    { "glRectxOES", "GL_OES_fixed_point", glRectxOES },
+    { "glRectxvOES", "GL_OES_fixed_point", glRectxvOES },
+    { "glReferencePlaneSGIX", "GL_SGIX_reference_plane", glReferencePlaneSGIX },
+    { "glReleaseKeyedMutexWin32EXT", "GL_EXT_win32_keyed_mutex", glReleaseKeyedMutexWin32EXT },
+    { "glReleaseShaderCompiler", "GL_ARB_ES2_compatibility GL_VERSION_4_1", glReleaseShaderCompiler },
+    { "glRenderGpuMaskNV", "GL_NV_gpu_multicast", glRenderGpuMaskNV },
+    { "glRenderbufferStorage", "GL_ARB_framebuffer_object GL_VERSION_3_0", glRenderbufferStorage },
+    { "glRenderbufferStorageEXT", "GL_EXT_framebuffer_object", glRenderbufferStorageEXT },
+    { "glRenderbufferStorageMultisample", "GL_ARB_framebuffer_object GL_VERSION_3_0", glRenderbufferStorageMultisample },
+    { "glRenderbufferStorageMultisampleAdvancedAMD", "GL_AMD_framebuffer_multisample_advanced", glRenderbufferStorageMultisampleAdvancedAMD },
+    { "glRenderbufferStorageMultisampleCoverageNV", "GL_NV_framebuffer_multisample_coverage", glRenderbufferStorageMultisampleCoverageNV },
+    { "glRenderbufferStorageMultisampleEXT", "GL_EXT_framebuffer_multisample", glRenderbufferStorageMultisampleEXT },
+    { "glReplacementCodePointerSUN", "GL_SUN_triangle_list", glReplacementCodePointerSUN },
+    { "glReplacementCodeubSUN", "GL_SUN_triangle_list", glReplacementCodeubSUN },
+    { "glReplacementCodeubvSUN", "GL_SUN_triangle_list", glReplacementCodeubvSUN },
+    { "glReplacementCodeuiColor3fVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiColor3fVertex3fSUN },
+    { "glReplacementCodeuiColor3fVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiColor3fVertex3fvSUN },
+    { "glReplacementCodeuiColor4fNormal3fVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiColor4fNormal3fVertex3fSUN },
+    { "glReplacementCodeuiColor4fNormal3fVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiColor4fNormal3fVertex3fvSUN },
+    { "glReplacementCodeuiColor4ubVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiColor4ubVertex3fSUN },
+    { "glReplacementCodeuiColor4ubVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiColor4ubVertex3fvSUN },
+    { "glReplacementCodeuiNormal3fVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiNormal3fVertex3fSUN },
+    { "glReplacementCodeuiNormal3fVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiNormal3fVertex3fvSUN },
+    { "glReplacementCodeuiSUN", "GL_SUN_triangle_list", glReplacementCodeuiSUN },
+    { "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN },
+    { "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN },
+    { "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN },
+    { "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN },
+    { "glReplacementCodeuiTexCoord2fVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiTexCoord2fVertex3fSUN },
+    { "glReplacementCodeuiTexCoord2fVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiTexCoord2fVertex3fvSUN },
+    { "glReplacementCodeuiVertex3fSUN", "GL_SUN_vertex", glReplacementCodeuiVertex3fSUN },
+    { "glReplacementCodeuiVertex3fvSUN", "GL_SUN_vertex", glReplacementCodeuiVertex3fvSUN },
+    { "glReplacementCodeuivSUN", "GL_SUN_triangle_list", glReplacementCodeuivSUN },
+    { "glReplacementCodeusSUN", "GL_SUN_triangle_list", glReplacementCodeusSUN },
+    { "glReplacementCodeusvSUN", "GL_SUN_triangle_list", glReplacementCodeusvSUN },
+    { "glRequestResidentProgramsNV", "GL_NV_vertex_program", glRequestResidentProgramsNV },
+    { "glResetHistogram", "GL_ARB_imaging", glResetHistogram },
+    { "glResetHistogramEXT", "GL_EXT_histogram", glResetHistogramEXT },
+    { "glResetMemoryObjectParameterNV", "GL_NV_memory_attachment", glResetMemoryObjectParameterNV },
+    { "glResetMinmax", "GL_ARB_imaging", glResetMinmax },
+    { "glResetMinmaxEXT", "GL_EXT_histogram", glResetMinmaxEXT },
+    { "glResizeBuffersMESA", "GL_MESA_resize_buffers", glResizeBuffersMESA },
+    { "glResolveDepthValuesNV", "GL_NV_sample_locations", glResolveDepthValuesNV },
+    { "glResumeTransformFeedback", "GL_ARB_transform_feedback2 GL_VERSION_4_0", glResumeTransformFeedback },
+    { "glResumeTransformFeedbackNV", "GL_NV_transform_feedback2", glResumeTransformFeedbackNV },
+    { "glRotatexOES", "GL_OES_fixed_point", glRotatexOES },
+    { "glSampleCoverage", "GL_VERSION_1_3", glSampleCoverage },
+    { "glSampleCoverageARB", "GL_ARB_multisample", glSampleCoverageARB },
+    { "glSampleMapATI", "GL_ATI_fragment_shader", glSampleMapATI },
+    { "glSampleMaskEXT", "GL_EXT_multisample", glSampleMaskEXT },
+    { "glSampleMaskIndexedNV", "GL_NV_explicit_multisample", glSampleMaskIndexedNV },
+    { "glSampleMaskSGIS", "GL_SGIS_multisample", glSampleMaskSGIS },
+    { "glSampleMaski", "GL_ARB_texture_multisample GL_VERSION_3_2", glSampleMaski },
+    { "glSamplePatternEXT", "GL_EXT_multisample", glSamplePatternEXT },
+    { "glSamplePatternSGIS", "GL_SGIS_multisample", glSamplePatternSGIS },
+    { "glSamplerParameterIiv", "GL_ARB_sampler_objects GL_VERSION_3_3", glSamplerParameterIiv },
+    { "glSamplerParameterIuiv", "GL_ARB_sampler_objects GL_VERSION_3_3", glSamplerParameterIuiv },
+    { "glSamplerParameterf", "GL_ARB_sampler_objects GL_VERSION_3_3", glSamplerParameterf },
+    { "glSamplerParameterfv", "GL_ARB_sampler_objects GL_VERSION_3_3", glSamplerParameterfv },
+    { "glSamplerParameteri", "GL_ARB_sampler_objects GL_VERSION_3_3", glSamplerParameteri },
+    { "glSamplerParameteriv", "GL_ARB_sampler_objects GL_VERSION_3_3", glSamplerParameteriv },
+    { "glScalexOES", "GL_OES_fixed_point", glScalexOES },
+    { "glScissorArrayv", "GL_ARB_viewport_array GL_VERSION_4_1", glScissorArrayv },
+    { "glScissorExclusiveArrayvNV", "GL_NV_scissor_exclusive", glScissorExclusiveArrayvNV },
+    { "glScissorExclusiveNV", "GL_NV_scissor_exclusive", glScissorExclusiveNV },
+    { "glScissorIndexed", "GL_ARB_viewport_array GL_VERSION_4_1", glScissorIndexed },
+    { "glScissorIndexedv", "GL_ARB_viewport_array GL_VERSION_4_1", glScissorIndexedv },
+    { "glSecondaryColor3b", "GL_VERSION_1_4", glSecondaryColor3b },
+    { "glSecondaryColor3bEXT", "GL_EXT_secondary_color", glSecondaryColor3bEXT },
+    { "glSecondaryColor3bv", "GL_VERSION_1_4", glSecondaryColor3bv },
+    { "glSecondaryColor3bvEXT", "GL_EXT_secondary_color", glSecondaryColor3bvEXT },
+    { "glSecondaryColor3d", "GL_VERSION_1_4", glSecondaryColor3d },
+    { "glSecondaryColor3dEXT", "GL_EXT_secondary_color", glSecondaryColor3dEXT },
+    { "glSecondaryColor3dv", "GL_VERSION_1_4", glSecondaryColor3dv },
+    { "glSecondaryColor3dvEXT", "GL_EXT_secondary_color", glSecondaryColor3dvEXT },
+    { "glSecondaryColor3f", "GL_VERSION_1_4", glSecondaryColor3f },
+    { "glSecondaryColor3fEXT", "GL_EXT_secondary_color", glSecondaryColor3fEXT },
+    { "glSecondaryColor3fv", "GL_VERSION_1_4", glSecondaryColor3fv },
+    { "glSecondaryColor3fvEXT", "GL_EXT_secondary_color", glSecondaryColor3fvEXT },
+    { "glSecondaryColor3hNV", "GL_NV_half_float", glSecondaryColor3hNV },
+    { "glSecondaryColor3hvNV", "GL_NV_half_float", glSecondaryColor3hvNV },
+    { "glSecondaryColor3i", "GL_VERSION_1_4", glSecondaryColor3i },
+    { "glSecondaryColor3iEXT", "GL_EXT_secondary_color", glSecondaryColor3iEXT },
+    { "glSecondaryColor3iv", "GL_VERSION_1_4", glSecondaryColor3iv },
+    { "glSecondaryColor3ivEXT", "GL_EXT_secondary_color", glSecondaryColor3ivEXT },
+    { "glSecondaryColor3s", "GL_VERSION_1_4", glSecondaryColor3s },
+    { "glSecondaryColor3sEXT", "GL_EXT_secondary_color", glSecondaryColor3sEXT },
+    { "glSecondaryColor3sv", "GL_VERSION_1_4", glSecondaryColor3sv },
+    { "glSecondaryColor3svEXT", "GL_EXT_secondary_color", glSecondaryColor3svEXT },
+    { "glSecondaryColor3ub", "GL_VERSION_1_4", glSecondaryColor3ub },
+    { "glSecondaryColor3ubEXT", "GL_EXT_secondary_color", glSecondaryColor3ubEXT },
+    { "glSecondaryColor3ubv", "GL_VERSION_1_4", glSecondaryColor3ubv },
+    { "glSecondaryColor3ubvEXT", "GL_EXT_secondary_color", glSecondaryColor3ubvEXT },
+    { "glSecondaryColor3ui", "GL_VERSION_1_4", glSecondaryColor3ui },
+    { "glSecondaryColor3uiEXT", "GL_EXT_secondary_color", glSecondaryColor3uiEXT },
+    { "glSecondaryColor3uiv", "GL_VERSION_1_4", glSecondaryColor3uiv },
+    { "glSecondaryColor3uivEXT", "GL_EXT_secondary_color", glSecondaryColor3uivEXT },
+    { "glSecondaryColor3us", "GL_VERSION_1_4", glSecondaryColor3us },
+    { "glSecondaryColor3usEXT", "GL_EXT_secondary_color", glSecondaryColor3usEXT },
+    { "glSecondaryColor3usv", "GL_VERSION_1_4", glSecondaryColor3usv },
+    { "glSecondaryColor3usvEXT", "GL_EXT_secondary_color", glSecondaryColor3usvEXT },
+    { "glSecondaryColorFormatNV", "GL_NV_vertex_buffer_unified_memory", glSecondaryColorFormatNV },
+    { "glSecondaryColorP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glSecondaryColorP3ui },
+    { "glSecondaryColorP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glSecondaryColorP3uiv },
+    { "glSecondaryColorPointer", "GL_VERSION_1_4", glSecondaryColorPointer },
+    { "glSecondaryColorPointerEXT", "GL_EXT_secondary_color", glSecondaryColorPointerEXT },
+    { "glSecondaryColorPointerListIBM", "GL_IBM_vertex_array_lists", glSecondaryColorPointerListIBM },
+    { "glSelectPerfMonitorCountersAMD", "GL_AMD_performance_monitor", glSelectPerfMonitorCountersAMD },
+    { "glSelectTextureCoordSetSGIS", "GL_SGIS_multitexture", glSelectTextureCoordSetSGIS },
+    { "glSelectTextureSGIS", "GL_SGIS_multitexture", glSelectTextureSGIS },
+    { "glSemaphoreParameterui64vEXT", "GL_EXT_semaphore", glSemaphoreParameterui64vEXT },
+    { "glSeparableFilter2D", "GL_ARB_imaging", glSeparableFilter2D },
+    { "glSeparableFilter2DEXT", "GL_EXT_convolution", glSeparableFilter2DEXT },
+    { "glSetFenceAPPLE", "GL_APPLE_fence", glSetFenceAPPLE },
+    { "glSetFenceNV", "GL_NV_fence", glSetFenceNV },
+    { "glSetFragmentShaderConstantATI", "GL_ATI_fragment_shader", glSetFragmentShaderConstantATI },
+    { "glSetInvariantEXT", "GL_EXT_vertex_shader", glSetInvariantEXT },
+    { "glSetLocalConstantEXT", "GL_EXT_vertex_shader", glSetLocalConstantEXT },
+    { "glSetMultisamplefvAMD", "GL_AMD_sample_positions", glSetMultisamplefvAMD },
+    { "glShaderBinary", "GL_ARB_ES2_compatibility GL_VERSION_4_1", glShaderBinary },
+    { "glShaderOp1EXT", "GL_EXT_vertex_shader", glShaderOp1EXT },
+    { "glShaderOp2EXT", "GL_EXT_vertex_shader", glShaderOp2EXT },
+    { "glShaderOp3EXT", "GL_EXT_vertex_shader", glShaderOp3EXT },
+    { "glShaderSource", "GL_VERSION_2_0", glShaderSource },
+    { "glShaderSourceARB", "GL_ARB_shader_objects", glShaderSourceARB },
+    { "glShaderStorageBlockBinding", "GL_ARB_shader_storage_buffer_object GL_VERSION_4_3", glShaderStorageBlockBinding },
+    { "glShadingRateImageBarrierNV", "GL_NV_shading_rate_image GL_NV_shading_rate_image", glShadingRateImageBarrierNV },
+    { "glShadingRateImagePaletteNV", "GL_NV_shading_rate_image", glShadingRateImagePaletteNV },
+    { "glShadingRateSampleOrderCustomNV", "GL_NV_shading_rate_image", glShadingRateSampleOrderCustomNV },
+    { "glShadingRateSampleOrderNV", "GL_NV_shading_rate_image", glShadingRateSampleOrderNV },
+    { "glSharpenTexFuncSGIS", "GL_SGIS_sharpen_texture", glSharpenTexFuncSGIS },
+    { "glSignalSemaphoreEXT", "GL_EXT_semaphore", glSignalSemaphoreEXT },
+    { "glSignalSemaphoreui64NVX", "GL_NVX_progress_fence", glSignalSemaphoreui64NVX },
+    { "glSignalVkFenceNV", "GL_NV_draw_vulkan_image", glSignalVkFenceNV },
+    { "glSignalVkSemaphoreNV", "GL_NV_draw_vulkan_image", glSignalVkSemaphoreNV },
+    { "glSpecializeShader", "GL_VERSION_4_6", glSpecializeShader },
+    { "glSpecializeShaderARB", "GL_ARB_gl_spirv", glSpecializeShaderARB },
+    { "glSpriteParameterfSGIX", "GL_SGIX_sprite", glSpriteParameterfSGIX },
+    { "glSpriteParameterfvSGIX", "GL_SGIX_sprite", glSpriteParameterfvSGIX },
+    { "glSpriteParameteriSGIX", "GL_SGIX_sprite", glSpriteParameteriSGIX },
+    { "glSpriteParameterivSGIX", "GL_SGIX_sprite", glSpriteParameterivSGIX },
+    { "glStartInstrumentsSGIX", "GL_SGIX_instruments", glStartInstrumentsSGIX },
+    { "glStateCaptureNV", "GL_NV_command_list", glStateCaptureNV },
+    { "glStencilClearTagEXT", "GL_EXT_stencil_clear_tag", glStencilClearTagEXT },
+    { "glStencilFillPathInstancedNV", "GL_NV_path_rendering", glStencilFillPathInstancedNV },
+    { "glStencilFillPathNV", "GL_NV_path_rendering", glStencilFillPathNV },
+    { "glStencilFuncSeparate", "GL_VERSION_2_0", glStencilFuncSeparate },
+    { "glStencilFuncSeparateATI", "GL_ATI_separate_stencil", glStencilFuncSeparateATI },
+    { "glStencilMaskSeparate", "GL_VERSION_2_0", glStencilMaskSeparate },
+    { "glStencilOpSeparate", "GL_VERSION_2_0", glStencilOpSeparate },
+    { "glStencilOpSeparateATI", "GL_ATI_separate_stencil", glStencilOpSeparateATI },
+    { "glStencilOpValueAMD", "GL_AMD_stencil_operation_extended", glStencilOpValueAMD },
+    { "glStencilStrokePathInstancedNV", "GL_NV_path_rendering", glStencilStrokePathInstancedNV },
+    { "glStencilStrokePathNV", "GL_NV_path_rendering", glStencilStrokePathNV },
+    { "glStencilThenCoverFillPathInstancedNV", "GL_NV_path_rendering", glStencilThenCoverFillPathInstancedNV },
+    { "glStencilThenCoverFillPathNV", "GL_NV_path_rendering", glStencilThenCoverFillPathNV },
+    { "glStencilThenCoverStrokePathInstancedNV", "GL_NV_path_rendering", glStencilThenCoverStrokePathInstancedNV },
+    { "glStencilThenCoverStrokePathNV", "GL_NV_path_rendering", glStencilThenCoverStrokePathNV },
+    { "glStopInstrumentsSGIX", "GL_SGIX_instruments", glStopInstrumentsSGIX },
+    { "glStringMarkerGREMEDY", "GL_GREMEDY_string_marker", glStringMarkerGREMEDY },
+    { "glSubpixelPrecisionBiasNV", "GL_NV_conservative_raster", glSubpixelPrecisionBiasNV },
+    { "glSwizzleEXT", "GL_EXT_vertex_shader", glSwizzleEXT },
+    { "glSyncTextureINTEL", "GL_INTEL_map_texture", glSyncTextureINTEL },
+    { "glTagSampleBufferSGIX", "GL_SGIX_tag_sample_buffer", glTagSampleBufferSGIX },
+    { "glTangent3bEXT", "GL_EXT_coordinate_frame", glTangent3bEXT },
+    { "glTangent3bvEXT", "GL_EXT_coordinate_frame", glTangent3bvEXT },
+    { "glTangent3dEXT", "GL_EXT_coordinate_frame", glTangent3dEXT },
+    { "glTangent3dvEXT", "GL_EXT_coordinate_frame", glTangent3dvEXT },
+    { "glTangent3fEXT", "GL_EXT_coordinate_frame", glTangent3fEXT },
+    { "glTangent3fvEXT", "GL_EXT_coordinate_frame", glTangent3fvEXT },
+    { "glTangent3iEXT", "GL_EXT_coordinate_frame", glTangent3iEXT },
+    { "glTangent3ivEXT", "GL_EXT_coordinate_frame", glTangent3ivEXT },
+    { "glTangent3sEXT", "GL_EXT_coordinate_frame", glTangent3sEXT },
+    { "glTangent3svEXT", "GL_EXT_coordinate_frame", glTangent3svEXT },
+    { "glTangentPointerEXT", "GL_EXT_coordinate_frame", glTangentPointerEXT },
+    { "glTbufferMask3DFX", "GL_3DFX_tbuffer", glTbufferMask3DFX },
+    { "glTessellationFactorAMD", "GL_AMD_vertex_shader_tessellator", glTessellationFactorAMD },
+    { "glTessellationModeAMD", "GL_AMD_vertex_shader_tessellator", glTessellationModeAMD },
+    { "glTestFenceAPPLE", "GL_APPLE_fence", glTestFenceAPPLE },
+    { "glTestFenceNV", "GL_NV_fence", glTestFenceNV },
+    { "glTestObjectAPPLE", "GL_APPLE_fence", glTestObjectAPPLE },
+    { "glTexAttachMemoryNV", "GL_NV_memory_attachment", glTexAttachMemoryNV },
+    { "glTexBuffer", "GL_VERSION_3_1", glTexBuffer },
+    { "glTexBufferARB", "GL_ARB_texture_buffer_object", glTexBufferARB },
+    { "glTexBufferEXT", "GL_EXT_texture_buffer_object", glTexBufferEXT },
+    { "glTexBufferRange", "GL_ARB_texture_buffer_range GL_VERSION_4_3", glTexBufferRange },
+    { "glTexBumpParameterfvATI", "GL_ATI_envmap_bumpmap", glTexBumpParameterfvATI },
+    { "glTexBumpParameterivATI", "GL_ATI_envmap_bumpmap", glTexBumpParameterivATI },
+    { "glTexCoord1bOES", "GL_OES_byte_coordinates", glTexCoord1bOES },
+    { "glTexCoord1bvOES", "GL_OES_byte_coordinates", glTexCoord1bvOES },
+    { "glTexCoord1hNV", "GL_NV_half_float", glTexCoord1hNV },
+    { "glTexCoord1hvNV", "GL_NV_half_float", glTexCoord1hvNV },
+    { "glTexCoord1xOES", "GL_OES_fixed_point", glTexCoord1xOES },
+    { "glTexCoord1xvOES", "GL_OES_fixed_point", glTexCoord1xvOES },
+    { "glTexCoord2bOES", "GL_OES_byte_coordinates", glTexCoord2bOES },
+    { "glTexCoord2bvOES", "GL_OES_byte_coordinates", glTexCoord2bvOES },
+    { "glTexCoord2fColor3fVertex3fSUN", "GL_SUN_vertex", glTexCoord2fColor3fVertex3fSUN },
+    { "glTexCoord2fColor3fVertex3fvSUN", "GL_SUN_vertex", glTexCoord2fColor3fVertex3fvSUN },
+    { "glTexCoord2fColor4fNormal3fVertex3fSUN", "GL_SUN_vertex", glTexCoord2fColor4fNormal3fVertex3fSUN },
+    { "glTexCoord2fColor4fNormal3fVertex3fvSUN", "GL_SUN_vertex", glTexCoord2fColor4fNormal3fVertex3fvSUN },
+    { "glTexCoord2fColor4ubVertex3fSUN", "GL_SUN_vertex", glTexCoord2fColor4ubVertex3fSUN },
+    { "glTexCoord2fColor4ubVertex3fvSUN", "GL_SUN_vertex", glTexCoord2fColor4ubVertex3fvSUN },
+    { "glTexCoord2fNormal3fVertex3fSUN", "GL_SUN_vertex", glTexCoord2fNormal3fVertex3fSUN },
+    { "glTexCoord2fNormal3fVertex3fvSUN", "GL_SUN_vertex", glTexCoord2fNormal3fVertex3fvSUN },
+    { "glTexCoord2fVertex3fSUN", "GL_SUN_vertex", glTexCoord2fVertex3fSUN },
+    { "glTexCoord2fVertex3fvSUN", "GL_SUN_vertex", glTexCoord2fVertex3fvSUN },
+    { "glTexCoord2hNV", "GL_NV_half_float", glTexCoord2hNV },
+    { "glTexCoord2hvNV", "GL_NV_half_float", glTexCoord2hvNV },
+    { "glTexCoord2xOES", "GL_OES_fixed_point", glTexCoord2xOES },
+    { "glTexCoord2xvOES", "GL_OES_fixed_point", glTexCoord2xvOES },
+    { "glTexCoord3bOES", "GL_OES_byte_coordinates", glTexCoord3bOES },
+    { "glTexCoord3bvOES", "GL_OES_byte_coordinates", glTexCoord3bvOES },
+    { "glTexCoord3hNV", "GL_NV_half_float", glTexCoord3hNV },
+    { "glTexCoord3hvNV", "GL_NV_half_float", glTexCoord3hvNV },
+    { "glTexCoord3xOES", "GL_OES_fixed_point", glTexCoord3xOES },
+    { "glTexCoord3xvOES", "GL_OES_fixed_point", glTexCoord3xvOES },
+    { "glTexCoord4bOES", "GL_OES_byte_coordinates", glTexCoord4bOES },
+    { "glTexCoord4bvOES", "GL_OES_byte_coordinates", glTexCoord4bvOES },
+    { "glTexCoord4fColor4fNormal3fVertex4fSUN", "GL_SUN_vertex", glTexCoord4fColor4fNormal3fVertex4fSUN },
+    { "glTexCoord4fColor4fNormal3fVertex4fvSUN", "GL_SUN_vertex", glTexCoord4fColor4fNormal3fVertex4fvSUN },
+    { "glTexCoord4fVertex4fSUN", "GL_SUN_vertex", glTexCoord4fVertex4fSUN },
+    { "glTexCoord4fVertex4fvSUN", "GL_SUN_vertex", glTexCoord4fVertex4fvSUN },
+    { "glTexCoord4hNV", "GL_NV_half_float", glTexCoord4hNV },
+    { "glTexCoord4hvNV", "GL_NV_half_float", glTexCoord4hvNV },
+    { "glTexCoord4xOES", "GL_OES_fixed_point", glTexCoord4xOES },
+    { "glTexCoord4xvOES", "GL_OES_fixed_point", glTexCoord4xvOES },
+    { "glTexCoordFormatNV", "GL_NV_vertex_buffer_unified_memory", glTexCoordFormatNV },
+    { "glTexCoordP1ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP1ui },
+    { "glTexCoordP1uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP1uiv },
+    { "glTexCoordP2ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP2ui },
+    { "glTexCoordP2uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP2uiv },
+    { "glTexCoordP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP3ui },
+    { "glTexCoordP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP3uiv },
+    { "glTexCoordP4ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP4ui },
+    { "glTexCoordP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glTexCoordP4uiv },
+    { "glTexCoordPointerEXT", "GL_EXT_vertex_array", glTexCoordPointerEXT },
+    { "glTexCoordPointerListIBM", "GL_IBM_vertex_array_lists", glTexCoordPointerListIBM },
+    { "glTexCoordPointervINTEL", "GL_INTEL_parallel_arrays", glTexCoordPointervINTEL },
+    { "glTexEnvxOES", "GL_OES_fixed_point", glTexEnvxOES },
+    { "glTexEnvxvOES", "GL_OES_fixed_point", glTexEnvxvOES },
+    { "glTexFilterFuncSGIS", "GL_SGIS_texture_filter4", glTexFilterFuncSGIS },
+    { "glTexGenxOES", "GL_OES_fixed_point", glTexGenxOES },
+    { "glTexGenxvOES", "GL_OES_fixed_point", glTexGenxvOES },
+    { "glTexImage2DMultisample", "GL_ARB_texture_multisample GL_VERSION_3_2", glTexImage2DMultisample },
+    { "glTexImage2DMultisampleCoverageNV", "GL_NV_texture_multisample", glTexImage2DMultisampleCoverageNV },
+    { "glTexImage3D", "GL_VERSION_1_2", glTexImage3D },
+    { "glTexImage3DEXT", "GL_EXT_texture3D", glTexImage3DEXT },
+    { "glTexImage3DMultisample", "GL_ARB_texture_multisample GL_VERSION_3_2", glTexImage3DMultisample },
+    { "glTexImage3DMultisampleCoverageNV", "GL_NV_texture_multisample", glTexImage3DMultisampleCoverageNV },
+    { "glTexImage4DSGIS", "GL_SGIS_texture4D", glTexImage4DSGIS },
+    { "glTexPageCommitmentARB", "GL_ARB_sparse_texture", glTexPageCommitmentARB },
+    { "glTexParameterIiv", "GL_VERSION_3_0", glTexParameterIiv },
+    { "glTexParameterIivEXT", "GL_EXT_texture_integer", glTexParameterIivEXT },
+    { "glTexParameterIuiv", "GL_VERSION_3_0", glTexParameterIuiv },
+    { "glTexParameterIuivEXT", "GL_EXT_texture_integer", glTexParameterIuivEXT },
+    { "glTexParameterxOES", "GL_OES_fixed_point", glTexParameterxOES },
+    { "glTexParameterxvOES", "GL_OES_fixed_point", glTexParameterxvOES },
+    { "glTexRenderbufferNV", "GL_NV_explicit_multisample", glTexRenderbufferNV },
+    { "glTexStorage1D", "GL_ARB_texture_storage GL_VERSION_4_2", glTexStorage1D },
+    { "glTexStorage2D", "GL_ARB_texture_storage GL_VERSION_4_2", glTexStorage2D },
+    { "glTexStorage2DMultisample", "GL_ARB_texture_storage_multisample GL_VERSION_4_3", glTexStorage2DMultisample },
+    { "glTexStorage3D", "GL_ARB_texture_storage GL_VERSION_4_2", glTexStorage3D },
+    { "glTexStorage3DMultisample", "GL_ARB_texture_storage_multisample GL_VERSION_4_3", glTexStorage3DMultisample },
+    { "glTexStorageMem1DEXT", "GL_EXT_memory_object", glTexStorageMem1DEXT },
+    { "glTexStorageMem2DEXT", "GL_EXT_memory_object", glTexStorageMem2DEXT },
+    { "glTexStorageMem2DMultisampleEXT", "GL_EXT_memory_object", glTexStorageMem2DMultisampleEXT },
+    { "glTexStorageMem3DEXT", "GL_EXT_memory_object", glTexStorageMem3DEXT },
+    { "glTexStorageMem3DMultisampleEXT", "GL_EXT_memory_object", glTexStorageMem3DMultisampleEXT },
+    { "glTexStorageSparseAMD", "GL_AMD_sparse_texture", glTexStorageSparseAMD },
+    { "glTexSubImage1DEXT", "GL_EXT_subtexture", glTexSubImage1DEXT },
+    { "glTexSubImage2DEXT", "GL_EXT_subtexture", glTexSubImage2DEXT },
+    { "glTexSubImage3D", "GL_VERSION_1_2", glTexSubImage3D },
+    { "glTexSubImage3DEXT", "GL_EXT_texture3D", glTexSubImage3DEXT },
+    { "glTexSubImage4DSGIS", "GL_SGIS_texture4D", glTexSubImage4DSGIS },
+    { "glTextureAttachMemoryNV", "GL_NV_memory_attachment", glTextureAttachMemoryNV },
+    { "glTextureBarrier", "GL_ARB_texture_barrier GL_VERSION_4_5", glTextureBarrier },
+    { "glTextureBarrierNV", "GL_NV_texture_barrier", glTextureBarrierNV },
+    { "glTextureBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureBuffer },
+    { "glTextureBufferEXT", "GL_EXT_direct_state_access", glTextureBufferEXT },
+    { "glTextureBufferRange", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureBufferRange },
+    { "glTextureBufferRangeEXT", "GL_EXT_direct_state_access", glTextureBufferRangeEXT },
+    { "glTextureColorMaskSGIS", "GL_SGIS_texture_color_mask", glTextureColorMaskSGIS },
+    { "glTextureImage1DEXT", "GL_EXT_direct_state_access", glTextureImage1DEXT },
+    { "glTextureImage2DEXT", "GL_EXT_direct_state_access", glTextureImage2DEXT },
+    { "glTextureImage2DMultisampleCoverageNV", "GL_NV_texture_multisample", glTextureImage2DMultisampleCoverageNV },
+    { "glTextureImage2DMultisampleNV", "GL_NV_texture_multisample", glTextureImage2DMultisampleNV },
+    { "glTextureImage3DEXT", "GL_EXT_direct_state_access", glTextureImage3DEXT },
+    { "glTextureImage3DMultisampleCoverageNV", "GL_NV_texture_multisample", glTextureImage3DMultisampleCoverageNV },
+    { "glTextureImage3DMultisampleNV", "GL_NV_texture_multisample", glTextureImage3DMultisampleNV },
+    { "glTextureLightEXT", "GL_EXT_light_texture", glTextureLightEXT },
+    { "glTextureMaterialEXT", "GL_EXT_light_texture", glTextureMaterialEXT },
+    { "glTextureNormalEXT", "GL_EXT_texture_perturb_normal", glTextureNormalEXT },
+    { "glTexturePageCommitmentEXT", "GL_EXT_direct_state_access", glTexturePageCommitmentEXT },
+    { "glTextureParameterIiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureParameterIiv },
+    { "glTextureParameterIivEXT", "GL_EXT_direct_state_access", glTextureParameterIivEXT },
+    { "glTextureParameterIuiv", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureParameterIuiv },
+    { "glTextureParameterIuivEXT", "GL_EXT_direct_state_access", glTextureParameterIuivEXT },
+    { "glTextureParameterf", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureParameterf },
+    { "glTextureParameterfEXT", "GL_EXT_direct_state_access", glTextureParameterfEXT },
+    { "glTextureParameterfv", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureParameterfv },
+    { "glTextureParameterfvEXT", "GL_EXT_direct_state_access", glTextureParameterfvEXT },
+    { "glTextureParameteri", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureParameteri },
+    { "glTextureParameteriEXT", "GL_EXT_direct_state_access", glTextureParameteriEXT },
+    { "glTextureParameteriv", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureParameteriv },
+    { "glTextureParameterivEXT", "GL_EXT_direct_state_access", glTextureParameterivEXT },
+    { "glTextureRangeAPPLE", "GL_APPLE_texture_range", glTextureRangeAPPLE },
+    { "glTextureRenderbufferEXT", "GL_EXT_direct_state_access", glTextureRenderbufferEXT },
+    { "glTextureStorage1D", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureStorage1D },
+    { "glTextureStorage1DEXT", "GL_EXT_direct_state_access", glTextureStorage1DEXT },
+    { "glTextureStorage2D", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureStorage2D },
+    { "glTextureStorage2DEXT", "GL_EXT_direct_state_access", glTextureStorage2DEXT },
+    { "glTextureStorage2DMultisample", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureStorage2DMultisample },
+    { "glTextureStorage2DMultisampleEXT", "GL_EXT_direct_state_access", glTextureStorage2DMultisampleEXT },
+    { "glTextureStorage3D", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureStorage3D },
+    { "glTextureStorage3DEXT", "GL_EXT_direct_state_access", glTextureStorage3DEXT },
+    { "glTextureStorage3DMultisample", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureStorage3DMultisample },
+    { "glTextureStorage3DMultisampleEXT", "GL_EXT_direct_state_access", glTextureStorage3DMultisampleEXT },
+    { "glTextureStorageMem1DEXT", "GL_EXT_memory_object", glTextureStorageMem1DEXT },
+    { "glTextureStorageMem2DEXT", "GL_EXT_memory_object", glTextureStorageMem2DEXT },
+    { "glTextureStorageMem2DMultisampleEXT", "GL_EXT_memory_object", glTextureStorageMem2DMultisampleEXT },
+    { "glTextureStorageMem3DEXT", "GL_EXT_memory_object", glTextureStorageMem3DEXT },
+    { "glTextureStorageMem3DMultisampleEXT", "GL_EXT_memory_object", glTextureStorageMem3DMultisampleEXT },
+    { "glTextureStorageSparseAMD", "GL_AMD_sparse_texture", glTextureStorageSparseAMD },
+    { "glTextureSubImage1D", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureSubImage1D },
+    { "glTextureSubImage1DEXT", "GL_EXT_direct_state_access", glTextureSubImage1DEXT },
+    { "glTextureSubImage2D", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureSubImage2D },
+    { "glTextureSubImage2DEXT", "GL_EXT_direct_state_access", glTextureSubImage2DEXT },
+    { "glTextureSubImage3D", "GL_ARB_direct_state_access GL_VERSION_4_5", glTextureSubImage3D },
+    { "glTextureSubImage3DEXT", "GL_EXT_direct_state_access", glTextureSubImage3DEXT },
+    { "glTextureView", "GL_ARB_texture_view GL_VERSION_4_3", glTextureView },
+    { "glTrackMatrixNV", "GL_NV_vertex_program", glTrackMatrixNV },
+    { "glTransformFeedbackAttribsNV", "GL_NV_transform_feedback", glTransformFeedbackAttribsNV },
+    { "glTransformFeedbackBufferBase", "GL_ARB_direct_state_access GL_VERSION_4_5", glTransformFeedbackBufferBase },
+    { "glTransformFeedbackBufferRange", "GL_ARB_direct_state_access GL_VERSION_4_5", glTransformFeedbackBufferRange },
+    { "glTransformFeedbackStreamAttribsNV", "GL_NV_transform_feedback", glTransformFeedbackStreamAttribsNV },
+    { "glTransformFeedbackVaryings", "GL_VERSION_3_0", glTransformFeedbackVaryings },
+    { "glTransformFeedbackVaryingsEXT", "GL_EXT_transform_feedback", glTransformFeedbackVaryingsEXT },
+    { "glTransformFeedbackVaryingsNV", "GL_NV_transform_feedback", glTransformFeedbackVaryingsNV },
+    { "glTransformPathNV", "GL_NV_path_rendering", glTransformPathNV },
+    { "glTranslatexOES", "GL_OES_fixed_point", glTranslatexOES },
+    { "glUniform1d", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform1d },
+    { "glUniform1dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform1dv },
+    { "glUniform1f", "GL_VERSION_2_0", glUniform1f },
+    { "glUniform1fARB", "GL_ARB_shader_objects", glUniform1fARB },
+    { "glUniform1fv", "GL_VERSION_2_0", glUniform1fv },
+    { "glUniform1fvARB", "GL_ARB_shader_objects", glUniform1fvARB },
+    { "glUniform1i", "GL_VERSION_2_0", glUniform1i },
+    { "glUniform1i64ARB", "GL_ARB_gpu_shader_int64", glUniform1i64ARB },
+    { "glUniform1i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform1i64NV },
+    { "glUniform1i64vARB", "GL_ARB_gpu_shader_int64", glUniform1i64vARB },
+    { "glUniform1i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform1i64vNV },
+    { "glUniform1iARB", "GL_ARB_shader_objects", glUniform1iARB },
+    { "glUniform1iv", "GL_VERSION_2_0", glUniform1iv },
+    { "glUniform1ivARB", "GL_ARB_shader_objects", glUniform1ivARB },
+    { "glUniform1ui", "GL_VERSION_3_0", glUniform1ui },
+    { "glUniform1ui64ARB", "GL_ARB_gpu_shader_int64", glUniform1ui64ARB },
+    { "glUniform1ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform1ui64NV },
+    { "glUniform1ui64vARB", "GL_ARB_gpu_shader_int64", glUniform1ui64vARB },
+    { "glUniform1ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform1ui64vNV },
+    { "glUniform1uiEXT", "GL_EXT_gpu_shader4", glUniform1uiEXT },
+    { "glUniform1uiv", "GL_VERSION_3_0", glUniform1uiv },
+    { "glUniform1uivEXT", "GL_EXT_gpu_shader4", glUniform1uivEXT },
+    { "glUniform2d", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform2d },
+    { "glUniform2dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform2dv },
+    { "glUniform2f", "GL_VERSION_2_0", glUniform2f },
+    { "glUniform2fARB", "GL_ARB_shader_objects", glUniform2fARB },
+    { "glUniform2fv", "GL_VERSION_2_0", glUniform2fv },
+    { "glUniform2fvARB", "GL_ARB_shader_objects", glUniform2fvARB },
+    { "glUniform2i", "GL_VERSION_2_0", glUniform2i },
+    { "glUniform2i64ARB", "GL_ARB_gpu_shader_int64", glUniform2i64ARB },
+    { "glUniform2i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform2i64NV },
+    { "glUniform2i64vARB", "GL_ARB_gpu_shader_int64", glUniform2i64vARB },
+    { "glUniform2i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform2i64vNV },
+    { "glUniform2iARB", "GL_ARB_shader_objects", glUniform2iARB },
+    { "glUniform2iv", "GL_VERSION_2_0", glUniform2iv },
+    { "glUniform2ivARB", "GL_ARB_shader_objects", glUniform2ivARB },
+    { "glUniform2ui", "GL_VERSION_3_0", glUniform2ui },
+    { "glUniform2ui64ARB", "GL_ARB_gpu_shader_int64", glUniform2ui64ARB },
+    { "glUniform2ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform2ui64NV },
+    { "glUniform2ui64vARB", "GL_ARB_gpu_shader_int64", glUniform2ui64vARB },
+    { "glUniform2ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform2ui64vNV },
+    { "glUniform2uiEXT", "GL_EXT_gpu_shader4", glUniform2uiEXT },
+    { "glUniform2uiv", "GL_VERSION_3_0", glUniform2uiv },
+    { "glUniform2uivEXT", "GL_EXT_gpu_shader4", glUniform2uivEXT },
+    { "glUniform3d", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform3d },
+    { "glUniform3dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform3dv },
+    { "glUniform3f", "GL_VERSION_2_0", glUniform3f },
+    { "glUniform3fARB", "GL_ARB_shader_objects", glUniform3fARB },
+    { "glUniform3fv", "GL_VERSION_2_0", glUniform3fv },
+    { "glUniform3fvARB", "GL_ARB_shader_objects", glUniform3fvARB },
+    { "glUniform3i", "GL_VERSION_2_0", glUniform3i },
+    { "glUniform3i64ARB", "GL_ARB_gpu_shader_int64", glUniform3i64ARB },
+    { "glUniform3i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform3i64NV },
+    { "glUniform3i64vARB", "GL_ARB_gpu_shader_int64", glUniform3i64vARB },
+    { "glUniform3i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform3i64vNV },
+    { "glUniform3iARB", "GL_ARB_shader_objects", glUniform3iARB },
+    { "glUniform3iv", "GL_VERSION_2_0", glUniform3iv },
+    { "glUniform3ivARB", "GL_ARB_shader_objects", glUniform3ivARB },
+    { "glUniform3ui", "GL_VERSION_3_0", glUniform3ui },
+    { "glUniform3ui64ARB", "GL_ARB_gpu_shader_int64", glUniform3ui64ARB },
+    { "glUniform3ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform3ui64NV },
+    { "glUniform3ui64vARB", "GL_ARB_gpu_shader_int64", glUniform3ui64vARB },
+    { "glUniform3ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform3ui64vNV },
+    { "glUniform3uiEXT", "GL_EXT_gpu_shader4", glUniform3uiEXT },
+    { "glUniform3uiv", "GL_VERSION_3_0", glUniform3uiv },
+    { "glUniform3uivEXT", "GL_EXT_gpu_shader4", glUniform3uivEXT },
+    { "glUniform4d", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform4d },
+    { "glUniform4dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniform4dv },
+    { "glUniform4f", "GL_VERSION_2_0", glUniform4f },
+    { "glUniform4fARB", "GL_ARB_shader_objects", glUniform4fARB },
+    { "glUniform4fv", "GL_VERSION_2_0", glUniform4fv },
+    { "glUniform4fvARB", "GL_ARB_shader_objects", glUniform4fvARB },
+    { "glUniform4i", "GL_VERSION_2_0", glUniform4i },
+    { "glUniform4i64ARB", "GL_ARB_gpu_shader_int64", glUniform4i64ARB },
+    { "glUniform4i64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform4i64NV },
+    { "glUniform4i64vARB", "GL_ARB_gpu_shader_int64", glUniform4i64vARB },
+    { "glUniform4i64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform4i64vNV },
+    { "glUniform4iARB", "GL_ARB_shader_objects", glUniform4iARB },
+    { "glUniform4iv", "GL_VERSION_2_0", glUniform4iv },
+    { "glUniform4ivARB", "GL_ARB_shader_objects", glUniform4ivARB },
+    { "glUniform4ui", "GL_VERSION_3_0", glUniform4ui },
+    { "glUniform4ui64ARB", "GL_ARB_gpu_shader_int64", glUniform4ui64ARB },
+    { "glUniform4ui64NV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform4ui64NV },
+    { "glUniform4ui64vARB", "GL_ARB_gpu_shader_int64", glUniform4ui64vARB },
+    { "glUniform4ui64vNV", "GL_AMD_gpu_shader_int64 GL_NV_gpu_shader5", glUniform4ui64vNV },
+    { "glUniform4uiEXT", "GL_EXT_gpu_shader4", glUniform4uiEXT },
+    { "glUniform4uiv", "GL_VERSION_3_0", glUniform4uiv },
+    { "glUniform4uivEXT", "GL_EXT_gpu_shader4", glUniform4uivEXT },
+    { "glUniformBlockBinding", "GL_ARB_uniform_buffer_object GL_VERSION_3_1", glUniformBlockBinding },
+    { "glUniformBufferEXT", "GL_EXT_bindable_uniform", glUniformBufferEXT },
+    { "glUniformHandleui64ARB", "GL_ARB_bindless_texture", glUniformHandleui64ARB },
+    { "glUniformHandleui64NV", "GL_NV_bindless_texture", glUniformHandleui64NV },
+    { "glUniformHandleui64vARB", "GL_ARB_bindless_texture", glUniformHandleui64vARB },
+    { "glUniformHandleui64vNV", "GL_NV_bindless_texture", glUniformHandleui64vNV },
+    { "glUniformMatrix2dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix2dv },
+    { "glUniformMatrix2fv", "GL_VERSION_2_0", glUniformMatrix2fv },
+    { "glUniformMatrix2fvARB", "GL_ARB_shader_objects", glUniformMatrix2fvARB },
+    { "glUniformMatrix2x3dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix2x3dv },
+    { "glUniformMatrix2x3fv", "GL_VERSION_2_1", glUniformMatrix2x3fv },
+    { "glUniformMatrix2x4dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix2x4dv },
+    { "glUniformMatrix2x4fv", "GL_VERSION_2_1", glUniformMatrix2x4fv },
+    { "glUniformMatrix3dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix3dv },
+    { "glUniformMatrix3fv", "GL_VERSION_2_0", glUniformMatrix3fv },
+    { "glUniformMatrix3fvARB", "GL_ARB_shader_objects", glUniformMatrix3fvARB },
+    { "glUniformMatrix3x2dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix3x2dv },
+    { "glUniformMatrix3x2fv", "GL_VERSION_2_1", glUniformMatrix3x2fv },
+    { "glUniformMatrix3x4dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix3x4dv },
+    { "glUniformMatrix3x4fv", "GL_VERSION_2_1", glUniformMatrix3x4fv },
+    { "glUniformMatrix4dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix4dv },
+    { "glUniformMatrix4fv", "GL_VERSION_2_0", glUniformMatrix4fv },
+    { "glUniformMatrix4fvARB", "GL_ARB_shader_objects", glUniformMatrix4fvARB },
+    { "glUniformMatrix4x2dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix4x2dv },
+    { "glUniformMatrix4x2fv", "GL_VERSION_2_1", glUniformMatrix4x2fv },
+    { "glUniformMatrix4x3dv", "GL_ARB_gpu_shader_fp64 GL_VERSION_4_0", glUniformMatrix4x3dv },
+    { "glUniformMatrix4x3fv", "GL_VERSION_2_1", glUniformMatrix4x3fv },
+    { "glUniformSubroutinesuiv", "GL_ARB_shader_subroutine GL_VERSION_4_0", glUniformSubroutinesuiv },
+    { "glUniformui64NV", "GL_NV_shader_buffer_load", glUniformui64NV },
+    { "glUniformui64vNV", "GL_NV_shader_buffer_load", glUniformui64vNV },
+    { "glUnlockArraysEXT", "GL_EXT_compiled_vertex_array", glUnlockArraysEXT },
+    { "glUnmapBuffer", "GL_VERSION_1_5", glUnmapBuffer },
+    { "glUnmapBufferARB", "GL_ARB_vertex_buffer_object", glUnmapBufferARB },
+    { "glUnmapNamedBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glUnmapNamedBuffer },
+    { "glUnmapNamedBufferEXT", "GL_EXT_direct_state_access", glUnmapNamedBufferEXT },
+    { "glUnmapObjectBufferATI", "GL_ATI_map_object_buffer", glUnmapObjectBufferATI },
+    { "glUnmapTexture2DINTEL", "GL_INTEL_map_texture", glUnmapTexture2DINTEL },
+    { "glUpdateObjectBufferATI", "GL_ATI_vertex_array_object", glUpdateObjectBufferATI },
+    { "glUploadGpuMaskNVX", "GL_NVX_gpu_multicast2", glUploadGpuMaskNVX },
+    { "glUseProgram", "GL_VERSION_2_0", glUseProgram },
+    { "glUseProgramObjectARB", "GL_ARB_shader_objects", glUseProgramObjectARB },
+    { "glUseProgramStages", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glUseProgramStages },
+    { "glUseShaderProgramEXT", "GL_EXT_separate_shader_objects", glUseShaderProgramEXT },
+    { "glVDPAUFiniNV", "GL_NV_vdpau_interop", glVDPAUFiniNV },
+    { "glVDPAUGetSurfaceivNV", "GL_NV_vdpau_interop", glVDPAUGetSurfaceivNV },
+    { "glVDPAUInitNV", "GL_NV_vdpau_interop", glVDPAUInitNV },
+    { "glVDPAUIsSurfaceNV", "GL_NV_vdpau_interop", glVDPAUIsSurfaceNV },
+    { "glVDPAUMapSurfacesNV", "GL_NV_vdpau_interop", glVDPAUMapSurfacesNV },
+    { "glVDPAURegisterOutputSurfaceNV", "GL_NV_vdpau_interop", glVDPAURegisterOutputSurfaceNV },
+    { "glVDPAURegisterVideoSurfaceNV", "GL_NV_vdpau_interop", glVDPAURegisterVideoSurfaceNV },
+    { "glVDPAURegisterVideoSurfaceWithPictureStructureNV", "GL_NV_vdpau_interop2", glVDPAURegisterVideoSurfaceWithPictureStructureNV },
+    { "glVDPAUSurfaceAccessNV", "GL_NV_vdpau_interop", glVDPAUSurfaceAccessNV },
+    { "glVDPAUUnmapSurfacesNV", "GL_NV_vdpau_interop", glVDPAUUnmapSurfacesNV },
+    { "glVDPAUUnregisterSurfaceNV", "GL_NV_vdpau_interop", glVDPAUUnregisterSurfaceNV },
+    { "glValidateProgram", "GL_VERSION_2_0", glValidateProgram },
+    { "glValidateProgramARB", "GL_ARB_shader_objects", glValidateProgramARB },
+    { "glValidateProgramPipeline", "GL_ARB_separate_shader_objects GL_VERSION_4_1", glValidateProgramPipeline },
+    { "glVariantArrayObjectATI", "GL_ATI_vertex_array_object", glVariantArrayObjectATI },
+    { "glVariantPointerEXT", "GL_EXT_vertex_shader", glVariantPointerEXT },
+    { "glVariantbvEXT", "GL_EXT_vertex_shader", glVariantbvEXT },
+    { "glVariantdvEXT", "GL_EXT_vertex_shader", glVariantdvEXT },
+    { "glVariantfvEXT", "GL_EXT_vertex_shader", glVariantfvEXT },
+    { "glVariantivEXT", "GL_EXT_vertex_shader", glVariantivEXT },
+    { "glVariantsvEXT", "GL_EXT_vertex_shader", glVariantsvEXT },
+    { "glVariantubvEXT", "GL_EXT_vertex_shader", glVariantubvEXT },
+    { "glVariantuivEXT", "GL_EXT_vertex_shader", glVariantuivEXT },
+    { "glVariantusvEXT", "GL_EXT_vertex_shader", glVariantusvEXT },
+    { "glVertex2bOES", "GL_OES_byte_coordinates", glVertex2bOES },
+    { "glVertex2bvOES", "GL_OES_byte_coordinates", glVertex2bvOES },
+    { "glVertex2hNV", "GL_NV_half_float", glVertex2hNV },
+    { "glVertex2hvNV", "GL_NV_half_float", glVertex2hvNV },
+    { "glVertex2xOES", "GL_OES_fixed_point", glVertex2xOES },
+    { "glVertex2xvOES", "GL_OES_fixed_point", glVertex2xvOES },
+    { "glVertex3bOES", "GL_OES_byte_coordinates", glVertex3bOES },
+    { "glVertex3bvOES", "GL_OES_byte_coordinates", glVertex3bvOES },
+    { "glVertex3hNV", "GL_NV_half_float", glVertex3hNV },
+    { "glVertex3hvNV", "GL_NV_half_float", glVertex3hvNV },
+    { "glVertex3xOES", "GL_OES_fixed_point", glVertex3xOES },
+    { "glVertex3xvOES", "GL_OES_fixed_point", glVertex3xvOES },
+    { "glVertex4bOES", "GL_OES_byte_coordinates", glVertex4bOES },
+    { "glVertex4bvOES", "GL_OES_byte_coordinates", glVertex4bvOES },
+    { "glVertex4hNV", "GL_NV_half_float", glVertex4hNV },
+    { "glVertex4hvNV", "GL_NV_half_float", glVertex4hvNV },
+    { "glVertex4xOES", "GL_OES_fixed_point", glVertex4xOES },
+    { "glVertex4xvOES", "GL_OES_fixed_point", glVertex4xvOES },
+    { "glVertexArrayAttribBinding", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayAttribBinding },
+    { "glVertexArrayAttribFormat", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayAttribFormat },
+    { "glVertexArrayAttribIFormat", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayAttribIFormat },
+    { "glVertexArrayAttribLFormat", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayAttribLFormat },
+    { "glVertexArrayBindVertexBufferEXT", "GL_EXT_direct_state_access", glVertexArrayBindVertexBufferEXT },
+    { "glVertexArrayBindingDivisor", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayBindingDivisor },
+    { "glVertexArrayColorOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayColorOffsetEXT },
+    { "glVertexArrayEdgeFlagOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayEdgeFlagOffsetEXT },
+    { "glVertexArrayElementBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayElementBuffer },
+    { "glVertexArrayFogCoordOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayFogCoordOffsetEXT },
+    { "glVertexArrayIndexOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayIndexOffsetEXT },
+    { "glVertexArrayMultiTexCoordOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayMultiTexCoordOffsetEXT },
+    { "glVertexArrayNormalOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayNormalOffsetEXT },
+    { "glVertexArrayParameteriAPPLE", "GL_APPLE_vertex_array_range", glVertexArrayParameteriAPPLE },
+    { "glVertexArrayRangeAPPLE", "GL_APPLE_vertex_array_range", glVertexArrayRangeAPPLE },
+    { "glVertexArrayRangeNV", "GL_NV_vertex_array_range", glVertexArrayRangeNV },
+    { "glVertexArraySecondaryColorOffsetEXT", "GL_EXT_direct_state_access", glVertexArraySecondaryColorOffsetEXT },
+    { "glVertexArrayTexCoordOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayTexCoordOffsetEXT },
+    { "glVertexArrayVertexAttribBindingEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribBindingEXT },
+    { "glVertexArrayVertexAttribDivisorEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribDivisorEXT },
+    { "glVertexArrayVertexAttribFormatEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribFormatEXT },
+    { "glVertexArrayVertexAttribIFormatEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribIFormatEXT },
+    { "glVertexArrayVertexAttribIOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribIOffsetEXT },
+    { "glVertexArrayVertexAttribLFormatEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribLFormatEXT },
+    { "glVertexArrayVertexAttribLOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribLOffsetEXT },
+    { "glVertexArrayVertexAttribOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayVertexAttribOffsetEXT },
+    { "glVertexArrayVertexBindingDivisorEXT", "GL_EXT_direct_state_access", glVertexArrayVertexBindingDivisorEXT },
+    { "glVertexArrayVertexBuffer", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayVertexBuffer },
+    { "glVertexArrayVertexBuffers", "GL_ARB_direct_state_access GL_VERSION_4_5", glVertexArrayVertexBuffers },
+    { "glVertexArrayVertexOffsetEXT", "GL_EXT_direct_state_access", glVertexArrayVertexOffsetEXT },
+    { "glVertexAttrib1d", "GL_VERSION_2_0", glVertexAttrib1d },
+    { "glVertexAttrib1dARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib1dARB },
+    { "glVertexAttrib1dNV", "GL_NV_vertex_program", glVertexAttrib1dNV },
+    { "glVertexAttrib1dv", "GL_VERSION_2_0", glVertexAttrib1dv },
+    { "glVertexAttrib1dvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib1dvARB },
+    { "glVertexAttrib1dvNV", "GL_NV_vertex_program", glVertexAttrib1dvNV },
+    { "glVertexAttrib1f", "GL_VERSION_2_0", glVertexAttrib1f },
+    { "glVertexAttrib1fARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib1fARB },
+    { "glVertexAttrib1fNV", "GL_NV_vertex_program", glVertexAttrib1fNV },
+    { "glVertexAttrib1fv", "GL_VERSION_2_0", glVertexAttrib1fv },
+    { "glVertexAttrib1fvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib1fvARB },
+    { "glVertexAttrib1fvNV", "GL_NV_vertex_program", glVertexAttrib1fvNV },
+    { "glVertexAttrib1hNV", "GL_NV_half_float", glVertexAttrib1hNV },
+    { "glVertexAttrib1hvNV", "GL_NV_half_float", glVertexAttrib1hvNV },
+    { "glVertexAttrib1s", "GL_VERSION_2_0", glVertexAttrib1s },
+    { "glVertexAttrib1sARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib1sARB },
+    { "glVertexAttrib1sNV", "GL_NV_vertex_program", glVertexAttrib1sNV },
+    { "glVertexAttrib1sv", "GL_VERSION_2_0", glVertexAttrib1sv },
+    { "glVertexAttrib1svARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib1svARB },
+    { "glVertexAttrib1svNV", "GL_NV_vertex_program", glVertexAttrib1svNV },
+    { "glVertexAttrib2d", "GL_VERSION_2_0", glVertexAttrib2d },
+    { "glVertexAttrib2dARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib2dARB },
+    { "glVertexAttrib2dNV", "GL_NV_vertex_program", glVertexAttrib2dNV },
+    { "glVertexAttrib2dv", "GL_VERSION_2_0", glVertexAttrib2dv },
+    { "glVertexAttrib2dvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib2dvARB },
+    { "glVertexAttrib2dvNV", "GL_NV_vertex_program", glVertexAttrib2dvNV },
+    { "glVertexAttrib2f", "GL_VERSION_2_0", glVertexAttrib2f },
+    { "glVertexAttrib2fARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib2fARB },
+    { "glVertexAttrib2fNV", "GL_NV_vertex_program", glVertexAttrib2fNV },
+    { "glVertexAttrib2fv", "GL_VERSION_2_0", glVertexAttrib2fv },
+    { "glVertexAttrib2fvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib2fvARB },
+    { "glVertexAttrib2fvNV", "GL_NV_vertex_program", glVertexAttrib2fvNV },
+    { "glVertexAttrib2hNV", "GL_NV_half_float", glVertexAttrib2hNV },
+    { "glVertexAttrib2hvNV", "GL_NV_half_float", glVertexAttrib2hvNV },
+    { "glVertexAttrib2s", "GL_VERSION_2_0", glVertexAttrib2s },
+    { "glVertexAttrib2sARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib2sARB },
+    { "glVertexAttrib2sNV", "GL_NV_vertex_program", glVertexAttrib2sNV },
+    { "glVertexAttrib2sv", "GL_VERSION_2_0", glVertexAttrib2sv },
+    { "glVertexAttrib2svARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib2svARB },
+    { "glVertexAttrib2svNV", "GL_NV_vertex_program", glVertexAttrib2svNV },
+    { "glVertexAttrib3d", "GL_VERSION_2_0", glVertexAttrib3d },
+    { "glVertexAttrib3dARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib3dARB },
+    { "glVertexAttrib3dNV", "GL_NV_vertex_program", glVertexAttrib3dNV },
+    { "glVertexAttrib3dv", "GL_VERSION_2_0", glVertexAttrib3dv },
+    { "glVertexAttrib3dvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib3dvARB },
+    { "glVertexAttrib3dvNV", "GL_NV_vertex_program", glVertexAttrib3dvNV },
+    { "glVertexAttrib3f", "GL_VERSION_2_0", glVertexAttrib3f },
+    { "glVertexAttrib3fARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib3fARB },
+    { "glVertexAttrib3fNV", "GL_NV_vertex_program", glVertexAttrib3fNV },
+    { "glVertexAttrib3fv", "GL_VERSION_2_0", glVertexAttrib3fv },
+    { "glVertexAttrib3fvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib3fvARB },
+    { "glVertexAttrib3fvNV", "GL_NV_vertex_program", glVertexAttrib3fvNV },
+    { "glVertexAttrib3hNV", "GL_NV_half_float", glVertexAttrib3hNV },
+    { "glVertexAttrib3hvNV", "GL_NV_half_float", glVertexAttrib3hvNV },
+    { "glVertexAttrib3s", "GL_VERSION_2_0", glVertexAttrib3s },
+    { "glVertexAttrib3sARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib3sARB },
+    { "glVertexAttrib3sNV", "GL_NV_vertex_program", glVertexAttrib3sNV },
+    { "glVertexAttrib3sv", "GL_VERSION_2_0", glVertexAttrib3sv },
+    { "glVertexAttrib3svARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib3svARB },
+    { "glVertexAttrib3svNV", "GL_NV_vertex_program", glVertexAttrib3svNV },
+    { "glVertexAttrib4Nbv", "GL_VERSION_2_0", glVertexAttrib4Nbv },
+    { "glVertexAttrib4NbvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NbvARB },
+    { "glVertexAttrib4Niv", "GL_VERSION_2_0", glVertexAttrib4Niv },
+    { "glVertexAttrib4NivARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NivARB },
+    { "glVertexAttrib4Nsv", "GL_VERSION_2_0", glVertexAttrib4Nsv },
+    { "glVertexAttrib4NsvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NsvARB },
+    { "glVertexAttrib4Nub", "GL_VERSION_2_0", glVertexAttrib4Nub },
+    { "glVertexAttrib4NubARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NubARB },
+    { "glVertexAttrib4Nubv", "GL_VERSION_2_0", glVertexAttrib4Nubv },
+    { "glVertexAttrib4NubvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NubvARB },
+    { "glVertexAttrib4Nuiv", "GL_VERSION_2_0", glVertexAttrib4Nuiv },
+    { "glVertexAttrib4NuivARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NuivARB },
+    { "glVertexAttrib4Nusv", "GL_VERSION_2_0", glVertexAttrib4Nusv },
+    { "glVertexAttrib4NusvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4NusvARB },
+    { "glVertexAttrib4bv", "GL_VERSION_2_0", glVertexAttrib4bv },
+    { "glVertexAttrib4bvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4bvARB },
+    { "glVertexAttrib4d", "GL_VERSION_2_0", glVertexAttrib4d },
+    { "glVertexAttrib4dARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4dARB },
+    { "glVertexAttrib4dNV", "GL_NV_vertex_program", glVertexAttrib4dNV },
+    { "glVertexAttrib4dv", "GL_VERSION_2_0", glVertexAttrib4dv },
+    { "glVertexAttrib4dvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4dvARB },
+    { "glVertexAttrib4dvNV", "GL_NV_vertex_program", glVertexAttrib4dvNV },
+    { "glVertexAttrib4f", "GL_VERSION_2_0", glVertexAttrib4f },
+    { "glVertexAttrib4fARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4fARB },
+    { "glVertexAttrib4fNV", "GL_NV_vertex_program", glVertexAttrib4fNV },
+    { "glVertexAttrib4fv", "GL_VERSION_2_0", glVertexAttrib4fv },
+    { "glVertexAttrib4fvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4fvARB },
+    { "glVertexAttrib4fvNV", "GL_NV_vertex_program", glVertexAttrib4fvNV },
+    { "glVertexAttrib4hNV", "GL_NV_half_float", glVertexAttrib4hNV },
+    { "glVertexAttrib4hvNV", "GL_NV_half_float", glVertexAttrib4hvNV },
+    { "glVertexAttrib4iv", "GL_VERSION_2_0", glVertexAttrib4iv },
+    { "glVertexAttrib4ivARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4ivARB },
+    { "glVertexAttrib4s", "GL_VERSION_2_0", glVertexAttrib4s },
+    { "glVertexAttrib4sARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4sARB },
+    { "glVertexAttrib4sNV", "GL_NV_vertex_program", glVertexAttrib4sNV },
+    { "glVertexAttrib4sv", "GL_VERSION_2_0", glVertexAttrib4sv },
+    { "glVertexAttrib4svARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4svARB },
+    { "glVertexAttrib4svNV", "GL_NV_vertex_program", glVertexAttrib4svNV },
+    { "glVertexAttrib4ubNV", "GL_NV_vertex_program", glVertexAttrib4ubNV },
+    { "glVertexAttrib4ubv", "GL_VERSION_2_0", glVertexAttrib4ubv },
+    { "glVertexAttrib4ubvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4ubvARB },
+    { "glVertexAttrib4ubvNV", "GL_NV_vertex_program", glVertexAttrib4ubvNV },
+    { "glVertexAttrib4uiv", "GL_VERSION_2_0", glVertexAttrib4uiv },
+    { "glVertexAttrib4uivARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4uivARB },
+    { "glVertexAttrib4usv", "GL_VERSION_2_0", glVertexAttrib4usv },
+    { "glVertexAttrib4usvARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttrib4usvARB },
+    { "glVertexAttribArrayObjectATI", "GL_ATI_vertex_attrib_array_object", glVertexAttribArrayObjectATI },
+    { "glVertexAttribBinding", "GL_ARB_vertex_attrib_binding GL_VERSION_4_3", glVertexAttribBinding },
+    { "glVertexAttribDivisor", "GL_VERSION_3_3", glVertexAttribDivisor },
+    { "glVertexAttribDivisorARB", "GL_ARB_instanced_arrays", glVertexAttribDivisorARB },
+    { "glVertexAttribFormat", "GL_ARB_vertex_attrib_binding GL_VERSION_4_3", glVertexAttribFormat },
+    { "glVertexAttribFormatNV", "GL_NV_vertex_buffer_unified_memory", glVertexAttribFormatNV },
+    { "glVertexAttribI1i", "GL_VERSION_3_0", glVertexAttribI1i },
+    { "glVertexAttribI1iEXT", "GL_NV_vertex_program4", glVertexAttribI1iEXT },
+    { "glVertexAttribI1iv", "GL_VERSION_3_0", glVertexAttribI1iv },
+    { "glVertexAttribI1ivEXT", "GL_NV_vertex_program4", glVertexAttribI1ivEXT },
+    { "glVertexAttribI1ui", "GL_VERSION_3_0", glVertexAttribI1ui },
+    { "glVertexAttribI1uiEXT", "GL_NV_vertex_program4", glVertexAttribI1uiEXT },
+    { "glVertexAttribI1uiv", "GL_VERSION_3_0", glVertexAttribI1uiv },
+    { "glVertexAttribI1uivEXT", "GL_NV_vertex_program4", glVertexAttribI1uivEXT },
+    { "glVertexAttribI2i", "GL_VERSION_3_0", glVertexAttribI2i },
+    { "glVertexAttribI2iEXT", "GL_NV_vertex_program4", glVertexAttribI2iEXT },
+    { "glVertexAttribI2iv", "GL_VERSION_3_0", glVertexAttribI2iv },
+    { "glVertexAttribI2ivEXT", "GL_NV_vertex_program4", glVertexAttribI2ivEXT },
+    { "glVertexAttribI2ui", "GL_VERSION_3_0", glVertexAttribI2ui },
+    { "glVertexAttribI2uiEXT", "GL_NV_vertex_program4", glVertexAttribI2uiEXT },
+    { "glVertexAttribI2uiv", "GL_VERSION_3_0", glVertexAttribI2uiv },
+    { "glVertexAttribI2uivEXT", "GL_NV_vertex_program4", glVertexAttribI2uivEXT },
+    { "glVertexAttribI3i", "GL_VERSION_3_0", glVertexAttribI3i },
+    { "glVertexAttribI3iEXT", "GL_NV_vertex_program4", glVertexAttribI3iEXT },
+    { "glVertexAttribI3iv", "GL_VERSION_3_0", glVertexAttribI3iv },
+    { "glVertexAttribI3ivEXT", "GL_NV_vertex_program4", glVertexAttribI3ivEXT },
+    { "glVertexAttribI3ui", "GL_VERSION_3_0", glVertexAttribI3ui },
+    { "glVertexAttribI3uiEXT", "GL_NV_vertex_program4", glVertexAttribI3uiEXT },
+    { "glVertexAttribI3uiv", "GL_VERSION_3_0", glVertexAttribI3uiv },
+    { "glVertexAttribI3uivEXT", "GL_NV_vertex_program4", glVertexAttribI3uivEXT },
+    { "glVertexAttribI4bv", "GL_VERSION_3_0", glVertexAttribI4bv },
+    { "glVertexAttribI4bvEXT", "GL_NV_vertex_program4", glVertexAttribI4bvEXT },
+    { "glVertexAttribI4i", "GL_VERSION_3_0", glVertexAttribI4i },
+    { "glVertexAttribI4iEXT", "GL_NV_vertex_program4", glVertexAttribI4iEXT },
+    { "glVertexAttribI4iv", "GL_VERSION_3_0", glVertexAttribI4iv },
+    { "glVertexAttribI4ivEXT", "GL_NV_vertex_program4", glVertexAttribI4ivEXT },
+    { "glVertexAttribI4sv", "GL_VERSION_3_0", glVertexAttribI4sv },
+    { "glVertexAttribI4svEXT", "GL_NV_vertex_program4", glVertexAttribI4svEXT },
+    { "glVertexAttribI4ubv", "GL_VERSION_3_0", glVertexAttribI4ubv },
+    { "glVertexAttribI4ubvEXT", "GL_NV_vertex_program4", glVertexAttribI4ubvEXT },
+    { "glVertexAttribI4ui", "GL_VERSION_3_0", glVertexAttribI4ui },
+    { "glVertexAttribI4uiEXT", "GL_NV_vertex_program4", glVertexAttribI4uiEXT },
+    { "glVertexAttribI4uiv", "GL_VERSION_3_0", glVertexAttribI4uiv },
+    { "glVertexAttribI4uivEXT", "GL_NV_vertex_program4", glVertexAttribI4uivEXT },
+    { "glVertexAttribI4usv", "GL_VERSION_3_0", glVertexAttribI4usv },
+    { "glVertexAttribI4usvEXT", "GL_NV_vertex_program4", glVertexAttribI4usvEXT },
+    { "glVertexAttribIFormat", "GL_ARB_vertex_attrib_binding GL_VERSION_4_3", glVertexAttribIFormat },
+    { "glVertexAttribIFormatNV", "GL_NV_vertex_buffer_unified_memory", glVertexAttribIFormatNV },
+    { "glVertexAttribIPointer", "GL_VERSION_3_0", glVertexAttribIPointer },
+    { "glVertexAttribIPointerEXT", "GL_NV_vertex_program4", glVertexAttribIPointerEXT },
+    { "glVertexAttribL1d", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL1d },
+    { "glVertexAttribL1dEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL1dEXT },
+    { "glVertexAttribL1dv", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL1dv },
+    { "glVertexAttribL1dvEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL1dvEXT },
+    { "glVertexAttribL1i64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL1i64NV },
+    { "glVertexAttribL1i64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL1i64vNV },
+    { "glVertexAttribL1ui64ARB", "GL_ARB_bindless_texture", glVertexAttribL1ui64ARB },
+    { "glVertexAttribL1ui64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL1ui64NV },
+    { "glVertexAttribL1ui64vARB", "GL_ARB_bindless_texture", glVertexAttribL1ui64vARB },
+    { "glVertexAttribL1ui64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL1ui64vNV },
+    { "glVertexAttribL2d", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL2d },
+    { "glVertexAttribL2dEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL2dEXT },
+    { "glVertexAttribL2dv", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL2dv },
+    { "glVertexAttribL2dvEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL2dvEXT },
+    { "glVertexAttribL2i64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL2i64NV },
+    { "glVertexAttribL2i64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL2i64vNV },
+    { "glVertexAttribL2ui64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL2ui64NV },
+    { "glVertexAttribL2ui64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL2ui64vNV },
+    { "glVertexAttribL3d", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL3d },
+    { "glVertexAttribL3dEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL3dEXT },
+    { "glVertexAttribL3dv", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL3dv },
+    { "glVertexAttribL3dvEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL3dvEXT },
+    { "glVertexAttribL3i64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL3i64NV },
+    { "glVertexAttribL3i64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL3i64vNV },
+    { "glVertexAttribL3ui64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL3ui64NV },
+    { "glVertexAttribL3ui64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL3ui64vNV },
+    { "glVertexAttribL4d", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL4d },
+    { "glVertexAttribL4dEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL4dEXT },
+    { "glVertexAttribL4dv", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribL4dv },
+    { "glVertexAttribL4dvEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribL4dvEXT },
+    { "glVertexAttribL4i64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL4i64NV },
+    { "glVertexAttribL4i64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL4i64vNV },
+    { "glVertexAttribL4ui64NV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL4ui64NV },
+    { "glVertexAttribL4ui64vNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribL4ui64vNV },
+    { "glVertexAttribLFormat", "GL_ARB_vertex_attrib_binding GL_VERSION_4_3", glVertexAttribLFormat },
+    { "glVertexAttribLFormatNV", "GL_NV_vertex_attrib_integer_64bit", glVertexAttribLFormatNV },
+    { "glVertexAttribLPointer", "GL_ARB_vertex_attrib_64bit GL_VERSION_4_1", glVertexAttribLPointer },
+    { "glVertexAttribLPointerEXT", "GL_EXT_vertex_attrib_64bit", glVertexAttribLPointerEXT },
+    { "glVertexAttribP1ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP1ui },
+    { "glVertexAttribP1uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP1uiv },
+    { "glVertexAttribP2ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP2ui },
+    { "glVertexAttribP2uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP2uiv },
+    { "glVertexAttribP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP3ui },
+    { "glVertexAttribP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP3uiv },
+    { "glVertexAttribP4ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP4ui },
+    { "glVertexAttribP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexAttribP4uiv },
+    { "glVertexAttribParameteriAMD", "GL_AMD_interleaved_elements", glVertexAttribParameteriAMD },
+    { "glVertexAttribPointer", "GL_VERSION_2_0", glVertexAttribPointer },
+    { "glVertexAttribPointerARB", "GL_ARB_vertex_program GL_ARB_vertex_shader", glVertexAttribPointerARB },
+    { "glVertexAttribPointerNV", "GL_NV_vertex_program", glVertexAttribPointerNV },
+    { "glVertexAttribs1dvNV", "GL_NV_vertex_program", glVertexAttribs1dvNV },
+    { "glVertexAttribs1fvNV", "GL_NV_vertex_program", glVertexAttribs1fvNV },
+    { "glVertexAttribs1hvNV", "GL_NV_half_float", glVertexAttribs1hvNV },
+    { "glVertexAttribs1svNV", "GL_NV_vertex_program", glVertexAttribs1svNV },
+    { "glVertexAttribs2dvNV", "GL_NV_vertex_program", glVertexAttribs2dvNV },
+    { "glVertexAttribs2fvNV", "GL_NV_vertex_program", glVertexAttribs2fvNV },
+    { "glVertexAttribs2hvNV", "GL_NV_half_float", glVertexAttribs2hvNV },
+    { "glVertexAttribs2svNV", "GL_NV_vertex_program", glVertexAttribs2svNV },
+    { "glVertexAttribs3dvNV", "GL_NV_vertex_program", glVertexAttribs3dvNV },
+    { "glVertexAttribs3fvNV", "GL_NV_vertex_program", glVertexAttribs3fvNV },
+    { "glVertexAttribs3hvNV", "GL_NV_half_float", glVertexAttribs3hvNV },
+    { "glVertexAttribs3svNV", "GL_NV_vertex_program", glVertexAttribs3svNV },
+    { "glVertexAttribs4dvNV", "GL_NV_vertex_program", glVertexAttribs4dvNV },
+    { "glVertexAttribs4fvNV", "GL_NV_vertex_program", glVertexAttribs4fvNV },
+    { "glVertexAttribs4hvNV", "GL_NV_half_float", glVertexAttribs4hvNV },
+    { "glVertexAttribs4svNV", "GL_NV_vertex_program", glVertexAttribs4svNV },
+    { "glVertexAttribs4ubvNV", "GL_NV_vertex_program", glVertexAttribs4ubvNV },
+    { "glVertexBindingDivisor", "GL_ARB_vertex_attrib_binding GL_VERSION_4_3", glVertexBindingDivisor },
+    { "glVertexBlendARB", "GL_ARB_vertex_blend", glVertexBlendARB },
+    { "glVertexBlendEnvfATI", "GL_ATI_vertex_streams", glVertexBlendEnvfATI },
+    { "glVertexBlendEnviATI", "GL_ATI_vertex_streams", glVertexBlendEnviATI },
+    { "glVertexFormatNV", "GL_NV_vertex_buffer_unified_memory", glVertexFormatNV },
+    { "glVertexP2ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexP2ui },
+    { "glVertexP2uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexP2uiv },
+    { "glVertexP3ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexP3ui },
+    { "glVertexP3uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexP3uiv },
+    { "glVertexP4ui", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexP4ui },
+    { "glVertexP4uiv", "GL_ARB_vertex_type_2_10_10_10_rev GL_VERSION_3_3", glVertexP4uiv },
+    { "glVertexPointerEXT", "GL_EXT_vertex_array", glVertexPointerEXT },
+    { "glVertexPointerListIBM", "GL_IBM_vertex_array_lists", glVertexPointerListIBM },
+    { "glVertexPointervINTEL", "GL_INTEL_parallel_arrays", glVertexPointervINTEL },
+    { "glVertexStream1dATI", "GL_ATI_vertex_streams", glVertexStream1dATI },
+    { "glVertexStream1dvATI", "GL_ATI_vertex_streams", glVertexStream1dvATI },
+    { "glVertexStream1fATI", "GL_ATI_vertex_streams", glVertexStream1fATI },
+    { "glVertexStream1fvATI", "GL_ATI_vertex_streams", glVertexStream1fvATI },
+    { "glVertexStream1iATI", "GL_ATI_vertex_streams", glVertexStream1iATI },
+    { "glVertexStream1ivATI", "GL_ATI_vertex_streams", glVertexStream1ivATI },
+    { "glVertexStream1sATI", "GL_ATI_vertex_streams", glVertexStream1sATI },
+    { "glVertexStream1svATI", "GL_ATI_vertex_streams", glVertexStream1svATI },
+    { "glVertexStream2dATI", "GL_ATI_vertex_streams", glVertexStream2dATI },
+    { "glVertexStream2dvATI", "GL_ATI_vertex_streams", glVertexStream2dvATI },
+    { "glVertexStream2fATI", "GL_ATI_vertex_streams", glVertexStream2fATI },
+    { "glVertexStream2fvATI", "GL_ATI_vertex_streams", glVertexStream2fvATI },
+    { "glVertexStream2iATI", "GL_ATI_vertex_streams", glVertexStream2iATI },
+    { "glVertexStream2ivATI", "GL_ATI_vertex_streams", glVertexStream2ivATI },
+    { "glVertexStream2sATI", "GL_ATI_vertex_streams", glVertexStream2sATI },
+    { "glVertexStream2svATI", "GL_ATI_vertex_streams", glVertexStream2svATI },
+    { "glVertexStream3dATI", "GL_ATI_vertex_streams", glVertexStream3dATI },
+    { "glVertexStream3dvATI", "GL_ATI_vertex_streams", glVertexStream3dvATI },
+    { "glVertexStream3fATI", "GL_ATI_vertex_streams", glVertexStream3fATI },
+    { "glVertexStream3fvATI", "GL_ATI_vertex_streams", glVertexStream3fvATI },
+    { "glVertexStream3iATI", "GL_ATI_vertex_streams", glVertexStream3iATI },
+    { "glVertexStream3ivATI", "GL_ATI_vertex_streams", glVertexStream3ivATI },
+    { "glVertexStream3sATI", "GL_ATI_vertex_streams", glVertexStream3sATI },
+    { "glVertexStream3svATI", "GL_ATI_vertex_streams", glVertexStream3svATI },
+    { "glVertexStream4dATI", "GL_ATI_vertex_streams", glVertexStream4dATI },
+    { "glVertexStream4dvATI", "GL_ATI_vertex_streams", glVertexStream4dvATI },
+    { "glVertexStream4fATI", "GL_ATI_vertex_streams", glVertexStream4fATI },
+    { "glVertexStream4fvATI", "GL_ATI_vertex_streams", glVertexStream4fvATI },
+    { "glVertexStream4iATI", "GL_ATI_vertex_streams", glVertexStream4iATI },
+    { "glVertexStream4ivATI", "GL_ATI_vertex_streams", glVertexStream4ivATI },
+    { "glVertexStream4sATI", "GL_ATI_vertex_streams", glVertexStream4sATI },
+    { "glVertexStream4svATI", "GL_ATI_vertex_streams", glVertexStream4svATI },
+    { "glVertexWeightPointerEXT", "GL_EXT_vertex_weighting", glVertexWeightPointerEXT },
+    { "glVertexWeightfEXT", "GL_EXT_vertex_weighting", glVertexWeightfEXT },
+    { "glVertexWeightfvEXT", "GL_EXT_vertex_weighting", glVertexWeightfvEXT },
+    { "glVertexWeighthNV", "GL_NV_half_float", glVertexWeighthNV },
+    { "glVertexWeighthvNV", "GL_NV_half_float", glVertexWeighthvNV },
+    { "glVideoCaptureNV", "GL_NV_video_capture", glVideoCaptureNV },
+    { "glVideoCaptureStreamParameterdvNV", "GL_NV_video_capture", glVideoCaptureStreamParameterdvNV },
+    { "glVideoCaptureStreamParameterfvNV", "GL_NV_video_capture", glVideoCaptureStreamParameterfvNV },
+    { "glVideoCaptureStreamParameterivNV", "GL_NV_video_capture", glVideoCaptureStreamParameterivNV },
+    { "glViewportArrayv", "GL_ARB_viewport_array GL_VERSION_4_1", glViewportArrayv },
+    { "glViewportIndexedf", "GL_ARB_viewport_array GL_VERSION_4_1", glViewportIndexedf },
+    { "glViewportIndexedfv", "GL_ARB_viewport_array GL_VERSION_4_1", glViewportIndexedfv },
+    { "glViewportPositionWScaleNV", "GL_NV_clip_space_w_scaling", glViewportPositionWScaleNV },
+    { "glViewportSwizzleNV", "GL_NV_viewport_swizzle", glViewportSwizzleNV },
+    { "glWaitSemaphoreEXT", "GL_EXT_semaphore", glWaitSemaphoreEXT },
+    { "glWaitSemaphoreui64NVX", "GL_NVX_progress_fence", glWaitSemaphoreui64NVX },
+    { "glWaitSync", "GL_ARB_sync GL_VERSION_3_2", glWaitSync },
+    { "glWaitVkSemaphoreNV", "GL_NV_draw_vulkan_image", glWaitVkSemaphoreNV },
+    { "glWeightPathsNV", "GL_NV_path_rendering", glWeightPathsNV },
+    { "glWeightPointerARB", "GL_ARB_vertex_blend", glWeightPointerARB },
+    { "glWeightbvARB", "GL_ARB_vertex_blend", glWeightbvARB },
+    { "glWeightdvARB", "GL_ARB_vertex_blend", glWeightdvARB },
+    { "glWeightfvARB", "GL_ARB_vertex_blend", glWeightfvARB },
+    { "glWeightivARB", "GL_ARB_vertex_blend", glWeightivARB },
+    { "glWeightsvARB", "GL_ARB_vertex_blend", glWeightsvARB },
+    { "glWeightubvARB", "GL_ARB_vertex_blend", glWeightubvARB },
+    { "glWeightuivARB", "GL_ARB_vertex_blend", glWeightuivARB },
+    { "glWeightusvARB", "GL_ARB_vertex_blend", glWeightusvARB },
+    { "glWindowPos2d", "GL_VERSION_1_4", glWindowPos2d },
+    { "glWindowPos2dARB", "GL_ARB_window_pos", glWindowPos2dARB },
+    { "glWindowPos2dMESA", "GL_MESA_window_pos", glWindowPos2dMESA },
+    { "glWindowPos2dv", "GL_VERSION_1_4", glWindowPos2dv },
+    { "glWindowPos2dvARB", "GL_ARB_window_pos", glWindowPos2dvARB },
+    { "glWindowPos2dvMESA", "GL_MESA_window_pos", glWindowPos2dvMESA },
+    { "glWindowPos2f", "GL_VERSION_1_4", glWindowPos2f },
+    { "glWindowPos2fARB", "GL_ARB_window_pos", glWindowPos2fARB },
+    { "glWindowPos2fMESA", "GL_MESA_window_pos", glWindowPos2fMESA },
+    { "glWindowPos2fv", "GL_VERSION_1_4", glWindowPos2fv },
+    { "glWindowPos2fvARB", "GL_ARB_window_pos", glWindowPos2fvARB },
+    { "glWindowPos2fvMESA", "GL_MESA_window_pos", glWindowPos2fvMESA },
+    { "glWindowPos2i", "GL_VERSION_1_4", glWindowPos2i },
+    { "glWindowPos2iARB", "GL_ARB_window_pos", glWindowPos2iARB },
+    { "glWindowPos2iMESA", "GL_MESA_window_pos", glWindowPos2iMESA },
+    { "glWindowPos2iv", "GL_VERSION_1_4", glWindowPos2iv },
+    { "glWindowPos2ivARB", "GL_ARB_window_pos", glWindowPos2ivARB },
+    { "glWindowPos2ivMESA", "GL_MESA_window_pos", glWindowPos2ivMESA },
+    { "glWindowPos2s", "GL_VERSION_1_4", glWindowPos2s },
+    { "glWindowPos2sARB", "GL_ARB_window_pos", glWindowPos2sARB },
+    { "glWindowPos2sMESA", "GL_MESA_window_pos", glWindowPos2sMESA },
+    { "glWindowPos2sv", "GL_VERSION_1_4", glWindowPos2sv },
+    { "glWindowPos2svARB", "GL_ARB_window_pos", glWindowPos2svARB },
+    { "glWindowPos2svMESA", "GL_MESA_window_pos", glWindowPos2svMESA },
+    { "glWindowPos3d", "GL_VERSION_1_4", glWindowPos3d },
+    { "glWindowPos3dARB", "GL_ARB_window_pos", glWindowPos3dARB },
+    { "glWindowPos3dMESA", "GL_MESA_window_pos", glWindowPos3dMESA },
+    { "glWindowPos3dv", "GL_VERSION_1_4", glWindowPos3dv },
+    { "glWindowPos3dvARB", "GL_ARB_window_pos", glWindowPos3dvARB },
+    { "glWindowPos3dvMESA", "GL_MESA_window_pos", glWindowPos3dvMESA },
+    { "glWindowPos3f", "GL_VERSION_1_4", glWindowPos3f },
+    { "glWindowPos3fARB", "GL_ARB_window_pos", glWindowPos3fARB },
+    { "glWindowPos3fMESA", "GL_MESA_window_pos", glWindowPos3fMESA },
+    { "glWindowPos3fv", "GL_VERSION_1_4", glWindowPos3fv },
+    { "glWindowPos3fvARB", "GL_ARB_window_pos", glWindowPos3fvARB },
+    { "glWindowPos3fvMESA", "GL_MESA_window_pos", glWindowPos3fvMESA },
+    { "glWindowPos3i", "GL_VERSION_1_4", glWindowPos3i },
+    { "glWindowPos3iARB", "GL_ARB_window_pos", glWindowPos3iARB },
+    { "glWindowPos3iMESA", "GL_MESA_window_pos", glWindowPos3iMESA },
+    { "glWindowPos3iv", "GL_VERSION_1_4", glWindowPos3iv },
+    { "glWindowPos3ivARB", "GL_ARB_window_pos", glWindowPos3ivARB },
+    { "glWindowPos3ivMESA", "GL_MESA_window_pos", glWindowPos3ivMESA },
+    { "glWindowPos3s", "GL_VERSION_1_4", glWindowPos3s },
+    { "glWindowPos3sARB", "GL_ARB_window_pos", glWindowPos3sARB },
+    { "glWindowPos3sMESA", "GL_MESA_window_pos", glWindowPos3sMESA },
+    { "glWindowPos3sv", "GL_VERSION_1_4", glWindowPos3sv },
+    { "glWindowPos3svARB", "GL_ARB_window_pos", glWindowPos3svARB },
+    { "glWindowPos3svMESA", "GL_MESA_window_pos", glWindowPos3svMESA },
+    { "glWindowPos4dMESA", "GL_MESA_window_pos", glWindowPos4dMESA },
+    { "glWindowPos4dvMESA", "GL_MESA_window_pos", glWindowPos4dvMESA },
+    { "glWindowPos4fMESA", "GL_MESA_window_pos", glWindowPos4fMESA },
+    { "glWindowPos4fvMESA", "GL_MESA_window_pos", glWindowPos4fvMESA },
+    { "glWindowPos4iMESA", "GL_MESA_window_pos", glWindowPos4iMESA },
+    { "glWindowPos4ivMESA", "GL_MESA_window_pos", glWindowPos4ivMESA },
+    { "glWindowPos4sMESA", "GL_MESA_window_pos", glWindowPos4sMESA },
+    { "glWindowPos4svMESA", "GL_MESA_window_pos", glWindowPos4svMESA },
+    { "glWindowRectanglesEXT", "GL_EXT_window_rectangles", glWindowRectanglesEXT },
+    { "glWriteMaskEXT", "GL_EXT_vertex_shader", glWriteMaskEXT },
+    { "wglAllocateMemoryNV", "WGL_NV_vertex_array_range", wglAllocateMemoryNV },
+    { "wglBindTexImageARB", "WGL_ARB_render_texture", wglBindTexImageARB },
+    { "wglChoosePixelFormatARB", "WGL_ARB_pixel_format", wglChoosePixelFormatARB },
+    { "wglCreateContextAttribsARB", "WGL_ARB_create_context", wglCreateContextAttribsARB },
+    { "wglCreatePbufferARB", "WGL_ARB_pbuffer", wglCreatePbufferARB },
+    { "wglDestroyPbufferARB", "WGL_ARB_pbuffer", wglDestroyPbufferARB },
+    { "wglFreeMemoryNV", "WGL_NV_vertex_array_range", wglFreeMemoryNV },
+    { "wglGetCurrentReadDCARB", "WGL_ARB_make_current_read", wglGetCurrentReadDCARB },
+    { "wglGetExtensionsStringARB", "WGL_ARB_extensions_string", wglGetExtensionsStringARB },
+    { "wglGetExtensionsStringEXT", "WGL_EXT_extensions_string", wglGetExtensionsStringEXT },
+    { "wglGetPbufferDCARB", "WGL_ARB_pbuffer", wglGetPbufferDCARB },
+    { "wglGetPixelFormatAttribfvARB", "WGL_ARB_pixel_format", wglGetPixelFormatAttribfvARB },
+    { "wglGetPixelFormatAttribivARB", "WGL_ARB_pixel_format", wglGetPixelFormatAttribivARB },
+    { "wglGetSwapIntervalEXT", "WGL_EXT_swap_control", wglGetSwapIntervalEXT },
+    { "wglMakeContextCurrentARB", "WGL_ARB_make_current_read", wglMakeContextCurrentARB },
+    { "wglQueryCurrentRendererIntegerWINE", "WGL_WINE_query_renderer", wglQueryCurrentRendererIntegerWINE },
+    { "wglQueryCurrentRendererStringWINE", "WGL_WINE_query_renderer", wglQueryCurrentRendererStringWINE },
+    { "wglQueryPbufferARB", "WGL_ARB_pbuffer", wglQueryPbufferARB },
+    { "wglQueryRendererIntegerWINE", "WGL_WINE_query_renderer", wglQueryRendererIntegerWINE },
+    { "wglQueryRendererStringWINE", "WGL_WINE_query_renderer", wglQueryRendererStringWINE },
+    { "wglReleasePbufferDCARB", "WGL_ARB_pbuffer", wglReleasePbufferDCARB },
+    { "wglReleaseTexImageARB", "WGL_ARB_render_texture", wglReleaseTexImageARB },
+    { "wglSetPbufferAttribARB", "WGL_ARB_render_texture", wglSetPbufferAttribARB },
+    { "wglSetPixelFormatWINE", "WGL_WINE_pixel_format_passthrough", wglSetPixelFormatWINE },
+    { "wglSwapIntervalEXT", "WGL_EXT_swap_control", wglSwapIntervalEXT },
+};
diff --git a/dlls/opengl32/unix_thunks.c b/dlls/opengl32/unix_thunks.c
index 66fb5cda78b..7988189e188 100644
--- a/dlls/opengl32/unix_thunks.c
+++ b/dlls/opengl32/unix_thunks.c
@@ -2690,6 +2690,21530 @@ static NTSTATUS gl_glViewport( void *args )
     return STATUS_SUCCESS;
 }
 
+static NTSTATUS ext_glAccumxOES( void *args )
+{
+    struct glAccumxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glAccumxOES( params->op, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glAcquireKeyedMutexWin32EXT( void *args )
+{
+    struct glAcquireKeyedMutexWin32EXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glAcquireKeyedMutexWin32EXT( params->memory, params->key, params->timeout );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glActiveProgramEXT( void *args )
+{
+    struct glActiveProgramEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glActiveProgramEXT( params->program );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glActiveShaderProgram( void *args )
+{
+    struct glActiveShaderProgram_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glActiveShaderProgram( params->pipeline, params->program );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glActiveStencilFaceEXT( void *args )
+{
+    struct glActiveStencilFaceEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glActiveStencilFaceEXT( params->face );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glActiveTexture( void *args )
+{
+    struct glActiveTexture_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glActiveTexture( params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glActiveTextureARB( void *args )
+{
+    struct glActiveTextureARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glActiveTextureARB( params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glActiveVaryingNV( void *args )
+{
+    struct glActiveVaryingNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glActiveVaryingNV( params->program, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glAlphaFragmentOp1ATI( void *args )
+{
+    struct glAlphaFragmentOp1ATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glAlphaFragmentOp1ATI( params->op, params->dst, params->dstMod, params->arg1, params->arg1Rep, params->arg1Mod );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glAlphaFragmentOp2ATI( void *args )
+{
+    struct glAlphaFragmentOp2ATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glAlphaFragmentOp2ATI( params->op, params->dst, params->dstMod, params->arg1, params->arg1Rep, params->arg1Mod, params->arg2, params->arg2Rep, params->arg2Mod );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glAlphaFragmentOp3ATI( void *args )
+{
+    struct glAlphaFragmentOp3ATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glAlphaFragmentOp3ATI( params->op, params->dst, params->dstMod, params->arg1, params->arg1Rep, params->arg1Mod, params->arg2, params->arg2Rep, params->arg2Mod, params->arg3, params->arg3Rep, params->arg3Mod );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glAlphaFuncxOES( void *args )
+{
+    struct glAlphaFuncxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glAlphaFuncxOES( params->func, params->ref );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glAlphaToCoverageDitherControlNV( void *args )
+{
+    struct glAlphaToCoverageDitherControlNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glAlphaToCoverageDitherControlNV( params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glApplyFramebufferAttachmentCMAAINTEL( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glApplyFramebufferAttachmentCMAAINTEL();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glApplyTextureEXT( void *args )
+{
+    struct glApplyTextureEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glApplyTextureEXT( params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glAreProgramsResidentNV( void *args )
+{
+    struct glAreProgramsResidentNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glAreProgramsResidentNV( params->n, params->programs, params->residences );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glAreTexturesResidentEXT( void *args )
+{
+    struct glAreTexturesResidentEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glAreTexturesResidentEXT( params->n, params->textures, params->residences );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glArrayElementEXT( void *args )
+{
+    struct glArrayElementEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glArrayElementEXT( params->i );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glArrayObjectATI( void *args )
+{
+    struct glArrayObjectATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glArrayObjectATI( params->array, params->size, params->type, params->stride, params->buffer, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glAsyncCopyBufferSubDataNVX( void *args )
+{
+    struct glAsyncCopyBufferSubDataNVX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glAsyncCopyBufferSubDataNVX( params->waitSemaphoreCount, params->waitSemaphoreArray, params->fenceValueArray, params->readGpu, params->writeGpuMask, params->readBuffer, params->writeBuffer, params->readOffset, params->writeOffset, params->size, params->signalSemaphoreCount, params->signalSemaphoreArray, params->signalValueArray );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glAsyncCopyImageSubDataNVX( void *args )
+{
+    struct glAsyncCopyImageSubDataNVX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glAsyncCopyImageSubDataNVX( params->waitSemaphoreCount, params->waitSemaphoreArray, params->waitValueArray, params->srcGpu, params->dstGpuMask, params->srcName, params->srcTarget, params->srcLevel, params->srcX, params->srcY, params->srcZ, params->dstName, params->dstTarget, params->dstLevel, params->dstX, params->dstY, params->dstZ, params->srcWidth, params->srcHeight, params->srcDepth, params->signalSemaphoreCount, params->signalSemaphoreArray, params->signalValueArray );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glAsyncMarkerSGIX( void *args )
+{
+    struct glAsyncMarkerSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glAsyncMarkerSGIX( params->marker );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glAttachObjectARB( void *args )
+{
+    struct glAttachObjectARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glAttachObjectARB( params->containerObj, params->obj );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glAttachShader( void *args )
+{
+    struct glAttachShader_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glAttachShader( params->program, params->shader );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginConditionalRender( void *args )
+{
+    struct glBeginConditionalRender_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginConditionalRender( params->id, params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginConditionalRenderNV( void *args )
+{
+    struct glBeginConditionalRenderNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginConditionalRenderNV( params->id, params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginConditionalRenderNVX( void *args )
+{
+    struct glBeginConditionalRenderNVX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginConditionalRenderNVX( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginFragmentShaderATI( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginFragmentShaderATI();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginOcclusionQueryNV( void *args )
+{
+    struct glBeginOcclusionQueryNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginOcclusionQueryNV( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginPerfMonitorAMD( void *args )
+{
+    struct glBeginPerfMonitorAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginPerfMonitorAMD( params->monitor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginPerfQueryINTEL( void *args )
+{
+    struct glBeginPerfQueryINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginPerfQueryINTEL( params->queryHandle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginQuery( void *args )
+{
+    struct glBeginQuery_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginQuery( params->target, params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginQueryARB( void *args )
+{
+    struct glBeginQueryARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginQueryARB( params->target, params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginQueryIndexed( void *args )
+{
+    struct glBeginQueryIndexed_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginQueryIndexed( params->target, params->index, params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginTransformFeedback( void *args )
+{
+    struct glBeginTransformFeedback_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginTransformFeedback( params->primitiveMode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginTransformFeedbackEXT( void *args )
+{
+    struct glBeginTransformFeedbackEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginTransformFeedbackEXT( params->primitiveMode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginTransformFeedbackNV( void *args )
+{
+    struct glBeginTransformFeedbackNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginTransformFeedbackNV( params->primitiveMode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginVertexShaderEXT( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginVertexShaderEXT();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBeginVideoCaptureNV( void *args )
+{
+    struct glBeginVideoCaptureNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBeginVideoCaptureNV( params->video_capture_slot );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindAttribLocation( void *args )
+{
+    struct glBindAttribLocation_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindAttribLocation( params->program, params->index, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindAttribLocationARB( void *args )
+{
+    struct glBindAttribLocationARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindAttribLocationARB( params->programObj, params->index, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindBuffer( void *args )
+{
+    struct glBindBuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindBuffer( params->target, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindBufferARB( void *args )
+{
+    struct glBindBufferARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindBufferARB( params->target, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindBufferBase( void *args )
+{
+    struct glBindBufferBase_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindBufferBase( params->target, params->index, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindBufferBaseEXT( void *args )
+{
+    struct glBindBufferBaseEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindBufferBaseEXT( params->target, params->index, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindBufferBaseNV( void *args )
+{
+    struct glBindBufferBaseNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindBufferBaseNV( params->target, params->index, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindBufferOffsetEXT( void *args )
+{
+    struct glBindBufferOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindBufferOffsetEXT( params->target, params->index, params->buffer, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindBufferOffsetNV( void *args )
+{
+    struct glBindBufferOffsetNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindBufferOffsetNV( params->target, params->index, params->buffer, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindBufferRange( void *args )
+{
+    struct glBindBufferRange_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindBufferRange( params->target, params->index, params->buffer, params->offset, params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindBufferRangeEXT( void *args )
+{
+    struct glBindBufferRangeEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindBufferRangeEXT( params->target, params->index, params->buffer, params->offset, params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindBufferRangeNV( void *args )
+{
+    struct glBindBufferRangeNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindBufferRangeNV( params->target, params->index, params->buffer, params->offset, params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindBuffersBase( void *args )
+{
+    struct glBindBuffersBase_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindBuffersBase( params->target, params->first, params->count, params->buffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindBuffersRange( void *args )
+{
+    struct glBindBuffersRange_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindBuffersRange( params->target, params->first, params->count, params->buffers, params->offsets, params->sizes );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindFragDataLocation( void *args )
+{
+    struct glBindFragDataLocation_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindFragDataLocation( params->program, params->color, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindFragDataLocationEXT( void *args )
+{
+    struct glBindFragDataLocationEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindFragDataLocationEXT( params->program, params->color, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindFragDataLocationIndexed( void *args )
+{
+    struct glBindFragDataLocationIndexed_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindFragDataLocationIndexed( params->program, params->colorNumber, params->index, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindFragmentShaderATI( void *args )
+{
+    struct glBindFragmentShaderATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindFragmentShaderATI( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindFramebuffer( void *args )
+{
+    struct glBindFramebuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindFramebuffer( params->target, params->framebuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindFramebufferEXT( void *args )
+{
+    struct glBindFramebufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindFramebufferEXT( params->target, params->framebuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindImageTexture( void *args )
+{
+    struct glBindImageTexture_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindImageTexture( params->unit, params->texture, params->level, params->layered, params->layer, params->access, params->format );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindImageTextureEXT( void *args )
+{
+    struct glBindImageTextureEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindImageTextureEXT( params->index, params->texture, params->level, params->layered, params->layer, params->access, params->format );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindImageTextures( void *args )
+{
+    struct glBindImageTextures_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindImageTextures( params->first, params->count, params->textures );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindLightParameterEXT( void *args )
+{
+    struct glBindLightParameterEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glBindLightParameterEXT( params->light, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindMaterialParameterEXT( void *args )
+{
+    struct glBindMaterialParameterEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glBindMaterialParameterEXT( params->face, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindMultiTextureEXT( void *args )
+{
+    struct glBindMultiTextureEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindMultiTextureEXT( params->texunit, params->target, params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindParameterEXT( void *args )
+{
+    struct glBindParameterEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glBindParameterEXT( params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindProgramARB( void *args )
+{
+    struct glBindProgramARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindProgramARB( params->target, params->program );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindProgramNV( void *args )
+{
+    struct glBindProgramNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindProgramNV( params->target, params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindProgramPipeline( void *args )
+{
+    struct glBindProgramPipeline_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindProgramPipeline( params->pipeline );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindRenderbuffer( void *args )
+{
+    struct glBindRenderbuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindRenderbuffer( params->target, params->renderbuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindRenderbufferEXT( void *args )
+{
+    struct glBindRenderbufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindRenderbufferEXT( params->target, params->renderbuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindSampler( void *args )
+{
+    struct glBindSampler_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindSampler( params->unit, params->sampler );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindSamplers( void *args )
+{
+    struct glBindSamplers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindSamplers( params->first, params->count, params->samplers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindShadingRateImageNV( void *args )
+{
+    struct glBindShadingRateImageNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindShadingRateImageNV( params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindTexGenParameterEXT( void *args )
+{
+    struct glBindTexGenParameterEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glBindTexGenParameterEXT( params->unit, params->coord, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindTextureEXT( void *args )
+{
+    struct glBindTextureEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindTextureEXT( params->target, params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindTextureUnit( void *args )
+{
+    struct glBindTextureUnit_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindTextureUnit( params->unit, params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindTextureUnitParameterEXT( void *args )
+{
+    struct glBindTextureUnitParameterEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glBindTextureUnitParameterEXT( params->unit, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindTextures( void *args )
+{
+    struct glBindTextures_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindTextures( params->first, params->count, params->textures );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindTransformFeedback( void *args )
+{
+    struct glBindTransformFeedback_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindTransformFeedback( params->target, params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindTransformFeedbackNV( void *args )
+{
+    struct glBindTransformFeedbackNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindTransformFeedbackNV( params->target, params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindVertexArray( void *args )
+{
+    struct glBindVertexArray_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindVertexArray( params->array );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindVertexArrayAPPLE( void *args )
+{
+    struct glBindVertexArrayAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindVertexArrayAPPLE( params->array );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindVertexBuffer( void *args )
+{
+    struct glBindVertexBuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindVertexBuffer( params->bindingindex, params->buffer, params->offset, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindVertexBuffers( void *args )
+{
+    struct glBindVertexBuffers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindVertexBuffers( params->first, params->count, params->buffers, params->offsets, params->strides );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindVertexShaderEXT( void *args )
+{
+    struct glBindVertexShaderEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindVertexShaderEXT( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindVideoCaptureStreamBufferNV( void *args )
+{
+    struct glBindVideoCaptureStreamBufferNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindVideoCaptureStreamBufferNV( params->video_capture_slot, params->stream, params->frame_region, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBindVideoCaptureStreamTextureNV( void *args )
+{
+    struct glBindVideoCaptureStreamTextureNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBindVideoCaptureStreamTextureNV( params->video_capture_slot, params->stream, params->frame_region, params->target, params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBinormal3bEXT( void *args )
+{
+    struct glBinormal3bEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBinormal3bEXT( params->bx, params->by, params->bz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBinormal3bvEXT( void *args )
+{
+    struct glBinormal3bvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBinormal3bvEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBinormal3dEXT( void *args )
+{
+    struct glBinormal3dEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBinormal3dEXT( params->bx, params->by, params->bz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBinormal3dvEXT( void *args )
+{
+    struct glBinormal3dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBinormal3dvEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBinormal3fEXT( void *args )
+{
+    struct glBinormal3fEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBinormal3fEXT( params->bx, params->by, params->bz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBinormal3fvEXT( void *args )
+{
+    struct glBinormal3fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBinormal3fvEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBinormal3iEXT( void *args )
+{
+    struct glBinormal3iEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBinormal3iEXT( params->bx, params->by, params->bz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBinormal3ivEXT( void *args )
+{
+    struct glBinormal3ivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBinormal3ivEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBinormal3sEXT( void *args )
+{
+    struct glBinormal3sEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBinormal3sEXT( params->bx, params->by, params->bz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBinormal3svEXT( void *args )
+{
+    struct glBinormal3svEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBinormal3svEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBinormalPointerEXT( void *args )
+{
+    struct glBinormalPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBinormalPointerEXT( params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBitmapxOES( void *args )
+{
+    struct glBitmapxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBitmapxOES( params->width, params->height, params->xorig, params->yorig, params->xmove, params->ymove, params->bitmap );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendBarrierKHR( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendBarrierKHR();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendBarrierNV( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendBarrierNV();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendColor( void *args )
+{
+    struct glBlendColor_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendColor( params->red, params->green, params->blue, params->alpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendColorEXT( void *args )
+{
+    struct glBlendColorEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendColorEXT( params->red, params->green, params->blue, params->alpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendColorxOES( void *args )
+{
+    struct glBlendColorxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendColorxOES( params->red, params->green, params->blue, params->alpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendEquation( void *args )
+{
+    struct glBlendEquation_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendEquation( params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendEquationEXT( void *args )
+{
+    struct glBlendEquationEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendEquationEXT( params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendEquationIndexedAMD( void *args )
+{
+    struct glBlendEquationIndexedAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendEquationIndexedAMD( params->buf, params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendEquationSeparate( void *args )
+{
+    struct glBlendEquationSeparate_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendEquationSeparate( params->modeRGB, params->modeAlpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendEquationSeparateEXT( void *args )
+{
+    struct glBlendEquationSeparateEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendEquationSeparateEXT( params->modeRGB, params->modeAlpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendEquationSeparateIndexedAMD( void *args )
+{
+    struct glBlendEquationSeparateIndexedAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendEquationSeparateIndexedAMD( params->buf, params->modeRGB, params->modeAlpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendEquationSeparatei( void *args )
+{
+    struct glBlendEquationSeparatei_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendEquationSeparatei( params->buf, params->modeRGB, params->modeAlpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendEquationSeparateiARB( void *args )
+{
+    struct glBlendEquationSeparateiARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendEquationSeparateiARB( params->buf, params->modeRGB, params->modeAlpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendEquationi( void *args )
+{
+    struct glBlendEquationi_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendEquationi( params->buf, params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendEquationiARB( void *args )
+{
+    struct glBlendEquationiARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendEquationiARB( params->buf, params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendFuncIndexedAMD( void *args )
+{
+    struct glBlendFuncIndexedAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendFuncIndexedAMD( params->buf, params->src, params->dst );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendFuncSeparate( void *args )
+{
+    struct glBlendFuncSeparate_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendFuncSeparate( params->sfactorRGB, params->dfactorRGB, params->sfactorAlpha, params->dfactorAlpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendFuncSeparateEXT( void *args )
+{
+    struct glBlendFuncSeparateEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendFuncSeparateEXT( params->sfactorRGB, params->dfactorRGB, params->sfactorAlpha, params->dfactorAlpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendFuncSeparateINGR( void *args )
+{
+    struct glBlendFuncSeparateINGR_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendFuncSeparateINGR( params->sfactorRGB, params->dfactorRGB, params->sfactorAlpha, params->dfactorAlpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendFuncSeparateIndexedAMD( void *args )
+{
+    struct glBlendFuncSeparateIndexedAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendFuncSeparateIndexedAMD( params->buf, params->srcRGB, params->dstRGB, params->srcAlpha, params->dstAlpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendFuncSeparatei( void *args )
+{
+    struct glBlendFuncSeparatei_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendFuncSeparatei( params->buf, params->srcRGB, params->dstRGB, params->srcAlpha, params->dstAlpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendFuncSeparateiARB( void *args )
+{
+    struct glBlendFuncSeparateiARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendFuncSeparateiARB( params->buf, params->srcRGB, params->dstRGB, params->srcAlpha, params->dstAlpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendFunci( void *args )
+{
+    struct glBlendFunci_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendFunci( params->buf, params->src, params->dst );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendFunciARB( void *args )
+{
+    struct glBlendFunciARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendFunciARB( params->buf, params->src, params->dst );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlendParameteriNV( void *args )
+{
+    struct glBlendParameteriNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlendParameteriNV( params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlitFramebuffer( void *args )
+{
+    struct glBlitFramebuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlitFramebuffer( params->srcX0, params->srcY0, params->srcX1, params->srcY1, params->dstX0, params->dstY0, params->dstX1, params->dstY1, params->mask, params->filter );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlitFramebufferEXT( void *args )
+{
+    struct glBlitFramebufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlitFramebufferEXT( params->srcX0, params->srcY0, params->srcX1, params->srcY1, params->dstX0, params->dstY0, params->dstX1, params->dstY1, params->mask, params->filter );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBlitNamedFramebuffer( void *args )
+{
+    struct glBlitNamedFramebuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBlitNamedFramebuffer( params->readFramebuffer, params->drawFramebuffer, params->srcX0, params->srcY0, params->srcX1, params->srcY1, params->dstX0, params->dstY0, params->dstX1, params->dstY1, params->mask, params->filter );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBufferAddressRangeNV( void *args )
+{
+    struct glBufferAddressRangeNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBufferAddressRangeNV( params->pname, params->index, params->address, params->length );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBufferAttachMemoryNV( void *args )
+{
+    struct glBufferAttachMemoryNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBufferAttachMemoryNV( params->target, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBufferData( void *args )
+{
+    struct glBufferData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBufferData( params->target, params->size, params->data, params->usage );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBufferDataARB( void *args )
+{
+    struct glBufferDataARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBufferDataARB( params->target, params->size, params->data, params->usage );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBufferPageCommitmentARB( void *args )
+{
+    struct glBufferPageCommitmentARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBufferPageCommitmentARB( params->target, params->offset, params->size, params->commit );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBufferParameteriAPPLE( void *args )
+{
+    struct glBufferParameteriAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBufferParameteriAPPLE( params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBufferRegionEnabled( void *args )
+{
+    struct glBufferRegionEnabled_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glBufferRegionEnabled();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBufferStorage( void *args )
+{
+    struct glBufferStorage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBufferStorage( params->target, params->size, params->data, params->flags );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBufferStorageExternalEXT( void *args )
+{
+    struct glBufferStorageExternalEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBufferStorageExternalEXT( params->target, params->offset, params->size, params->clientBuffer, params->flags );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBufferStorageMemEXT( void *args )
+{
+    struct glBufferStorageMemEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBufferStorageMemEXT( params->target, params->size, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBufferSubData( void *args )
+{
+    struct glBufferSubData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBufferSubData( params->target, params->offset, params->size, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glBufferSubDataARB( void *args )
+{
+    struct glBufferSubDataARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glBufferSubDataARB( params->target, params->offset, params->size, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCallCommandListNV( void *args )
+{
+    struct glCallCommandListNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCallCommandListNV( params->list );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCheckFramebufferStatus( void *args )
+{
+    struct glCheckFramebufferStatus_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glCheckFramebufferStatus( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCheckFramebufferStatusEXT( void *args )
+{
+    struct glCheckFramebufferStatusEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glCheckFramebufferStatusEXT( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCheckNamedFramebufferStatus( void *args )
+{
+    struct glCheckNamedFramebufferStatus_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glCheckNamedFramebufferStatus( params->framebuffer, params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCheckNamedFramebufferStatusEXT( void *args )
+{
+    struct glCheckNamedFramebufferStatusEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glCheckNamedFramebufferStatusEXT( params->framebuffer, params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClampColor( void *args )
+{
+    struct glClampColor_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClampColor( params->target, params->clamp );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClampColorARB( void *args )
+{
+    struct glClampColorARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClampColorARB( params->target, params->clamp );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearAccumxOES( void *args )
+{
+    struct glClearAccumxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearAccumxOES( params->red, params->green, params->blue, params->alpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearBufferData( void *args )
+{
+    struct glClearBufferData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearBufferData( params->target, params->internalformat, params->format, params->type, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearBufferSubData( void *args )
+{
+    struct glClearBufferSubData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearBufferSubData( params->target, params->internalformat, params->offset, params->size, params->format, params->type, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearBufferfi( void *args )
+{
+    struct glClearBufferfi_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearBufferfi( params->buffer, params->drawbuffer, params->depth, params->stencil );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearBufferfv( void *args )
+{
+    struct glClearBufferfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearBufferfv( params->buffer, params->drawbuffer, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearBufferiv( void *args )
+{
+    struct glClearBufferiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearBufferiv( params->buffer, params->drawbuffer, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearBufferuiv( void *args )
+{
+    struct glClearBufferuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearBufferuiv( params->buffer, params->drawbuffer, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearColorIiEXT( void *args )
+{
+    struct glClearColorIiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearColorIiEXT( params->red, params->green, params->blue, params->alpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearColorIuiEXT( void *args )
+{
+    struct glClearColorIuiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearColorIuiEXT( params->red, params->green, params->blue, params->alpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearColorxOES( void *args )
+{
+    struct glClearColorxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearColorxOES( params->red, params->green, params->blue, params->alpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearDepthdNV( void *args )
+{
+    struct glClearDepthdNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearDepthdNV( params->depth );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearDepthf( void *args )
+{
+    struct glClearDepthf_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearDepthf( params->d );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearDepthfOES( void *args )
+{
+    struct glClearDepthfOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearDepthfOES( params->depth );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearDepthxOES( void *args )
+{
+    struct glClearDepthxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearDepthxOES( params->depth );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearNamedBufferData( void *args )
+{
+    struct glClearNamedBufferData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearNamedBufferData( params->buffer, params->internalformat, params->format, params->type, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearNamedBufferDataEXT( void *args )
+{
+    struct glClearNamedBufferDataEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearNamedBufferDataEXT( params->buffer, params->internalformat, params->format, params->type, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearNamedBufferSubData( void *args )
+{
+    struct glClearNamedBufferSubData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearNamedBufferSubData( params->buffer, params->internalformat, params->offset, params->size, params->format, params->type, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearNamedBufferSubDataEXT( void *args )
+{
+    struct glClearNamedBufferSubDataEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearNamedBufferSubDataEXT( params->buffer, params->internalformat, params->offset, params->size, params->format, params->type, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearNamedFramebufferfi( void *args )
+{
+    struct glClearNamedFramebufferfi_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearNamedFramebufferfi( params->framebuffer, params->buffer, params->drawbuffer, params->depth, params->stencil );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearNamedFramebufferfv( void *args )
+{
+    struct glClearNamedFramebufferfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearNamedFramebufferfv( params->framebuffer, params->buffer, params->drawbuffer, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearNamedFramebufferiv( void *args )
+{
+    struct glClearNamedFramebufferiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearNamedFramebufferiv( params->framebuffer, params->buffer, params->drawbuffer, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearNamedFramebufferuiv( void *args )
+{
+    struct glClearNamedFramebufferuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearNamedFramebufferuiv( params->framebuffer, params->buffer, params->drawbuffer, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearTexImage( void *args )
+{
+    struct glClearTexImage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearTexImage( params->texture, params->level, params->format, params->type, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClearTexSubImage( void *args )
+{
+    struct glClearTexSubImage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClearTexSubImage( params->texture, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->format, params->type, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClientActiveTexture( void *args )
+{
+    struct glClientActiveTexture_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClientActiveTexture( params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClientActiveTextureARB( void *args )
+{
+    struct glClientActiveTextureARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClientActiveTextureARB( params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClientActiveVertexStreamATI( void *args )
+{
+    struct glClientActiveVertexStreamATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClientActiveVertexStreamATI( params->stream );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClientAttribDefaultEXT( void *args )
+{
+    struct glClientAttribDefaultEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClientAttribDefaultEXT( params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClientWaitSemaphoreui64NVX( void *args )
+{
+    struct glClientWaitSemaphoreui64NVX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClientWaitSemaphoreui64NVX( params->fenceObjectCount, params->semaphoreArray, params->fenceValueArray );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClientWaitSync( void *args )
+{
+    struct glClientWaitSync_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glClientWaitSync( params->sync, params->flags, params->timeout );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClipControl( void *args )
+{
+    struct glClipControl_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClipControl( params->origin, params->depth );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClipPlanefOES( void *args )
+{
+    struct glClipPlanefOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClipPlanefOES( params->plane, params->equation );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glClipPlanexOES( void *args )
+{
+    struct glClipPlanexOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glClipPlanexOES( params->plane, params->equation );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor3fVertex3fSUN( void *args )
+{
+    struct glColor3fVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor3fVertex3fSUN( params->r, params->g, params->b, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor3fVertex3fvSUN( void *args )
+{
+    struct glColor3fVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor3fVertex3fvSUN( params->c, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor3hNV( void *args )
+{
+    struct glColor3hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor3hNV( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor3hvNV( void *args )
+{
+    struct glColor3hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor3hvNV( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor3xOES( void *args )
+{
+    struct glColor3xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor3xOES( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor3xvOES( void *args )
+{
+    struct glColor3xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor3xvOES( params->components );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor4fNormal3fVertex3fSUN( void *args )
+{
+    struct glColor4fNormal3fVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor4fNormal3fVertex3fSUN( params->r, params->g, params->b, params->a, params->nx, params->ny, params->nz, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor4fNormal3fVertex3fvSUN( void *args )
+{
+    struct glColor4fNormal3fVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor4fNormal3fVertex3fvSUN( params->c, params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor4hNV( void *args )
+{
+    struct glColor4hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor4hNV( params->red, params->green, params->blue, params->alpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor4hvNV( void *args )
+{
+    struct glColor4hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor4hvNV( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor4ubVertex2fSUN( void *args )
+{
+    struct glColor4ubVertex2fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor4ubVertex2fSUN( params->r, params->g, params->b, params->a, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor4ubVertex2fvSUN( void *args )
+{
+    struct glColor4ubVertex2fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor4ubVertex2fvSUN( params->c, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor4ubVertex3fSUN( void *args )
+{
+    struct glColor4ubVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor4ubVertex3fSUN( params->r, params->g, params->b, params->a, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor4ubVertex3fvSUN( void *args )
+{
+    struct glColor4ubVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor4ubVertex3fvSUN( params->c, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor4xOES( void *args )
+{
+    struct glColor4xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor4xOES( params->red, params->green, params->blue, params->alpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColor4xvOES( void *args )
+{
+    struct glColor4xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColor4xvOES( params->components );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorFormatNV( void *args )
+{
+    struct glColorFormatNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorFormatNV( params->size, params->type, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorFragmentOp1ATI( void *args )
+{
+    struct glColorFragmentOp1ATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorFragmentOp1ATI( params->op, params->dst, params->dstMask, params->dstMod, params->arg1, params->arg1Rep, params->arg1Mod );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorFragmentOp2ATI( void *args )
+{
+    struct glColorFragmentOp2ATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorFragmentOp2ATI( params->op, params->dst, params->dstMask, params->dstMod, params->arg1, params->arg1Rep, params->arg1Mod, params->arg2, params->arg2Rep, params->arg2Mod );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorFragmentOp3ATI( void *args )
+{
+    struct glColorFragmentOp3ATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorFragmentOp3ATI( params->op, params->dst, params->dstMask, params->dstMod, params->arg1, params->arg1Rep, params->arg1Mod, params->arg2, params->arg2Rep, params->arg2Mod, params->arg3, params->arg3Rep, params->arg3Mod );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorMaskIndexedEXT( void *args )
+{
+    struct glColorMaskIndexedEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorMaskIndexedEXT( params->index, params->r, params->g, params->b, params->a );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorMaski( void *args )
+{
+    struct glColorMaski_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorMaski( params->index, params->r, params->g, params->b, params->a );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorP3ui( void *args )
+{
+    struct glColorP3ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorP3ui( params->type, params->color );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorP3uiv( void *args )
+{
+    struct glColorP3uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorP3uiv( params->type, params->color );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorP4ui( void *args )
+{
+    struct glColorP4ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorP4ui( params->type, params->color );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorP4uiv( void *args )
+{
+    struct glColorP4uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorP4uiv( params->type, params->color );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorPointerEXT( void *args )
+{
+    struct glColorPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorPointerEXT( params->size, params->type, params->stride, params->count, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorPointerListIBM( void *args )
+{
+    struct glColorPointerListIBM_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorPointerListIBM( params->size, params->type, params->stride, params->pointer, params->ptrstride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorPointervINTEL( void *args )
+{
+    struct glColorPointervINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorPointervINTEL( params->size, params->type, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorSubTable( void *args )
+{
+    struct glColorSubTable_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorSubTable( params->target, params->start, params->count, params->format, params->type, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorSubTableEXT( void *args )
+{
+    struct glColorSubTableEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorSubTableEXT( params->target, params->start, params->count, params->format, params->type, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorTable( void *args )
+{
+    struct glColorTable_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorTable( params->target, params->internalformat, params->width, params->format, params->type, params->table );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorTableEXT( void *args )
+{
+    struct glColorTableEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorTableEXT( params->target, params->internalFormat, params->width, params->format, params->type, params->table );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorTableParameterfv( void *args )
+{
+    struct glColorTableParameterfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorTableParameterfv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorTableParameterfvSGI( void *args )
+{
+    struct glColorTableParameterfvSGI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorTableParameterfvSGI( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorTableParameteriv( void *args )
+{
+    struct glColorTableParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorTableParameteriv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorTableParameterivSGI( void *args )
+{
+    struct glColorTableParameterivSGI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorTableParameterivSGI( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glColorTableSGI( void *args )
+{
+    struct glColorTableSGI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glColorTableSGI( params->target, params->internalformat, params->width, params->format, params->type, params->table );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCombinerInputNV( void *args )
+{
+    struct glCombinerInputNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCombinerInputNV( params->stage, params->portion, params->variable, params->input, params->mapping, params->componentUsage );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCombinerOutputNV( void *args )
+{
+    struct glCombinerOutputNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCombinerOutputNV( params->stage, params->portion, params->abOutput, params->cdOutput, params->sumOutput, params->scale, params->bias, params->abDotProduct, params->cdDotProduct, params->muxSum );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCombinerParameterfNV( void *args )
+{
+    struct glCombinerParameterfNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCombinerParameterfNV( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCombinerParameterfvNV( void *args )
+{
+    struct glCombinerParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCombinerParameterfvNV( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCombinerParameteriNV( void *args )
+{
+    struct glCombinerParameteriNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCombinerParameteriNV( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCombinerParameterivNV( void *args )
+{
+    struct glCombinerParameterivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCombinerParameterivNV( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCombinerStageParameterfvNV( void *args )
+{
+    struct glCombinerStageParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCombinerStageParameterfvNV( params->stage, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCommandListSegmentsNV( void *args )
+{
+    struct glCommandListSegmentsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCommandListSegmentsNV( params->list, params->segments );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompileCommandListNV( void *args )
+{
+    struct glCompileCommandListNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompileCommandListNV( params->list );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompileShader( void *args )
+{
+    struct glCompileShader_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompileShader( params->shader );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompileShaderARB( void *args )
+{
+    struct glCompileShaderARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompileShaderARB( params->shaderObj );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompileShaderIncludeARB( void *args )
+{
+    struct glCompileShaderIncludeARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompileShaderIncludeARB( params->shader, params->count, params->path, params->length );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedMultiTexImage1DEXT( void *args )
+{
+    struct glCompressedMultiTexImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedMultiTexImage1DEXT( params->texunit, params->target, params->level, params->internalformat, params->width, params->border, params->imageSize, params->bits );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedMultiTexImage2DEXT( void *args )
+{
+    struct glCompressedMultiTexImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedMultiTexImage2DEXT( params->texunit, params->target, params->level, params->internalformat, params->width, params->height, params->border, params->imageSize, params->bits );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedMultiTexImage3DEXT( void *args )
+{
+    struct glCompressedMultiTexImage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedMultiTexImage3DEXT( params->texunit, params->target, params->level, params->internalformat, params->width, params->height, params->depth, params->border, params->imageSize, params->bits );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedMultiTexSubImage1DEXT( void *args )
+{
+    struct glCompressedMultiTexSubImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedMultiTexSubImage1DEXT( params->texunit, params->target, params->level, params->xoffset, params->width, params->format, params->imageSize, params->bits );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedMultiTexSubImage2DEXT( void *args )
+{
+    struct glCompressedMultiTexSubImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedMultiTexSubImage2DEXT( params->texunit, params->target, params->level, params->xoffset, params->yoffset, params->width, params->height, params->format, params->imageSize, params->bits );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedMultiTexSubImage3DEXT( void *args )
+{
+    struct glCompressedMultiTexSubImage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedMultiTexSubImage3DEXT( params->texunit, params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->format, params->imageSize, params->bits );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTexImage1D( void *args )
+{
+    struct glCompressedTexImage1D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTexImage1D( params->target, params->level, params->internalformat, params->width, params->border, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTexImage1DARB( void *args )
+{
+    struct glCompressedTexImage1DARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTexImage1DARB( params->target, params->level, params->internalformat, params->width, params->border, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTexImage2D( void *args )
+{
+    struct glCompressedTexImage2D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTexImage2D( params->target, params->level, params->internalformat, params->width, params->height, params->border, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTexImage2DARB( void *args )
+{
+    struct glCompressedTexImage2DARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTexImage2DARB( params->target, params->level, params->internalformat, params->width, params->height, params->border, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTexImage3D( void *args )
+{
+    struct glCompressedTexImage3D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTexImage3D( params->target, params->level, params->internalformat, params->width, params->height, params->depth, params->border, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTexImage3DARB( void *args )
+{
+    struct glCompressedTexImage3DARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTexImage3DARB( params->target, params->level, params->internalformat, params->width, params->height, params->depth, params->border, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTexSubImage1D( void *args )
+{
+    struct glCompressedTexSubImage1D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTexSubImage1D( params->target, params->level, params->xoffset, params->width, params->format, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTexSubImage1DARB( void *args )
+{
+    struct glCompressedTexSubImage1DARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTexSubImage1DARB( params->target, params->level, params->xoffset, params->width, params->format, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTexSubImage2D( void *args )
+{
+    struct glCompressedTexSubImage2D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTexSubImage2D( params->target, params->level, params->xoffset, params->yoffset, params->width, params->height, params->format, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTexSubImage2DARB( void *args )
+{
+    struct glCompressedTexSubImage2DARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTexSubImage2DARB( params->target, params->level, params->xoffset, params->yoffset, params->width, params->height, params->format, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTexSubImage3D( void *args )
+{
+    struct glCompressedTexSubImage3D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTexSubImage3D( params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->format, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTexSubImage3DARB( void *args )
+{
+    struct glCompressedTexSubImage3DARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTexSubImage3DARB( params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->format, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTextureImage1DEXT( void *args )
+{
+    struct glCompressedTextureImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTextureImage1DEXT( params->texture, params->target, params->level, params->internalformat, params->width, params->border, params->imageSize, params->bits );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTextureImage2DEXT( void *args )
+{
+    struct glCompressedTextureImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTextureImage2DEXT( params->texture, params->target, params->level, params->internalformat, params->width, params->height, params->border, params->imageSize, params->bits );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTextureImage3DEXT( void *args )
+{
+    struct glCompressedTextureImage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTextureImage3DEXT( params->texture, params->target, params->level, params->internalformat, params->width, params->height, params->depth, params->border, params->imageSize, params->bits );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTextureSubImage1D( void *args )
+{
+    struct glCompressedTextureSubImage1D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTextureSubImage1D( params->texture, params->level, params->xoffset, params->width, params->format, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTextureSubImage1DEXT( void *args )
+{
+    struct glCompressedTextureSubImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTextureSubImage1DEXT( params->texture, params->target, params->level, params->xoffset, params->width, params->format, params->imageSize, params->bits );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTextureSubImage2D( void *args )
+{
+    struct glCompressedTextureSubImage2D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTextureSubImage2D( params->texture, params->level, params->xoffset, params->yoffset, params->width, params->height, params->format, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTextureSubImage2DEXT( void *args )
+{
+    struct glCompressedTextureSubImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTextureSubImage2DEXT( params->texture, params->target, params->level, params->xoffset, params->yoffset, params->width, params->height, params->format, params->imageSize, params->bits );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTextureSubImage3D( void *args )
+{
+    struct glCompressedTextureSubImage3D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTextureSubImage3D( params->texture, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->format, params->imageSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCompressedTextureSubImage3DEXT( void *args )
+{
+    struct glCompressedTextureSubImage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCompressedTextureSubImage3DEXT( params->texture, params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->format, params->imageSize, params->bits );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConservativeRasterParameterfNV( void *args )
+{
+    struct glConservativeRasterParameterfNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConservativeRasterParameterfNV( params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConservativeRasterParameteriNV( void *args )
+{
+    struct glConservativeRasterParameteriNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConservativeRasterParameteriNV( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionFilter1D( void *args )
+{
+    struct glConvolutionFilter1D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionFilter1D( params->target, params->internalformat, params->width, params->format, params->type, params->image );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionFilter1DEXT( void *args )
+{
+    struct glConvolutionFilter1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionFilter1DEXT( params->target, params->internalformat, params->width, params->format, params->type, params->image );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionFilter2D( void *args )
+{
+    struct glConvolutionFilter2D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionFilter2D( params->target, params->internalformat, params->width, params->height, params->format, params->type, params->image );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionFilter2DEXT( void *args )
+{
+    struct glConvolutionFilter2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionFilter2DEXT( params->target, params->internalformat, params->width, params->height, params->format, params->type, params->image );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionParameterf( void *args )
+{
+    struct glConvolutionParameterf_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionParameterf( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionParameterfEXT( void *args )
+{
+    struct glConvolutionParameterfEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionParameterfEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionParameterfv( void *args )
+{
+    struct glConvolutionParameterfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionParameterfv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionParameterfvEXT( void *args )
+{
+    struct glConvolutionParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionParameterfvEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionParameteri( void *args )
+{
+    struct glConvolutionParameteri_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionParameteri( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionParameteriEXT( void *args )
+{
+    struct glConvolutionParameteriEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionParameteriEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionParameteriv( void *args )
+{
+    struct glConvolutionParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionParameteriv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionParameterivEXT( void *args )
+{
+    struct glConvolutionParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionParameterivEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionParameterxOES( void *args )
+{
+    struct glConvolutionParameterxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionParameterxOES( params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glConvolutionParameterxvOES( void *args )
+{
+    struct glConvolutionParameterxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glConvolutionParameterxvOES( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyBufferSubData( void *args )
+{
+    struct glCopyBufferSubData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyBufferSubData( params->readTarget, params->writeTarget, params->readOffset, params->writeOffset, params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyColorSubTable( void *args )
+{
+    struct glCopyColorSubTable_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyColorSubTable( params->target, params->start, params->x, params->y, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyColorSubTableEXT( void *args )
+{
+    struct glCopyColorSubTableEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyColorSubTableEXT( params->target, params->start, params->x, params->y, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyColorTable( void *args )
+{
+    struct glCopyColorTable_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyColorTable( params->target, params->internalformat, params->x, params->y, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyColorTableSGI( void *args )
+{
+    struct glCopyColorTableSGI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyColorTableSGI( params->target, params->internalformat, params->x, params->y, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyConvolutionFilter1D( void *args )
+{
+    struct glCopyConvolutionFilter1D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyConvolutionFilter1D( params->target, params->internalformat, params->x, params->y, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyConvolutionFilter1DEXT( void *args )
+{
+    struct glCopyConvolutionFilter1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyConvolutionFilter1DEXT( params->target, params->internalformat, params->x, params->y, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyConvolutionFilter2D( void *args )
+{
+    struct glCopyConvolutionFilter2D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyConvolutionFilter2D( params->target, params->internalformat, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyConvolutionFilter2DEXT( void *args )
+{
+    struct glCopyConvolutionFilter2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyConvolutionFilter2DEXT( params->target, params->internalformat, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyImageSubData( void *args )
+{
+    struct glCopyImageSubData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyImageSubData( params->srcName, params->srcTarget, params->srcLevel, params->srcX, params->srcY, params->srcZ, params->dstName, params->dstTarget, params->dstLevel, params->dstX, params->dstY, params->dstZ, params->srcWidth, params->srcHeight, params->srcDepth );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyImageSubDataNV( void *args )
+{
+    struct glCopyImageSubDataNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyImageSubDataNV( params->srcName, params->srcTarget, params->srcLevel, params->srcX, params->srcY, params->srcZ, params->dstName, params->dstTarget, params->dstLevel, params->dstX, params->dstY, params->dstZ, params->width, params->height, params->depth );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyMultiTexImage1DEXT( void *args )
+{
+    struct glCopyMultiTexImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyMultiTexImage1DEXT( params->texunit, params->target, params->level, params->internalformat, params->x, params->y, params->width, params->border );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyMultiTexImage2DEXT( void *args )
+{
+    struct glCopyMultiTexImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyMultiTexImage2DEXT( params->texunit, params->target, params->level, params->internalformat, params->x, params->y, params->width, params->height, params->border );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyMultiTexSubImage1DEXT( void *args )
+{
+    struct glCopyMultiTexSubImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyMultiTexSubImage1DEXT( params->texunit, params->target, params->level, params->xoffset, params->x, params->y, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyMultiTexSubImage2DEXT( void *args )
+{
+    struct glCopyMultiTexSubImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyMultiTexSubImage2DEXT( params->texunit, params->target, params->level, params->xoffset, params->yoffset, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyMultiTexSubImage3DEXT( void *args )
+{
+    struct glCopyMultiTexSubImage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyMultiTexSubImage3DEXT( params->texunit, params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyNamedBufferSubData( void *args )
+{
+    struct glCopyNamedBufferSubData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyNamedBufferSubData( params->readBuffer, params->writeBuffer, params->readOffset, params->writeOffset, params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyPathNV( void *args )
+{
+    struct glCopyPathNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyPathNV( params->resultPath, params->srcPath );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTexImage1DEXT( void *args )
+{
+    struct glCopyTexImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTexImage1DEXT( params->target, params->level, params->internalformat, params->x, params->y, params->width, params->border );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTexImage2DEXT( void *args )
+{
+    struct glCopyTexImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTexImage2DEXT( params->target, params->level, params->internalformat, params->x, params->y, params->width, params->height, params->border );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTexSubImage1DEXT( void *args )
+{
+    struct glCopyTexSubImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTexSubImage1DEXT( params->target, params->level, params->xoffset, params->x, params->y, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTexSubImage2DEXT( void *args )
+{
+    struct glCopyTexSubImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTexSubImage2DEXT( params->target, params->level, params->xoffset, params->yoffset, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTexSubImage3D( void *args )
+{
+    struct glCopyTexSubImage3D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTexSubImage3D( params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTexSubImage3DEXT( void *args )
+{
+    struct glCopyTexSubImage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTexSubImage3DEXT( params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTextureImage1DEXT( void *args )
+{
+    struct glCopyTextureImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTextureImage1DEXT( params->texture, params->target, params->level, params->internalformat, params->x, params->y, params->width, params->border );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTextureImage2DEXT( void *args )
+{
+    struct glCopyTextureImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTextureImage2DEXT( params->texture, params->target, params->level, params->internalformat, params->x, params->y, params->width, params->height, params->border );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTextureSubImage1D( void *args )
+{
+    struct glCopyTextureSubImage1D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTextureSubImage1D( params->texture, params->level, params->xoffset, params->x, params->y, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTextureSubImage1DEXT( void *args )
+{
+    struct glCopyTextureSubImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTextureSubImage1DEXT( params->texture, params->target, params->level, params->xoffset, params->x, params->y, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTextureSubImage2D( void *args )
+{
+    struct glCopyTextureSubImage2D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTextureSubImage2D( params->texture, params->level, params->xoffset, params->yoffset, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTextureSubImage2DEXT( void *args )
+{
+    struct glCopyTextureSubImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTextureSubImage2DEXT( params->texture, params->target, params->level, params->xoffset, params->yoffset, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTextureSubImage3D( void *args )
+{
+    struct glCopyTextureSubImage3D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTextureSubImage3D( params->texture, params->level, params->xoffset, params->yoffset, params->zoffset, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCopyTextureSubImage3DEXT( void *args )
+{
+    struct glCopyTextureSubImage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCopyTextureSubImage3DEXT( params->texture, params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCoverFillPathInstancedNV( void *args )
+{
+    struct glCoverFillPathInstancedNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCoverFillPathInstancedNV( params->numPaths, params->pathNameType, params->paths, params->pathBase, params->coverMode, params->transformType, params->transformValues );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCoverFillPathNV( void *args )
+{
+    struct glCoverFillPathNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCoverFillPathNV( params->path, params->coverMode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCoverStrokePathInstancedNV( void *args )
+{
+    struct glCoverStrokePathInstancedNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCoverStrokePathInstancedNV( params->numPaths, params->pathNameType, params->paths, params->pathBase, params->coverMode, params->transformType, params->transformValues );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCoverStrokePathNV( void *args )
+{
+    struct glCoverStrokePathNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCoverStrokePathNV( params->path, params->coverMode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCoverageModulationNV( void *args )
+{
+    struct glCoverageModulationNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCoverageModulationNV( params->components );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCoverageModulationTableNV( void *args )
+{
+    struct glCoverageModulationTableNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCoverageModulationTableNV( params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateBuffers( void *args )
+{
+    struct glCreateBuffers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCreateBuffers( params->n, params->buffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateCommandListsNV( void *args )
+{
+    struct glCreateCommandListsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCreateCommandListsNV( params->n, params->lists );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateFramebuffers( void *args )
+{
+    struct glCreateFramebuffers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCreateFramebuffers( params->n, params->framebuffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateMemoryObjectsEXT( void *args )
+{
+    struct glCreateMemoryObjectsEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCreateMemoryObjectsEXT( params->n, params->memoryObjects );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreatePerfQueryINTEL( void *args )
+{
+    struct glCreatePerfQueryINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCreatePerfQueryINTEL( params->queryId, params->queryHandle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateProgram( void *args )
+{
+    struct glCreateProgram_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glCreateProgram();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateProgramObjectARB( void *args )
+{
+    struct glCreateProgramObjectARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glCreateProgramObjectARB();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateProgramPipelines( void *args )
+{
+    struct glCreateProgramPipelines_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCreateProgramPipelines( params->n, params->pipelines );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateProgressFenceNVX( void *args )
+{
+    struct glCreateProgressFenceNVX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glCreateProgressFenceNVX();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateQueries( void *args )
+{
+    struct glCreateQueries_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCreateQueries( params->target, params->n, params->ids );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateRenderbuffers( void *args )
+{
+    struct glCreateRenderbuffers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCreateRenderbuffers( params->n, params->renderbuffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateSamplers( void *args )
+{
+    struct glCreateSamplers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCreateSamplers( params->n, params->samplers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateShader( void *args )
+{
+    struct glCreateShader_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glCreateShader( params->type );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateShaderObjectARB( void *args )
+{
+    struct glCreateShaderObjectARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glCreateShaderObjectARB( params->shaderType );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateShaderProgramEXT( void *args )
+{
+    struct glCreateShaderProgramEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glCreateShaderProgramEXT( params->type, params->string );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateShaderProgramv( void *args )
+{
+    struct glCreateShaderProgramv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glCreateShaderProgramv( params->type, params->count, params->strings );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateStatesNV( void *args )
+{
+    struct glCreateStatesNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCreateStatesNV( params->n, params->states );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateSyncFromCLeventARB( void *args )
+{
+    struct glCreateSyncFromCLeventARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glCreateSyncFromCLeventARB( params->context, params->event, params->flags );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateTextures( void *args )
+{
+    struct glCreateTextures_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCreateTextures( params->target, params->n, params->textures );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateTransformFeedbacks( void *args )
+{
+    struct glCreateTransformFeedbacks_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCreateTransformFeedbacks( params->n, params->ids );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCreateVertexArrays( void *args )
+{
+    struct glCreateVertexArrays_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCreateVertexArrays( params->n, params->arrays );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCullParameterdvEXT( void *args )
+{
+    struct glCullParameterdvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCullParameterdvEXT( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCullParameterfvEXT( void *args )
+{
+    struct glCullParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCullParameterfvEXT( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glCurrentPaletteMatrixARB( void *args )
+{
+    struct glCurrentPaletteMatrixARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glCurrentPaletteMatrixARB( params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDebugMessageCallback( void *args )
+{
+    struct glDebugMessageCallback_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDebugMessageCallback( params->callback, params->userParam );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDebugMessageCallbackAMD( void *args )
+{
+    struct glDebugMessageCallbackAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDebugMessageCallbackAMD( params->callback, params->userParam );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDebugMessageCallbackARB( void *args )
+{
+    struct glDebugMessageCallbackARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDebugMessageCallbackARB( params->callback, params->userParam );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDebugMessageControl( void *args )
+{
+    struct glDebugMessageControl_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDebugMessageControl( params->source, params->type, params->severity, params->count, params->ids, params->enabled );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDebugMessageControlARB( void *args )
+{
+    struct glDebugMessageControlARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDebugMessageControlARB( params->source, params->type, params->severity, params->count, params->ids, params->enabled );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDebugMessageEnableAMD( void *args )
+{
+    struct glDebugMessageEnableAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDebugMessageEnableAMD( params->category, params->severity, params->count, params->ids, params->enabled );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDebugMessageInsert( void *args )
+{
+    struct glDebugMessageInsert_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDebugMessageInsert( params->source, params->type, params->id, params->severity, params->length, params->buf );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDebugMessageInsertAMD( void *args )
+{
+    struct glDebugMessageInsertAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDebugMessageInsertAMD( params->category, params->severity, params->id, params->length, params->buf );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDebugMessageInsertARB( void *args )
+{
+    struct glDebugMessageInsertARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDebugMessageInsertARB( params->source, params->type, params->id, params->severity, params->length, params->buf );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeformSGIX( void *args )
+{
+    struct glDeformSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeformSGIX( params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeformationMap3dSGIX( void *args )
+{
+    struct glDeformationMap3dSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeformationMap3dSGIX( params->target, params->u1, params->u2, params->ustride, params->uorder, params->v1, params->v2, params->vstride, params->vorder, params->w1, params->w2, params->wstride, params->worder, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeformationMap3fSGIX( void *args )
+{
+    struct glDeformationMap3fSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeformationMap3fSGIX( params->target, params->u1, params->u2, params->ustride, params->uorder, params->v1, params->v2, params->vstride, params->vorder, params->w1, params->w2, params->wstride, params->worder, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteAsyncMarkersSGIX( void *args )
+{
+    struct glDeleteAsyncMarkersSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteAsyncMarkersSGIX( params->marker, params->range );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteBufferRegion( void *args )
+{
+    struct glDeleteBufferRegion_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteBufferRegion( params->region );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteBuffers( void *args )
+{
+    struct glDeleteBuffers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteBuffers( params->n, params->buffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteBuffersARB( void *args )
+{
+    struct glDeleteBuffersARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteBuffersARB( params->n, params->buffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteCommandListsNV( void *args )
+{
+    struct glDeleteCommandListsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteCommandListsNV( params->n, params->lists );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteFencesAPPLE( void *args )
+{
+    struct glDeleteFencesAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteFencesAPPLE( params->n, params->fences );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteFencesNV( void *args )
+{
+    struct glDeleteFencesNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteFencesNV( params->n, params->fences );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteFragmentShaderATI( void *args )
+{
+    struct glDeleteFragmentShaderATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteFragmentShaderATI( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteFramebuffers( void *args )
+{
+    struct glDeleteFramebuffers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteFramebuffers( params->n, params->framebuffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteFramebuffersEXT( void *args )
+{
+    struct glDeleteFramebuffersEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteFramebuffersEXT( params->n, params->framebuffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteMemoryObjectsEXT( void *args )
+{
+    struct glDeleteMemoryObjectsEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteMemoryObjectsEXT( params->n, params->memoryObjects );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteNamedStringARB( void *args )
+{
+    struct glDeleteNamedStringARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteNamedStringARB( params->namelen, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteNamesAMD( void *args )
+{
+    struct glDeleteNamesAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteNamesAMD( params->identifier, params->num, params->names );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteObjectARB( void *args )
+{
+    struct glDeleteObjectARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteObjectARB( params->obj );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteObjectBufferATI( void *args )
+{
+    struct glDeleteObjectBufferATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteObjectBufferATI( params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteOcclusionQueriesNV( void *args )
+{
+    struct glDeleteOcclusionQueriesNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteOcclusionQueriesNV( params->n, params->ids );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeletePathsNV( void *args )
+{
+    struct glDeletePathsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeletePathsNV( params->path, params->range );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeletePerfMonitorsAMD( void *args )
+{
+    struct glDeletePerfMonitorsAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeletePerfMonitorsAMD( params->n, params->monitors );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeletePerfQueryINTEL( void *args )
+{
+    struct glDeletePerfQueryINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeletePerfQueryINTEL( params->queryHandle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteProgram( void *args )
+{
+    struct glDeleteProgram_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteProgram( params->program );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteProgramPipelines( void *args )
+{
+    struct glDeleteProgramPipelines_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteProgramPipelines( params->n, params->pipelines );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteProgramsARB( void *args )
+{
+    struct glDeleteProgramsARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteProgramsARB( params->n, params->programs );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteProgramsNV( void *args )
+{
+    struct glDeleteProgramsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteProgramsNV( params->n, params->programs );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteQueries( void *args )
+{
+    struct glDeleteQueries_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteQueries( params->n, params->ids );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteQueriesARB( void *args )
+{
+    struct glDeleteQueriesARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteQueriesARB( params->n, params->ids );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteQueryResourceTagNV( void *args )
+{
+    struct glDeleteQueryResourceTagNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteQueryResourceTagNV( params->n, params->tagIds );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteRenderbuffers( void *args )
+{
+    struct glDeleteRenderbuffers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteRenderbuffers( params->n, params->renderbuffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteRenderbuffersEXT( void *args )
+{
+    struct glDeleteRenderbuffersEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteRenderbuffersEXT( params->n, params->renderbuffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteSamplers( void *args )
+{
+    struct glDeleteSamplers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteSamplers( params->count, params->samplers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteSemaphoresEXT( void *args )
+{
+    struct glDeleteSemaphoresEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteSemaphoresEXT( params->n, params->semaphores );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteShader( void *args )
+{
+    struct glDeleteShader_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteShader( params->shader );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteStatesNV( void *args )
+{
+    struct glDeleteStatesNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteStatesNV( params->n, params->states );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteSync( void *args )
+{
+    struct glDeleteSync_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteSync( params->sync );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteTexturesEXT( void *args )
+{
+    struct glDeleteTexturesEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteTexturesEXT( params->n, params->textures );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteTransformFeedbacks( void *args )
+{
+    struct glDeleteTransformFeedbacks_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteTransformFeedbacks( params->n, params->ids );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteTransformFeedbacksNV( void *args )
+{
+    struct glDeleteTransformFeedbacksNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteTransformFeedbacksNV( params->n, params->ids );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteVertexArrays( void *args )
+{
+    struct glDeleteVertexArrays_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteVertexArrays( params->n, params->arrays );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteVertexArraysAPPLE( void *args )
+{
+    struct glDeleteVertexArraysAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteVertexArraysAPPLE( params->n, params->arrays );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDeleteVertexShaderEXT( void *args )
+{
+    struct glDeleteVertexShaderEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDeleteVertexShaderEXT( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDepthBoundsEXT( void *args )
+{
+    struct glDepthBoundsEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDepthBoundsEXT( params->zmin, params->zmax );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDepthBoundsdNV( void *args )
+{
+    struct glDepthBoundsdNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDepthBoundsdNV( params->zmin, params->zmax );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDepthRangeArraydvNV( void *args )
+{
+    struct glDepthRangeArraydvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDepthRangeArraydvNV( params->first, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDepthRangeArrayv( void *args )
+{
+    struct glDepthRangeArrayv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDepthRangeArrayv( params->first, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDepthRangeIndexed( void *args )
+{
+    struct glDepthRangeIndexed_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDepthRangeIndexed( params->index, params->n, params->f );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDepthRangeIndexeddNV( void *args )
+{
+    struct glDepthRangeIndexeddNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDepthRangeIndexeddNV( params->index, params->n, params->f );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDepthRangedNV( void *args )
+{
+    struct glDepthRangedNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDepthRangedNV( params->zNear, params->zFar );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDepthRangef( void *args )
+{
+    struct glDepthRangef_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDepthRangef( params->n, params->f );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDepthRangefOES( void *args )
+{
+    struct glDepthRangefOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDepthRangefOES( params->n, params->f );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDepthRangexOES( void *args )
+{
+    struct glDepthRangexOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDepthRangexOES( params->n, params->f );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDetachObjectARB( void *args )
+{
+    struct glDetachObjectARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDetachObjectARB( params->containerObj, params->attachedObj );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDetachShader( void *args )
+{
+    struct glDetachShader_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDetachShader( params->program, params->shader );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDetailTexFuncSGIS( void *args )
+{
+    struct glDetailTexFuncSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDetailTexFuncSGIS( params->target, params->n, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDisableClientStateIndexedEXT( void *args )
+{
+    struct glDisableClientStateIndexedEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDisableClientStateIndexedEXT( params->array, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDisableClientStateiEXT( void *args )
+{
+    struct glDisableClientStateiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDisableClientStateiEXT( params->array, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDisableIndexedEXT( void *args )
+{
+    struct glDisableIndexedEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDisableIndexedEXT( params->target, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDisableVariantClientStateEXT( void *args )
+{
+    struct glDisableVariantClientStateEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDisableVariantClientStateEXT( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDisableVertexArrayAttrib( void *args )
+{
+    struct glDisableVertexArrayAttrib_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDisableVertexArrayAttrib( params->vaobj, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDisableVertexArrayAttribEXT( void *args )
+{
+    struct glDisableVertexArrayAttribEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDisableVertexArrayAttribEXT( params->vaobj, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDisableVertexArrayEXT( void *args )
+{
+    struct glDisableVertexArrayEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDisableVertexArrayEXT( params->vaobj, params->array );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDisableVertexAttribAPPLE( void *args )
+{
+    struct glDisableVertexAttribAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDisableVertexAttribAPPLE( params->index, params->pname );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDisableVertexAttribArray( void *args )
+{
+    struct glDisableVertexAttribArray_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDisableVertexAttribArray( params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDisableVertexAttribArrayARB( void *args )
+{
+    struct glDisableVertexAttribArrayARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDisableVertexAttribArrayARB( params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDisablei( void *args )
+{
+    struct glDisablei_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDisablei( params->target, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDispatchCompute( void *args )
+{
+    struct glDispatchCompute_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDispatchCompute( params->num_groups_x, params->num_groups_y, params->num_groups_z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDispatchComputeGroupSizeARB( void *args )
+{
+    struct glDispatchComputeGroupSizeARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDispatchComputeGroupSizeARB( params->num_groups_x, params->num_groups_y, params->num_groups_z, params->group_size_x, params->group_size_y, params->group_size_z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDispatchComputeIndirect( void *args )
+{
+    struct glDispatchComputeIndirect_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDispatchComputeIndirect( params->indirect );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawArraysEXT( void *args )
+{
+    struct glDrawArraysEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawArraysEXT( params->mode, params->first, params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawArraysIndirect( void *args )
+{
+    struct glDrawArraysIndirect_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawArraysIndirect( params->mode, params->indirect );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawArraysInstanced( void *args )
+{
+    struct glDrawArraysInstanced_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawArraysInstanced( params->mode, params->first, params->count, params->instancecount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawArraysInstancedARB( void *args )
+{
+    struct glDrawArraysInstancedARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawArraysInstancedARB( params->mode, params->first, params->count, params->primcount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawArraysInstancedBaseInstance( void *args )
+{
+    struct glDrawArraysInstancedBaseInstance_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawArraysInstancedBaseInstance( params->mode, params->first, params->count, params->instancecount, params->baseinstance );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawArraysInstancedEXT( void *args )
+{
+    struct glDrawArraysInstancedEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawArraysInstancedEXT( params->mode, params->start, params->count, params->primcount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawBufferRegion( void *args )
+{
+    struct glDrawBufferRegion_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawBufferRegion( params->region, params->x, params->y, params->width, params->height, params->xDest, params->yDest );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawBuffers( void *args )
+{
+    struct glDrawBuffers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawBuffers( params->n, params->bufs );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawBuffersARB( void *args )
+{
+    struct glDrawBuffersARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawBuffersARB( params->n, params->bufs );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawBuffersATI( void *args )
+{
+    struct glDrawBuffersATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawBuffersATI( params->n, params->bufs );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawCommandsAddressNV( void *args )
+{
+    struct glDrawCommandsAddressNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawCommandsAddressNV( params->primitiveMode, params->indirects, params->sizes, params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawCommandsNV( void *args )
+{
+    struct glDrawCommandsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawCommandsNV( params->primitiveMode, params->buffer, params->indirects, params->sizes, params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawCommandsStatesAddressNV( void *args )
+{
+    struct glDrawCommandsStatesAddressNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawCommandsStatesAddressNV( params->indirects, params->sizes, params->states, params->fbos, params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawCommandsStatesNV( void *args )
+{
+    struct glDrawCommandsStatesNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawCommandsStatesNV( params->buffer, params->indirects, params->sizes, params->states, params->fbos, params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawElementArrayAPPLE( void *args )
+{
+    struct glDrawElementArrayAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawElementArrayAPPLE( params->mode, params->first, params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawElementArrayATI( void *args )
+{
+    struct glDrawElementArrayATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawElementArrayATI( params->mode, params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawElementsBaseVertex( void *args )
+{
+    struct glDrawElementsBaseVertex_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawElementsBaseVertex( params->mode, params->count, params->type, params->indices, params->basevertex );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawElementsIndirect( void *args )
+{
+    struct glDrawElementsIndirect_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawElementsIndirect( params->mode, params->type, params->indirect );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawElementsInstanced( void *args )
+{
+    struct glDrawElementsInstanced_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawElementsInstanced( params->mode, params->count, params->type, params->indices, params->instancecount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawElementsInstancedARB( void *args )
+{
+    struct glDrawElementsInstancedARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawElementsInstancedARB( params->mode, params->count, params->type, params->indices, params->primcount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawElementsInstancedBaseInstance( void *args )
+{
+    struct glDrawElementsInstancedBaseInstance_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawElementsInstancedBaseInstance( params->mode, params->count, params->type, params->indices, params->instancecount, params->baseinstance );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawElementsInstancedBaseVertex( void *args )
+{
+    struct glDrawElementsInstancedBaseVertex_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawElementsInstancedBaseVertex( params->mode, params->count, params->type, params->indices, params->instancecount, params->basevertex );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawElementsInstancedBaseVertexBaseInstance( void *args )
+{
+    struct glDrawElementsInstancedBaseVertexBaseInstance_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawElementsInstancedBaseVertexBaseInstance( params->mode, params->count, params->type, params->indices, params->instancecount, params->basevertex, params->baseinstance );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawElementsInstancedEXT( void *args )
+{
+    struct glDrawElementsInstancedEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawElementsInstancedEXT( params->mode, params->count, params->type, params->indices, params->primcount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawMeshArraysSUN( void *args )
+{
+    struct glDrawMeshArraysSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawMeshArraysSUN( params->mode, params->first, params->count, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawMeshTasksIndirectNV( void *args )
+{
+    struct glDrawMeshTasksIndirectNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawMeshTasksIndirectNV( params->indirect );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawMeshTasksNV( void *args )
+{
+    struct glDrawMeshTasksNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawMeshTasksNV( params->first, params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawRangeElementArrayAPPLE( void *args )
+{
+    struct glDrawRangeElementArrayAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawRangeElementArrayAPPLE( params->mode, params->start, params->end, params->first, params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawRangeElementArrayATI( void *args )
+{
+    struct glDrawRangeElementArrayATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawRangeElementArrayATI( params->mode, params->start, params->end, params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawRangeElements( void *args )
+{
+    struct glDrawRangeElements_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawRangeElements( params->mode, params->start, params->end, params->count, params->type, params->indices );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawRangeElementsBaseVertex( void *args )
+{
+    struct glDrawRangeElementsBaseVertex_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawRangeElementsBaseVertex( params->mode, params->start, params->end, params->count, params->type, params->indices, params->basevertex );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawRangeElementsEXT( void *args )
+{
+    struct glDrawRangeElementsEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawRangeElementsEXT( params->mode, params->start, params->end, params->count, params->type, params->indices );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawTextureNV( void *args )
+{
+    struct glDrawTextureNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawTextureNV( params->texture, params->sampler, params->x0, params->y0, params->x1, params->y1, params->z, params->s0, params->t0, params->s1, params->t1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawTransformFeedback( void *args )
+{
+    struct glDrawTransformFeedback_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawTransformFeedback( params->mode, params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawTransformFeedbackInstanced( void *args )
+{
+    struct glDrawTransformFeedbackInstanced_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawTransformFeedbackInstanced( params->mode, params->id, params->instancecount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawTransformFeedbackNV( void *args )
+{
+    struct glDrawTransformFeedbackNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawTransformFeedbackNV( params->mode, params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawTransformFeedbackStream( void *args )
+{
+    struct glDrawTransformFeedbackStream_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawTransformFeedbackStream( params->mode, params->id, params->stream );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawTransformFeedbackStreamInstanced( void *args )
+{
+    struct glDrawTransformFeedbackStreamInstanced_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawTransformFeedbackStreamInstanced( params->mode, params->id, params->stream, params->instancecount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glDrawVkImageNV( void *args )
+{
+    struct glDrawVkImageNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glDrawVkImageNV( params->vkImage, params->sampler, params->x0, params->y0, params->x1, params->y1, params->z, params->s0, params->t0, params->s1, params->t1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEGLImageTargetTexStorageEXT( void *args )
+{
+    struct glEGLImageTargetTexStorageEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEGLImageTargetTexStorageEXT( params->target, params->image, params->attrib_list );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEGLImageTargetTextureStorageEXT( void *args )
+{
+    struct glEGLImageTargetTextureStorageEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEGLImageTargetTextureStorageEXT( params->texture, params->image, params->attrib_list );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEdgeFlagFormatNV( void *args )
+{
+    struct glEdgeFlagFormatNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEdgeFlagFormatNV( params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEdgeFlagPointerEXT( void *args )
+{
+    struct glEdgeFlagPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEdgeFlagPointerEXT( params->stride, params->count, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEdgeFlagPointerListIBM( void *args )
+{
+    struct glEdgeFlagPointerListIBM_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEdgeFlagPointerListIBM( params->stride, params->pointer, params->ptrstride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glElementPointerAPPLE( void *args )
+{
+    struct glElementPointerAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glElementPointerAPPLE( params->type, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glElementPointerATI( void *args )
+{
+    struct glElementPointerATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glElementPointerATI( params->type, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEnableClientStateIndexedEXT( void *args )
+{
+    struct glEnableClientStateIndexedEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEnableClientStateIndexedEXT( params->array, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEnableClientStateiEXT( void *args )
+{
+    struct glEnableClientStateiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEnableClientStateiEXT( params->array, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEnableIndexedEXT( void *args )
+{
+    struct glEnableIndexedEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEnableIndexedEXT( params->target, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEnableVariantClientStateEXT( void *args )
+{
+    struct glEnableVariantClientStateEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEnableVariantClientStateEXT( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEnableVertexArrayAttrib( void *args )
+{
+    struct glEnableVertexArrayAttrib_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEnableVertexArrayAttrib( params->vaobj, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEnableVertexArrayAttribEXT( void *args )
+{
+    struct glEnableVertexArrayAttribEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEnableVertexArrayAttribEXT( params->vaobj, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEnableVertexArrayEXT( void *args )
+{
+    struct glEnableVertexArrayEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEnableVertexArrayEXT( params->vaobj, params->array );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEnableVertexAttribAPPLE( void *args )
+{
+    struct glEnableVertexAttribAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEnableVertexAttribAPPLE( params->index, params->pname );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEnableVertexAttribArray( void *args )
+{
+    struct glEnableVertexAttribArray_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEnableVertexAttribArray( params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEnableVertexAttribArrayARB( void *args )
+{
+    struct glEnableVertexAttribArrayARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEnableVertexAttribArrayARB( params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEnablei( void *args )
+{
+    struct glEnablei_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEnablei( params->target, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndConditionalRender( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndConditionalRender();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndConditionalRenderNV( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndConditionalRenderNV();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndConditionalRenderNVX( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndConditionalRenderNVX();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndFragmentShaderATI( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndFragmentShaderATI();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndOcclusionQueryNV( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndOcclusionQueryNV();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndPerfMonitorAMD( void *args )
+{
+    struct glEndPerfMonitorAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndPerfMonitorAMD( params->monitor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndPerfQueryINTEL( void *args )
+{
+    struct glEndPerfQueryINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndPerfQueryINTEL( params->queryHandle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndQuery( void *args )
+{
+    struct glEndQuery_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndQuery( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndQueryARB( void *args )
+{
+    struct glEndQueryARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndQueryARB( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndQueryIndexed( void *args )
+{
+    struct glEndQueryIndexed_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndQueryIndexed( params->target, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndTransformFeedback( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndTransformFeedback();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndTransformFeedbackEXT( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndTransformFeedbackEXT();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndTransformFeedbackNV( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndTransformFeedbackNV();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndVertexShaderEXT( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndVertexShaderEXT();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEndVideoCaptureNV( void *args )
+{
+    struct glEndVideoCaptureNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEndVideoCaptureNV( params->video_capture_slot );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEvalCoord1xOES( void *args )
+{
+    struct glEvalCoord1xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEvalCoord1xOES( params->u );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEvalCoord1xvOES( void *args )
+{
+    struct glEvalCoord1xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEvalCoord1xvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEvalCoord2xOES( void *args )
+{
+    struct glEvalCoord2xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEvalCoord2xOES( params->u, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEvalCoord2xvOES( void *args )
+{
+    struct glEvalCoord2xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEvalCoord2xvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEvalMapsNV( void *args )
+{
+    struct glEvalMapsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEvalMapsNV( params->target, params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glEvaluateDepthValuesARB( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glEvaluateDepthValuesARB();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glExecuteProgramNV( void *args )
+{
+    struct glExecuteProgramNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glExecuteProgramNV( params->target, params->id, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glExtractComponentEXT( void *args )
+{
+    struct glExtractComponentEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glExtractComponentEXT( params->res, params->src, params->num );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFeedbackBufferxOES( void *args )
+{
+    struct glFeedbackBufferxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFeedbackBufferxOES( params->n, params->type, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFenceSync( void *args )
+{
+    struct glFenceSync_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glFenceSync( params->condition, params->flags );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFinalCombinerInputNV( void *args )
+{
+    struct glFinalCombinerInputNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFinalCombinerInputNV( params->variable, params->input, params->mapping, params->componentUsage );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFinishAsyncSGIX( void *args )
+{
+    struct glFinishAsyncSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glFinishAsyncSGIX( params->markerp );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFinishFenceAPPLE( void *args )
+{
+    struct glFinishFenceAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFinishFenceAPPLE( params->fence );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFinishFenceNV( void *args )
+{
+    struct glFinishFenceNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFinishFenceNV( params->fence );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFinishObjectAPPLE( void *args )
+{
+    struct glFinishObjectAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFinishObjectAPPLE( params->object, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFinishTextureSUNX( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFinishTextureSUNX();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFlushMappedBufferRange( void *args )
+{
+    struct glFlushMappedBufferRange_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFlushMappedBufferRange( params->target, params->offset, params->length );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFlushMappedBufferRangeAPPLE( void *args )
+{
+    struct glFlushMappedBufferRangeAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFlushMappedBufferRangeAPPLE( params->target, params->offset, params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFlushMappedNamedBufferRange( void *args )
+{
+    struct glFlushMappedNamedBufferRange_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFlushMappedNamedBufferRange( params->buffer, params->offset, params->length );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFlushMappedNamedBufferRangeEXT( void *args )
+{
+    struct glFlushMappedNamedBufferRangeEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFlushMappedNamedBufferRangeEXT( params->buffer, params->offset, params->length );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFlushPixelDataRangeNV( void *args )
+{
+    struct glFlushPixelDataRangeNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFlushPixelDataRangeNV( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFlushRasterSGIX( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFlushRasterSGIX();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFlushStaticDataIBM( void *args )
+{
+    struct glFlushStaticDataIBM_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFlushStaticDataIBM( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFlushVertexArrayRangeAPPLE( void *args )
+{
+    struct glFlushVertexArrayRangeAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFlushVertexArrayRangeAPPLE( params->length, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFlushVertexArrayRangeNV( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFlushVertexArrayRangeNV();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoordFormatNV( void *args )
+{
+    struct glFogCoordFormatNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoordFormatNV( params->type, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoordPointer( void *args )
+{
+    struct glFogCoordPointer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoordPointer( params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoordPointerEXT( void *args )
+{
+    struct glFogCoordPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoordPointerEXT( params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoordPointerListIBM( void *args )
+{
+    struct glFogCoordPointerListIBM_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoordPointerListIBM( params->type, params->stride, params->pointer, params->ptrstride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoordd( void *args )
+{
+    struct glFogCoordd_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoordd( params->coord );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoorddEXT( void *args )
+{
+    struct glFogCoorddEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoorddEXT( params->coord );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoorddv( void *args )
+{
+    struct glFogCoorddv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoorddv( params->coord );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoorddvEXT( void *args )
+{
+    struct glFogCoorddvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoorddvEXT( params->coord );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoordf( void *args )
+{
+    struct glFogCoordf_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoordf( params->coord );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoordfEXT( void *args )
+{
+    struct glFogCoordfEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoordfEXT( params->coord );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoordfv( void *args )
+{
+    struct glFogCoordfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoordfv( params->coord );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoordfvEXT( void *args )
+{
+    struct glFogCoordfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoordfvEXT( params->coord );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoordhNV( void *args )
+{
+    struct glFogCoordhNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoordhNV( params->fog );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogCoordhvNV( void *args )
+{
+    struct glFogCoordhvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogCoordhvNV( params->fog );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogFuncSGIS( void *args )
+{
+    struct glFogFuncSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogFuncSGIS( params->n, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogxOES( void *args )
+{
+    struct glFogxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogxOES( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFogxvOES( void *args )
+{
+    struct glFogxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFogxvOES( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentColorMaterialSGIX( void *args )
+{
+    struct glFragmentColorMaterialSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentColorMaterialSGIX( params->face, params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentCoverageColorNV( void *args )
+{
+    struct glFragmentCoverageColorNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentCoverageColorNV( params->color );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentLightModelfSGIX( void *args )
+{
+    struct glFragmentLightModelfSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentLightModelfSGIX( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentLightModelfvSGIX( void *args )
+{
+    struct glFragmentLightModelfvSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentLightModelfvSGIX( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentLightModeliSGIX( void *args )
+{
+    struct glFragmentLightModeliSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentLightModeliSGIX( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentLightModelivSGIX( void *args )
+{
+    struct glFragmentLightModelivSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentLightModelivSGIX( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentLightfSGIX( void *args )
+{
+    struct glFragmentLightfSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentLightfSGIX( params->light, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentLightfvSGIX( void *args )
+{
+    struct glFragmentLightfvSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentLightfvSGIX( params->light, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentLightiSGIX( void *args )
+{
+    struct glFragmentLightiSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentLightiSGIX( params->light, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentLightivSGIX( void *args )
+{
+    struct glFragmentLightivSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentLightivSGIX( params->light, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentMaterialfSGIX( void *args )
+{
+    struct glFragmentMaterialfSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentMaterialfSGIX( params->face, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentMaterialfvSGIX( void *args )
+{
+    struct glFragmentMaterialfvSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentMaterialfvSGIX( params->face, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentMaterialiSGIX( void *args )
+{
+    struct glFragmentMaterialiSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentMaterialiSGIX( params->face, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFragmentMaterialivSGIX( void *args )
+{
+    struct glFragmentMaterialivSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFragmentMaterialivSGIX( params->face, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFrameTerminatorGREMEDY( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFrameTerminatorGREMEDY();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFrameZoomSGIX( void *args )
+{
+    struct glFrameZoomSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFrameZoomSGIX( params->factor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferDrawBufferEXT( void *args )
+{
+    struct glFramebufferDrawBufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferDrawBufferEXT( params->framebuffer, params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferDrawBuffersEXT( void *args )
+{
+    struct glFramebufferDrawBuffersEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferDrawBuffersEXT( params->framebuffer, params->n, params->bufs );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferFetchBarrierEXT( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferFetchBarrierEXT();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferParameteri( void *args )
+{
+    struct glFramebufferParameteri_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferParameteri( params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferParameteriMESA( void *args )
+{
+    struct glFramebufferParameteriMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferParameteriMESA( params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferReadBufferEXT( void *args )
+{
+    struct glFramebufferReadBufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferReadBufferEXT( params->framebuffer, params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferRenderbuffer( void *args )
+{
+    struct glFramebufferRenderbuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferRenderbuffer( params->target, params->attachment, params->renderbuffertarget, params->renderbuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferRenderbufferEXT( void *args )
+{
+    struct glFramebufferRenderbufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferRenderbufferEXT( params->target, params->attachment, params->renderbuffertarget, params->renderbuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferSampleLocationsfvARB( void *args )
+{
+    struct glFramebufferSampleLocationsfvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferSampleLocationsfvARB( params->target, params->start, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferSampleLocationsfvNV( void *args )
+{
+    struct glFramebufferSampleLocationsfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferSampleLocationsfvNV( params->target, params->start, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferSamplePositionsfvAMD( void *args )
+{
+    struct glFramebufferSamplePositionsfvAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferSamplePositionsfvAMD( params->target, params->numsamples, params->pixelindex, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTexture( void *args )
+{
+    struct glFramebufferTexture_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTexture( params->target, params->attachment, params->texture, params->level );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTexture1D( void *args )
+{
+    struct glFramebufferTexture1D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTexture1D( params->target, params->attachment, params->textarget, params->texture, params->level );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTexture1DEXT( void *args )
+{
+    struct glFramebufferTexture1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTexture1DEXT( params->target, params->attachment, params->textarget, params->texture, params->level );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTexture2D( void *args )
+{
+    struct glFramebufferTexture2D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTexture2D( params->target, params->attachment, params->textarget, params->texture, params->level );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTexture2DEXT( void *args )
+{
+    struct glFramebufferTexture2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTexture2DEXT( params->target, params->attachment, params->textarget, params->texture, params->level );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTexture3D( void *args )
+{
+    struct glFramebufferTexture3D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTexture3D( params->target, params->attachment, params->textarget, params->texture, params->level, params->zoffset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTexture3DEXT( void *args )
+{
+    struct glFramebufferTexture3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTexture3DEXT( params->target, params->attachment, params->textarget, params->texture, params->level, params->zoffset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTextureARB( void *args )
+{
+    struct glFramebufferTextureARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTextureARB( params->target, params->attachment, params->texture, params->level );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTextureEXT( void *args )
+{
+    struct glFramebufferTextureEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTextureEXT( params->target, params->attachment, params->texture, params->level );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTextureFaceARB( void *args )
+{
+    struct glFramebufferTextureFaceARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTextureFaceARB( params->target, params->attachment, params->texture, params->level, params->face );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTextureFaceEXT( void *args )
+{
+    struct glFramebufferTextureFaceEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTextureFaceEXT( params->target, params->attachment, params->texture, params->level, params->face );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTextureLayer( void *args )
+{
+    struct glFramebufferTextureLayer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTextureLayer( params->target, params->attachment, params->texture, params->level, params->layer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTextureLayerARB( void *args )
+{
+    struct glFramebufferTextureLayerARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTextureLayerARB( params->target, params->attachment, params->texture, params->level, params->layer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTextureLayerEXT( void *args )
+{
+    struct glFramebufferTextureLayerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTextureLayerEXT( params->target, params->attachment, params->texture, params->level, params->layer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFramebufferTextureMultiviewOVR( void *args )
+{
+    struct glFramebufferTextureMultiviewOVR_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFramebufferTextureMultiviewOVR( params->target, params->attachment, params->texture, params->level, params->baseViewIndex, params->numViews );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFreeObjectBufferATI( void *args )
+{
+    struct glFreeObjectBufferATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFreeObjectBufferATI( params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFrustumfOES( void *args )
+{
+    struct glFrustumfOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFrustumfOES( params->l, params->r, params->b, params->t, params->n, params->f );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glFrustumxOES( void *args )
+{
+    struct glFrustumxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glFrustumxOES( params->l, params->r, params->b, params->t, params->n, params->f );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenAsyncMarkersSGIX( void *args )
+{
+    struct glGenAsyncMarkersSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGenAsyncMarkersSGIX( params->range );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenBuffers( void *args )
+{
+    struct glGenBuffers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenBuffers( params->n, params->buffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenBuffersARB( void *args )
+{
+    struct glGenBuffersARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenBuffersARB( params->n, params->buffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenFencesAPPLE( void *args )
+{
+    struct glGenFencesAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenFencesAPPLE( params->n, params->fences );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenFencesNV( void *args )
+{
+    struct glGenFencesNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenFencesNV( params->n, params->fences );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenFragmentShadersATI( void *args )
+{
+    struct glGenFragmentShadersATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGenFragmentShadersATI( params->range );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenFramebuffers( void *args )
+{
+    struct glGenFramebuffers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenFramebuffers( params->n, params->framebuffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenFramebuffersEXT( void *args )
+{
+    struct glGenFramebuffersEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenFramebuffersEXT( params->n, params->framebuffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenNamesAMD( void *args )
+{
+    struct glGenNamesAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenNamesAMD( params->identifier, params->num, params->names );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenOcclusionQueriesNV( void *args )
+{
+    struct glGenOcclusionQueriesNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenOcclusionQueriesNV( params->n, params->ids );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenPathsNV( void *args )
+{
+    struct glGenPathsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGenPathsNV( params->range );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenPerfMonitorsAMD( void *args )
+{
+    struct glGenPerfMonitorsAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenPerfMonitorsAMD( params->n, params->monitors );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenProgramPipelines( void *args )
+{
+    struct glGenProgramPipelines_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenProgramPipelines( params->n, params->pipelines );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenProgramsARB( void *args )
+{
+    struct glGenProgramsARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenProgramsARB( params->n, params->programs );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenProgramsNV( void *args )
+{
+    struct glGenProgramsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenProgramsNV( params->n, params->programs );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenQueries( void *args )
+{
+    struct glGenQueries_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenQueries( params->n, params->ids );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenQueriesARB( void *args )
+{
+    struct glGenQueriesARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenQueriesARB( params->n, params->ids );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenQueryResourceTagNV( void *args )
+{
+    struct glGenQueryResourceTagNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenQueryResourceTagNV( params->n, params->tagIds );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenRenderbuffers( void *args )
+{
+    struct glGenRenderbuffers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenRenderbuffers( params->n, params->renderbuffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenRenderbuffersEXT( void *args )
+{
+    struct glGenRenderbuffersEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenRenderbuffersEXT( params->n, params->renderbuffers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenSamplers( void *args )
+{
+    struct glGenSamplers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenSamplers( params->count, params->samplers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenSemaphoresEXT( void *args )
+{
+    struct glGenSemaphoresEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenSemaphoresEXT( params->n, params->semaphores );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenSymbolsEXT( void *args )
+{
+    struct glGenSymbolsEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGenSymbolsEXT( params->datatype, params->storagetype, params->range, params->components );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenTexturesEXT( void *args )
+{
+    struct glGenTexturesEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenTexturesEXT( params->n, params->textures );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenTransformFeedbacks( void *args )
+{
+    struct glGenTransformFeedbacks_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenTransformFeedbacks( params->n, params->ids );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenTransformFeedbacksNV( void *args )
+{
+    struct glGenTransformFeedbacksNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenTransformFeedbacksNV( params->n, params->ids );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenVertexArrays( void *args )
+{
+    struct glGenVertexArrays_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenVertexArrays( params->n, params->arrays );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenVertexArraysAPPLE( void *args )
+{
+    struct glGenVertexArraysAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenVertexArraysAPPLE( params->n, params->arrays );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenVertexShadersEXT( void *args )
+{
+    struct glGenVertexShadersEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGenVertexShadersEXT( params->range );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenerateMipmap( void *args )
+{
+    struct glGenerateMipmap_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenerateMipmap( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenerateMipmapEXT( void *args )
+{
+    struct glGenerateMipmapEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenerateMipmapEXT( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenerateMultiTexMipmapEXT( void *args )
+{
+    struct glGenerateMultiTexMipmapEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenerateMultiTexMipmapEXT( params->texunit, params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenerateTextureMipmap( void *args )
+{
+    struct glGenerateTextureMipmap_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenerateTextureMipmap( params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGenerateTextureMipmapEXT( void *args )
+{
+    struct glGenerateTextureMipmapEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGenerateTextureMipmapEXT( params->texture, params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetActiveAtomicCounterBufferiv( void *args )
+{
+    struct glGetActiveAtomicCounterBufferiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetActiveAtomicCounterBufferiv( params->program, params->bufferIndex, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetActiveAttrib( void *args )
+{
+    struct glGetActiveAttrib_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetActiveAttrib( params->program, params->index, params->bufSize, params->length, params->size, params->type, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetActiveAttribARB( void *args )
+{
+    struct glGetActiveAttribARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetActiveAttribARB( params->programObj, params->index, params->maxLength, params->length, params->size, params->type, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetActiveSubroutineName( void *args )
+{
+    struct glGetActiveSubroutineName_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetActiveSubroutineName( params->program, params->shadertype, params->index, params->bufSize, params->length, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetActiveSubroutineUniformName( void *args )
+{
+    struct glGetActiveSubroutineUniformName_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetActiveSubroutineUniformName( params->program, params->shadertype, params->index, params->bufSize, params->length, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetActiveSubroutineUniformiv( void *args )
+{
+    struct glGetActiveSubroutineUniformiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetActiveSubroutineUniformiv( params->program, params->shadertype, params->index, params->pname, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetActiveUniform( void *args )
+{
+    struct glGetActiveUniform_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetActiveUniform( params->program, params->index, params->bufSize, params->length, params->size, params->type, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetActiveUniformARB( void *args )
+{
+    struct glGetActiveUniformARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetActiveUniformARB( params->programObj, params->index, params->maxLength, params->length, params->size, params->type, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetActiveUniformBlockName( void *args )
+{
+    struct glGetActiveUniformBlockName_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetActiveUniformBlockName( params->program, params->uniformBlockIndex, params->bufSize, params->length, params->uniformBlockName );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetActiveUniformBlockiv( void *args )
+{
+    struct glGetActiveUniformBlockiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetActiveUniformBlockiv( params->program, params->uniformBlockIndex, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetActiveUniformName( void *args )
+{
+    struct glGetActiveUniformName_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetActiveUniformName( params->program, params->uniformIndex, params->bufSize, params->length, params->uniformName );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetActiveUniformsiv( void *args )
+{
+    struct glGetActiveUniformsiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetActiveUniformsiv( params->program, params->uniformCount, params->uniformIndices, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetActiveVaryingNV( void *args )
+{
+    struct glGetActiveVaryingNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetActiveVaryingNV( params->program, params->index, params->bufSize, params->length, params->size, params->type, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetArrayObjectfvATI( void *args )
+{
+    struct glGetArrayObjectfvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetArrayObjectfvATI( params->array, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetArrayObjectivATI( void *args )
+{
+    struct glGetArrayObjectivATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetArrayObjectivATI( params->array, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetAttachedObjectsARB( void *args )
+{
+    struct glGetAttachedObjectsARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetAttachedObjectsARB( params->containerObj, params->maxCount, params->count, params->obj );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetAttachedShaders( void *args )
+{
+    struct glGetAttachedShaders_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetAttachedShaders( params->program, params->maxCount, params->count, params->shaders );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetAttribLocation( void *args )
+{
+    struct glGetAttribLocation_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetAttribLocation( params->program, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetAttribLocationARB( void *args )
+{
+    struct glGetAttribLocationARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetAttribLocationARB( params->programObj, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetBooleanIndexedvEXT( void *args )
+{
+    struct glGetBooleanIndexedvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetBooleanIndexedvEXT( params->target, params->index, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetBooleani_v( void *args )
+{
+    struct glGetBooleani_v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetBooleani_v( params->target, params->index, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetBufferParameteri64v( void *args )
+{
+    struct glGetBufferParameteri64v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetBufferParameteri64v( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetBufferParameteriv( void *args )
+{
+    struct glGetBufferParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetBufferParameteriv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetBufferParameterivARB( void *args )
+{
+    struct glGetBufferParameterivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetBufferParameterivARB( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetBufferParameterui64vNV( void *args )
+{
+    struct glGetBufferParameterui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetBufferParameterui64vNV( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetBufferPointerv( void *args )
+{
+    struct glGetBufferPointerv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetBufferPointerv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetBufferPointervARB( void *args )
+{
+    struct glGetBufferPointervARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetBufferPointervARB( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetBufferSubData( void *args )
+{
+    struct glGetBufferSubData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetBufferSubData( params->target, params->offset, params->size, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetBufferSubDataARB( void *args )
+{
+    struct glGetBufferSubDataARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetBufferSubDataARB( params->target, params->offset, params->size, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetClipPlanefOES( void *args )
+{
+    struct glGetClipPlanefOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetClipPlanefOES( params->plane, params->equation );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetClipPlanexOES( void *args )
+{
+    struct glGetClipPlanexOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetClipPlanexOES( params->plane, params->equation );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetColorTable( void *args )
+{
+    struct glGetColorTable_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetColorTable( params->target, params->format, params->type, params->table );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetColorTableEXT( void *args )
+{
+    struct glGetColorTableEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetColorTableEXT( params->target, params->format, params->type, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetColorTableParameterfv( void *args )
+{
+    struct glGetColorTableParameterfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetColorTableParameterfv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetColorTableParameterfvEXT( void *args )
+{
+    struct glGetColorTableParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetColorTableParameterfvEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetColorTableParameterfvSGI( void *args )
+{
+    struct glGetColorTableParameterfvSGI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetColorTableParameterfvSGI( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetColorTableParameteriv( void *args )
+{
+    struct glGetColorTableParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetColorTableParameteriv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetColorTableParameterivEXT( void *args )
+{
+    struct glGetColorTableParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetColorTableParameterivEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetColorTableParameterivSGI( void *args )
+{
+    struct glGetColorTableParameterivSGI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetColorTableParameterivSGI( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetColorTableSGI( void *args )
+{
+    struct glGetColorTableSGI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetColorTableSGI( params->target, params->format, params->type, params->table );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetCombinerInputParameterfvNV( void *args )
+{
+    struct glGetCombinerInputParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetCombinerInputParameterfvNV( params->stage, params->portion, params->variable, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetCombinerInputParameterivNV( void *args )
+{
+    struct glGetCombinerInputParameterivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetCombinerInputParameterivNV( params->stage, params->portion, params->variable, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetCombinerOutputParameterfvNV( void *args )
+{
+    struct glGetCombinerOutputParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetCombinerOutputParameterfvNV( params->stage, params->portion, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetCombinerOutputParameterivNV( void *args )
+{
+    struct glGetCombinerOutputParameterivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetCombinerOutputParameterivNV( params->stage, params->portion, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetCombinerStageParameterfvNV( void *args )
+{
+    struct glGetCombinerStageParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetCombinerStageParameterfvNV( params->stage, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetCommandHeaderNV( void *args )
+{
+    struct glGetCommandHeaderNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetCommandHeaderNV( params->tokenID, params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetCompressedMultiTexImageEXT( void *args )
+{
+    struct glGetCompressedMultiTexImageEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetCompressedMultiTexImageEXT( params->texunit, params->target, params->lod, params->img );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetCompressedTexImage( void *args )
+{
+    struct glGetCompressedTexImage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetCompressedTexImage( params->target, params->level, params->img );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetCompressedTexImageARB( void *args )
+{
+    struct glGetCompressedTexImageARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetCompressedTexImageARB( params->target, params->level, params->img );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetCompressedTextureImage( void *args )
+{
+    struct glGetCompressedTextureImage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetCompressedTextureImage( params->texture, params->level, params->bufSize, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetCompressedTextureImageEXT( void *args )
+{
+    struct glGetCompressedTextureImageEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetCompressedTextureImageEXT( params->texture, params->target, params->lod, params->img );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetCompressedTextureSubImage( void *args )
+{
+    struct glGetCompressedTextureSubImage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetCompressedTextureSubImage( params->texture, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->bufSize, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetConvolutionFilter( void *args )
+{
+    struct glGetConvolutionFilter_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetConvolutionFilter( params->target, params->format, params->type, params->image );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetConvolutionFilterEXT( void *args )
+{
+    struct glGetConvolutionFilterEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetConvolutionFilterEXT( params->target, params->format, params->type, params->image );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetConvolutionParameterfv( void *args )
+{
+    struct glGetConvolutionParameterfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetConvolutionParameterfv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetConvolutionParameterfvEXT( void *args )
+{
+    struct glGetConvolutionParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetConvolutionParameterfvEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetConvolutionParameteriv( void *args )
+{
+    struct glGetConvolutionParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetConvolutionParameteriv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetConvolutionParameterivEXT( void *args )
+{
+    struct glGetConvolutionParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetConvolutionParameterivEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetConvolutionParameterxvOES( void *args )
+{
+    struct glGetConvolutionParameterxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetConvolutionParameterxvOES( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetCoverageModulationTableNV( void *args )
+{
+    struct glGetCoverageModulationTableNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetCoverageModulationTableNV( params->bufSize, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetDebugMessageLog( void *args )
+{
+    struct glGetDebugMessageLog_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetDebugMessageLog( params->count, params->bufSize, params->sources, params->types, params->ids, params->severities, params->lengths, params->messageLog );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetDebugMessageLogAMD( void *args )
+{
+    struct glGetDebugMessageLogAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetDebugMessageLogAMD( params->count, params->bufSize, params->categories, params->severities, params->ids, params->lengths, params->message );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetDebugMessageLogARB( void *args )
+{
+    struct glGetDebugMessageLogARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetDebugMessageLogARB( params->count, params->bufSize, params->sources, params->types, params->ids, params->severities, params->lengths, params->messageLog );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetDetailTexFuncSGIS( void *args )
+{
+    struct glGetDetailTexFuncSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetDetailTexFuncSGIS( params->target, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetDoubleIndexedvEXT( void *args )
+{
+    struct glGetDoubleIndexedvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetDoubleIndexedvEXT( params->target, params->index, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetDoublei_v( void *args )
+{
+    struct glGetDoublei_v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetDoublei_v( params->target, params->index, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetDoublei_vEXT( void *args )
+{
+    struct glGetDoublei_vEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetDoublei_vEXT( params->pname, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFenceivNV( void *args )
+{
+    struct glGetFenceivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFenceivNV( params->fence, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFinalCombinerInputParameterfvNV( void *args )
+{
+    struct glGetFinalCombinerInputParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFinalCombinerInputParameterfvNV( params->variable, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFinalCombinerInputParameterivNV( void *args )
+{
+    struct glGetFinalCombinerInputParameterivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFinalCombinerInputParameterivNV( params->variable, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFirstPerfQueryIdINTEL( void *args )
+{
+    struct glGetFirstPerfQueryIdINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFirstPerfQueryIdINTEL( params->queryId );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFixedvOES( void *args )
+{
+    struct glGetFixedvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFixedvOES( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFloatIndexedvEXT( void *args )
+{
+    struct glGetFloatIndexedvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFloatIndexedvEXT( params->target, params->index, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFloati_v( void *args )
+{
+    struct glGetFloati_v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFloati_v( params->target, params->index, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFloati_vEXT( void *args )
+{
+    struct glGetFloati_vEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFloati_vEXT( params->pname, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFogFuncSGIS( void *args )
+{
+    struct glGetFogFuncSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFogFuncSGIS( params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFragDataIndex( void *args )
+{
+    struct glGetFragDataIndex_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetFragDataIndex( params->program, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFragDataLocation( void *args )
+{
+    struct glGetFragDataLocation_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetFragDataLocation( params->program, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFragDataLocationEXT( void *args )
+{
+    struct glGetFragDataLocationEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetFragDataLocationEXT( params->program, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFragmentLightfvSGIX( void *args )
+{
+    struct glGetFragmentLightfvSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFragmentLightfvSGIX( params->light, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFragmentLightivSGIX( void *args )
+{
+    struct glGetFragmentLightivSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFragmentLightivSGIX( params->light, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFragmentMaterialfvSGIX( void *args )
+{
+    struct glGetFragmentMaterialfvSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFragmentMaterialfvSGIX( params->face, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFragmentMaterialivSGIX( void *args )
+{
+    struct glGetFragmentMaterialivSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFragmentMaterialivSGIX( params->face, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFramebufferAttachmentParameteriv( void *args )
+{
+    struct glGetFramebufferAttachmentParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFramebufferAttachmentParameteriv( params->target, params->attachment, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFramebufferAttachmentParameterivEXT( void *args )
+{
+    struct glGetFramebufferAttachmentParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFramebufferAttachmentParameterivEXT( params->target, params->attachment, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFramebufferParameterfvAMD( void *args )
+{
+    struct glGetFramebufferParameterfvAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFramebufferParameterfvAMD( params->target, params->pname, params->numsamples, params->pixelindex, params->size, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFramebufferParameteriv( void *args )
+{
+    struct glGetFramebufferParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFramebufferParameteriv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFramebufferParameterivEXT( void *args )
+{
+    struct glGetFramebufferParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFramebufferParameterivEXT( params->framebuffer, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetFramebufferParameterivMESA( void *args )
+{
+    struct glGetFramebufferParameterivMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetFramebufferParameterivMESA( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetGraphicsResetStatus( void *args )
+{
+    struct glGetGraphicsResetStatus_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetGraphicsResetStatus();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetGraphicsResetStatusARB( void *args )
+{
+    struct glGetGraphicsResetStatusARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetGraphicsResetStatusARB();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetHandleARB( void *args )
+{
+    struct glGetHandleARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetHandleARB( params->pname );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetHistogram( void *args )
+{
+    struct glGetHistogram_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetHistogram( params->target, params->reset, params->format, params->type, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetHistogramEXT( void *args )
+{
+    struct glGetHistogramEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetHistogramEXT( params->target, params->reset, params->format, params->type, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetHistogramParameterfv( void *args )
+{
+    struct glGetHistogramParameterfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetHistogramParameterfv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetHistogramParameterfvEXT( void *args )
+{
+    struct glGetHistogramParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetHistogramParameterfvEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetHistogramParameteriv( void *args )
+{
+    struct glGetHistogramParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetHistogramParameteriv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetHistogramParameterivEXT( void *args )
+{
+    struct glGetHistogramParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetHistogramParameterivEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetHistogramParameterxvOES( void *args )
+{
+    struct glGetHistogramParameterxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetHistogramParameterxvOES( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetImageHandleARB( void *args )
+{
+    struct glGetImageHandleARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetImageHandleARB( params->texture, params->level, params->layered, params->layer, params->format );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetImageHandleNV( void *args )
+{
+    struct glGetImageHandleNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetImageHandleNV( params->texture, params->level, params->layered, params->layer, params->format );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetImageTransformParameterfvHP( void *args )
+{
+    struct glGetImageTransformParameterfvHP_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetImageTransformParameterfvHP( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetImageTransformParameterivHP( void *args )
+{
+    struct glGetImageTransformParameterivHP_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetImageTransformParameterivHP( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetInfoLogARB( void *args )
+{
+    struct glGetInfoLogARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetInfoLogARB( params->obj, params->maxLength, params->length, params->infoLog );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetInstrumentsSGIX( void *args )
+{
+    struct glGetInstrumentsSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetInstrumentsSGIX();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetInteger64i_v( void *args )
+{
+    struct glGetInteger64i_v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetInteger64i_v( params->target, params->index, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetInteger64v( void *args )
+{
+    struct glGetInteger64v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetInteger64v( params->pname, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetIntegerIndexedvEXT( void *args )
+{
+    struct glGetIntegerIndexedvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetIntegerIndexedvEXT( params->target, params->index, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetIntegeri_v( void *args )
+{
+    struct glGetIntegeri_v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetIntegeri_v( params->target, params->index, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetIntegerui64i_vNV( void *args )
+{
+    struct glGetIntegerui64i_vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetIntegerui64i_vNV( params->value, params->index, params->result );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetIntegerui64vNV( void *args )
+{
+    struct glGetIntegerui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetIntegerui64vNV( params->value, params->result );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetInternalformatSampleivNV( void *args )
+{
+    struct glGetInternalformatSampleivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetInternalformatSampleivNV( params->target, params->internalformat, params->samples, params->pname, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetInternalformati64v( void *args )
+{
+    struct glGetInternalformati64v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetInternalformati64v( params->target, params->internalformat, params->pname, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetInternalformativ( void *args )
+{
+    struct glGetInternalformativ_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetInternalformativ( params->target, params->internalformat, params->pname, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetInvariantBooleanvEXT( void *args )
+{
+    struct glGetInvariantBooleanvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetInvariantBooleanvEXT( params->id, params->value, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetInvariantFloatvEXT( void *args )
+{
+    struct glGetInvariantFloatvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetInvariantFloatvEXT( params->id, params->value, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetInvariantIntegervEXT( void *args )
+{
+    struct glGetInvariantIntegervEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetInvariantIntegervEXT( params->id, params->value, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetLightxOES( void *args )
+{
+    struct glGetLightxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetLightxOES( params->light, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetListParameterfvSGIX( void *args )
+{
+    struct glGetListParameterfvSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetListParameterfvSGIX( params->list, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetListParameterivSGIX( void *args )
+{
+    struct glGetListParameterivSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetListParameterivSGIX( params->list, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetLocalConstantBooleanvEXT( void *args )
+{
+    struct glGetLocalConstantBooleanvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetLocalConstantBooleanvEXT( params->id, params->value, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetLocalConstantFloatvEXT( void *args )
+{
+    struct glGetLocalConstantFloatvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetLocalConstantFloatvEXT( params->id, params->value, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetLocalConstantIntegervEXT( void *args )
+{
+    struct glGetLocalConstantIntegervEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetLocalConstantIntegervEXT( params->id, params->value, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMapAttribParameterfvNV( void *args )
+{
+    struct glGetMapAttribParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMapAttribParameterfvNV( params->target, params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMapAttribParameterivNV( void *args )
+{
+    struct glGetMapAttribParameterivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMapAttribParameterivNV( params->target, params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMapControlPointsNV( void *args )
+{
+    struct glGetMapControlPointsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMapControlPointsNV( params->target, params->index, params->type, params->ustride, params->vstride, params->packed, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMapParameterfvNV( void *args )
+{
+    struct glGetMapParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMapParameterfvNV( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMapParameterivNV( void *args )
+{
+    struct glGetMapParameterivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMapParameterivNV( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMapxvOES( void *args )
+{
+    struct glGetMapxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMapxvOES( params->target, params->query, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMaterialxOES( void *args )
+{
+    struct glGetMaterialxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMaterialxOES( params->face, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMemoryObjectDetachedResourcesuivNV( void *args )
+{
+    struct glGetMemoryObjectDetachedResourcesuivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMemoryObjectDetachedResourcesuivNV( params->memory, params->pname, params->first, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMemoryObjectParameterivEXT( void *args )
+{
+    struct glGetMemoryObjectParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMemoryObjectParameterivEXT( params->memoryObject, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMinmax( void *args )
+{
+    struct glGetMinmax_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMinmax( params->target, params->reset, params->format, params->type, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMinmaxEXT( void *args )
+{
+    struct glGetMinmaxEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMinmaxEXT( params->target, params->reset, params->format, params->type, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMinmaxParameterfv( void *args )
+{
+    struct glGetMinmaxParameterfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMinmaxParameterfv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMinmaxParameterfvEXT( void *args )
+{
+    struct glGetMinmaxParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMinmaxParameterfvEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMinmaxParameteriv( void *args )
+{
+    struct glGetMinmaxParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMinmaxParameteriv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMinmaxParameterivEXT( void *args )
+{
+    struct glGetMinmaxParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMinmaxParameterivEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultiTexEnvfvEXT( void *args )
+{
+    struct glGetMultiTexEnvfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultiTexEnvfvEXT( params->texunit, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultiTexEnvivEXT( void *args )
+{
+    struct glGetMultiTexEnvivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultiTexEnvivEXT( params->texunit, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultiTexGendvEXT( void *args )
+{
+    struct glGetMultiTexGendvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultiTexGendvEXT( params->texunit, params->coord, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultiTexGenfvEXT( void *args )
+{
+    struct glGetMultiTexGenfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultiTexGenfvEXT( params->texunit, params->coord, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultiTexGenivEXT( void *args )
+{
+    struct glGetMultiTexGenivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultiTexGenivEXT( params->texunit, params->coord, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultiTexImageEXT( void *args )
+{
+    struct glGetMultiTexImageEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultiTexImageEXT( params->texunit, params->target, params->level, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultiTexLevelParameterfvEXT( void *args )
+{
+    struct glGetMultiTexLevelParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultiTexLevelParameterfvEXT( params->texunit, params->target, params->level, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultiTexLevelParameterivEXT( void *args )
+{
+    struct glGetMultiTexLevelParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultiTexLevelParameterivEXT( params->texunit, params->target, params->level, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultiTexParameterIivEXT( void *args )
+{
+    struct glGetMultiTexParameterIivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultiTexParameterIivEXT( params->texunit, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultiTexParameterIuivEXT( void *args )
+{
+    struct glGetMultiTexParameterIuivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultiTexParameterIuivEXT( params->texunit, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultiTexParameterfvEXT( void *args )
+{
+    struct glGetMultiTexParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultiTexParameterfvEXT( params->texunit, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultiTexParameterivEXT( void *args )
+{
+    struct glGetMultiTexParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultiTexParameterivEXT( params->texunit, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultisamplefv( void *args )
+{
+    struct glGetMultisamplefv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultisamplefv( params->pname, params->index, params->val );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetMultisamplefvNV( void *args )
+{
+    struct glGetMultisamplefvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetMultisamplefvNV( params->pname, params->index, params->val );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedBufferParameteri64v( void *args )
+{
+    struct glGetNamedBufferParameteri64v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedBufferParameteri64v( params->buffer, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedBufferParameteriv( void *args )
+{
+    struct glGetNamedBufferParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedBufferParameteriv( params->buffer, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedBufferParameterivEXT( void *args )
+{
+    struct glGetNamedBufferParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedBufferParameterivEXT( params->buffer, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedBufferParameterui64vNV( void *args )
+{
+    struct glGetNamedBufferParameterui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedBufferParameterui64vNV( params->buffer, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedBufferPointerv( void *args )
+{
+    struct glGetNamedBufferPointerv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedBufferPointerv( params->buffer, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedBufferPointervEXT( void *args )
+{
+    struct glGetNamedBufferPointervEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedBufferPointervEXT( params->buffer, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedBufferSubData( void *args )
+{
+    struct glGetNamedBufferSubData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedBufferSubData( params->buffer, params->offset, params->size, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedBufferSubDataEXT( void *args )
+{
+    struct glGetNamedBufferSubDataEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedBufferSubDataEXT( params->buffer, params->offset, params->size, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedFramebufferAttachmentParameteriv( void *args )
+{
+    struct glGetNamedFramebufferAttachmentParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedFramebufferAttachmentParameteriv( params->framebuffer, params->attachment, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedFramebufferAttachmentParameterivEXT( void *args )
+{
+    struct glGetNamedFramebufferAttachmentParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedFramebufferAttachmentParameterivEXT( params->framebuffer, params->attachment, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedFramebufferParameterfvAMD( void *args )
+{
+    struct glGetNamedFramebufferParameterfvAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedFramebufferParameterfvAMD( params->framebuffer, params->pname, params->numsamples, params->pixelindex, params->size, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedFramebufferParameteriv( void *args )
+{
+    struct glGetNamedFramebufferParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedFramebufferParameteriv( params->framebuffer, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedFramebufferParameterivEXT( void *args )
+{
+    struct glGetNamedFramebufferParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedFramebufferParameterivEXT( params->framebuffer, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedProgramLocalParameterIivEXT( void *args )
+{
+    struct glGetNamedProgramLocalParameterIivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedProgramLocalParameterIivEXT( params->program, params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedProgramLocalParameterIuivEXT( void *args )
+{
+    struct glGetNamedProgramLocalParameterIuivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedProgramLocalParameterIuivEXT( params->program, params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedProgramLocalParameterdvEXT( void *args )
+{
+    struct glGetNamedProgramLocalParameterdvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedProgramLocalParameterdvEXT( params->program, params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedProgramLocalParameterfvEXT( void *args )
+{
+    struct glGetNamedProgramLocalParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedProgramLocalParameterfvEXT( params->program, params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedProgramStringEXT( void *args )
+{
+    struct glGetNamedProgramStringEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedProgramStringEXT( params->program, params->target, params->pname, params->string );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedProgramivEXT( void *args )
+{
+    struct glGetNamedProgramivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedProgramivEXT( params->program, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedRenderbufferParameteriv( void *args )
+{
+    struct glGetNamedRenderbufferParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedRenderbufferParameteriv( params->renderbuffer, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedRenderbufferParameterivEXT( void *args )
+{
+    struct glGetNamedRenderbufferParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedRenderbufferParameterivEXT( params->renderbuffer, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedStringARB( void *args )
+{
+    struct glGetNamedStringARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedStringARB( params->namelen, params->name, params->bufSize, params->stringlen, params->string );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNamedStringivARB( void *args )
+{
+    struct glGetNamedStringivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNamedStringivARB( params->namelen, params->name, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetNextPerfQueryIdINTEL( void *args )
+{
+    struct glGetNextPerfQueryIdINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetNextPerfQueryIdINTEL( params->queryId, params->nextQueryId );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetObjectBufferfvATI( void *args )
+{
+    struct glGetObjectBufferfvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetObjectBufferfvATI( params->buffer, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetObjectBufferivATI( void *args )
+{
+    struct glGetObjectBufferivATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetObjectBufferivATI( params->buffer, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetObjectLabel( void *args )
+{
+    struct glGetObjectLabel_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetObjectLabel( params->identifier, params->name, params->bufSize, params->length, params->label );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetObjectLabelEXT( void *args )
+{
+    struct glGetObjectLabelEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetObjectLabelEXT( params->type, params->object, params->bufSize, params->length, params->label );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetObjectParameterfvARB( void *args )
+{
+    struct glGetObjectParameterfvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetObjectParameterfvARB( params->obj, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetObjectParameterivAPPLE( void *args )
+{
+    struct glGetObjectParameterivAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetObjectParameterivAPPLE( params->objectType, params->name, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetObjectParameterivARB( void *args )
+{
+    struct glGetObjectParameterivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetObjectParameterivARB( params->obj, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetObjectPtrLabel( void *args )
+{
+    struct glGetObjectPtrLabel_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetObjectPtrLabel( params->ptr, params->bufSize, params->length, params->label );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetOcclusionQueryivNV( void *args )
+{
+    struct glGetOcclusionQueryivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetOcclusionQueryivNV( params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetOcclusionQueryuivNV( void *args )
+{
+    struct glGetOcclusionQueryuivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetOcclusionQueryuivNV( params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPathColorGenfvNV( void *args )
+{
+    struct glGetPathColorGenfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPathColorGenfvNV( params->color, params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPathColorGenivNV( void *args )
+{
+    struct glGetPathColorGenivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPathColorGenivNV( params->color, params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPathCommandsNV( void *args )
+{
+    struct glGetPathCommandsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPathCommandsNV( params->path, params->commands );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPathCoordsNV( void *args )
+{
+    struct glGetPathCoordsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPathCoordsNV( params->path, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPathDashArrayNV( void *args )
+{
+    struct glGetPathDashArrayNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPathDashArrayNV( params->path, params->dashArray );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPathLengthNV( void *args )
+{
+    struct glGetPathLengthNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetPathLengthNV( params->path, params->startSegment, params->numSegments );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPathMetricRangeNV( void *args )
+{
+    struct glGetPathMetricRangeNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPathMetricRangeNV( params->metricQueryMask, params->firstPathName, params->numPaths, params->stride, params->metrics );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPathMetricsNV( void *args )
+{
+    struct glGetPathMetricsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPathMetricsNV( params->metricQueryMask, params->numPaths, params->pathNameType, params->paths, params->pathBase, params->stride, params->metrics );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPathParameterfvNV( void *args )
+{
+    struct glGetPathParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPathParameterfvNV( params->path, params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPathParameterivNV( void *args )
+{
+    struct glGetPathParameterivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPathParameterivNV( params->path, params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPathSpacingNV( void *args )
+{
+    struct glGetPathSpacingNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPathSpacingNV( params->pathListMode, params->numPaths, params->pathNameType, params->paths, params->pathBase, params->advanceScale, params->kerningScale, params->transformType, params->returnedSpacing );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPathTexGenfvNV( void *args )
+{
+    struct glGetPathTexGenfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPathTexGenfvNV( params->texCoordSet, params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPathTexGenivNV( void *args )
+{
+    struct glGetPathTexGenivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPathTexGenivNV( params->texCoordSet, params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPerfCounterInfoINTEL( void *args )
+{
+    struct glGetPerfCounterInfoINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPerfCounterInfoINTEL( params->queryId, params->counterId, params->counterNameLength, params->counterName, params->counterDescLength, params->counterDesc, params->counterOffset, params->counterDataSize, params->counterTypeEnum, params->counterDataTypeEnum, params->rawCounterMaxValue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPerfMonitorCounterDataAMD( void *args )
+{
+    struct glGetPerfMonitorCounterDataAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPerfMonitorCounterDataAMD( params->monitor, params->pname, params->dataSize, params->data, params->bytesWritten );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPerfMonitorCounterInfoAMD( void *args )
+{
+    struct glGetPerfMonitorCounterInfoAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPerfMonitorCounterInfoAMD( params->group, params->counter, params->pname, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPerfMonitorCounterStringAMD( void *args )
+{
+    struct glGetPerfMonitorCounterStringAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPerfMonitorCounterStringAMD( params->group, params->counter, params->bufSize, params->length, params->counterString );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPerfMonitorCountersAMD( void *args )
+{
+    struct glGetPerfMonitorCountersAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPerfMonitorCountersAMD( params->group, params->numCounters, params->maxActiveCounters, params->counterSize, params->counters );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPerfMonitorGroupStringAMD( void *args )
+{
+    struct glGetPerfMonitorGroupStringAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPerfMonitorGroupStringAMD( params->group, params->bufSize, params->length, params->groupString );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPerfMonitorGroupsAMD( void *args )
+{
+    struct glGetPerfMonitorGroupsAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPerfMonitorGroupsAMD( params->numGroups, params->groupsSize, params->groups );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPerfQueryDataINTEL( void *args )
+{
+    struct glGetPerfQueryDataINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPerfQueryDataINTEL( params->queryHandle, params->flags, params->dataSize, params->data, params->bytesWritten );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPerfQueryIdByNameINTEL( void *args )
+{
+    struct glGetPerfQueryIdByNameINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPerfQueryIdByNameINTEL( params->queryName, params->queryId );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPerfQueryInfoINTEL( void *args )
+{
+    struct glGetPerfQueryInfoINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPerfQueryInfoINTEL( params->queryId, params->queryNameLength, params->queryName, params->dataSize, params->noCounters, params->noInstances, params->capsMask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPixelMapxv( void *args )
+{
+    struct glGetPixelMapxv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPixelMapxv( params->map, params->size, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPixelTexGenParameterfvSGIS( void *args )
+{
+    struct glGetPixelTexGenParameterfvSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPixelTexGenParameterfvSGIS( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPixelTexGenParameterivSGIS( void *args )
+{
+    struct glGetPixelTexGenParameterivSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPixelTexGenParameterivSGIS( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPixelTransformParameterfvEXT( void *args )
+{
+    struct glGetPixelTransformParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPixelTransformParameterfvEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPixelTransformParameterivEXT( void *args )
+{
+    struct glGetPixelTransformParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPixelTransformParameterivEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPointerIndexedvEXT( void *args )
+{
+    struct glGetPointerIndexedvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPointerIndexedvEXT( params->target, params->index, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPointeri_vEXT( void *args )
+{
+    struct glGetPointeri_vEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPointeri_vEXT( params->pname, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetPointervEXT( void *args )
+{
+    struct glGetPointervEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetPointervEXT( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramBinary( void *args )
+{
+    struct glGetProgramBinary_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramBinary( params->program, params->bufSize, params->length, params->binaryFormat, params->binary );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramEnvParameterIivNV( void *args )
+{
+    struct glGetProgramEnvParameterIivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramEnvParameterIivNV( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramEnvParameterIuivNV( void *args )
+{
+    struct glGetProgramEnvParameterIuivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramEnvParameterIuivNV( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramEnvParameterdvARB( void *args )
+{
+    struct glGetProgramEnvParameterdvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramEnvParameterdvARB( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramEnvParameterfvARB( void *args )
+{
+    struct glGetProgramEnvParameterfvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramEnvParameterfvARB( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramInfoLog( void *args )
+{
+    struct glGetProgramInfoLog_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramInfoLog( params->program, params->bufSize, params->length, params->infoLog );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramInterfaceiv( void *args )
+{
+    struct glGetProgramInterfaceiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramInterfaceiv( params->program, params->programInterface, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramLocalParameterIivNV( void *args )
+{
+    struct glGetProgramLocalParameterIivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramLocalParameterIivNV( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramLocalParameterIuivNV( void *args )
+{
+    struct glGetProgramLocalParameterIuivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramLocalParameterIuivNV( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramLocalParameterdvARB( void *args )
+{
+    struct glGetProgramLocalParameterdvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramLocalParameterdvARB( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramLocalParameterfvARB( void *args )
+{
+    struct glGetProgramLocalParameterfvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramLocalParameterfvARB( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramNamedParameterdvNV( void *args )
+{
+    struct glGetProgramNamedParameterdvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramNamedParameterdvNV( params->id, params->len, params->name, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramNamedParameterfvNV( void *args )
+{
+    struct glGetProgramNamedParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramNamedParameterfvNV( params->id, params->len, params->name, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramParameterdvNV( void *args )
+{
+    struct glGetProgramParameterdvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramParameterdvNV( params->target, params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramParameterfvNV( void *args )
+{
+    struct glGetProgramParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramParameterfvNV( params->target, params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramPipelineInfoLog( void *args )
+{
+    struct glGetProgramPipelineInfoLog_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramPipelineInfoLog( params->pipeline, params->bufSize, params->length, params->infoLog );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramPipelineiv( void *args )
+{
+    struct glGetProgramPipelineiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramPipelineiv( params->pipeline, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramResourceIndex( void *args )
+{
+    struct glGetProgramResourceIndex_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetProgramResourceIndex( params->program, params->programInterface, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramResourceLocation( void *args )
+{
+    struct glGetProgramResourceLocation_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetProgramResourceLocation( params->program, params->programInterface, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramResourceLocationIndex( void *args )
+{
+    struct glGetProgramResourceLocationIndex_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetProgramResourceLocationIndex( params->program, params->programInterface, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramResourceName( void *args )
+{
+    struct glGetProgramResourceName_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramResourceName( params->program, params->programInterface, params->index, params->bufSize, params->length, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramResourcefvNV( void *args )
+{
+    struct glGetProgramResourcefvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramResourcefvNV( params->program, params->programInterface, params->index, params->propCount, params->props, params->count, params->length, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramResourceiv( void *args )
+{
+    struct glGetProgramResourceiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramResourceiv( params->program, params->programInterface, params->index, params->propCount, params->props, params->count, params->length, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramStageiv( void *args )
+{
+    struct glGetProgramStageiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramStageiv( params->program, params->shadertype, params->pname, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramStringARB( void *args )
+{
+    struct glGetProgramStringARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramStringARB( params->target, params->pname, params->string );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramStringNV( void *args )
+{
+    struct glGetProgramStringNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramStringNV( params->id, params->pname, params->program );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramSubroutineParameteruivNV( void *args )
+{
+    struct glGetProgramSubroutineParameteruivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramSubroutineParameteruivNV( params->target, params->index, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramiv( void *args )
+{
+    struct glGetProgramiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramiv( params->program, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramivARB( void *args )
+{
+    struct glGetProgramivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramivARB( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetProgramivNV( void *args )
+{
+    struct glGetProgramivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetProgramivNV( params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryBufferObjecti64v( void *args )
+{
+    struct glGetQueryBufferObjecti64v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryBufferObjecti64v( params->id, params->buffer, params->pname, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryBufferObjectiv( void *args )
+{
+    struct glGetQueryBufferObjectiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryBufferObjectiv( params->id, params->buffer, params->pname, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryBufferObjectui64v( void *args )
+{
+    struct glGetQueryBufferObjectui64v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryBufferObjectui64v( params->id, params->buffer, params->pname, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryBufferObjectuiv( void *args )
+{
+    struct glGetQueryBufferObjectuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryBufferObjectuiv( params->id, params->buffer, params->pname, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryIndexediv( void *args )
+{
+    struct glGetQueryIndexediv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryIndexediv( params->target, params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryObjecti64v( void *args )
+{
+    struct glGetQueryObjecti64v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryObjecti64v( params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryObjecti64vEXT( void *args )
+{
+    struct glGetQueryObjecti64vEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryObjecti64vEXT( params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryObjectiv( void *args )
+{
+    struct glGetQueryObjectiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryObjectiv( params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryObjectivARB( void *args )
+{
+    struct glGetQueryObjectivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryObjectivARB( params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryObjectui64v( void *args )
+{
+    struct glGetQueryObjectui64v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryObjectui64v( params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryObjectui64vEXT( void *args )
+{
+    struct glGetQueryObjectui64vEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryObjectui64vEXT( params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryObjectuiv( void *args )
+{
+    struct glGetQueryObjectuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryObjectuiv( params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryObjectuivARB( void *args )
+{
+    struct glGetQueryObjectuivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryObjectuivARB( params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryiv( void *args )
+{
+    struct glGetQueryiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryiv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetQueryivARB( void *args )
+{
+    struct glGetQueryivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetQueryivARB( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetRenderbufferParameteriv( void *args )
+{
+    struct glGetRenderbufferParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetRenderbufferParameteriv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetRenderbufferParameterivEXT( void *args )
+{
+    struct glGetRenderbufferParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetRenderbufferParameterivEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetSamplerParameterIiv( void *args )
+{
+    struct glGetSamplerParameterIiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetSamplerParameterIiv( params->sampler, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetSamplerParameterIuiv( void *args )
+{
+    struct glGetSamplerParameterIuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetSamplerParameterIuiv( params->sampler, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetSamplerParameterfv( void *args )
+{
+    struct glGetSamplerParameterfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetSamplerParameterfv( params->sampler, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetSamplerParameteriv( void *args )
+{
+    struct glGetSamplerParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetSamplerParameteriv( params->sampler, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetSemaphoreParameterui64vEXT( void *args )
+{
+    struct glGetSemaphoreParameterui64vEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetSemaphoreParameterui64vEXT( params->semaphore, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetSeparableFilter( void *args )
+{
+    struct glGetSeparableFilter_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetSeparableFilter( params->target, params->format, params->type, params->row, params->column, params->span );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetSeparableFilterEXT( void *args )
+{
+    struct glGetSeparableFilterEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetSeparableFilterEXT( params->target, params->format, params->type, params->row, params->column, params->span );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetShaderInfoLog( void *args )
+{
+    struct glGetShaderInfoLog_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetShaderInfoLog( params->shader, params->bufSize, params->length, params->infoLog );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetShaderPrecisionFormat( void *args )
+{
+    struct glGetShaderPrecisionFormat_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetShaderPrecisionFormat( params->shadertype, params->precisiontype, params->range, params->precision );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetShaderSource( void *args )
+{
+    struct glGetShaderSource_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetShaderSource( params->shader, params->bufSize, params->length, params->source );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetShaderSourceARB( void *args )
+{
+    struct glGetShaderSourceARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetShaderSourceARB( params->obj, params->maxLength, params->length, params->source );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetShaderiv( void *args )
+{
+    struct glGetShaderiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetShaderiv( params->shader, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetShadingRateImagePaletteNV( void *args )
+{
+    struct glGetShadingRateImagePaletteNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetShadingRateImagePaletteNV( params->viewport, params->entry, params->rate );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetShadingRateSampleLocationivNV( void *args )
+{
+    struct glGetShadingRateSampleLocationivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetShadingRateSampleLocationivNV( params->rate, params->samples, params->index, params->location );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetSharpenTexFuncSGIS( void *args )
+{
+    struct glGetSharpenTexFuncSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetSharpenTexFuncSGIS( params->target, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetStageIndexNV( void *args )
+{
+    struct glGetStageIndexNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetStageIndexNV( params->shadertype );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetStringi( void *args )
+{
+    struct glGetStringi_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetStringi( params->name, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetSubroutineIndex( void *args )
+{
+    struct glGetSubroutineIndex_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetSubroutineIndex( params->program, params->shadertype, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetSubroutineUniformLocation( void *args )
+{
+    struct glGetSubroutineUniformLocation_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetSubroutineUniformLocation( params->program, params->shadertype, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetSynciv( void *args )
+{
+    struct glGetSynciv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetSynciv( params->sync, params->pname, params->count, params->length, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTexBumpParameterfvATI( void *args )
+{
+    struct glGetTexBumpParameterfvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTexBumpParameterfvATI( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTexBumpParameterivATI( void *args )
+{
+    struct glGetTexBumpParameterivATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTexBumpParameterivATI( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTexEnvxvOES( void *args )
+{
+    struct glGetTexEnvxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTexEnvxvOES( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTexFilterFuncSGIS( void *args )
+{
+    struct glGetTexFilterFuncSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTexFilterFuncSGIS( params->target, params->filter, params->weights );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTexGenxvOES( void *args )
+{
+    struct glGetTexGenxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTexGenxvOES( params->coord, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTexLevelParameterxvOES( void *args )
+{
+    struct glGetTexLevelParameterxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTexLevelParameterxvOES( params->target, params->level, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTexParameterIiv( void *args )
+{
+    struct glGetTexParameterIiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTexParameterIiv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTexParameterIivEXT( void *args )
+{
+    struct glGetTexParameterIivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTexParameterIivEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTexParameterIuiv( void *args )
+{
+    struct glGetTexParameterIuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTexParameterIuiv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTexParameterIuivEXT( void *args )
+{
+    struct glGetTexParameterIuivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTexParameterIuivEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTexParameterPointervAPPLE( void *args )
+{
+    struct glGetTexParameterPointervAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTexParameterPointervAPPLE( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTexParameterxvOES( void *args )
+{
+    struct glGetTexParameterxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTexParameterxvOES( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureHandleARB( void *args )
+{
+    struct glGetTextureHandleARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetTextureHandleARB( params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureHandleNV( void *args )
+{
+    struct glGetTextureHandleNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetTextureHandleNV( params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureImage( void *args )
+{
+    struct glGetTextureImage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureImage( params->texture, params->level, params->format, params->type, params->bufSize, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureImageEXT( void *args )
+{
+    struct glGetTextureImageEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureImageEXT( params->texture, params->target, params->level, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureLevelParameterfv( void *args )
+{
+    struct glGetTextureLevelParameterfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureLevelParameterfv( params->texture, params->level, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureLevelParameterfvEXT( void *args )
+{
+    struct glGetTextureLevelParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureLevelParameterfvEXT( params->texture, params->target, params->level, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureLevelParameteriv( void *args )
+{
+    struct glGetTextureLevelParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureLevelParameteriv( params->texture, params->level, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureLevelParameterivEXT( void *args )
+{
+    struct glGetTextureLevelParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureLevelParameterivEXT( params->texture, params->target, params->level, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureParameterIiv( void *args )
+{
+    struct glGetTextureParameterIiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureParameterIiv( params->texture, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureParameterIivEXT( void *args )
+{
+    struct glGetTextureParameterIivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureParameterIivEXT( params->texture, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureParameterIuiv( void *args )
+{
+    struct glGetTextureParameterIuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureParameterIuiv( params->texture, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureParameterIuivEXT( void *args )
+{
+    struct glGetTextureParameterIuivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureParameterIuivEXT( params->texture, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureParameterfv( void *args )
+{
+    struct glGetTextureParameterfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureParameterfv( params->texture, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureParameterfvEXT( void *args )
+{
+    struct glGetTextureParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureParameterfvEXT( params->texture, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureParameteriv( void *args )
+{
+    struct glGetTextureParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureParameteriv( params->texture, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureParameterivEXT( void *args )
+{
+    struct glGetTextureParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureParameterivEXT( params->texture, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureSamplerHandleARB( void *args )
+{
+    struct glGetTextureSamplerHandleARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetTextureSamplerHandleARB( params->texture, params->sampler );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureSamplerHandleNV( void *args )
+{
+    struct glGetTextureSamplerHandleNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetTextureSamplerHandleNV( params->texture, params->sampler );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTextureSubImage( void *args )
+{
+    struct glGetTextureSubImage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTextureSubImage( params->texture, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->format, params->type, params->bufSize, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTrackMatrixivNV( void *args )
+{
+    struct glGetTrackMatrixivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTrackMatrixivNV( params->target, params->address, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTransformFeedbackVarying( void *args )
+{
+    struct glGetTransformFeedbackVarying_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTransformFeedbackVarying( params->program, params->index, params->bufSize, params->length, params->size, params->type, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTransformFeedbackVaryingEXT( void *args )
+{
+    struct glGetTransformFeedbackVaryingEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTransformFeedbackVaryingEXT( params->program, params->index, params->bufSize, params->length, params->size, params->type, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTransformFeedbackVaryingNV( void *args )
+{
+    struct glGetTransformFeedbackVaryingNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTransformFeedbackVaryingNV( params->program, params->index, params->location );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTransformFeedbacki64_v( void *args )
+{
+    struct glGetTransformFeedbacki64_v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTransformFeedbacki64_v( params->xfb, params->pname, params->index, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTransformFeedbacki_v( void *args )
+{
+    struct glGetTransformFeedbacki_v_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTransformFeedbacki_v( params->xfb, params->pname, params->index, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetTransformFeedbackiv( void *args )
+{
+    struct glGetTransformFeedbackiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetTransformFeedbackiv( params->xfb, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformBlockIndex( void *args )
+{
+    struct glGetUniformBlockIndex_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetUniformBlockIndex( params->program, params->uniformBlockName );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformBufferSizeEXT( void *args )
+{
+    struct glGetUniformBufferSizeEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetUniformBufferSizeEXT( params->program, params->location );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformIndices( void *args )
+{
+    struct glGetUniformIndices_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUniformIndices( params->program, params->uniformCount, params->uniformNames, params->uniformIndices );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformLocation( void *args )
+{
+    struct glGetUniformLocation_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetUniformLocation( params->program, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformLocationARB( void *args )
+{
+    struct glGetUniformLocationARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetUniformLocationARB( params->programObj, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformOffsetEXT( void *args )
+{
+    struct glGetUniformOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetUniformOffsetEXT( params->program, params->location );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformSubroutineuiv( void *args )
+{
+    struct glGetUniformSubroutineuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUniformSubroutineuiv( params->shadertype, params->location, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformdv( void *args )
+{
+    struct glGetUniformdv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUniformdv( params->program, params->location, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformfv( void *args )
+{
+    struct glGetUniformfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUniformfv( params->program, params->location, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformfvARB( void *args )
+{
+    struct glGetUniformfvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUniformfvARB( params->programObj, params->location, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformi64vARB( void *args )
+{
+    struct glGetUniformi64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUniformi64vARB( params->program, params->location, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformi64vNV( void *args )
+{
+    struct glGetUniformi64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUniformi64vNV( params->program, params->location, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformiv( void *args )
+{
+    struct glGetUniformiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUniformiv( params->program, params->location, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformivARB( void *args )
+{
+    struct glGetUniformivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUniformivARB( params->programObj, params->location, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformui64vARB( void *args )
+{
+    struct glGetUniformui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUniformui64vARB( params->program, params->location, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformui64vNV( void *args )
+{
+    struct glGetUniformui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUniformui64vNV( params->program, params->location, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformuiv( void *args )
+{
+    struct glGetUniformuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUniformuiv( params->program, params->location, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUniformuivEXT( void *args )
+{
+    struct glGetUniformuivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUniformuivEXT( params->program, params->location, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUnsignedBytei_vEXT( void *args )
+{
+    struct glGetUnsignedBytei_vEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUnsignedBytei_vEXT( params->target, params->index, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetUnsignedBytevEXT( void *args )
+{
+    struct glGetUnsignedBytevEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetUnsignedBytevEXT( params->pname, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVariantArrayObjectfvATI( void *args )
+{
+    struct glGetVariantArrayObjectfvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVariantArrayObjectfvATI( params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVariantArrayObjectivATI( void *args )
+{
+    struct glGetVariantArrayObjectivATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVariantArrayObjectivATI( params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVariantBooleanvEXT( void *args )
+{
+    struct glGetVariantBooleanvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVariantBooleanvEXT( params->id, params->value, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVariantFloatvEXT( void *args )
+{
+    struct glGetVariantFloatvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVariantFloatvEXT( params->id, params->value, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVariantIntegervEXT( void *args )
+{
+    struct glGetVariantIntegervEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVariantIntegervEXT( params->id, params->value, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVariantPointervEXT( void *args )
+{
+    struct glGetVariantPointervEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVariantPointervEXT( params->id, params->value, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVaryingLocationNV( void *args )
+{
+    struct glGetVaryingLocationNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetVaryingLocationNV( params->program, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexArrayIndexed64iv( void *args )
+{
+    struct glGetVertexArrayIndexed64iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexArrayIndexed64iv( params->vaobj, params->index, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexArrayIndexediv( void *args )
+{
+    struct glGetVertexArrayIndexediv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexArrayIndexediv( params->vaobj, params->index, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexArrayIntegeri_vEXT( void *args )
+{
+    struct glGetVertexArrayIntegeri_vEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexArrayIntegeri_vEXT( params->vaobj, params->index, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexArrayIntegervEXT( void *args )
+{
+    struct glGetVertexArrayIntegervEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexArrayIntegervEXT( params->vaobj, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexArrayPointeri_vEXT( void *args )
+{
+    struct glGetVertexArrayPointeri_vEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexArrayPointeri_vEXT( params->vaobj, params->index, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexArrayPointervEXT( void *args )
+{
+    struct glGetVertexArrayPointervEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexArrayPointervEXT( params->vaobj, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexArrayiv( void *args )
+{
+    struct glGetVertexArrayiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexArrayiv( params->vaobj, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribArrayObjectfvATI( void *args )
+{
+    struct glGetVertexAttribArrayObjectfvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribArrayObjectfvATI( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribArrayObjectivATI( void *args )
+{
+    struct glGetVertexAttribArrayObjectivATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribArrayObjectivATI( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribIiv( void *args )
+{
+    struct glGetVertexAttribIiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribIiv( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribIivEXT( void *args )
+{
+    struct glGetVertexAttribIivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribIivEXT( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribIuiv( void *args )
+{
+    struct glGetVertexAttribIuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribIuiv( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribIuivEXT( void *args )
+{
+    struct glGetVertexAttribIuivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribIuivEXT( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribLdv( void *args )
+{
+    struct glGetVertexAttribLdv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribLdv( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribLdvEXT( void *args )
+{
+    struct glGetVertexAttribLdvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribLdvEXT( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribLi64vNV( void *args )
+{
+    struct glGetVertexAttribLi64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribLi64vNV( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribLui64vARB( void *args )
+{
+    struct glGetVertexAttribLui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribLui64vARB( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribLui64vNV( void *args )
+{
+    struct glGetVertexAttribLui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribLui64vNV( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribPointerv( void *args )
+{
+    struct glGetVertexAttribPointerv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribPointerv( params->index, params->pname, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribPointervARB( void *args )
+{
+    struct glGetVertexAttribPointervARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribPointervARB( params->index, params->pname, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribPointervNV( void *args )
+{
+    struct glGetVertexAttribPointervNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribPointervNV( params->index, params->pname, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribdv( void *args )
+{
+    struct glGetVertexAttribdv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribdv( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribdvARB( void *args )
+{
+    struct glGetVertexAttribdvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribdvARB( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribdvNV( void *args )
+{
+    struct glGetVertexAttribdvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribdvNV( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribfv( void *args )
+{
+    struct glGetVertexAttribfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribfv( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribfvARB( void *args )
+{
+    struct glGetVertexAttribfvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribfvARB( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribfvNV( void *args )
+{
+    struct glGetVertexAttribfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribfvNV( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribiv( void *args )
+{
+    struct glGetVertexAttribiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribiv( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribivARB( void *args )
+{
+    struct glGetVertexAttribivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribivARB( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVertexAttribivNV( void *args )
+{
+    struct glGetVertexAttribivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVertexAttribivNV( params->index, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVideoCaptureStreamdvNV( void *args )
+{
+    struct glGetVideoCaptureStreamdvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVideoCaptureStreamdvNV( params->video_capture_slot, params->stream, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVideoCaptureStreamfvNV( void *args )
+{
+    struct glGetVideoCaptureStreamfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVideoCaptureStreamfvNV( params->video_capture_slot, params->stream, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVideoCaptureStreamivNV( void *args )
+{
+    struct glGetVideoCaptureStreamivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVideoCaptureStreamivNV( params->video_capture_slot, params->stream, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVideoCaptureivNV( void *args )
+{
+    struct glGetVideoCaptureivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVideoCaptureivNV( params->video_capture_slot, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVideoi64vNV( void *args )
+{
+    struct glGetVideoi64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVideoi64vNV( params->video_slot, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVideoivNV( void *args )
+{
+    struct glGetVideoivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVideoivNV( params->video_slot, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVideoui64vNV( void *args )
+{
+    struct glGetVideoui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVideoui64vNV( params->video_slot, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVideouivNV( void *args )
+{
+    struct glGetVideouivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetVideouivNV( params->video_slot, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetVkProcAddrNV( void *args )
+{
+    struct glGetVkProcAddrNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glGetVkProcAddrNV( params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnColorTable( void *args )
+{
+    struct glGetnColorTable_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnColorTable( params->target, params->format, params->type, params->bufSize, params->table );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnColorTableARB( void *args )
+{
+    struct glGetnColorTableARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnColorTableARB( params->target, params->format, params->type, params->bufSize, params->table );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnCompressedTexImage( void *args )
+{
+    struct glGetnCompressedTexImage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnCompressedTexImage( params->target, params->lod, params->bufSize, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnCompressedTexImageARB( void *args )
+{
+    struct glGetnCompressedTexImageARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnCompressedTexImageARB( params->target, params->lod, params->bufSize, params->img );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnConvolutionFilter( void *args )
+{
+    struct glGetnConvolutionFilter_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnConvolutionFilter( params->target, params->format, params->type, params->bufSize, params->image );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnConvolutionFilterARB( void *args )
+{
+    struct glGetnConvolutionFilterARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnConvolutionFilterARB( params->target, params->format, params->type, params->bufSize, params->image );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnHistogram( void *args )
+{
+    struct glGetnHistogram_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnHistogram( params->target, params->reset, params->format, params->type, params->bufSize, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnHistogramARB( void *args )
+{
+    struct glGetnHistogramARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnHistogramARB( params->target, params->reset, params->format, params->type, params->bufSize, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnMapdv( void *args )
+{
+    struct glGetnMapdv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnMapdv( params->target, params->query, params->bufSize, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnMapdvARB( void *args )
+{
+    struct glGetnMapdvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnMapdvARB( params->target, params->query, params->bufSize, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnMapfv( void *args )
+{
+    struct glGetnMapfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnMapfv( params->target, params->query, params->bufSize, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnMapfvARB( void *args )
+{
+    struct glGetnMapfvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnMapfvARB( params->target, params->query, params->bufSize, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnMapiv( void *args )
+{
+    struct glGetnMapiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnMapiv( params->target, params->query, params->bufSize, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnMapivARB( void *args )
+{
+    struct glGetnMapivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnMapivARB( params->target, params->query, params->bufSize, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnMinmax( void *args )
+{
+    struct glGetnMinmax_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnMinmax( params->target, params->reset, params->format, params->type, params->bufSize, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnMinmaxARB( void *args )
+{
+    struct glGetnMinmaxARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnMinmaxARB( params->target, params->reset, params->format, params->type, params->bufSize, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnPixelMapfv( void *args )
+{
+    struct glGetnPixelMapfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnPixelMapfv( params->map, params->bufSize, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnPixelMapfvARB( void *args )
+{
+    struct glGetnPixelMapfvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnPixelMapfvARB( params->map, params->bufSize, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnPixelMapuiv( void *args )
+{
+    struct glGetnPixelMapuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnPixelMapuiv( params->map, params->bufSize, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnPixelMapuivARB( void *args )
+{
+    struct glGetnPixelMapuivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnPixelMapuivARB( params->map, params->bufSize, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnPixelMapusv( void *args )
+{
+    struct glGetnPixelMapusv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnPixelMapusv( params->map, params->bufSize, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnPixelMapusvARB( void *args )
+{
+    struct glGetnPixelMapusvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnPixelMapusvARB( params->map, params->bufSize, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnPolygonStipple( void *args )
+{
+    struct glGetnPolygonStipple_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnPolygonStipple( params->bufSize, params->pattern );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnPolygonStippleARB( void *args )
+{
+    struct glGetnPolygonStippleARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnPolygonStippleARB( params->bufSize, params->pattern );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnSeparableFilter( void *args )
+{
+    struct glGetnSeparableFilter_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnSeparableFilter( params->target, params->format, params->type, params->rowBufSize, params->row, params->columnBufSize, params->column, params->span );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnSeparableFilterARB( void *args )
+{
+    struct glGetnSeparableFilterARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnSeparableFilterARB( params->target, params->format, params->type, params->rowBufSize, params->row, params->columnBufSize, params->column, params->span );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnTexImage( void *args )
+{
+    struct glGetnTexImage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnTexImage( params->target, params->level, params->format, params->type, params->bufSize, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnTexImageARB( void *args )
+{
+    struct glGetnTexImageARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnTexImageARB( params->target, params->level, params->format, params->type, params->bufSize, params->img );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnUniformdv( void *args )
+{
+    struct glGetnUniformdv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnUniformdv( params->program, params->location, params->bufSize, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnUniformdvARB( void *args )
+{
+    struct glGetnUniformdvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnUniformdvARB( params->program, params->location, params->bufSize, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnUniformfv( void *args )
+{
+    struct glGetnUniformfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnUniformfv( params->program, params->location, params->bufSize, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnUniformfvARB( void *args )
+{
+    struct glGetnUniformfvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnUniformfvARB( params->program, params->location, params->bufSize, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnUniformi64vARB( void *args )
+{
+    struct glGetnUniformi64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnUniformi64vARB( params->program, params->location, params->bufSize, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnUniformiv( void *args )
+{
+    struct glGetnUniformiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnUniformiv( params->program, params->location, params->bufSize, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnUniformivARB( void *args )
+{
+    struct glGetnUniformivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnUniformivARB( params->program, params->location, params->bufSize, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnUniformui64vARB( void *args )
+{
+    struct glGetnUniformui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnUniformui64vARB( params->program, params->location, params->bufSize, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnUniformuiv( void *args )
+{
+    struct glGetnUniformuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnUniformuiv( params->program, params->location, params->bufSize, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGetnUniformuivARB( void *args )
+{
+    struct glGetnUniformuivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGetnUniformuivARB( params->program, params->location, params->bufSize, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGlobalAlphaFactorbSUN( void *args )
+{
+    struct glGlobalAlphaFactorbSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGlobalAlphaFactorbSUN( params->factor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGlobalAlphaFactordSUN( void *args )
+{
+    struct glGlobalAlphaFactordSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGlobalAlphaFactordSUN( params->factor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGlobalAlphaFactorfSUN( void *args )
+{
+    struct glGlobalAlphaFactorfSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGlobalAlphaFactorfSUN( params->factor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGlobalAlphaFactoriSUN( void *args )
+{
+    struct glGlobalAlphaFactoriSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGlobalAlphaFactoriSUN( params->factor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGlobalAlphaFactorsSUN( void *args )
+{
+    struct glGlobalAlphaFactorsSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGlobalAlphaFactorsSUN( params->factor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGlobalAlphaFactorubSUN( void *args )
+{
+    struct glGlobalAlphaFactorubSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGlobalAlphaFactorubSUN( params->factor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGlobalAlphaFactoruiSUN( void *args )
+{
+    struct glGlobalAlphaFactoruiSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGlobalAlphaFactoruiSUN( params->factor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glGlobalAlphaFactorusSUN( void *args )
+{
+    struct glGlobalAlphaFactorusSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glGlobalAlphaFactorusSUN( params->factor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glHintPGI( void *args )
+{
+    struct glHintPGI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glHintPGI( params->target, params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glHistogram( void *args )
+{
+    struct glHistogram_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glHistogram( params->target, params->width, params->internalformat, params->sink );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glHistogramEXT( void *args )
+{
+    struct glHistogramEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glHistogramEXT( params->target, params->width, params->internalformat, params->sink );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIglooInterfaceSGIX( void *args )
+{
+    struct glIglooInterfaceSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glIglooInterfaceSGIX( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glImageTransformParameterfHP( void *args )
+{
+    struct glImageTransformParameterfHP_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glImageTransformParameterfHP( params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glImageTransformParameterfvHP( void *args )
+{
+    struct glImageTransformParameterfvHP_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glImageTransformParameterfvHP( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glImageTransformParameteriHP( void *args )
+{
+    struct glImageTransformParameteriHP_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glImageTransformParameteriHP( params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glImageTransformParameterivHP( void *args )
+{
+    struct glImageTransformParameterivHP_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glImageTransformParameterivHP( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glImportMemoryFdEXT( void *args )
+{
+    struct glImportMemoryFdEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glImportMemoryFdEXT( params->memory, params->size, params->handleType, params->fd );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glImportMemoryWin32HandleEXT( void *args )
+{
+    struct glImportMemoryWin32HandleEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glImportMemoryWin32HandleEXT( params->memory, params->size, params->handleType, params->handle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glImportMemoryWin32NameEXT( void *args )
+{
+    struct glImportMemoryWin32NameEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glImportMemoryWin32NameEXT( params->memory, params->size, params->handleType, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glImportSemaphoreFdEXT( void *args )
+{
+    struct glImportSemaphoreFdEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glImportSemaphoreFdEXT( params->semaphore, params->handleType, params->fd );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glImportSemaphoreWin32HandleEXT( void *args )
+{
+    struct glImportSemaphoreWin32HandleEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glImportSemaphoreWin32HandleEXT( params->semaphore, params->handleType, params->handle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glImportSemaphoreWin32NameEXT( void *args )
+{
+    struct glImportSemaphoreWin32NameEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glImportSemaphoreWin32NameEXT( params->semaphore, params->handleType, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glImportSyncEXT( void *args )
+{
+    struct glImportSyncEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glImportSyncEXT( params->external_sync_type, params->external_sync, params->flags );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIndexFormatNV( void *args )
+{
+    struct glIndexFormatNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glIndexFormatNV( params->type, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIndexFuncEXT( void *args )
+{
+    struct glIndexFuncEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glIndexFuncEXT( params->func, params->ref );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIndexMaterialEXT( void *args )
+{
+    struct glIndexMaterialEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glIndexMaterialEXT( params->face, params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIndexPointerEXT( void *args )
+{
+    struct glIndexPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glIndexPointerEXT( params->type, params->stride, params->count, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIndexPointerListIBM( void *args )
+{
+    struct glIndexPointerListIBM_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glIndexPointerListIBM( params->type, params->stride, params->pointer, params->ptrstride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIndexxOES( void *args )
+{
+    struct glIndexxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glIndexxOES( params->component );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIndexxvOES( void *args )
+{
+    struct glIndexxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glIndexxvOES( params->component );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glInsertComponentEXT( void *args )
+{
+    struct glInsertComponentEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glInsertComponentEXT( params->res, params->src, params->num );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glInsertEventMarkerEXT( void *args )
+{
+    struct glInsertEventMarkerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glInsertEventMarkerEXT( params->length, params->marker );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glInstrumentsBufferSGIX( void *args )
+{
+    struct glInstrumentsBufferSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glInstrumentsBufferSGIX( params->size, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glInterpolatePathsNV( void *args )
+{
+    struct glInterpolatePathsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glInterpolatePathsNV( params->resultPath, params->pathA, params->pathB, params->weight );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glInvalidateBufferData( void *args )
+{
+    struct glInvalidateBufferData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glInvalidateBufferData( params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glInvalidateBufferSubData( void *args )
+{
+    struct glInvalidateBufferSubData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glInvalidateBufferSubData( params->buffer, params->offset, params->length );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glInvalidateFramebuffer( void *args )
+{
+    struct glInvalidateFramebuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glInvalidateFramebuffer( params->target, params->numAttachments, params->attachments );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glInvalidateNamedFramebufferData( void *args )
+{
+    struct glInvalidateNamedFramebufferData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glInvalidateNamedFramebufferData( params->framebuffer, params->numAttachments, params->attachments );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glInvalidateNamedFramebufferSubData( void *args )
+{
+    struct glInvalidateNamedFramebufferSubData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glInvalidateNamedFramebufferSubData( params->framebuffer, params->numAttachments, params->attachments, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glInvalidateSubFramebuffer( void *args )
+{
+    struct glInvalidateSubFramebuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glInvalidateSubFramebuffer( params->target, params->numAttachments, params->attachments, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glInvalidateTexImage( void *args )
+{
+    struct glInvalidateTexImage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glInvalidateTexImage( params->texture, params->level );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glInvalidateTexSubImage( void *args )
+{
+    struct glInvalidateTexSubImage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glInvalidateTexSubImage( params->texture, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsAsyncMarkerSGIX( void *args )
+{
+    struct glIsAsyncMarkerSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsAsyncMarkerSGIX( params->marker );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsBuffer( void *args )
+{
+    struct glIsBuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsBuffer( params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsBufferARB( void *args )
+{
+    struct glIsBufferARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsBufferARB( params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsBufferResidentNV( void *args )
+{
+    struct glIsBufferResidentNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsBufferResidentNV( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsCommandListNV( void *args )
+{
+    struct glIsCommandListNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsCommandListNV( params->list );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsEnabledIndexedEXT( void *args )
+{
+    struct glIsEnabledIndexedEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsEnabledIndexedEXT( params->target, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsEnabledi( void *args )
+{
+    struct glIsEnabledi_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsEnabledi( params->target, params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsFenceAPPLE( void *args )
+{
+    struct glIsFenceAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsFenceAPPLE( params->fence );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsFenceNV( void *args )
+{
+    struct glIsFenceNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsFenceNV( params->fence );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsFramebuffer( void *args )
+{
+    struct glIsFramebuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsFramebuffer( params->framebuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsFramebufferEXT( void *args )
+{
+    struct glIsFramebufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsFramebufferEXT( params->framebuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsImageHandleResidentARB( void *args )
+{
+    struct glIsImageHandleResidentARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsImageHandleResidentARB( params->handle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsImageHandleResidentNV( void *args )
+{
+    struct glIsImageHandleResidentNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsImageHandleResidentNV( params->handle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsMemoryObjectEXT( void *args )
+{
+    struct glIsMemoryObjectEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsMemoryObjectEXT( params->memoryObject );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsNameAMD( void *args )
+{
+    struct glIsNameAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsNameAMD( params->identifier, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsNamedBufferResidentNV( void *args )
+{
+    struct glIsNamedBufferResidentNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsNamedBufferResidentNV( params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsNamedStringARB( void *args )
+{
+    struct glIsNamedStringARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsNamedStringARB( params->namelen, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsObjectBufferATI( void *args )
+{
+    struct glIsObjectBufferATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsObjectBufferATI( params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsOcclusionQueryNV( void *args )
+{
+    struct glIsOcclusionQueryNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsOcclusionQueryNV( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsPathNV( void *args )
+{
+    struct glIsPathNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsPathNV( params->path );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsPointInFillPathNV( void *args )
+{
+    struct glIsPointInFillPathNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsPointInFillPathNV( params->path, params->mask, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsPointInStrokePathNV( void *args )
+{
+    struct glIsPointInStrokePathNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsPointInStrokePathNV( params->path, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsProgram( void *args )
+{
+    struct glIsProgram_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsProgram( params->program );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsProgramARB( void *args )
+{
+    struct glIsProgramARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsProgramARB( params->program );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsProgramNV( void *args )
+{
+    struct glIsProgramNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsProgramNV( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsProgramPipeline( void *args )
+{
+    struct glIsProgramPipeline_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsProgramPipeline( params->pipeline );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsQuery( void *args )
+{
+    struct glIsQuery_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsQuery( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsQueryARB( void *args )
+{
+    struct glIsQueryARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsQueryARB( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsRenderbuffer( void *args )
+{
+    struct glIsRenderbuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsRenderbuffer( params->renderbuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsRenderbufferEXT( void *args )
+{
+    struct glIsRenderbufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsRenderbufferEXT( params->renderbuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsSampler( void *args )
+{
+    struct glIsSampler_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsSampler( params->sampler );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsSemaphoreEXT( void *args )
+{
+    struct glIsSemaphoreEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsSemaphoreEXT( params->semaphore );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsShader( void *args )
+{
+    struct glIsShader_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsShader( params->shader );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsStateNV( void *args )
+{
+    struct glIsStateNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsStateNV( params->state );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsSync( void *args )
+{
+    struct glIsSync_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsSync( params->sync );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsTextureEXT( void *args )
+{
+    struct glIsTextureEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsTextureEXT( params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsTextureHandleResidentARB( void *args )
+{
+    struct glIsTextureHandleResidentARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsTextureHandleResidentARB( params->handle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsTextureHandleResidentNV( void *args )
+{
+    struct glIsTextureHandleResidentNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsTextureHandleResidentNV( params->handle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsTransformFeedback( void *args )
+{
+    struct glIsTransformFeedback_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsTransformFeedback( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsTransformFeedbackNV( void *args )
+{
+    struct glIsTransformFeedbackNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsTransformFeedbackNV( params->id );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsVariantEnabledEXT( void *args )
+{
+    struct glIsVariantEnabledEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsVariantEnabledEXT( params->id, params->cap );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsVertexArray( void *args )
+{
+    struct glIsVertexArray_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsVertexArray( params->array );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsVertexArrayAPPLE( void *args )
+{
+    struct glIsVertexArrayAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsVertexArrayAPPLE( params->array );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glIsVertexAttribEnabledAPPLE( void *args )
+{
+    struct glIsVertexAttribEnabledAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glIsVertexAttribEnabledAPPLE( params->index, params->pname );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLGPUCopyImageSubDataNVX( void *args )
+{
+    struct glLGPUCopyImageSubDataNVX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLGPUCopyImageSubDataNVX( params->sourceGpu, params->destinationGpuMask, params->srcName, params->srcTarget, params->srcLevel, params->srcX, params->srxY, params->srcZ, params->dstName, params->dstTarget, params->dstLevel, params->dstX, params->dstY, params->dstZ, params->width, params->height, params->depth );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLGPUInterlockNVX( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLGPUInterlockNVX();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLGPUNamedBufferSubDataNVX( void *args )
+{
+    struct glLGPUNamedBufferSubDataNVX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLGPUNamedBufferSubDataNVX( params->gpuMask, params->buffer, params->offset, params->size, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLabelObjectEXT( void *args )
+{
+    struct glLabelObjectEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLabelObjectEXT( params->type, params->object, params->length, params->label );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLightEnviSGIX( void *args )
+{
+    struct glLightEnviSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLightEnviSGIX( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLightModelxOES( void *args )
+{
+    struct glLightModelxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLightModelxOES( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLightModelxvOES( void *args )
+{
+    struct glLightModelxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLightModelxvOES( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLightxOES( void *args )
+{
+    struct glLightxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLightxOES( params->light, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLightxvOES( void *args )
+{
+    struct glLightxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLightxvOES( params->light, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLineWidthxOES( void *args )
+{
+    struct glLineWidthxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLineWidthxOES( params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLinkProgram( void *args )
+{
+    struct glLinkProgram_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLinkProgram( params->program );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLinkProgramARB( void *args )
+{
+    struct glLinkProgramARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLinkProgramARB( params->programObj );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glListDrawCommandsStatesClientNV( void *args )
+{
+    struct glListDrawCommandsStatesClientNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glListDrawCommandsStatesClientNV( params->list, params->segment, params->indirects, params->sizes, params->states, params->fbos, params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glListParameterfSGIX( void *args )
+{
+    struct glListParameterfSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glListParameterfSGIX( params->list, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glListParameterfvSGIX( void *args )
+{
+    struct glListParameterfvSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glListParameterfvSGIX( params->list, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glListParameteriSGIX( void *args )
+{
+    struct glListParameteriSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glListParameteriSGIX( params->list, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glListParameterivSGIX( void *args )
+{
+    struct glListParameterivSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glListParameterivSGIX( params->list, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLoadIdentityDeformationMapSGIX( void *args )
+{
+    struct glLoadIdentityDeformationMapSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLoadIdentityDeformationMapSGIX( params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLoadMatrixxOES( void *args )
+{
+    struct glLoadMatrixxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLoadMatrixxOES( params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLoadProgramNV( void *args )
+{
+    struct glLoadProgramNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLoadProgramNV( params->target, params->id, params->len, params->program );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLoadTransposeMatrixd( void *args )
+{
+    struct glLoadTransposeMatrixd_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLoadTransposeMatrixd( params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLoadTransposeMatrixdARB( void *args )
+{
+    struct glLoadTransposeMatrixdARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLoadTransposeMatrixdARB( params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLoadTransposeMatrixf( void *args )
+{
+    struct glLoadTransposeMatrixf_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLoadTransposeMatrixf( params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLoadTransposeMatrixfARB( void *args )
+{
+    struct glLoadTransposeMatrixfARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLoadTransposeMatrixfARB( params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLoadTransposeMatrixxOES( void *args )
+{
+    struct glLoadTransposeMatrixxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLoadTransposeMatrixxOES( params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glLockArraysEXT( void *args )
+{
+    struct glLockArraysEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glLockArraysEXT( params->first, params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMTexCoord2fSGIS( void *args )
+{
+    struct glMTexCoord2fSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMTexCoord2fSGIS( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMTexCoord2fvSGIS( void *args )
+{
+    struct glMTexCoord2fvSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMTexCoord2fvSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMakeBufferNonResidentNV( void *args )
+{
+    struct glMakeBufferNonResidentNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMakeBufferNonResidentNV( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMakeBufferResidentNV( void *args )
+{
+    struct glMakeBufferResidentNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMakeBufferResidentNV( params->target, params->access );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMakeImageHandleNonResidentARB( void *args )
+{
+    struct glMakeImageHandleNonResidentARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMakeImageHandleNonResidentARB( params->handle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMakeImageHandleNonResidentNV( void *args )
+{
+    struct glMakeImageHandleNonResidentNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMakeImageHandleNonResidentNV( params->handle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMakeImageHandleResidentARB( void *args )
+{
+    struct glMakeImageHandleResidentARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMakeImageHandleResidentARB( params->handle, params->access );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMakeImageHandleResidentNV( void *args )
+{
+    struct glMakeImageHandleResidentNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMakeImageHandleResidentNV( params->handle, params->access );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMakeNamedBufferNonResidentNV( void *args )
+{
+    struct glMakeNamedBufferNonResidentNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMakeNamedBufferNonResidentNV( params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMakeNamedBufferResidentNV( void *args )
+{
+    struct glMakeNamedBufferResidentNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMakeNamedBufferResidentNV( params->buffer, params->access );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMakeTextureHandleNonResidentARB( void *args )
+{
+    struct glMakeTextureHandleNonResidentARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMakeTextureHandleNonResidentARB( params->handle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMakeTextureHandleNonResidentNV( void *args )
+{
+    struct glMakeTextureHandleNonResidentNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMakeTextureHandleNonResidentNV( params->handle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMakeTextureHandleResidentARB( void *args )
+{
+    struct glMakeTextureHandleResidentARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMakeTextureHandleResidentARB( params->handle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMakeTextureHandleResidentNV( void *args )
+{
+    struct glMakeTextureHandleResidentNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMakeTextureHandleResidentNV( params->handle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMap1xOES( void *args )
+{
+    struct glMap1xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMap1xOES( params->target, params->u1, params->u2, params->stride, params->order, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMap2xOES( void *args )
+{
+    struct glMap2xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMap2xOES( params->target, params->u1, params->u2, params->ustride, params->uorder, params->v1, params->v2, params->vstride, params->vorder, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapBuffer( void *args )
+{
+    struct glMapBuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glMapBuffer( params->target, params->access );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapBufferARB( void *args )
+{
+    struct glMapBufferARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glMapBufferARB( params->target, params->access );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapBufferRange( void *args )
+{
+    struct glMapBufferRange_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glMapBufferRange( params->target, params->offset, params->length, params->access );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapControlPointsNV( void *args )
+{
+    struct glMapControlPointsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMapControlPointsNV( params->target, params->index, params->type, params->ustride, params->vstride, params->uorder, params->vorder, params->packed, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapGrid1xOES( void *args )
+{
+    struct glMapGrid1xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMapGrid1xOES( params->n, params->u1, params->u2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapGrid2xOES( void *args )
+{
+    struct glMapGrid2xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMapGrid2xOES( params->n, params->u1, params->u2, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapNamedBuffer( void *args )
+{
+    struct glMapNamedBuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glMapNamedBuffer( params->buffer, params->access );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapNamedBufferEXT( void *args )
+{
+    struct glMapNamedBufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glMapNamedBufferEXT( params->buffer, params->access );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapNamedBufferRange( void *args )
+{
+    struct glMapNamedBufferRange_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glMapNamedBufferRange( params->buffer, params->offset, params->length, params->access );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapNamedBufferRangeEXT( void *args )
+{
+    struct glMapNamedBufferRangeEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glMapNamedBufferRangeEXT( params->buffer, params->offset, params->length, params->access );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapObjectBufferATI( void *args )
+{
+    struct glMapObjectBufferATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glMapObjectBufferATI( params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapParameterfvNV( void *args )
+{
+    struct glMapParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMapParameterfvNV( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapParameterivNV( void *args )
+{
+    struct glMapParameterivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMapParameterivNV( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapTexture2DINTEL( void *args )
+{
+    struct glMapTexture2DINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glMapTexture2DINTEL( params->texture, params->level, params->access, params->stride, params->layout );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapVertexAttrib1dAPPLE( void *args )
+{
+    struct glMapVertexAttrib1dAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMapVertexAttrib1dAPPLE( params->index, params->size, params->u1, params->u2, params->stride, params->order, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapVertexAttrib1fAPPLE( void *args )
+{
+    struct glMapVertexAttrib1fAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMapVertexAttrib1fAPPLE( params->index, params->size, params->u1, params->u2, params->stride, params->order, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapVertexAttrib2dAPPLE( void *args )
+{
+    struct glMapVertexAttrib2dAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMapVertexAttrib2dAPPLE( params->index, params->size, params->u1, params->u2, params->ustride, params->uorder, params->v1, params->v2, params->vstride, params->vorder, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMapVertexAttrib2fAPPLE( void *args )
+{
+    struct glMapVertexAttrib2fAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMapVertexAttrib2fAPPLE( params->index, params->size, params->u1, params->u2, params->ustride, params->uorder, params->v1, params->v2, params->vstride, params->vorder, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMaterialxOES( void *args )
+{
+    struct glMaterialxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMaterialxOES( params->face, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMaterialxvOES( void *args )
+{
+    struct glMaterialxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMaterialxvOES( params->face, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixFrustumEXT( void *args )
+{
+    struct glMatrixFrustumEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixFrustumEXT( params->mode, params->left, params->right, params->bottom, params->top, params->zNear, params->zFar );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixIndexPointerARB( void *args )
+{
+    struct glMatrixIndexPointerARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixIndexPointerARB( params->size, params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixIndexubvARB( void *args )
+{
+    struct glMatrixIndexubvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixIndexubvARB( params->size, params->indices );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixIndexuivARB( void *args )
+{
+    struct glMatrixIndexuivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixIndexuivARB( params->size, params->indices );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixIndexusvARB( void *args )
+{
+    struct glMatrixIndexusvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixIndexusvARB( params->size, params->indices );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixLoad3x2fNV( void *args )
+{
+    struct glMatrixLoad3x2fNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixLoad3x2fNV( params->matrixMode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixLoad3x3fNV( void *args )
+{
+    struct glMatrixLoad3x3fNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixLoad3x3fNV( params->matrixMode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixLoadIdentityEXT( void *args )
+{
+    struct glMatrixLoadIdentityEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixLoadIdentityEXT( params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixLoadTranspose3x3fNV( void *args )
+{
+    struct glMatrixLoadTranspose3x3fNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixLoadTranspose3x3fNV( params->matrixMode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixLoadTransposedEXT( void *args )
+{
+    struct glMatrixLoadTransposedEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixLoadTransposedEXT( params->mode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixLoadTransposefEXT( void *args )
+{
+    struct glMatrixLoadTransposefEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixLoadTransposefEXT( params->mode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixLoaddEXT( void *args )
+{
+    struct glMatrixLoaddEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixLoaddEXT( params->mode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixLoadfEXT( void *args )
+{
+    struct glMatrixLoadfEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixLoadfEXT( params->mode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixMult3x2fNV( void *args )
+{
+    struct glMatrixMult3x2fNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixMult3x2fNV( params->matrixMode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixMult3x3fNV( void *args )
+{
+    struct glMatrixMult3x3fNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixMult3x3fNV( params->matrixMode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixMultTranspose3x3fNV( void *args )
+{
+    struct glMatrixMultTranspose3x3fNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixMultTranspose3x3fNV( params->matrixMode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixMultTransposedEXT( void *args )
+{
+    struct glMatrixMultTransposedEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixMultTransposedEXT( params->mode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixMultTransposefEXT( void *args )
+{
+    struct glMatrixMultTransposefEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixMultTransposefEXT( params->mode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixMultdEXT( void *args )
+{
+    struct glMatrixMultdEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixMultdEXT( params->mode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixMultfEXT( void *args )
+{
+    struct glMatrixMultfEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixMultfEXT( params->mode, params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixOrthoEXT( void *args )
+{
+    struct glMatrixOrthoEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixOrthoEXT( params->mode, params->left, params->right, params->bottom, params->top, params->zNear, params->zFar );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixPopEXT( void *args )
+{
+    struct glMatrixPopEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixPopEXT( params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixPushEXT( void *args )
+{
+    struct glMatrixPushEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixPushEXT( params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixRotatedEXT( void *args )
+{
+    struct glMatrixRotatedEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixRotatedEXT( params->mode, params->angle, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixRotatefEXT( void *args )
+{
+    struct glMatrixRotatefEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixRotatefEXT( params->mode, params->angle, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixScaledEXT( void *args )
+{
+    struct glMatrixScaledEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixScaledEXT( params->mode, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixScalefEXT( void *args )
+{
+    struct glMatrixScalefEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixScalefEXT( params->mode, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixTranslatedEXT( void *args )
+{
+    struct glMatrixTranslatedEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixTranslatedEXT( params->mode, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMatrixTranslatefEXT( void *args )
+{
+    struct glMatrixTranslatefEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMatrixTranslatefEXT( params->mode, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMaxShaderCompilerThreadsARB( void *args )
+{
+    struct glMaxShaderCompilerThreadsARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMaxShaderCompilerThreadsARB( params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMaxShaderCompilerThreadsKHR( void *args )
+{
+    struct glMaxShaderCompilerThreadsKHR_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMaxShaderCompilerThreadsKHR( params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMemoryBarrier( void *args )
+{
+    struct glMemoryBarrier_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMemoryBarrier( params->barriers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMemoryBarrierByRegion( void *args )
+{
+    struct glMemoryBarrierByRegion_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMemoryBarrierByRegion( params->barriers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMemoryBarrierEXT( void *args )
+{
+    struct glMemoryBarrierEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMemoryBarrierEXT( params->barriers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMemoryObjectParameterivEXT( void *args )
+{
+    struct glMemoryObjectParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMemoryObjectParameterivEXT( params->memoryObject, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMinSampleShading( void *args )
+{
+    struct glMinSampleShading_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMinSampleShading( params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMinSampleShadingARB( void *args )
+{
+    struct glMinSampleShadingARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMinSampleShadingARB( params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMinmax( void *args )
+{
+    struct glMinmax_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMinmax( params->target, params->internalformat, params->sink );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMinmaxEXT( void *args )
+{
+    struct glMinmaxEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMinmaxEXT( params->target, params->internalformat, params->sink );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultMatrixxOES( void *args )
+{
+    struct glMultMatrixxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultMatrixxOES( params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultTransposeMatrixd( void *args )
+{
+    struct glMultTransposeMatrixd_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultTransposeMatrixd( params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultTransposeMatrixdARB( void *args )
+{
+    struct glMultTransposeMatrixdARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultTransposeMatrixdARB( params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultTransposeMatrixf( void *args )
+{
+    struct glMultTransposeMatrixf_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultTransposeMatrixf( params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultTransposeMatrixfARB( void *args )
+{
+    struct glMultTransposeMatrixfARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultTransposeMatrixfARB( params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultTransposeMatrixxOES( void *args )
+{
+    struct glMultTransposeMatrixxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultTransposeMatrixxOES( params->m );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawArrays( void *args )
+{
+    struct glMultiDrawArrays_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawArrays( params->mode, params->first, params->count, params->drawcount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawArraysEXT( void *args )
+{
+    struct glMultiDrawArraysEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawArraysEXT( params->mode, params->first, params->count, params->primcount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawArraysIndirect( void *args )
+{
+    struct glMultiDrawArraysIndirect_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawArraysIndirect( params->mode, params->indirect, params->drawcount, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawArraysIndirectAMD( void *args )
+{
+    struct glMultiDrawArraysIndirectAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawArraysIndirectAMD( params->mode, params->indirect, params->primcount, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawArraysIndirectBindlessCountNV( void *args )
+{
+    struct glMultiDrawArraysIndirectBindlessCountNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawArraysIndirectBindlessCountNV( params->mode, params->indirect, params->drawCount, params->maxDrawCount, params->stride, params->vertexBufferCount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawArraysIndirectBindlessNV( void *args )
+{
+    struct glMultiDrawArraysIndirectBindlessNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawArraysIndirectBindlessNV( params->mode, params->indirect, params->drawCount, params->stride, params->vertexBufferCount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawArraysIndirectCount( void *args )
+{
+    struct glMultiDrawArraysIndirectCount_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawArraysIndirectCount( params->mode, params->indirect, params->drawcount, params->maxdrawcount, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawArraysIndirectCountARB( void *args )
+{
+    struct glMultiDrawArraysIndirectCountARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawArraysIndirectCountARB( params->mode, params->indirect, params->drawcount, params->maxdrawcount, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawElementArrayAPPLE( void *args )
+{
+    struct glMultiDrawElementArrayAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawElementArrayAPPLE( params->mode, params->first, params->count, params->primcount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawElements( void *args )
+{
+    struct glMultiDrawElements_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawElements( params->mode, params->count, params->type, params->indices, params->drawcount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawElementsBaseVertex( void *args )
+{
+    struct glMultiDrawElementsBaseVertex_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawElementsBaseVertex( params->mode, params->count, params->type, params->indices, params->drawcount, params->basevertex );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawElementsEXT( void *args )
+{
+    struct glMultiDrawElementsEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawElementsEXT( params->mode, params->count, params->type, params->indices, params->primcount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawElementsIndirect( void *args )
+{
+    struct glMultiDrawElementsIndirect_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawElementsIndirect( params->mode, params->type, params->indirect, params->drawcount, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawElementsIndirectAMD( void *args )
+{
+    struct glMultiDrawElementsIndirectAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawElementsIndirectAMD( params->mode, params->type, params->indirect, params->primcount, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawElementsIndirectBindlessCountNV( void *args )
+{
+    struct glMultiDrawElementsIndirectBindlessCountNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawElementsIndirectBindlessCountNV( params->mode, params->type, params->indirect, params->drawCount, params->maxDrawCount, params->stride, params->vertexBufferCount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawElementsIndirectBindlessNV( void *args )
+{
+    struct glMultiDrawElementsIndirectBindlessNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawElementsIndirectBindlessNV( params->mode, params->type, params->indirect, params->drawCount, params->stride, params->vertexBufferCount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawElementsIndirectCount( void *args )
+{
+    struct glMultiDrawElementsIndirectCount_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawElementsIndirectCount( params->mode, params->type, params->indirect, params->drawcount, params->maxdrawcount, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawElementsIndirectCountARB( void *args )
+{
+    struct glMultiDrawElementsIndirectCountARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawElementsIndirectCountARB( params->mode, params->type, params->indirect, params->drawcount, params->maxdrawcount, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawMeshTasksIndirectCountNV( void *args )
+{
+    struct glMultiDrawMeshTasksIndirectCountNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawMeshTasksIndirectCountNV( params->indirect, params->drawcount, params->maxdrawcount, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawMeshTasksIndirectNV( void *args )
+{
+    struct glMultiDrawMeshTasksIndirectNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawMeshTasksIndirectNV( params->indirect, params->drawcount, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiDrawRangeElementArrayAPPLE( void *args )
+{
+    struct glMultiDrawRangeElementArrayAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiDrawRangeElementArrayAPPLE( params->mode, params->start, params->end, params->first, params->count, params->primcount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiModeDrawArraysIBM( void *args )
+{
+    struct glMultiModeDrawArraysIBM_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiModeDrawArraysIBM( params->mode, params->first, params->count, params->primcount, params->modestride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiModeDrawElementsIBM( void *args )
+{
+    struct glMultiModeDrawElementsIBM_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiModeDrawElementsIBM( params->mode, params->count, params->type, params->indices, params->primcount, params->modestride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexBufferEXT( void *args )
+{
+    struct glMultiTexBufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexBufferEXT( params->texunit, params->target, params->internalformat, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1bOES( void *args )
+{
+    struct glMultiTexCoord1bOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1bOES( params->texture, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1bvOES( void *args )
+{
+    struct glMultiTexCoord1bvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1bvOES( params->texture, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1d( void *args )
+{
+    struct glMultiTexCoord1d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1d( params->target, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1dARB( void *args )
+{
+    struct glMultiTexCoord1dARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1dARB( params->target, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1dSGIS( void *args )
+{
+    struct glMultiTexCoord1dSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1dSGIS( params->target, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1dv( void *args )
+{
+    struct glMultiTexCoord1dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1dv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1dvARB( void *args )
+{
+    struct glMultiTexCoord1dvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1dvARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1dvSGIS( void *args )
+{
+    struct glMultiTexCoord1dvSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1dvSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1f( void *args )
+{
+    struct glMultiTexCoord1f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1f( params->target, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1fARB( void *args )
+{
+    struct glMultiTexCoord1fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1fARB( params->target, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1fSGIS( void *args )
+{
+    struct glMultiTexCoord1fSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1fSGIS( params->target, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1fv( void *args )
+{
+    struct glMultiTexCoord1fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1fv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1fvARB( void *args )
+{
+    struct glMultiTexCoord1fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1fvARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1fvSGIS( void *args )
+{
+    struct glMultiTexCoord1fvSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1fvSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1hNV( void *args )
+{
+    struct glMultiTexCoord1hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1hNV( params->target, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1hvNV( void *args )
+{
+    struct glMultiTexCoord1hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1hvNV( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1i( void *args )
+{
+    struct glMultiTexCoord1i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1i( params->target, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1iARB( void *args )
+{
+    struct glMultiTexCoord1iARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1iARB( params->target, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1iSGIS( void *args )
+{
+    struct glMultiTexCoord1iSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1iSGIS( params->target, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1iv( void *args )
+{
+    struct glMultiTexCoord1iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1iv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1ivARB( void *args )
+{
+    struct glMultiTexCoord1ivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1ivARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1ivSGIS( void *args )
+{
+    struct glMultiTexCoord1ivSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1ivSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1s( void *args )
+{
+    struct glMultiTexCoord1s_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1s( params->target, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1sARB( void *args )
+{
+    struct glMultiTexCoord1sARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1sARB( params->target, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1sSGIS( void *args )
+{
+    struct glMultiTexCoord1sSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1sSGIS( params->target, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1sv( void *args )
+{
+    struct glMultiTexCoord1sv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1sv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1svARB( void *args )
+{
+    struct glMultiTexCoord1svARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1svARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1svSGIS( void *args )
+{
+    struct glMultiTexCoord1svSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1svSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1xOES( void *args )
+{
+    struct glMultiTexCoord1xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1xOES( params->texture, params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord1xvOES( void *args )
+{
+    struct glMultiTexCoord1xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord1xvOES( params->texture, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2bOES( void *args )
+{
+    struct glMultiTexCoord2bOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2bOES( params->texture, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2bvOES( void *args )
+{
+    struct glMultiTexCoord2bvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2bvOES( params->texture, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2d( void *args )
+{
+    struct glMultiTexCoord2d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2d( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2dARB( void *args )
+{
+    struct glMultiTexCoord2dARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2dARB( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2dSGIS( void *args )
+{
+    struct glMultiTexCoord2dSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2dSGIS( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2dv( void *args )
+{
+    struct glMultiTexCoord2dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2dv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2dvARB( void *args )
+{
+    struct glMultiTexCoord2dvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2dvARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2dvSGIS( void *args )
+{
+    struct glMultiTexCoord2dvSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2dvSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2f( void *args )
+{
+    struct glMultiTexCoord2f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2f( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2fARB( void *args )
+{
+    struct glMultiTexCoord2fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2fARB( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2fSGIS( void *args )
+{
+    struct glMultiTexCoord2fSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2fSGIS( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2fv( void *args )
+{
+    struct glMultiTexCoord2fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2fv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2fvARB( void *args )
+{
+    struct glMultiTexCoord2fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2fvARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2fvSGIS( void *args )
+{
+    struct glMultiTexCoord2fvSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2fvSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2hNV( void *args )
+{
+    struct glMultiTexCoord2hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2hNV( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2hvNV( void *args )
+{
+    struct glMultiTexCoord2hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2hvNV( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2i( void *args )
+{
+    struct glMultiTexCoord2i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2i( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2iARB( void *args )
+{
+    struct glMultiTexCoord2iARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2iARB( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2iSGIS( void *args )
+{
+    struct glMultiTexCoord2iSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2iSGIS( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2iv( void *args )
+{
+    struct glMultiTexCoord2iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2iv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2ivARB( void *args )
+{
+    struct glMultiTexCoord2ivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2ivARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2ivSGIS( void *args )
+{
+    struct glMultiTexCoord2ivSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2ivSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2s( void *args )
+{
+    struct glMultiTexCoord2s_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2s( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2sARB( void *args )
+{
+    struct glMultiTexCoord2sARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2sARB( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2sSGIS( void *args )
+{
+    struct glMultiTexCoord2sSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2sSGIS( params->target, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2sv( void *args )
+{
+    struct glMultiTexCoord2sv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2sv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2svARB( void *args )
+{
+    struct glMultiTexCoord2svARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2svARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2svSGIS( void *args )
+{
+    struct glMultiTexCoord2svSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2svSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2xOES( void *args )
+{
+    struct glMultiTexCoord2xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2xOES( params->texture, params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord2xvOES( void *args )
+{
+    struct glMultiTexCoord2xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord2xvOES( params->texture, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3bOES( void *args )
+{
+    struct glMultiTexCoord3bOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3bOES( params->texture, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3bvOES( void *args )
+{
+    struct glMultiTexCoord3bvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3bvOES( params->texture, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3d( void *args )
+{
+    struct glMultiTexCoord3d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3d( params->target, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3dARB( void *args )
+{
+    struct glMultiTexCoord3dARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3dARB( params->target, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3dSGIS( void *args )
+{
+    struct glMultiTexCoord3dSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3dSGIS( params->target, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3dv( void *args )
+{
+    struct glMultiTexCoord3dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3dv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3dvARB( void *args )
+{
+    struct glMultiTexCoord3dvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3dvARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3dvSGIS( void *args )
+{
+    struct glMultiTexCoord3dvSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3dvSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3f( void *args )
+{
+    struct glMultiTexCoord3f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3f( params->target, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3fARB( void *args )
+{
+    struct glMultiTexCoord3fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3fARB( params->target, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3fSGIS( void *args )
+{
+    struct glMultiTexCoord3fSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3fSGIS( params->target, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3fv( void *args )
+{
+    struct glMultiTexCoord3fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3fv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3fvARB( void *args )
+{
+    struct glMultiTexCoord3fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3fvARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3fvSGIS( void *args )
+{
+    struct glMultiTexCoord3fvSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3fvSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3hNV( void *args )
+{
+    struct glMultiTexCoord3hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3hNV( params->target, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3hvNV( void *args )
+{
+    struct glMultiTexCoord3hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3hvNV( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3i( void *args )
+{
+    struct glMultiTexCoord3i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3i( params->target, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3iARB( void *args )
+{
+    struct glMultiTexCoord3iARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3iARB( params->target, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3iSGIS( void *args )
+{
+    struct glMultiTexCoord3iSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3iSGIS( params->target, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3iv( void *args )
+{
+    struct glMultiTexCoord3iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3iv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3ivARB( void *args )
+{
+    struct glMultiTexCoord3ivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3ivARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3ivSGIS( void *args )
+{
+    struct glMultiTexCoord3ivSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3ivSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3s( void *args )
+{
+    struct glMultiTexCoord3s_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3s( params->target, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3sARB( void *args )
+{
+    struct glMultiTexCoord3sARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3sARB( params->target, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3sSGIS( void *args )
+{
+    struct glMultiTexCoord3sSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3sSGIS( params->target, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3sv( void *args )
+{
+    struct glMultiTexCoord3sv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3sv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3svARB( void *args )
+{
+    struct glMultiTexCoord3svARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3svARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3svSGIS( void *args )
+{
+    struct glMultiTexCoord3svSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3svSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3xOES( void *args )
+{
+    struct glMultiTexCoord3xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3xOES( params->texture, params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord3xvOES( void *args )
+{
+    struct glMultiTexCoord3xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord3xvOES( params->texture, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4bOES( void *args )
+{
+    struct glMultiTexCoord4bOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4bOES( params->texture, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4bvOES( void *args )
+{
+    struct glMultiTexCoord4bvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4bvOES( params->texture, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4d( void *args )
+{
+    struct glMultiTexCoord4d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4d( params->target, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4dARB( void *args )
+{
+    struct glMultiTexCoord4dARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4dARB( params->target, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4dSGIS( void *args )
+{
+    struct glMultiTexCoord4dSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4dSGIS( params->target, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4dv( void *args )
+{
+    struct glMultiTexCoord4dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4dv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4dvARB( void *args )
+{
+    struct glMultiTexCoord4dvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4dvARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4dvSGIS( void *args )
+{
+    struct glMultiTexCoord4dvSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4dvSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4f( void *args )
+{
+    struct glMultiTexCoord4f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4f( params->target, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4fARB( void *args )
+{
+    struct glMultiTexCoord4fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4fARB( params->target, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4fSGIS( void *args )
+{
+    struct glMultiTexCoord4fSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4fSGIS( params->target, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4fv( void *args )
+{
+    struct glMultiTexCoord4fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4fv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4fvARB( void *args )
+{
+    struct glMultiTexCoord4fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4fvARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4fvSGIS( void *args )
+{
+    struct glMultiTexCoord4fvSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4fvSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4hNV( void *args )
+{
+    struct glMultiTexCoord4hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4hNV( params->target, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4hvNV( void *args )
+{
+    struct glMultiTexCoord4hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4hvNV( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4i( void *args )
+{
+    struct glMultiTexCoord4i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4i( params->target, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4iARB( void *args )
+{
+    struct glMultiTexCoord4iARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4iARB( params->target, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4iSGIS( void *args )
+{
+    struct glMultiTexCoord4iSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4iSGIS( params->target, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4iv( void *args )
+{
+    struct glMultiTexCoord4iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4iv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4ivARB( void *args )
+{
+    struct glMultiTexCoord4ivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4ivARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4ivSGIS( void *args )
+{
+    struct glMultiTexCoord4ivSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4ivSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4s( void *args )
+{
+    struct glMultiTexCoord4s_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4s( params->target, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4sARB( void *args )
+{
+    struct glMultiTexCoord4sARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4sARB( params->target, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4sSGIS( void *args )
+{
+    struct glMultiTexCoord4sSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4sSGIS( params->target, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4sv( void *args )
+{
+    struct glMultiTexCoord4sv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4sv( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4svARB( void *args )
+{
+    struct glMultiTexCoord4svARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4svARB( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4svSGIS( void *args )
+{
+    struct glMultiTexCoord4svSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4svSGIS( params->target, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4xOES( void *args )
+{
+    struct glMultiTexCoord4xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4xOES( params->texture, params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoord4xvOES( void *args )
+{
+    struct glMultiTexCoord4xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoord4xvOES( params->texture, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoordP1ui( void *args )
+{
+    struct glMultiTexCoordP1ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoordP1ui( params->texture, params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoordP1uiv( void *args )
+{
+    struct glMultiTexCoordP1uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoordP1uiv( params->texture, params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoordP2ui( void *args )
+{
+    struct glMultiTexCoordP2ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoordP2ui( params->texture, params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoordP2uiv( void *args )
+{
+    struct glMultiTexCoordP2uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoordP2uiv( params->texture, params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoordP3ui( void *args )
+{
+    struct glMultiTexCoordP3ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoordP3ui( params->texture, params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoordP3uiv( void *args )
+{
+    struct glMultiTexCoordP3uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoordP3uiv( params->texture, params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoordP4ui( void *args )
+{
+    struct glMultiTexCoordP4ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoordP4ui( params->texture, params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoordP4uiv( void *args )
+{
+    struct glMultiTexCoordP4uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoordP4uiv( params->texture, params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoordPointerEXT( void *args )
+{
+    struct glMultiTexCoordPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoordPointerEXT( params->texunit, params->size, params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexCoordPointerSGIS( void *args )
+{
+    struct glMultiTexCoordPointerSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexCoordPointerSGIS( params->target, params->size, params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexEnvfEXT( void *args )
+{
+    struct glMultiTexEnvfEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexEnvfEXT( params->texunit, params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexEnvfvEXT( void *args )
+{
+    struct glMultiTexEnvfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexEnvfvEXT( params->texunit, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexEnviEXT( void *args )
+{
+    struct glMultiTexEnviEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexEnviEXT( params->texunit, params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexEnvivEXT( void *args )
+{
+    struct glMultiTexEnvivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexEnvivEXT( params->texunit, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexGendEXT( void *args )
+{
+    struct glMultiTexGendEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexGendEXT( params->texunit, params->coord, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexGendvEXT( void *args )
+{
+    struct glMultiTexGendvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexGendvEXT( params->texunit, params->coord, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexGenfEXT( void *args )
+{
+    struct glMultiTexGenfEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexGenfEXT( params->texunit, params->coord, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexGenfvEXT( void *args )
+{
+    struct glMultiTexGenfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexGenfvEXT( params->texunit, params->coord, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexGeniEXT( void *args )
+{
+    struct glMultiTexGeniEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexGeniEXT( params->texunit, params->coord, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexGenivEXT( void *args )
+{
+    struct glMultiTexGenivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexGenivEXT( params->texunit, params->coord, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexImage1DEXT( void *args )
+{
+    struct glMultiTexImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexImage1DEXT( params->texunit, params->target, params->level, params->internalformat, params->width, params->border, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexImage2DEXT( void *args )
+{
+    struct glMultiTexImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexImage2DEXT( params->texunit, params->target, params->level, params->internalformat, params->width, params->height, params->border, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexImage3DEXT( void *args )
+{
+    struct glMultiTexImage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexImage3DEXT( params->texunit, params->target, params->level, params->internalformat, params->width, params->height, params->depth, params->border, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexParameterIivEXT( void *args )
+{
+    struct glMultiTexParameterIivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexParameterIivEXT( params->texunit, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexParameterIuivEXT( void *args )
+{
+    struct glMultiTexParameterIuivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexParameterIuivEXT( params->texunit, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexParameterfEXT( void *args )
+{
+    struct glMultiTexParameterfEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexParameterfEXT( params->texunit, params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexParameterfvEXT( void *args )
+{
+    struct glMultiTexParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexParameterfvEXT( params->texunit, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexParameteriEXT( void *args )
+{
+    struct glMultiTexParameteriEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexParameteriEXT( params->texunit, params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexParameterivEXT( void *args )
+{
+    struct glMultiTexParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexParameterivEXT( params->texunit, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexRenderbufferEXT( void *args )
+{
+    struct glMultiTexRenderbufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexRenderbufferEXT( params->texunit, params->target, params->renderbuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexSubImage1DEXT( void *args )
+{
+    struct glMultiTexSubImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexSubImage1DEXT( params->texunit, params->target, params->level, params->xoffset, params->width, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexSubImage2DEXT( void *args )
+{
+    struct glMultiTexSubImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexSubImage2DEXT( params->texunit, params->target, params->level, params->xoffset, params->yoffset, params->width, params->height, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMultiTexSubImage3DEXT( void *args )
+{
+    struct glMultiTexSubImage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMultiTexSubImage3DEXT( params->texunit, params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastBarrierNV( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastBarrierNV();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastBlitFramebufferNV( void *args )
+{
+    struct glMulticastBlitFramebufferNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastBlitFramebufferNV( params->srcGpu, params->dstGpu, params->srcX0, params->srcY0, params->srcX1, params->srcY1, params->dstX0, params->dstY0, params->dstX1, params->dstY1, params->mask, params->filter );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastBufferSubDataNV( void *args )
+{
+    struct glMulticastBufferSubDataNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastBufferSubDataNV( params->gpuMask, params->buffer, params->offset, params->size, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastCopyBufferSubDataNV( void *args )
+{
+    struct glMulticastCopyBufferSubDataNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastCopyBufferSubDataNV( params->readGpu, params->writeGpuMask, params->readBuffer, params->writeBuffer, params->readOffset, params->writeOffset, params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastCopyImageSubDataNV( void *args )
+{
+    struct glMulticastCopyImageSubDataNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastCopyImageSubDataNV( params->srcGpu, params->dstGpuMask, params->srcName, params->srcTarget, params->srcLevel, params->srcX, params->srcY, params->srcZ, params->dstName, params->dstTarget, params->dstLevel, params->dstX, params->dstY, params->dstZ, params->srcWidth, params->srcHeight, params->srcDepth );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastFramebufferSampleLocationsfvNV( void *args )
+{
+    struct glMulticastFramebufferSampleLocationsfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastFramebufferSampleLocationsfvNV( params->gpu, params->framebuffer, params->start, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastGetQueryObjecti64vNV( void *args )
+{
+    struct glMulticastGetQueryObjecti64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastGetQueryObjecti64vNV( params->gpu, params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastGetQueryObjectivNV( void *args )
+{
+    struct glMulticastGetQueryObjectivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastGetQueryObjectivNV( params->gpu, params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastGetQueryObjectui64vNV( void *args )
+{
+    struct glMulticastGetQueryObjectui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastGetQueryObjectui64vNV( params->gpu, params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastGetQueryObjectuivNV( void *args )
+{
+    struct glMulticastGetQueryObjectuivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastGetQueryObjectuivNV( params->gpu, params->id, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastScissorArrayvNVX( void *args )
+{
+    struct glMulticastScissorArrayvNVX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastScissorArrayvNVX( params->gpu, params->first, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastViewportArrayvNVX( void *args )
+{
+    struct glMulticastViewportArrayvNVX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastViewportArrayvNVX( params->gpu, params->first, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastViewportPositionWScaleNVX( void *args )
+{
+    struct glMulticastViewportPositionWScaleNVX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastViewportPositionWScaleNVX( params->gpu, params->index, params->xcoeff, params->ycoeff );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glMulticastWaitSyncNV( void *args )
+{
+    struct glMulticastWaitSyncNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glMulticastWaitSyncNV( params->signalGpu, params->waitGpuMask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedBufferAttachMemoryNV( void *args )
+{
+    struct glNamedBufferAttachMemoryNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedBufferAttachMemoryNV( params->buffer, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedBufferData( void *args )
+{
+    struct glNamedBufferData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedBufferData( params->buffer, params->size, params->data, params->usage );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedBufferDataEXT( void *args )
+{
+    struct glNamedBufferDataEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedBufferDataEXT( params->buffer, params->size, params->data, params->usage );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedBufferPageCommitmentARB( void *args )
+{
+    struct glNamedBufferPageCommitmentARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedBufferPageCommitmentARB( params->buffer, params->offset, params->size, params->commit );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedBufferPageCommitmentEXT( void *args )
+{
+    struct glNamedBufferPageCommitmentEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedBufferPageCommitmentEXT( params->buffer, params->offset, params->size, params->commit );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedBufferStorage( void *args )
+{
+    struct glNamedBufferStorage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedBufferStorage( params->buffer, params->size, params->data, params->flags );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedBufferStorageEXT( void *args )
+{
+    struct glNamedBufferStorageEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedBufferStorageEXT( params->buffer, params->size, params->data, params->flags );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedBufferStorageExternalEXT( void *args )
+{
+    struct glNamedBufferStorageExternalEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedBufferStorageExternalEXT( params->buffer, params->offset, params->size, params->clientBuffer, params->flags );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedBufferStorageMemEXT( void *args )
+{
+    struct glNamedBufferStorageMemEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedBufferStorageMemEXT( params->buffer, params->size, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedBufferSubData( void *args )
+{
+    struct glNamedBufferSubData_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedBufferSubData( params->buffer, params->offset, params->size, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedBufferSubDataEXT( void *args )
+{
+    struct glNamedBufferSubDataEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedBufferSubDataEXT( params->buffer, params->offset, params->size, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedCopyBufferSubDataEXT( void *args )
+{
+    struct glNamedCopyBufferSubDataEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedCopyBufferSubDataEXT( params->readBuffer, params->writeBuffer, params->readOffset, params->writeOffset, params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferDrawBuffer( void *args )
+{
+    struct glNamedFramebufferDrawBuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferDrawBuffer( params->framebuffer, params->buf );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferDrawBuffers( void *args )
+{
+    struct glNamedFramebufferDrawBuffers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferDrawBuffers( params->framebuffer, params->n, params->bufs );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferParameteri( void *args )
+{
+    struct glNamedFramebufferParameteri_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferParameteri( params->framebuffer, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferParameteriEXT( void *args )
+{
+    struct glNamedFramebufferParameteriEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferParameteriEXT( params->framebuffer, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferReadBuffer( void *args )
+{
+    struct glNamedFramebufferReadBuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferReadBuffer( params->framebuffer, params->src );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferRenderbuffer( void *args )
+{
+    struct glNamedFramebufferRenderbuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferRenderbuffer( params->framebuffer, params->attachment, params->renderbuffertarget, params->renderbuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferRenderbufferEXT( void *args )
+{
+    struct glNamedFramebufferRenderbufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferRenderbufferEXT( params->framebuffer, params->attachment, params->renderbuffertarget, params->renderbuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferSampleLocationsfvARB( void *args )
+{
+    struct glNamedFramebufferSampleLocationsfvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferSampleLocationsfvARB( params->framebuffer, params->start, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferSampleLocationsfvNV( void *args )
+{
+    struct glNamedFramebufferSampleLocationsfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferSampleLocationsfvNV( params->framebuffer, params->start, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferSamplePositionsfvAMD( void *args )
+{
+    struct glNamedFramebufferSamplePositionsfvAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferSamplePositionsfvAMD( params->framebuffer, params->numsamples, params->pixelindex, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferTexture( void *args )
+{
+    struct glNamedFramebufferTexture_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferTexture( params->framebuffer, params->attachment, params->texture, params->level );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferTexture1DEXT( void *args )
+{
+    struct glNamedFramebufferTexture1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferTexture1DEXT( params->framebuffer, params->attachment, params->textarget, params->texture, params->level );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferTexture2DEXT( void *args )
+{
+    struct glNamedFramebufferTexture2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferTexture2DEXT( params->framebuffer, params->attachment, params->textarget, params->texture, params->level );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferTexture3DEXT( void *args )
+{
+    struct glNamedFramebufferTexture3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferTexture3DEXT( params->framebuffer, params->attachment, params->textarget, params->texture, params->level, params->zoffset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferTextureEXT( void *args )
+{
+    struct glNamedFramebufferTextureEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferTextureEXT( params->framebuffer, params->attachment, params->texture, params->level );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferTextureFaceEXT( void *args )
+{
+    struct glNamedFramebufferTextureFaceEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferTextureFaceEXT( params->framebuffer, params->attachment, params->texture, params->level, params->face );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferTextureLayer( void *args )
+{
+    struct glNamedFramebufferTextureLayer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferTextureLayer( params->framebuffer, params->attachment, params->texture, params->level, params->layer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedFramebufferTextureLayerEXT( void *args )
+{
+    struct glNamedFramebufferTextureLayerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedFramebufferTextureLayerEXT( params->framebuffer, params->attachment, params->texture, params->level, params->layer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedProgramLocalParameter4dEXT( void *args )
+{
+    struct glNamedProgramLocalParameter4dEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedProgramLocalParameter4dEXT( params->program, params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedProgramLocalParameter4dvEXT( void *args )
+{
+    struct glNamedProgramLocalParameter4dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedProgramLocalParameter4dvEXT( params->program, params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedProgramLocalParameter4fEXT( void *args )
+{
+    struct glNamedProgramLocalParameter4fEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedProgramLocalParameter4fEXT( params->program, params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedProgramLocalParameter4fvEXT( void *args )
+{
+    struct glNamedProgramLocalParameter4fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedProgramLocalParameter4fvEXT( params->program, params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedProgramLocalParameterI4iEXT( void *args )
+{
+    struct glNamedProgramLocalParameterI4iEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedProgramLocalParameterI4iEXT( params->program, params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedProgramLocalParameterI4ivEXT( void *args )
+{
+    struct glNamedProgramLocalParameterI4ivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedProgramLocalParameterI4ivEXT( params->program, params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedProgramLocalParameterI4uiEXT( void *args )
+{
+    struct glNamedProgramLocalParameterI4uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedProgramLocalParameterI4uiEXT( params->program, params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedProgramLocalParameterI4uivEXT( void *args )
+{
+    struct glNamedProgramLocalParameterI4uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedProgramLocalParameterI4uivEXT( params->program, params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedProgramLocalParameters4fvEXT( void *args )
+{
+    struct glNamedProgramLocalParameters4fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedProgramLocalParameters4fvEXT( params->program, params->target, params->index, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedProgramLocalParametersI4ivEXT( void *args )
+{
+    struct glNamedProgramLocalParametersI4ivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedProgramLocalParametersI4ivEXT( params->program, params->target, params->index, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedProgramLocalParametersI4uivEXT( void *args )
+{
+    struct glNamedProgramLocalParametersI4uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedProgramLocalParametersI4uivEXT( params->program, params->target, params->index, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedProgramStringEXT( void *args )
+{
+    struct glNamedProgramStringEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedProgramStringEXT( params->program, params->target, params->format, params->len, params->string );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedRenderbufferStorage( void *args )
+{
+    struct glNamedRenderbufferStorage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedRenderbufferStorage( params->renderbuffer, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedRenderbufferStorageEXT( void *args )
+{
+    struct glNamedRenderbufferStorageEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedRenderbufferStorageEXT( params->renderbuffer, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedRenderbufferStorageMultisample( void *args )
+{
+    struct glNamedRenderbufferStorageMultisample_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedRenderbufferStorageMultisample( params->renderbuffer, params->samples, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedRenderbufferStorageMultisampleAdvancedAMD( void *args )
+{
+    struct glNamedRenderbufferStorageMultisampleAdvancedAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedRenderbufferStorageMultisampleAdvancedAMD( params->renderbuffer, params->samples, params->storageSamples, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedRenderbufferStorageMultisampleCoverageEXT( void *args )
+{
+    struct glNamedRenderbufferStorageMultisampleCoverageEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedRenderbufferStorageMultisampleCoverageEXT( params->renderbuffer, params->coverageSamples, params->colorSamples, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedRenderbufferStorageMultisampleEXT( void *args )
+{
+    struct glNamedRenderbufferStorageMultisampleEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedRenderbufferStorageMultisampleEXT( params->renderbuffer, params->samples, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNamedStringARB( void *args )
+{
+    struct glNamedStringARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNamedStringARB( params->type, params->namelen, params->name, params->stringlen, params->string );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNewBufferRegion( void *args )
+{
+    struct glNewBufferRegion_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glNewBufferRegion( params->type );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNewObjectBufferATI( void *args )
+{
+    struct glNewObjectBufferATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glNewObjectBufferATI( params->size, params->pointer, params->usage );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormal3fVertex3fSUN( void *args )
+{
+    struct glNormal3fVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormal3fVertex3fSUN( params->nx, params->ny, params->nz, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormal3fVertex3fvSUN( void *args )
+{
+    struct glNormal3fVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormal3fVertex3fvSUN( params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormal3hNV( void *args )
+{
+    struct glNormal3hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormal3hNV( params->nx, params->ny, params->nz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormal3hvNV( void *args )
+{
+    struct glNormal3hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormal3hvNV( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormal3xOES( void *args )
+{
+    struct glNormal3xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormal3xOES( params->nx, params->ny, params->nz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormal3xvOES( void *args )
+{
+    struct glNormal3xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormal3xvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalFormatNV( void *args )
+{
+    struct glNormalFormatNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalFormatNV( params->type, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalP3ui( void *args )
+{
+    struct glNormalP3ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalP3ui( params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalP3uiv( void *args )
+{
+    struct glNormalP3uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalP3uiv( params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalPointerEXT( void *args )
+{
+    struct glNormalPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalPointerEXT( params->type, params->stride, params->count, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalPointerListIBM( void *args )
+{
+    struct glNormalPointerListIBM_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalPointerListIBM( params->type, params->stride, params->pointer, params->ptrstride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalPointervINTEL( void *args )
+{
+    struct glNormalPointervINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalPointervINTEL( params->type, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalStream3bATI( void *args )
+{
+    struct glNormalStream3bATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalStream3bATI( params->stream, params->nx, params->ny, params->nz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalStream3bvATI( void *args )
+{
+    struct glNormalStream3bvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalStream3bvATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalStream3dATI( void *args )
+{
+    struct glNormalStream3dATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalStream3dATI( params->stream, params->nx, params->ny, params->nz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalStream3dvATI( void *args )
+{
+    struct glNormalStream3dvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalStream3dvATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalStream3fATI( void *args )
+{
+    struct glNormalStream3fATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalStream3fATI( params->stream, params->nx, params->ny, params->nz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalStream3fvATI( void *args )
+{
+    struct glNormalStream3fvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalStream3fvATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalStream3iATI( void *args )
+{
+    struct glNormalStream3iATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalStream3iATI( params->stream, params->nx, params->ny, params->nz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalStream3ivATI( void *args )
+{
+    struct glNormalStream3ivATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalStream3ivATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalStream3sATI( void *args )
+{
+    struct glNormalStream3sATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalStream3sATI( params->stream, params->nx, params->ny, params->nz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glNormalStream3svATI( void *args )
+{
+    struct glNormalStream3svATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glNormalStream3svATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glObjectLabel( void *args )
+{
+    struct glObjectLabel_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glObjectLabel( params->identifier, params->name, params->length, params->label );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glObjectPtrLabel( void *args )
+{
+    struct glObjectPtrLabel_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glObjectPtrLabel( params->ptr, params->length, params->label );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glObjectPurgeableAPPLE( void *args )
+{
+    struct glObjectPurgeableAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glObjectPurgeableAPPLE( params->objectType, params->name, params->option );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glObjectUnpurgeableAPPLE( void *args )
+{
+    struct glObjectUnpurgeableAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glObjectUnpurgeableAPPLE( params->objectType, params->name, params->option );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glOrthofOES( void *args )
+{
+    struct glOrthofOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glOrthofOES( params->l, params->r, params->b, params->t, params->n, params->f );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glOrthoxOES( void *args )
+{
+    struct glOrthoxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glOrthoxOES( params->l, params->r, params->b, params->t, params->n, params->f );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPNTrianglesfATI( void *args )
+{
+    struct glPNTrianglesfATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPNTrianglesfATI( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPNTrianglesiATI( void *args )
+{
+    struct glPNTrianglesiATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPNTrianglesiATI( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPassTexCoordATI( void *args )
+{
+    struct glPassTexCoordATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPassTexCoordATI( params->dst, params->coord, params->swizzle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPassThroughxOES( void *args )
+{
+    struct glPassThroughxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPassThroughxOES( params->token );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPatchParameterfv( void *args )
+{
+    struct glPatchParameterfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPatchParameterfv( params->pname, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPatchParameteri( void *args )
+{
+    struct glPatchParameteri_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPatchParameteri( params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathColorGenNV( void *args )
+{
+    struct glPathColorGenNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathColorGenNV( params->color, params->genMode, params->colorFormat, params->coeffs );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathCommandsNV( void *args )
+{
+    struct glPathCommandsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathCommandsNV( params->path, params->numCommands, params->commands, params->numCoords, params->coordType, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathCoordsNV( void *args )
+{
+    struct glPathCoordsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathCoordsNV( params->path, params->numCoords, params->coordType, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathCoverDepthFuncNV( void *args )
+{
+    struct glPathCoverDepthFuncNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathCoverDepthFuncNV( params->func );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathDashArrayNV( void *args )
+{
+    struct glPathDashArrayNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathDashArrayNV( params->path, params->dashCount, params->dashArray );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathFogGenNV( void *args )
+{
+    struct glPathFogGenNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathFogGenNV( params->genMode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathGlyphIndexArrayNV( void *args )
+{
+    struct glPathGlyphIndexArrayNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glPathGlyphIndexArrayNV( params->firstPathName, params->fontTarget, params->fontName, params->fontStyle, params->firstGlyphIndex, params->numGlyphs, params->pathParameterTemplate, params->emScale );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathGlyphIndexRangeNV( void *args )
+{
+    struct glPathGlyphIndexRangeNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glPathGlyphIndexRangeNV( params->fontTarget, params->fontName, params->fontStyle, params->pathParameterTemplate, params->emScale, params->baseAndCount );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathGlyphRangeNV( void *args )
+{
+    struct glPathGlyphRangeNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathGlyphRangeNV( params->firstPathName, params->fontTarget, params->fontName, params->fontStyle, params->firstGlyph, params->numGlyphs, params->handleMissingGlyphs, params->pathParameterTemplate, params->emScale );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathGlyphsNV( void *args )
+{
+    struct glPathGlyphsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathGlyphsNV( params->firstPathName, params->fontTarget, params->fontName, params->fontStyle, params->numGlyphs, params->type, params->charcodes, params->handleMissingGlyphs, params->pathParameterTemplate, params->emScale );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathMemoryGlyphIndexArrayNV( void *args )
+{
+    struct glPathMemoryGlyphIndexArrayNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glPathMemoryGlyphIndexArrayNV( params->firstPathName, params->fontTarget, params->fontSize, params->fontData, params->faceIndex, params->firstGlyphIndex, params->numGlyphs, params->pathParameterTemplate, params->emScale );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathParameterfNV( void *args )
+{
+    struct glPathParameterfNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathParameterfNV( params->path, params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathParameterfvNV( void *args )
+{
+    struct glPathParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathParameterfvNV( params->path, params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathParameteriNV( void *args )
+{
+    struct glPathParameteriNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathParameteriNV( params->path, params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathParameterivNV( void *args )
+{
+    struct glPathParameterivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathParameterivNV( params->path, params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathStencilDepthOffsetNV( void *args )
+{
+    struct glPathStencilDepthOffsetNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathStencilDepthOffsetNV( params->factor, params->units );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathStencilFuncNV( void *args )
+{
+    struct glPathStencilFuncNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathStencilFuncNV( params->func, params->ref, params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathStringNV( void *args )
+{
+    struct glPathStringNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathStringNV( params->path, params->format, params->length, params->pathString );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathSubCommandsNV( void *args )
+{
+    struct glPathSubCommandsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathSubCommandsNV( params->path, params->commandStart, params->commandsToDelete, params->numCommands, params->commands, params->numCoords, params->coordType, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathSubCoordsNV( void *args )
+{
+    struct glPathSubCoordsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathSubCoordsNV( params->path, params->coordStart, params->numCoords, params->coordType, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPathTexGenNV( void *args )
+{
+    struct glPathTexGenNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPathTexGenNV( params->texCoordSet, params->genMode, params->components, params->coeffs );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPauseTransformFeedback( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPauseTransformFeedback();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPauseTransformFeedbackNV( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPauseTransformFeedbackNV();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelDataRangeNV( void *args )
+{
+    struct glPixelDataRangeNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelDataRangeNV( params->target, params->length, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelMapx( void *args )
+{
+    struct glPixelMapx_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelMapx( params->map, params->size, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelStorex( void *args )
+{
+    struct glPixelStorex_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelStorex( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelTexGenParameterfSGIS( void *args )
+{
+    struct glPixelTexGenParameterfSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelTexGenParameterfSGIS( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelTexGenParameterfvSGIS( void *args )
+{
+    struct glPixelTexGenParameterfvSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelTexGenParameterfvSGIS( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelTexGenParameteriSGIS( void *args )
+{
+    struct glPixelTexGenParameteriSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelTexGenParameteriSGIS( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelTexGenParameterivSGIS( void *args )
+{
+    struct glPixelTexGenParameterivSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelTexGenParameterivSGIS( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelTexGenSGIX( void *args )
+{
+    struct glPixelTexGenSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelTexGenSGIX( params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelTransferxOES( void *args )
+{
+    struct glPixelTransferxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelTransferxOES( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelTransformParameterfEXT( void *args )
+{
+    struct glPixelTransformParameterfEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelTransformParameterfEXT( params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelTransformParameterfvEXT( void *args )
+{
+    struct glPixelTransformParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelTransformParameterfvEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelTransformParameteriEXT( void *args )
+{
+    struct glPixelTransformParameteriEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelTransformParameteriEXT( params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelTransformParameterivEXT( void *args )
+{
+    struct glPixelTransformParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelTransformParameterivEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPixelZoomxOES( void *args )
+{
+    struct glPixelZoomxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPixelZoomxOES( params->xfactor, params->yfactor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointAlongPathNV( void *args )
+{
+    struct glPointAlongPathNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glPointAlongPathNV( params->path, params->startSegment, params->numSegments, params->distance, params->x, params->y, params->tangentX, params->tangentY );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointParameterf( void *args )
+{
+    struct glPointParameterf_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointParameterf( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointParameterfARB( void *args )
+{
+    struct glPointParameterfARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointParameterfARB( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointParameterfEXT( void *args )
+{
+    struct glPointParameterfEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointParameterfEXT( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointParameterfSGIS( void *args )
+{
+    struct glPointParameterfSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointParameterfSGIS( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointParameterfv( void *args )
+{
+    struct glPointParameterfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointParameterfv( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointParameterfvARB( void *args )
+{
+    struct glPointParameterfvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointParameterfvARB( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointParameterfvEXT( void *args )
+{
+    struct glPointParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointParameterfvEXT( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointParameterfvSGIS( void *args )
+{
+    struct glPointParameterfvSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointParameterfvSGIS( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointParameteri( void *args )
+{
+    struct glPointParameteri_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointParameteri( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointParameteriNV( void *args )
+{
+    struct glPointParameteriNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointParameteriNV( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointParameteriv( void *args )
+{
+    struct glPointParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointParameteriv( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointParameterivNV( void *args )
+{
+    struct glPointParameterivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointParameterivNV( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointParameterxvOES( void *args )
+{
+    struct glPointParameterxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointParameterxvOES( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPointSizexOES( void *args )
+{
+    struct glPointSizexOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPointSizexOES( params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPollAsyncSGIX( void *args )
+{
+    struct glPollAsyncSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glPollAsyncSGIX( params->markerp );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPollInstrumentsSGIX( void *args )
+{
+    struct glPollInstrumentsSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glPollInstrumentsSGIX( params->marker_p );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPolygonOffsetClamp( void *args )
+{
+    struct glPolygonOffsetClamp_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPolygonOffsetClamp( params->factor, params->units, params->clamp );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPolygonOffsetClampEXT( void *args )
+{
+    struct glPolygonOffsetClampEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPolygonOffsetClampEXT( params->factor, params->units, params->clamp );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPolygonOffsetEXT( void *args )
+{
+    struct glPolygonOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPolygonOffsetEXT( params->factor, params->bias );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPolygonOffsetxOES( void *args )
+{
+    struct glPolygonOffsetxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPolygonOffsetxOES( params->factor, params->units );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPopDebugGroup( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPopDebugGroup();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPopGroupMarkerEXT( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPopGroupMarkerEXT();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPresentFrameDualFillNV( void *args )
+{
+    struct glPresentFrameDualFillNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPresentFrameDualFillNV( params->video_slot, params->minPresentTime, params->beginPresentTimeId, params->presentDurationId, params->type, params->target0, params->fill0, params->target1, params->fill1, params->target2, params->fill2, params->target3, params->fill3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPresentFrameKeyedNV( void *args )
+{
+    struct glPresentFrameKeyedNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPresentFrameKeyedNV( params->video_slot, params->minPresentTime, params->beginPresentTimeId, params->presentDurationId, params->type, params->target0, params->fill0, params->key0, params->target1, params->fill1, params->key1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPrimitiveBoundingBoxARB( void *args )
+{
+    struct glPrimitiveBoundingBoxARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPrimitiveBoundingBoxARB( params->minX, params->minY, params->minZ, params->minW, params->maxX, params->maxY, params->maxZ, params->maxW );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPrimitiveRestartIndex( void *args )
+{
+    struct glPrimitiveRestartIndex_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPrimitiveRestartIndex( params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPrimitiveRestartIndexNV( void *args )
+{
+    struct glPrimitiveRestartIndexNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPrimitiveRestartIndexNV( params->index );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPrimitiveRestartNV( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPrimitiveRestartNV();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPrioritizeTexturesEXT( void *args )
+{
+    struct glPrioritizeTexturesEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPrioritizeTexturesEXT( params->n, params->textures, params->priorities );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPrioritizeTexturesxOES( void *args )
+{
+    struct glPrioritizeTexturesxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPrioritizeTexturesxOES( params->n, params->textures, params->priorities );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramBinary( void *args )
+{
+    struct glProgramBinary_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramBinary( params->program, params->binaryFormat, params->binary, params->length );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramBufferParametersIivNV( void *args )
+{
+    struct glProgramBufferParametersIivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramBufferParametersIivNV( params->target, params->bindingIndex, params->wordIndex, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramBufferParametersIuivNV( void *args )
+{
+    struct glProgramBufferParametersIuivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramBufferParametersIuivNV( params->target, params->bindingIndex, params->wordIndex, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramBufferParametersfvNV( void *args )
+{
+    struct glProgramBufferParametersfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramBufferParametersfvNV( params->target, params->bindingIndex, params->wordIndex, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramEnvParameter4dARB( void *args )
+{
+    struct glProgramEnvParameter4dARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramEnvParameter4dARB( params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramEnvParameter4dvARB( void *args )
+{
+    struct glProgramEnvParameter4dvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramEnvParameter4dvARB( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramEnvParameter4fARB( void *args )
+{
+    struct glProgramEnvParameter4fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramEnvParameter4fARB( params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramEnvParameter4fvARB( void *args )
+{
+    struct glProgramEnvParameter4fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramEnvParameter4fvARB( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramEnvParameterI4iNV( void *args )
+{
+    struct glProgramEnvParameterI4iNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramEnvParameterI4iNV( params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramEnvParameterI4ivNV( void *args )
+{
+    struct glProgramEnvParameterI4ivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramEnvParameterI4ivNV( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramEnvParameterI4uiNV( void *args )
+{
+    struct glProgramEnvParameterI4uiNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramEnvParameterI4uiNV( params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramEnvParameterI4uivNV( void *args )
+{
+    struct glProgramEnvParameterI4uivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramEnvParameterI4uivNV( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramEnvParameters4fvEXT( void *args )
+{
+    struct glProgramEnvParameters4fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramEnvParameters4fvEXT( params->target, params->index, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramEnvParametersI4ivNV( void *args )
+{
+    struct glProgramEnvParametersI4ivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramEnvParametersI4ivNV( params->target, params->index, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramEnvParametersI4uivNV( void *args )
+{
+    struct glProgramEnvParametersI4uivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramEnvParametersI4uivNV( params->target, params->index, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramLocalParameter4dARB( void *args )
+{
+    struct glProgramLocalParameter4dARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramLocalParameter4dARB( params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramLocalParameter4dvARB( void *args )
+{
+    struct glProgramLocalParameter4dvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramLocalParameter4dvARB( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramLocalParameter4fARB( void *args )
+{
+    struct glProgramLocalParameter4fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramLocalParameter4fARB( params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramLocalParameter4fvARB( void *args )
+{
+    struct glProgramLocalParameter4fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramLocalParameter4fvARB( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramLocalParameterI4iNV( void *args )
+{
+    struct glProgramLocalParameterI4iNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramLocalParameterI4iNV( params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramLocalParameterI4ivNV( void *args )
+{
+    struct glProgramLocalParameterI4ivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramLocalParameterI4ivNV( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramLocalParameterI4uiNV( void *args )
+{
+    struct glProgramLocalParameterI4uiNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramLocalParameterI4uiNV( params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramLocalParameterI4uivNV( void *args )
+{
+    struct glProgramLocalParameterI4uivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramLocalParameterI4uivNV( params->target, params->index, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramLocalParameters4fvEXT( void *args )
+{
+    struct glProgramLocalParameters4fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramLocalParameters4fvEXT( params->target, params->index, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramLocalParametersI4ivNV( void *args )
+{
+    struct glProgramLocalParametersI4ivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramLocalParametersI4ivNV( params->target, params->index, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramLocalParametersI4uivNV( void *args )
+{
+    struct glProgramLocalParametersI4uivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramLocalParametersI4uivNV( params->target, params->index, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramNamedParameter4dNV( void *args )
+{
+    struct glProgramNamedParameter4dNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramNamedParameter4dNV( params->id, params->len, params->name, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramNamedParameter4dvNV( void *args )
+{
+    struct glProgramNamedParameter4dvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramNamedParameter4dvNV( params->id, params->len, params->name, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramNamedParameter4fNV( void *args )
+{
+    struct glProgramNamedParameter4fNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramNamedParameter4fNV( params->id, params->len, params->name, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramNamedParameter4fvNV( void *args )
+{
+    struct glProgramNamedParameter4fvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramNamedParameter4fvNV( params->id, params->len, params->name, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramParameter4dNV( void *args )
+{
+    struct glProgramParameter4dNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramParameter4dNV( params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramParameter4dvNV( void *args )
+{
+    struct glProgramParameter4dvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramParameter4dvNV( params->target, params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramParameter4fNV( void *args )
+{
+    struct glProgramParameter4fNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramParameter4fNV( params->target, params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramParameter4fvNV( void *args )
+{
+    struct glProgramParameter4fvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramParameter4fvNV( params->target, params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramParameteri( void *args )
+{
+    struct glProgramParameteri_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramParameteri( params->program, params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramParameteriARB( void *args )
+{
+    struct glProgramParameteriARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramParameteriARB( params->program, params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramParameteriEXT( void *args )
+{
+    struct glProgramParameteriEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramParameteriEXT( params->program, params->pname, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramParameters4dvNV( void *args )
+{
+    struct glProgramParameters4dvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramParameters4dvNV( params->target, params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramParameters4fvNV( void *args )
+{
+    struct glProgramParameters4fvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramParameters4fvNV( params->target, params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramPathFragmentInputGenNV( void *args )
+{
+    struct glProgramPathFragmentInputGenNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramPathFragmentInputGenNV( params->program, params->location, params->genMode, params->components, params->coeffs );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramStringARB( void *args )
+{
+    struct glProgramStringARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramStringARB( params->target, params->format, params->len, params->string );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramSubroutineParametersuivNV( void *args )
+{
+    struct glProgramSubroutineParametersuivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramSubroutineParametersuivNV( params->target, params->count, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1d( void *args )
+{
+    struct glProgramUniform1d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1d( params->program, params->location, params->v0 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1dEXT( void *args )
+{
+    struct glProgramUniform1dEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1dEXT( params->program, params->location, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1dv( void *args )
+{
+    struct glProgramUniform1dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1dv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1dvEXT( void *args )
+{
+    struct glProgramUniform1dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1dvEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1f( void *args )
+{
+    struct glProgramUniform1f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1f( params->program, params->location, params->v0 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1fEXT( void *args )
+{
+    struct glProgramUniform1fEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1fEXT( params->program, params->location, params->v0 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1fv( void *args )
+{
+    struct glProgramUniform1fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1fv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1fvEXT( void *args )
+{
+    struct glProgramUniform1fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1fvEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1i( void *args )
+{
+    struct glProgramUniform1i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1i( params->program, params->location, params->v0 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1i64ARB( void *args )
+{
+    struct glProgramUniform1i64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1i64ARB( params->program, params->location, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1i64NV( void *args )
+{
+    struct glProgramUniform1i64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1i64NV( params->program, params->location, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1i64vARB( void *args )
+{
+    struct glProgramUniform1i64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1i64vARB( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1i64vNV( void *args )
+{
+    struct glProgramUniform1i64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1i64vNV( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1iEXT( void *args )
+{
+    struct glProgramUniform1iEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1iEXT( params->program, params->location, params->v0 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1iv( void *args )
+{
+    struct glProgramUniform1iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1iv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1ivEXT( void *args )
+{
+    struct glProgramUniform1ivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1ivEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1ui( void *args )
+{
+    struct glProgramUniform1ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1ui( params->program, params->location, params->v0 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1ui64ARB( void *args )
+{
+    struct glProgramUniform1ui64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1ui64ARB( params->program, params->location, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1ui64NV( void *args )
+{
+    struct glProgramUniform1ui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1ui64NV( params->program, params->location, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1ui64vARB( void *args )
+{
+    struct glProgramUniform1ui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1ui64vARB( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1ui64vNV( void *args )
+{
+    struct glProgramUniform1ui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1ui64vNV( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1uiEXT( void *args )
+{
+    struct glProgramUniform1uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1uiEXT( params->program, params->location, params->v0 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1uiv( void *args )
+{
+    struct glProgramUniform1uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1uiv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform1uivEXT( void *args )
+{
+    struct glProgramUniform1uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform1uivEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2d( void *args )
+{
+    struct glProgramUniform2d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2d( params->program, params->location, params->v0, params->v1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2dEXT( void *args )
+{
+    struct glProgramUniform2dEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2dEXT( params->program, params->location, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2dv( void *args )
+{
+    struct glProgramUniform2dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2dv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2dvEXT( void *args )
+{
+    struct glProgramUniform2dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2dvEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2f( void *args )
+{
+    struct glProgramUniform2f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2f( params->program, params->location, params->v0, params->v1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2fEXT( void *args )
+{
+    struct glProgramUniform2fEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2fEXT( params->program, params->location, params->v0, params->v1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2fv( void *args )
+{
+    struct glProgramUniform2fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2fv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2fvEXT( void *args )
+{
+    struct glProgramUniform2fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2fvEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2i( void *args )
+{
+    struct glProgramUniform2i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2i( params->program, params->location, params->v0, params->v1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2i64ARB( void *args )
+{
+    struct glProgramUniform2i64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2i64ARB( params->program, params->location, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2i64NV( void *args )
+{
+    struct glProgramUniform2i64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2i64NV( params->program, params->location, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2i64vARB( void *args )
+{
+    struct glProgramUniform2i64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2i64vARB( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2i64vNV( void *args )
+{
+    struct glProgramUniform2i64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2i64vNV( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2iEXT( void *args )
+{
+    struct glProgramUniform2iEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2iEXT( params->program, params->location, params->v0, params->v1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2iv( void *args )
+{
+    struct glProgramUniform2iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2iv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2ivEXT( void *args )
+{
+    struct glProgramUniform2ivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2ivEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2ui( void *args )
+{
+    struct glProgramUniform2ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2ui( params->program, params->location, params->v0, params->v1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2ui64ARB( void *args )
+{
+    struct glProgramUniform2ui64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2ui64ARB( params->program, params->location, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2ui64NV( void *args )
+{
+    struct glProgramUniform2ui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2ui64NV( params->program, params->location, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2ui64vARB( void *args )
+{
+    struct glProgramUniform2ui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2ui64vARB( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2ui64vNV( void *args )
+{
+    struct glProgramUniform2ui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2ui64vNV( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2uiEXT( void *args )
+{
+    struct glProgramUniform2uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2uiEXT( params->program, params->location, params->v0, params->v1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2uiv( void *args )
+{
+    struct glProgramUniform2uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2uiv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform2uivEXT( void *args )
+{
+    struct glProgramUniform2uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform2uivEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3d( void *args )
+{
+    struct glProgramUniform3d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3d( params->program, params->location, params->v0, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3dEXT( void *args )
+{
+    struct glProgramUniform3dEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3dEXT( params->program, params->location, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3dv( void *args )
+{
+    struct glProgramUniform3dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3dv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3dvEXT( void *args )
+{
+    struct glProgramUniform3dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3dvEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3f( void *args )
+{
+    struct glProgramUniform3f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3f( params->program, params->location, params->v0, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3fEXT( void *args )
+{
+    struct glProgramUniform3fEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3fEXT( params->program, params->location, params->v0, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3fv( void *args )
+{
+    struct glProgramUniform3fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3fv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3fvEXT( void *args )
+{
+    struct glProgramUniform3fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3fvEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3i( void *args )
+{
+    struct glProgramUniform3i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3i( params->program, params->location, params->v0, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3i64ARB( void *args )
+{
+    struct glProgramUniform3i64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3i64ARB( params->program, params->location, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3i64NV( void *args )
+{
+    struct glProgramUniform3i64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3i64NV( params->program, params->location, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3i64vARB( void *args )
+{
+    struct glProgramUniform3i64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3i64vARB( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3i64vNV( void *args )
+{
+    struct glProgramUniform3i64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3i64vNV( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3iEXT( void *args )
+{
+    struct glProgramUniform3iEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3iEXT( params->program, params->location, params->v0, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3iv( void *args )
+{
+    struct glProgramUniform3iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3iv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3ivEXT( void *args )
+{
+    struct glProgramUniform3ivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3ivEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3ui( void *args )
+{
+    struct glProgramUniform3ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3ui( params->program, params->location, params->v0, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3ui64ARB( void *args )
+{
+    struct glProgramUniform3ui64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3ui64ARB( params->program, params->location, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3ui64NV( void *args )
+{
+    struct glProgramUniform3ui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3ui64NV( params->program, params->location, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3ui64vARB( void *args )
+{
+    struct glProgramUniform3ui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3ui64vARB( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3ui64vNV( void *args )
+{
+    struct glProgramUniform3ui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3ui64vNV( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3uiEXT( void *args )
+{
+    struct glProgramUniform3uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3uiEXT( params->program, params->location, params->v0, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3uiv( void *args )
+{
+    struct glProgramUniform3uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3uiv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform3uivEXT( void *args )
+{
+    struct glProgramUniform3uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform3uivEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4d( void *args )
+{
+    struct glProgramUniform4d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4d( params->program, params->location, params->v0, params->v1, params->v2, params->v3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4dEXT( void *args )
+{
+    struct glProgramUniform4dEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4dEXT( params->program, params->location, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4dv( void *args )
+{
+    struct glProgramUniform4dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4dv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4dvEXT( void *args )
+{
+    struct glProgramUniform4dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4dvEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4f( void *args )
+{
+    struct glProgramUniform4f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4f( params->program, params->location, params->v0, params->v1, params->v2, params->v3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4fEXT( void *args )
+{
+    struct glProgramUniform4fEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4fEXT( params->program, params->location, params->v0, params->v1, params->v2, params->v3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4fv( void *args )
+{
+    struct glProgramUniform4fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4fv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4fvEXT( void *args )
+{
+    struct glProgramUniform4fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4fvEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4i( void *args )
+{
+    struct glProgramUniform4i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4i( params->program, params->location, params->v0, params->v1, params->v2, params->v3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4i64ARB( void *args )
+{
+    struct glProgramUniform4i64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4i64ARB( params->program, params->location, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4i64NV( void *args )
+{
+    struct glProgramUniform4i64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4i64NV( params->program, params->location, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4i64vARB( void *args )
+{
+    struct glProgramUniform4i64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4i64vARB( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4i64vNV( void *args )
+{
+    struct glProgramUniform4i64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4i64vNV( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4iEXT( void *args )
+{
+    struct glProgramUniform4iEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4iEXT( params->program, params->location, params->v0, params->v1, params->v2, params->v3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4iv( void *args )
+{
+    struct glProgramUniform4iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4iv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4ivEXT( void *args )
+{
+    struct glProgramUniform4ivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4ivEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4ui( void *args )
+{
+    struct glProgramUniform4ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4ui( params->program, params->location, params->v0, params->v1, params->v2, params->v3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4ui64ARB( void *args )
+{
+    struct glProgramUniform4ui64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4ui64ARB( params->program, params->location, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4ui64NV( void *args )
+{
+    struct glProgramUniform4ui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4ui64NV( params->program, params->location, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4ui64vARB( void *args )
+{
+    struct glProgramUniform4ui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4ui64vARB( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4ui64vNV( void *args )
+{
+    struct glProgramUniform4ui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4ui64vNV( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4uiEXT( void *args )
+{
+    struct glProgramUniform4uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4uiEXT( params->program, params->location, params->v0, params->v1, params->v2, params->v3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4uiv( void *args )
+{
+    struct glProgramUniform4uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4uiv( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniform4uivEXT( void *args )
+{
+    struct glProgramUniform4uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniform4uivEXT( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformHandleui64ARB( void *args )
+{
+    struct glProgramUniformHandleui64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformHandleui64ARB( params->program, params->location, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformHandleui64NV( void *args )
+{
+    struct glProgramUniformHandleui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformHandleui64NV( params->program, params->location, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformHandleui64vARB( void *args )
+{
+    struct glProgramUniformHandleui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformHandleui64vARB( params->program, params->location, params->count, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformHandleui64vNV( void *args )
+{
+    struct glProgramUniformHandleui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformHandleui64vNV( params->program, params->location, params->count, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix2dv( void *args )
+{
+    struct glProgramUniformMatrix2dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix2dv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix2dvEXT( void *args )
+{
+    struct glProgramUniformMatrix2dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix2dvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix2fv( void *args )
+{
+    struct glProgramUniformMatrix2fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix2fv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix2fvEXT( void *args )
+{
+    struct glProgramUniformMatrix2fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix2fvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix2x3dv( void *args )
+{
+    struct glProgramUniformMatrix2x3dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix2x3dv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix2x3dvEXT( void *args )
+{
+    struct glProgramUniformMatrix2x3dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix2x3dvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix2x3fv( void *args )
+{
+    struct glProgramUniformMatrix2x3fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix2x3fv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix2x3fvEXT( void *args )
+{
+    struct glProgramUniformMatrix2x3fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix2x3fvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix2x4dv( void *args )
+{
+    struct glProgramUniformMatrix2x4dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix2x4dv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix2x4dvEXT( void *args )
+{
+    struct glProgramUniformMatrix2x4dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix2x4dvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix2x4fv( void *args )
+{
+    struct glProgramUniformMatrix2x4fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix2x4fv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix2x4fvEXT( void *args )
+{
+    struct glProgramUniformMatrix2x4fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix2x4fvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix3dv( void *args )
+{
+    struct glProgramUniformMatrix3dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix3dv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix3dvEXT( void *args )
+{
+    struct glProgramUniformMatrix3dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix3dvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix3fv( void *args )
+{
+    struct glProgramUniformMatrix3fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix3fv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix3fvEXT( void *args )
+{
+    struct glProgramUniformMatrix3fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix3fvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix3x2dv( void *args )
+{
+    struct glProgramUniformMatrix3x2dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix3x2dv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix3x2dvEXT( void *args )
+{
+    struct glProgramUniformMatrix3x2dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix3x2dvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix3x2fv( void *args )
+{
+    struct glProgramUniformMatrix3x2fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix3x2fv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix3x2fvEXT( void *args )
+{
+    struct glProgramUniformMatrix3x2fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix3x2fvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix3x4dv( void *args )
+{
+    struct glProgramUniformMatrix3x4dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix3x4dv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix3x4dvEXT( void *args )
+{
+    struct glProgramUniformMatrix3x4dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix3x4dvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix3x4fv( void *args )
+{
+    struct glProgramUniformMatrix3x4fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix3x4fv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix3x4fvEXT( void *args )
+{
+    struct glProgramUniformMatrix3x4fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix3x4fvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix4dv( void *args )
+{
+    struct glProgramUniformMatrix4dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix4dv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix4dvEXT( void *args )
+{
+    struct glProgramUniformMatrix4dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix4dvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix4fv( void *args )
+{
+    struct glProgramUniformMatrix4fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix4fv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix4fvEXT( void *args )
+{
+    struct glProgramUniformMatrix4fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix4fvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix4x2dv( void *args )
+{
+    struct glProgramUniformMatrix4x2dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix4x2dv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix4x2dvEXT( void *args )
+{
+    struct glProgramUniformMatrix4x2dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix4x2dvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix4x2fv( void *args )
+{
+    struct glProgramUniformMatrix4x2fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix4x2fv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix4x2fvEXT( void *args )
+{
+    struct glProgramUniformMatrix4x2fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix4x2fvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix4x3dv( void *args )
+{
+    struct glProgramUniformMatrix4x3dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix4x3dv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix4x3dvEXT( void *args )
+{
+    struct glProgramUniformMatrix4x3dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix4x3dvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix4x3fv( void *args )
+{
+    struct glProgramUniformMatrix4x3fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix4x3fv( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformMatrix4x3fvEXT( void *args )
+{
+    struct glProgramUniformMatrix4x3fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformMatrix4x3fvEXT( params->program, params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformui64NV( void *args )
+{
+    struct glProgramUniformui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformui64NV( params->program, params->location, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramUniformui64vNV( void *args )
+{
+    struct glProgramUniformui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramUniformui64vNV( params->program, params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProgramVertexLimitNV( void *args )
+{
+    struct glProgramVertexLimitNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProgramVertexLimitNV( params->target, params->limit );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProvokingVertex( void *args )
+{
+    struct glProvokingVertex_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProvokingVertex( params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glProvokingVertexEXT( void *args )
+{
+    struct glProvokingVertexEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glProvokingVertexEXT( params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPushClientAttribDefaultEXT( void *args )
+{
+    struct glPushClientAttribDefaultEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPushClientAttribDefaultEXT( params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPushDebugGroup( void *args )
+{
+    struct glPushDebugGroup_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPushDebugGroup( params->source, params->id, params->length, params->message );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glPushGroupMarkerEXT( void *args )
+{
+    struct glPushGroupMarkerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glPushGroupMarkerEXT( params->length, params->marker );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glQueryCounter( void *args )
+{
+    struct glQueryCounter_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glQueryCounter( params->id, params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glQueryMatrixxOES( void *args )
+{
+    struct glQueryMatrixxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glQueryMatrixxOES( params->mantissa, params->exponent );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glQueryObjectParameteruiAMD( void *args )
+{
+    struct glQueryObjectParameteruiAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glQueryObjectParameteruiAMD( params->target, params->id, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glQueryResourceNV( void *args )
+{
+    struct glQueryResourceNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glQueryResourceNV( params->queryType, params->tagId, params->count, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glQueryResourceTagNV( void *args )
+{
+    struct glQueryResourceTagNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glQueryResourceTagNV( params->tagId, params->tagString );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRasterPos2xOES( void *args )
+{
+    struct glRasterPos2xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRasterPos2xOES( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRasterPos2xvOES( void *args )
+{
+    struct glRasterPos2xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRasterPos2xvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRasterPos3xOES( void *args )
+{
+    struct glRasterPos3xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRasterPos3xOES( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRasterPos3xvOES( void *args )
+{
+    struct glRasterPos3xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRasterPos3xvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRasterPos4xOES( void *args )
+{
+    struct glRasterPos4xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRasterPos4xOES( params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRasterPos4xvOES( void *args )
+{
+    struct glRasterPos4xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRasterPos4xvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRasterSamplesEXT( void *args )
+{
+    struct glRasterSamplesEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRasterSamplesEXT( params->samples, params->fixedsamplelocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReadBufferRegion( void *args )
+{
+    struct glReadBufferRegion_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReadBufferRegion( params->region, params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReadInstrumentsSGIX( void *args )
+{
+    struct glReadInstrumentsSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReadInstrumentsSGIX( params->marker );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReadnPixels( void *args )
+{
+    struct glReadnPixels_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReadnPixels( params->x, params->y, params->width, params->height, params->format, params->type, params->bufSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReadnPixelsARB( void *args )
+{
+    struct glReadnPixelsARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReadnPixelsARB( params->x, params->y, params->width, params->height, params->format, params->type, params->bufSize, params->data );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRectxOES( void *args )
+{
+    struct glRectxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRectxOES( params->x1, params->y1, params->x2, params->y2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRectxvOES( void *args )
+{
+    struct glRectxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRectxvOES( params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReferencePlaneSGIX( void *args )
+{
+    struct glReferencePlaneSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReferencePlaneSGIX( params->equation );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReleaseKeyedMutexWin32EXT( void *args )
+{
+    struct glReleaseKeyedMutexWin32EXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glReleaseKeyedMutexWin32EXT( params->memory, params->key );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReleaseShaderCompiler( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReleaseShaderCompiler();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRenderGpuMaskNV( void *args )
+{
+    struct glRenderGpuMaskNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRenderGpuMaskNV( params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRenderbufferStorage( void *args )
+{
+    struct glRenderbufferStorage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRenderbufferStorage( params->target, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRenderbufferStorageEXT( void *args )
+{
+    struct glRenderbufferStorageEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRenderbufferStorageEXT( params->target, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRenderbufferStorageMultisample( void *args )
+{
+    struct glRenderbufferStorageMultisample_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRenderbufferStorageMultisample( params->target, params->samples, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRenderbufferStorageMultisampleAdvancedAMD( void *args )
+{
+    struct glRenderbufferStorageMultisampleAdvancedAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRenderbufferStorageMultisampleAdvancedAMD( params->target, params->samples, params->storageSamples, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRenderbufferStorageMultisampleCoverageNV( void *args )
+{
+    struct glRenderbufferStorageMultisampleCoverageNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRenderbufferStorageMultisampleCoverageNV( params->target, params->coverageSamples, params->colorSamples, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRenderbufferStorageMultisampleEXT( void *args )
+{
+    struct glRenderbufferStorageMultisampleEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRenderbufferStorageMultisampleEXT( params->target, params->samples, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodePointerSUN( void *args )
+{
+    struct glReplacementCodePointerSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodePointerSUN( params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeubSUN( void *args )
+{
+    struct glReplacementCodeubSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeubSUN( params->code );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeubvSUN( void *args )
+{
+    struct glReplacementCodeubvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeubvSUN( params->code );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiColor3fVertex3fSUN( void *args )
+{
+    struct glReplacementCodeuiColor3fVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiColor3fVertex3fSUN( params->rc, params->r, params->g, params->b, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiColor3fVertex3fvSUN( void *args )
+{
+    struct glReplacementCodeuiColor3fVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiColor3fVertex3fvSUN( params->rc, params->c, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiColor4fNormal3fVertex3fSUN( void *args )
+{
+    struct glReplacementCodeuiColor4fNormal3fVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiColor4fNormal3fVertex3fSUN( params->rc, params->r, params->g, params->b, params->a, params->nx, params->ny, params->nz, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiColor4fNormal3fVertex3fvSUN( void *args )
+{
+    struct glReplacementCodeuiColor4fNormal3fVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiColor4fNormal3fVertex3fvSUN( params->rc, params->c, params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiColor4ubVertex3fSUN( void *args )
+{
+    struct glReplacementCodeuiColor4ubVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiColor4ubVertex3fSUN( params->rc, params->r, params->g, params->b, params->a, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiColor4ubVertex3fvSUN( void *args )
+{
+    struct glReplacementCodeuiColor4ubVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiColor4ubVertex3fvSUN( params->rc, params->c, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiNormal3fVertex3fSUN( void *args )
+{
+    struct glReplacementCodeuiNormal3fVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiNormal3fVertex3fSUN( params->rc, params->nx, params->ny, params->nz, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiNormal3fVertex3fvSUN( void *args )
+{
+    struct glReplacementCodeuiNormal3fVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiNormal3fVertex3fvSUN( params->rc, params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiSUN( void *args )
+{
+    struct glReplacementCodeuiSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiSUN( params->code );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN( void *args )
+{
+    struct glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN( params->rc, params->s, params->t, params->r, params->g, params->b, params->a, params->nx, params->ny, params->nz, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN( void *args )
+{
+    struct glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN( params->rc, params->tc, params->c, params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN( void *args )
+{
+    struct glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN( params->rc, params->s, params->t, params->nx, params->ny, params->nz, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN( void *args )
+{
+    struct glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN( params->rc, params->tc, params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiTexCoord2fVertex3fSUN( void *args )
+{
+    struct glReplacementCodeuiTexCoord2fVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiTexCoord2fVertex3fSUN( params->rc, params->s, params->t, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiTexCoord2fVertex3fvSUN( void *args )
+{
+    struct glReplacementCodeuiTexCoord2fVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiTexCoord2fVertex3fvSUN( params->rc, params->tc, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiVertex3fSUN( void *args )
+{
+    struct glReplacementCodeuiVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiVertex3fSUN( params->rc, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuiVertex3fvSUN( void *args )
+{
+    struct glReplacementCodeuiVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuiVertex3fvSUN( params->rc, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeuivSUN( void *args )
+{
+    struct glReplacementCodeuivSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeuivSUN( params->code );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeusSUN( void *args )
+{
+    struct glReplacementCodeusSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeusSUN( params->code );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glReplacementCodeusvSUN( void *args )
+{
+    struct glReplacementCodeusvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glReplacementCodeusvSUN( params->code );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRequestResidentProgramsNV( void *args )
+{
+    struct glRequestResidentProgramsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRequestResidentProgramsNV( params->n, params->programs );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glResetHistogram( void *args )
+{
+    struct glResetHistogram_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glResetHistogram( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glResetHistogramEXT( void *args )
+{
+    struct glResetHistogramEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glResetHistogramEXT( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glResetMemoryObjectParameterNV( void *args )
+{
+    struct glResetMemoryObjectParameterNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glResetMemoryObjectParameterNV( params->memory, params->pname );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glResetMinmax( void *args )
+{
+    struct glResetMinmax_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glResetMinmax( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glResetMinmaxEXT( void *args )
+{
+    struct glResetMinmaxEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glResetMinmaxEXT( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glResizeBuffersMESA( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glResizeBuffersMESA();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glResolveDepthValuesNV( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glResolveDepthValuesNV();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glResumeTransformFeedback( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glResumeTransformFeedback();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glResumeTransformFeedbackNV( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glResumeTransformFeedbackNV();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glRotatexOES( void *args )
+{
+    struct glRotatexOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glRotatexOES( params->angle, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSampleCoverage( void *args )
+{
+    struct glSampleCoverage_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSampleCoverage( params->value, params->invert );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSampleCoverageARB( void *args )
+{
+    struct glSampleCoverageARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSampleCoverageARB( params->value, params->invert );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSampleMapATI( void *args )
+{
+    struct glSampleMapATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSampleMapATI( params->dst, params->interp, params->swizzle );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSampleMaskEXT( void *args )
+{
+    struct glSampleMaskEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSampleMaskEXT( params->value, params->invert );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSampleMaskIndexedNV( void *args )
+{
+    struct glSampleMaskIndexedNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSampleMaskIndexedNV( params->index, params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSampleMaskSGIS( void *args )
+{
+    struct glSampleMaskSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSampleMaskSGIS( params->value, params->invert );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSampleMaski( void *args )
+{
+    struct glSampleMaski_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSampleMaski( params->maskNumber, params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSamplePatternEXT( void *args )
+{
+    struct glSamplePatternEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSamplePatternEXT( params->pattern );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSamplePatternSGIS( void *args )
+{
+    struct glSamplePatternSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSamplePatternSGIS( params->pattern );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSamplerParameterIiv( void *args )
+{
+    struct glSamplerParameterIiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSamplerParameterIiv( params->sampler, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSamplerParameterIuiv( void *args )
+{
+    struct glSamplerParameterIuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSamplerParameterIuiv( params->sampler, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSamplerParameterf( void *args )
+{
+    struct glSamplerParameterf_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSamplerParameterf( params->sampler, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSamplerParameterfv( void *args )
+{
+    struct glSamplerParameterfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSamplerParameterfv( params->sampler, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSamplerParameteri( void *args )
+{
+    struct glSamplerParameteri_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSamplerParameteri( params->sampler, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSamplerParameteriv( void *args )
+{
+    struct glSamplerParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSamplerParameteriv( params->sampler, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glScalexOES( void *args )
+{
+    struct glScalexOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glScalexOES( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glScissorArrayv( void *args )
+{
+    struct glScissorArrayv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glScissorArrayv( params->first, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glScissorExclusiveArrayvNV( void *args )
+{
+    struct glScissorExclusiveArrayvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glScissorExclusiveArrayvNV( params->first, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glScissorExclusiveNV( void *args )
+{
+    struct glScissorExclusiveNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glScissorExclusiveNV( params->x, params->y, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glScissorIndexed( void *args )
+{
+    struct glScissorIndexed_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glScissorIndexed( params->index, params->left, params->bottom, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glScissorIndexedv( void *args )
+{
+    struct glScissorIndexedv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glScissorIndexedv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3b( void *args )
+{
+    struct glSecondaryColor3b_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3b( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3bEXT( void *args )
+{
+    struct glSecondaryColor3bEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3bEXT( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3bv( void *args )
+{
+    struct glSecondaryColor3bv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3bv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3bvEXT( void *args )
+{
+    struct glSecondaryColor3bvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3bvEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3d( void *args )
+{
+    struct glSecondaryColor3d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3d( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3dEXT( void *args )
+{
+    struct glSecondaryColor3dEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3dEXT( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3dv( void *args )
+{
+    struct glSecondaryColor3dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3dv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3dvEXT( void *args )
+{
+    struct glSecondaryColor3dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3dvEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3f( void *args )
+{
+    struct glSecondaryColor3f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3f( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3fEXT( void *args )
+{
+    struct glSecondaryColor3fEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3fEXT( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3fv( void *args )
+{
+    struct glSecondaryColor3fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3fv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3fvEXT( void *args )
+{
+    struct glSecondaryColor3fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3fvEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3hNV( void *args )
+{
+    struct glSecondaryColor3hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3hNV( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3hvNV( void *args )
+{
+    struct glSecondaryColor3hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3hvNV( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3i( void *args )
+{
+    struct glSecondaryColor3i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3i( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3iEXT( void *args )
+{
+    struct glSecondaryColor3iEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3iEXT( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3iv( void *args )
+{
+    struct glSecondaryColor3iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3iv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3ivEXT( void *args )
+{
+    struct glSecondaryColor3ivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3ivEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3s( void *args )
+{
+    struct glSecondaryColor3s_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3s( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3sEXT( void *args )
+{
+    struct glSecondaryColor3sEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3sEXT( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3sv( void *args )
+{
+    struct glSecondaryColor3sv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3sv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3svEXT( void *args )
+{
+    struct glSecondaryColor3svEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3svEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3ub( void *args )
+{
+    struct glSecondaryColor3ub_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3ub( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3ubEXT( void *args )
+{
+    struct glSecondaryColor3ubEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3ubEXT( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3ubv( void *args )
+{
+    struct glSecondaryColor3ubv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3ubv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3ubvEXT( void *args )
+{
+    struct glSecondaryColor3ubvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3ubvEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3ui( void *args )
+{
+    struct glSecondaryColor3ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3ui( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3uiEXT( void *args )
+{
+    struct glSecondaryColor3uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3uiEXT( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3uiv( void *args )
+{
+    struct glSecondaryColor3uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3uiv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3uivEXT( void *args )
+{
+    struct glSecondaryColor3uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3uivEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3us( void *args )
+{
+    struct glSecondaryColor3us_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3us( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3usEXT( void *args )
+{
+    struct glSecondaryColor3usEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3usEXT( params->red, params->green, params->blue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3usv( void *args )
+{
+    struct glSecondaryColor3usv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3usv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColor3usvEXT( void *args )
+{
+    struct glSecondaryColor3usvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColor3usvEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColorFormatNV( void *args )
+{
+    struct glSecondaryColorFormatNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColorFormatNV( params->size, params->type, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColorP3ui( void *args )
+{
+    struct glSecondaryColorP3ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColorP3ui( params->type, params->color );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColorP3uiv( void *args )
+{
+    struct glSecondaryColorP3uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColorP3uiv( params->type, params->color );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColorPointer( void *args )
+{
+    struct glSecondaryColorPointer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColorPointer( params->size, params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColorPointerEXT( void *args )
+{
+    struct glSecondaryColorPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColorPointerEXT( params->size, params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSecondaryColorPointerListIBM( void *args )
+{
+    struct glSecondaryColorPointerListIBM_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSecondaryColorPointerListIBM( params->size, params->type, params->stride, params->pointer, params->ptrstride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSelectPerfMonitorCountersAMD( void *args )
+{
+    struct glSelectPerfMonitorCountersAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSelectPerfMonitorCountersAMD( params->monitor, params->enable, params->group, params->numCounters, params->counterList );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSelectTextureCoordSetSGIS( void *args )
+{
+    struct glSelectTextureCoordSetSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSelectTextureCoordSetSGIS( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSelectTextureSGIS( void *args )
+{
+    struct glSelectTextureSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSelectTextureSGIS( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSemaphoreParameterui64vEXT( void *args )
+{
+    struct glSemaphoreParameterui64vEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSemaphoreParameterui64vEXT( params->semaphore, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSeparableFilter2D( void *args )
+{
+    struct glSeparableFilter2D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSeparableFilter2D( params->target, params->internalformat, params->width, params->height, params->format, params->type, params->row, params->column );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSeparableFilter2DEXT( void *args )
+{
+    struct glSeparableFilter2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSeparableFilter2DEXT( params->target, params->internalformat, params->width, params->height, params->format, params->type, params->row, params->column );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSetFenceAPPLE( void *args )
+{
+    struct glSetFenceAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSetFenceAPPLE( params->fence );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSetFenceNV( void *args )
+{
+    struct glSetFenceNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSetFenceNV( params->fence, params->condition );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSetFragmentShaderConstantATI( void *args )
+{
+    struct glSetFragmentShaderConstantATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSetFragmentShaderConstantATI( params->dst, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSetInvariantEXT( void *args )
+{
+    struct glSetInvariantEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSetInvariantEXT( params->id, params->type, params->addr );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSetLocalConstantEXT( void *args )
+{
+    struct glSetLocalConstantEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSetLocalConstantEXT( params->id, params->type, params->addr );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSetMultisamplefvAMD( void *args )
+{
+    struct glSetMultisamplefvAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSetMultisamplefvAMD( params->pname, params->index, params->val );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glShaderBinary( void *args )
+{
+    struct glShaderBinary_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glShaderBinary( params->count, params->shaders, params->binaryformat, params->binary, params->length );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glShaderOp1EXT( void *args )
+{
+    struct glShaderOp1EXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glShaderOp1EXT( params->op, params->res, params->arg1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glShaderOp2EXT( void *args )
+{
+    struct glShaderOp2EXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glShaderOp2EXT( params->op, params->res, params->arg1, params->arg2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glShaderOp3EXT( void *args )
+{
+    struct glShaderOp3EXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glShaderOp3EXT( params->op, params->res, params->arg1, params->arg2, params->arg3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glShaderSource( void *args )
+{
+    struct glShaderSource_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glShaderSource( params->shader, params->count, params->string, params->length );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glShaderSourceARB( void *args )
+{
+    struct glShaderSourceARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glShaderSourceARB( params->shaderObj, params->count, params->string, params->length );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glShaderStorageBlockBinding( void *args )
+{
+    struct glShaderStorageBlockBinding_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glShaderStorageBlockBinding( params->program, params->storageBlockIndex, params->storageBlockBinding );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glShadingRateImageBarrierNV( void *args )
+{
+    struct glShadingRateImageBarrierNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glShadingRateImageBarrierNV( params->synchronize );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glShadingRateImagePaletteNV( void *args )
+{
+    struct glShadingRateImagePaletteNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glShadingRateImagePaletteNV( params->viewport, params->first, params->count, params->rates );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glShadingRateSampleOrderCustomNV( void *args )
+{
+    struct glShadingRateSampleOrderCustomNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glShadingRateSampleOrderCustomNV( params->rate, params->samples, params->locations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glShadingRateSampleOrderNV( void *args )
+{
+    struct glShadingRateSampleOrderNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glShadingRateSampleOrderNV( params->order );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSharpenTexFuncSGIS( void *args )
+{
+    struct glSharpenTexFuncSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSharpenTexFuncSGIS( params->target, params->n, params->points );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSignalSemaphoreEXT( void *args )
+{
+    struct glSignalSemaphoreEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSignalSemaphoreEXT( params->semaphore, params->numBufferBarriers, params->buffers, params->numTextureBarriers, params->textures, params->dstLayouts );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSignalSemaphoreui64NVX( void *args )
+{
+    struct glSignalSemaphoreui64NVX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSignalSemaphoreui64NVX( params->signalGpu, params->fenceObjectCount, params->semaphoreArray, params->fenceValueArray );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSignalVkFenceNV( void *args )
+{
+    struct glSignalVkFenceNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSignalVkFenceNV( params->vkFence );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSignalVkSemaphoreNV( void *args )
+{
+    struct glSignalVkSemaphoreNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSignalVkSemaphoreNV( params->vkSemaphore );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSpecializeShader( void *args )
+{
+    struct glSpecializeShader_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSpecializeShader( params->shader, params->pEntryPoint, params->numSpecializationConstants, params->pConstantIndex, params->pConstantValue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSpecializeShaderARB( void *args )
+{
+    struct glSpecializeShaderARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSpecializeShaderARB( params->shader, params->pEntryPoint, params->numSpecializationConstants, params->pConstantIndex, params->pConstantValue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSpriteParameterfSGIX( void *args )
+{
+    struct glSpriteParameterfSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSpriteParameterfSGIX( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSpriteParameterfvSGIX( void *args )
+{
+    struct glSpriteParameterfvSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSpriteParameterfvSGIX( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSpriteParameteriSGIX( void *args )
+{
+    struct glSpriteParameteriSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSpriteParameteriSGIX( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSpriteParameterivSGIX( void *args )
+{
+    struct glSpriteParameterivSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSpriteParameterivSGIX( params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStartInstrumentsSGIX( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStartInstrumentsSGIX();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStateCaptureNV( void *args )
+{
+    struct glStateCaptureNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStateCaptureNV( params->state, params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilClearTagEXT( void *args )
+{
+    struct glStencilClearTagEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilClearTagEXT( params->stencilTagBits, params->stencilClearTag );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilFillPathInstancedNV( void *args )
+{
+    struct glStencilFillPathInstancedNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilFillPathInstancedNV( params->numPaths, params->pathNameType, params->paths, params->pathBase, params->fillMode, params->mask, params->transformType, params->transformValues );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilFillPathNV( void *args )
+{
+    struct glStencilFillPathNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilFillPathNV( params->path, params->fillMode, params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilFuncSeparate( void *args )
+{
+    struct glStencilFuncSeparate_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilFuncSeparate( params->face, params->func, params->ref, params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilFuncSeparateATI( void *args )
+{
+    struct glStencilFuncSeparateATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilFuncSeparateATI( params->frontfunc, params->backfunc, params->ref, params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilMaskSeparate( void *args )
+{
+    struct glStencilMaskSeparate_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilMaskSeparate( params->face, params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilOpSeparate( void *args )
+{
+    struct glStencilOpSeparate_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilOpSeparate( params->face, params->sfail, params->dpfail, params->dppass );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilOpSeparateATI( void *args )
+{
+    struct glStencilOpSeparateATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilOpSeparateATI( params->face, params->sfail, params->dpfail, params->dppass );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilOpValueAMD( void *args )
+{
+    struct glStencilOpValueAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilOpValueAMD( params->face, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilStrokePathInstancedNV( void *args )
+{
+    struct glStencilStrokePathInstancedNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilStrokePathInstancedNV( params->numPaths, params->pathNameType, params->paths, params->pathBase, params->reference, params->mask, params->transformType, params->transformValues );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilStrokePathNV( void *args )
+{
+    struct glStencilStrokePathNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilStrokePathNV( params->path, params->reference, params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilThenCoverFillPathInstancedNV( void *args )
+{
+    struct glStencilThenCoverFillPathInstancedNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilThenCoverFillPathInstancedNV( params->numPaths, params->pathNameType, params->paths, params->pathBase, params->fillMode, params->mask, params->coverMode, params->transformType, params->transformValues );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilThenCoverFillPathNV( void *args )
+{
+    struct glStencilThenCoverFillPathNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilThenCoverFillPathNV( params->path, params->fillMode, params->mask, params->coverMode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilThenCoverStrokePathInstancedNV( void *args )
+{
+    struct glStencilThenCoverStrokePathInstancedNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilThenCoverStrokePathInstancedNV( params->numPaths, params->pathNameType, params->paths, params->pathBase, params->reference, params->mask, params->coverMode, params->transformType, params->transformValues );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStencilThenCoverStrokePathNV( void *args )
+{
+    struct glStencilThenCoverStrokePathNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStencilThenCoverStrokePathNV( params->path, params->reference, params->mask, params->coverMode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStopInstrumentsSGIX( void *args )
+{
+    struct glStopInstrumentsSGIX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStopInstrumentsSGIX( params->marker );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glStringMarkerGREMEDY( void *args )
+{
+    struct glStringMarkerGREMEDY_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glStringMarkerGREMEDY( params->len, params->string );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSubpixelPrecisionBiasNV( void *args )
+{
+    struct glSubpixelPrecisionBiasNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSubpixelPrecisionBiasNV( params->xbits, params->ybits );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSwizzleEXT( void *args )
+{
+    struct glSwizzleEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSwizzleEXT( params->res, params->in, params->outX, params->outY, params->outZ, params->outW );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glSyncTextureINTEL( void *args )
+{
+    struct glSyncTextureINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glSyncTextureINTEL( params->texture );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTagSampleBufferSGIX( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTagSampleBufferSGIX();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTangent3bEXT( void *args )
+{
+    struct glTangent3bEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTangent3bEXT( params->tx, params->ty, params->tz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTangent3bvEXT( void *args )
+{
+    struct glTangent3bvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTangent3bvEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTangent3dEXT( void *args )
+{
+    struct glTangent3dEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTangent3dEXT( params->tx, params->ty, params->tz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTangent3dvEXT( void *args )
+{
+    struct glTangent3dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTangent3dvEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTangent3fEXT( void *args )
+{
+    struct glTangent3fEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTangent3fEXT( params->tx, params->ty, params->tz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTangent3fvEXT( void *args )
+{
+    struct glTangent3fvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTangent3fvEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTangent3iEXT( void *args )
+{
+    struct glTangent3iEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTangent3iEXT( params->tx, params->ty, params->tz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTangent3ivEXT( void *args )
+{
+    struct glTangent3ivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTangent3ivEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTangent3sEXT( void *args )
+{
+    struct glTangent3sEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTangent3sEXT( params->tx, params->ty, params->tz );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTangent3svEXT( void *args )
+{
+    struct glTangent3svEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTangent3svEXT( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTangentPointerEXT( void *args )
+{
+    struct glTangentPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTangentPointerEXT( params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTbufferMask3DFX( void *args )
+{
+    struct glTbufferMask3DFX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTbufferMask3DFX( params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTessellationFactorAMD( void *args )
+{
+    struct glTessellationFactorAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTessellationFactorAMD( params->factor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTessellationModeAMD( void *args )
+{
+    struct glTessellationModeAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTessellationModeAMD( params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTestFenceAPPLE( void *args )
+{
+    struct glTestFenceAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glTestFenceAPPLE( params->fence );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTestFenceNV( void *args )
+{
+    struct glTestFenceNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glTestFenceNV( params->fence );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTestObjectAPPLE( void *args )
+{
+    struct glTestObjectAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glTestObjectAPPLE( params->object, params->name );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexAttachMemoryNV( void *args )
+{
+    struct glTexAttachMemoryNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexAttachMemoryNV( params->target, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexBuffer( void *args )
+{
+    struct glTexBuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexBuffer( params->target, params->internalformat, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexBufferARB( void *args )
+{
+    struct glTexBufferARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexBufferARB( params->target, params->internalformat, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexBufferEXT( void *args )
+{
+    struct glTexBufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexBufferEXT( params->target, params->internalformat, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexBufferRange( void *args )
+{
+    struct glTexBufferRange_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexBufferRange( params->target, params->internalformat, params->buffer, params->offset, params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexBumpParameterfvATI( void *args )
+{
+    struct glTexBumpParameterfvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexBumpParameterfvATI( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexBumpParameterivATI( void *args )
+{
+    struct glTexBumpParameterivATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexBumpParameterivATI( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord1bOES( void *args )
+{
+    struct glTexCoord1bOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord1bOES( params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord1bvOES( void *args )
+{
+    struct glTexCoord1bvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord1bvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord1hNV( void *args )
+{
+    struct glTexCoord1hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord1hNV( params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord1hvNV( void *args )
+{
+    struct glTexCoord1hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord1hvNV( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord1xOES( void *args )
+{
+    struct glTexCoord1xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord1xOES( params->s );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord1xvOES( void *args )
+{
+    struct glTexCoord1xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord1xvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2bOES( void *args )
+{
+    struct glTexCoord2bOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2bOES( params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2bvOES( void *args )
+{
+    struct glTexCoord2bvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2bvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2fColor3fVertex3fSUN( void *args )
+{
+    struct glTexCoord2fColor3fVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2fColor3fVertex3fSUN( params->s, params->t, params->r, params->g, params->b, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2fColor3fVertex3fvSUN( void *args )
+{
+    struct glTexCoord2fColor3fVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2fColor3fVertex3fvSUN( params->tc, params->c, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2fColor4fNormal3fVertex3fSUN( void *args )
+{
+    struct glTexCoord2fColor4fNormal3fVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2fColor4fNormal3fVertex3fSUN( params->s, params->t, params->r, params->g, params->b, params->a, params->nx, params->ny, params->nz, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2fColor4fNormal3fVertex3fvSUN( void *args )
+{
+    struct glTexCoord2fColor4fNormal3fVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2fColor4fNormal3fVertex3fvSUN( params->tc, params->c, params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2fColor4ubVertex3fSUN( void *args )
+{
+    struct glTexCoord2fColor4ubVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2fColor4ubVertex3fSUN( params->s, params->t, params->r, params->g, params->b, params->a, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2fColor4ubVertex3fvSUN( void *args )
+{
+    struct glTexCoord2fColor4ubVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2fColor4ubVertex3fvSUN( params->tc, params->c, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2fNormal3fVertex3fSUN( void *args )
+{
+    struct glTexCoord2fNormal3fVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2fNormal3fVertex3fSUN( params->s, params->t, params->nx, params->ny, params->nz, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2fNormal3fVertex3fvSUN( void *args )
+{
+    struct glTexCoord2fNormal3fVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2fNormal3fVertex3fvSUN( params->tc, params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2fVertex3fSUN( void *args )
+{
+    struct glTexCoord2fVertex3fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2fVertex3fSUN( params->s, params->t, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2fVertex3fvSUN( void *args )
+{
+    struct glTexCoord2fVertex3fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2fVertex3fvSUN( params->tc, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2hNV( void *args )
+{
+    struct glTexCoord2hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2hNV( params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2hvNV( void *args )
+{
+    struct glTexCoord2hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2hvNV( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2xOES( void *args )
+{
+    struct glTexCoord2xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2xOES( params->s, params->t );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord2xvOES( void *args )
+{
+    struct glTexCoord2xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord2xvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord3bOES( void *args )
+{
+    struct glTexCoord3bOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord3bOES( params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord3bvOES( void *args )
+{
+    struct glTexCoord3bvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord3bvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord3hNV( void *args )
+{
+    struct glTexCoord3hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord3hNV( params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord3hvNV( void *args )
+{
+    struct glTexCoord3hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord3hvNV( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord3xOES( void *args )
+{
+    struct glTexCoord3xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord3xOES( params->s, params->t, params->r );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord3xvOES( void *args )
+{
+    struct glTexCoord3xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord3xvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord4bOES( void *args )
+{
+    struct glTexCoord4bOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord4bOES( params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord4bvOES( void *args )
+{
+    struct glTexCoord4bvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord4bvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord4fColor4fNormal3fVertex4fSUN( void *args )
+{
+    struct glTexCoord4fColor4fNormal3fVertex4fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord4fColor4fNormal3fVertex4fSUN( params->s, params->t, params->p, params->q, params->r, params->g, params->b, params->a, params->nx, params->ny, params->nz, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord4fColor4fNormal3fVertex4fvSUN( void *args )
+{
+    struct glTexCoord4fColor4fNormal3fVertex4fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord4fColor4fNormal3fVertex4fvSUN( params->tc, params->c, params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord4fVertex4fSUN( void *args )
+{
+    struct glTexCoord4fVertex4fSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord4fVertex4fSUN( params->s, params->t, params->p, params->q, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord4fVertex4fvSUN( void *args )
+{
+    struct glTexCoord4fVertex4fvSUN_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord4fVertex4fvSUN( params->tc, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord4hNV( void *args )
+{
+    struct glTexCoord4hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord4hNV( params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord4hvNV( void *args )
+{
+    struct glTexCoord4hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord4hvNV( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord4xOES( void *args )
+{
+    struct glTexCoord4xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord4xOES( params->s, params->t, params->r, params->q );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoord4xvOES( void *args )
+{
+    struct glTexCoord4xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoord4xvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoordFormatNV( void *args )
+{
+    struct glTexCoordFormatNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoordFormatNV( params->size, params->type, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoordP1ui( void *args )
+{
+    struct glTexCoordP1ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoordP1ui( params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoordP1uiv( void *args )
+{
+    struct glTexCoordP1uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoordP1uiv( params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoordP2ui( void *args )
+{
+    struct glTexCoordP2ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoordP2ui( params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoordP2uiv( void *args )
+{
+    struct glTexCoordP2uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoordP2uiv( params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoordP3ui( void *args )
+{
+    struct glTexCoordP3ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoordP3ui( params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoordP3uiv( void *args )
+{
+    struct glTexCoordP3uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoordP3uiv( params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoordP4ui( void *args )
+{
+    struct glTexCoordP4ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoordP4ui( params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoordP4uiv( void *args )
+{
+    struct glTexCoordP4uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoordP4uiv( params->type, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoordPointerEXT( void *args )
+{
+    struct glTexCoordPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoordPointerEXT( params->size, params->type, params->stride, params->count, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoordPointerListIBM( void *args )
+{
+    struct glTexCoordPointerListIBM_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoordPointerListIBM( params->size, params->type, params->stride, params->pointer, params->ptrstride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexCoordPointervINTEL( void *args )
+{
+    struct glTexCoordPointervINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexCoordPointervINTEL( params->size, params->type, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexEnvxOES( void *args )
+{
+    struct glTexEnvxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexEnvxOES( params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexEnvxvOES( void *args )
+{
+    struct glTexEnvxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexEnvxvOES( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexFilterFuncSGIS( void *args )
+{
+    struct glTexFilterFuncSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexFilterFuncSGIS( params->target, params->filter, params->n, params->weights );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexGenxOES( void *args )
+{
+    struct glTexGenxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexGenxOES( params->coord, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexGenxvOES( void *args )
+{
+    struct glTexGenxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexGenxvOES( params->coord, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexImage2DMultisample( void *args )
+{
+    struct glTexImage2DMultisample_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexImage2DMultisample( params->target, params->samples, params->internalformat, params->width, params->height, params->fixedsamplelocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexImage2DMultisampleCoverageNV( void *args )
+{
+    struct glTexImage2DMultisampleCoverageNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexImage2DMultisampleCoverageNV( params->target, params->coverageSamples, params->colorSamples, params->internalFormat, params->width, params->height, params->fixedSampleLocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexImage3D( void *args )
+{
+    struct glTexImage3D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexImage3D( params->target, params->level, params->internalformat, params->width, params->height, params->depth, params->border, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexImage3DEXT( void *args )
+{
+    struct glTexImage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexImage3DEXT( params->target, params->level, params->internalformat, params->width, params->height, params->depth, params->border, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexImage3DMultisample( void *args )
+{
+    struct glTexImage3DMultisample_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexImage3DMultisample( params->target, params->samples, params->internalformat, params->width, params->height, params->depth, params->fixedsamplelocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexImage3DMultisampleCoverageNV( void *args )
+{
+    struct glTexImage3DMultisampleCoverageNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexImage3DMultisampleCoverageNV( params->target, params->coverageSamples, params->colorSamples, params->internalFormat, params->width, params->height, params->depth, params->fixedSampleLocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexImage4DSGIS( void *args )
+{
+    struct glTexImage4DSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexImage4DSGIS( params->target, params->level, params->internalformat, params->width, params->height, params->depth, params->size4d, params->border, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexPageCommitmentARB( void *args )
+{
+    struct glTexPageCommitmentARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexPageCommitmentARB( params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->commit );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexParameterIiv( void *args )
+{
+    struct glTexParameterIiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexParameterIiv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexParameterIivEXT( void *args )
+{
+    struct glTexParameterIivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexParameterIivEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexParameterIuiv( void *args )
+{
+    struct glTexParameterIuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexParameterIuiv( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexParameterIuivEXT( void *args )
+{
+    struct glTexParameterIuivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexParameterIuivEXT( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexParameterxOES( void *args )
+{
+    struct glTexParameterxOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexParameterxOES( params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexParameterxvOES( void *args )
+{
+    struct glTexParameterxvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexParameterxvOES( params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexRenderbufferNV( void *args )
+{
+    struct glTexRenderbufferNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexRenderbufferNV( params->target, params->renderbuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexStorage1D( void *args )
+{
+    struct glTexStorage1D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexStorage1D( params->target, params->levels, params->internalformat, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexStorage2D( void *args )
+{
+    struct glTexStorage2D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexStorage2D( params->target, params->levels, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexStorage2DMultisample( void *args )
+{
+    struct glTexStorage2DMultisample_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexStorage2DMultisample( params->target, params->samples, params->internalformat, params->width, params->height, params->fixedsamplelocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexStorage3D( void *args )
+{
+    struct glTexStorage3D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexStorage3D( params->target, params->levels, params->internalformat, params->width, params->height, params->depth );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexStorage3DMultisample( void *args )
+{
+    struct glTexStorage3DMultisample_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexStorage3DMultisample( params->target, params->samples, params->internalformat, params->width, params->height, params->depth, params->fixedsamplelocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexStorageMem1DEXT( void *args )
+{
+    struct glTexStorageMem1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexStorageMem1DEXT( params->target, params->levels, params->internalFormat, params->width, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexStorageMem2DEXT( void *args )
+{
+    struct glTexStorageMem2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexStorageMem2DEXT( params->target, params->levels, params->internalFormat, params->width, params->height, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexStorageMem2DMultisampleEXT( void *args )
+{
+    struct glTexStorageMem2DMultisampleEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexStorageMem2DMultisampleEXT( params->target, params->samples, params->internalFormat, params->width, params->height, params->fixedSampleLocations, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexStorageMem3DEXT( void *args )
+{
+    struct glTexStorageMem3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexStorageMem3DEXT( params->target, params->levels, params->internalFormat, params->width, params->height, params->depth, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexStorageMem3DMultisampleEXT( void *args )
+{
+    struct glTexStorageMem3DMultisampleEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexStorageMem3DMultisampleEXT( params->target, params->samples, params->internalFormat, params->width, params->height, params->depth, params->fixedSampleLocations, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexStorageSparseAMD( void *args )
+{
+    struct glTexStorageSparseAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexStorageSparseAMD( params->target, params->internalFormat, params->width, params->height, params->depth, params->layers, params->flags );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexSubImage1DEXT( void *args )
+{
+    struct glTexSubImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexSubImage1DEXT( params->target, params->level, params->xoffset, params->width, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexSubImage2DEXT( void *args )
+{
+    struct glTexSubImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexSubImage2DEXT( params->target, params->level, params->xoffset, params->yoffset, params->width, params->height, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexSubImage3D( void *args )
+{
+    struct glTexSubImage3D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexSubImage3D( params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexSubImage3DEXT( void *args )
+{
+    struct glTexSubImage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexSubImage3DEXT( params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexSubImage4DSGIS( void *args )
+{
+    struct glTexSubImage4DSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexSubImage4DSGIS( params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->woffset, params->width, params->height, params->depth, params->size4d, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureAttachMemoryNV( void *args )
+{
+    struct glTextureAttachMemoryNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureAttachMemoryNV( params->texture, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureBarrier( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureBarrier();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureBarrierNV( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureBarrierNV();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureBuffer( void *args )
+{
+    struct glTextureBuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureBuffer( params->texture, params->internalformat, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureBufferEXT( void *args )
+{
+    struct glTextureBufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureBufferEXT( params->texture, params->target, params->internalformat, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureBufferRange( void *args )
+{
+    struct glTextureBufferRange_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureBufferRange( params->texture, params->internalformat, params->buffer, params->offset, params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureBufferRangeEXT( void *args )
+{
+    struct glTextureBufferRangeEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureBufferRangeEXT( params->texture, params->target, params->internalformat, params->buffer, params->offset, params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureColorMaskSGIS( void *args )
+{
+    struct glTextureColorMaskSGIS_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureColorMaskSGIS( params->red, params->green, params->blue, params->alpha );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureImage1DEXT( void *args )
+{
+    struct glTextureImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureImage1DEXT( params->texture, params->target, params->level, params->internalformat, params->width, params->border, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureImage2DEXT( void *args )
+{
+    struct glTextureImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureImage2DEXT( params->texture, params->target, params->level, params->internalformat, params->width, params->height, params->border, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureImage2DMultisampleCoverageNV( void *args )
+{
+    struct glTextureImage2DMultisampleCoverageNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureImage2DMultisampleCoverageNV( params->texture, params->target, params->coverageSamples, params->colorSamples, params->internalFormat, params->width, params->height, params->fixedSampleLocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureImage2DMultisampleNV( void *args )
+{
+    struct glTextureImage2DMultisampleNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureImage2DMultisampleNV( params->texture, params->target, params->samples, params->internalFormat, params->width, params->height, params->fixedSampleLocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureImage3DEXT( void *args )
+{
+    struct glTextureImage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureImage3DEXT( params->texture, params->target, params->level, params->internalformat, params->width, params->height, params->depth, params->border, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureImage3DMultisampleCoverageNV( void *args )
+{
+    struct glTextureImage3DMultisampleCoverageNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureImage3DMultisampleCoverageNV( params->texture, params->target, params->coverageSamples, params->colorSamples, params->internalFormat, params->width, params->height, params->depth, params->fixedSampleLocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureImage3DMultisampleNV( void *args )
+{
+    struct glTextureImage3DMultisampleNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureImage3DMultisampleNV( params->texture, params->target, params->samples, params->internalFormat, params->width, params->height, params->depth, params->fixedSampleLocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureLightEXT( void *args )
+{
+    struct glTextureLightEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureLightEXT( params->pname );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureMaterialEXT( void *args )
+{
+    struct glTextureMaterialEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureMaterialEXT( params->face, params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureNormalEXT( void *args )
+{
+    struct glTextureNormalEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureNormalEXT( params->mode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTexturePageCommitmentEXT( void *args )
+{
+    struct glTexturePageCommitmentEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTexturePageCommitmentEXT( params->texture, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->commit );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureParameterIiv( void *args )
+{
+    struct glTextureParameterIiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureParameterIiv( params->texture, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureParameterIivEXT( void *args )
+{
+    struct glTextureParameterIivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureParameterIivEXT( params->texture, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureParameterIuiv( void *args )
+{
+    struct glTextureParameterIuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureParameterIuiv( params->texture, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureParameterIuivEXT( void *args )
+{
+    struct glTextureParameterIuivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureParameterIuivEXT( params->texture, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureParameterf( void *args )
+{
+    struct glTextureParameterf_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureParameterf( params->texture, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureParameterfEXT( void *args )
+{
+    struct glTextureParameterfEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureParameterfEXT( params->texture, params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureParameterfv( void *args )
+{
+    struct glTextureParameterfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureParameterfv( params->texture, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureParameterfvEXT( void *args )
+{
+    struct glTextureParameterfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureParameterfvEXT( params->texture, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureParameteri( void *args )
+{
+    struct glTextureParameteri_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureParameteri( params->texture, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureParameteriEXT( void *args )
+{
+    struct glTextureParameteriEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureParameteriEXT( params->texture, params->target, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureParameteriv( void *args )
+{
+    struct glTextureParameteriv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureParameteriv( params->texture, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureParameterivEXT( void *args )
+{
+    struct glTextureParameterivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureParameterivEXT( params->texture, params->target, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureRangeAPPLE( void *args )
+{
+    struct glTextureRangeAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureRangeAPPLE( params->target, params->length, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureRenderbufferEXT( void *args )
+{
+    struct glTextureRenderbufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureRenderbufferEXT( params->texture, params->target, params->renderbuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorage1D( void *args )
+{
+    struct glTextureStorage1D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorage1D( params->texture, params->levels, params->internalformat, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorage1DEXT( void *args )
+{
+    struct glTextureStorage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorage1DEXT( params->texture, params->target, params->levels, params->internalformat, params->width );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorage2D( void *args )
+{
+    struct glTextureStorage2D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorage2D( params->texture, params->levels, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorage2DEXT( void *args )
+{
+    struct glTextureStorage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorage2DEXT( params->texture, params->target, params->levels, params->internalformat, params->width, params->height );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorage2DMultisample( void *args )
+{
+    struct glTextureStorage2DMultisample_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorage2DMultisample( params->texture, params->samples, params->internalformat, params->width, params->height, params->fixedsamplelocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorage2DMultisampleEXT( void *args )
+{
+    struct glTextureStorage2DMultisampleEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorage2DMultisampleEXT( params->texture, params->target, params->samples, params->internalformat, params->width, params->height, params->fixedsamplelocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorage3D( void *args )
+{
+    struct glTextureStorage3D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorage3D( params->texture, params->levels, params->internalformat, params->width, params->height, params->depth );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorage3DEXT( void *args )
+{
+    struct glTextureStorage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorage3DEXT( params->texture, params->target, params->levels, params->internalformat, params->width, params->height, params->depth );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorage3DMultisample( void *args )
+{
+    struct glTextureStorage3DMultisample_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorage3DMultisample( params->texture, params->samples, params->internalformat, params->width, params->height, params->depth, params->fixedsamplelocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorage3DMultisampleEXT( void *args )
+{
+    struct glTextureStorage3DMultisampleEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorage3DMultisampleEXT( params->texture, params->target, params->samples, params->internalformat, params->width, params->height, params->depth, params->fixedsamplelocations );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorageMem1DEXT( void *args )
+{
+    struct glTextureStorageMem1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorageMem1DEXT( params->texture, params->levels, params->internalFormat, params->width, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorageMem2DEXT( void *args )
+{
+    struct glTextureStorageMem2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorageMem2DEXT( params->texture, params->levels, params->internalFormat, params->width, params->height, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorageMem2DMultisampleEXT( void *args )
+{
+    struct glTextureStorageMem2DMultisampleEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorageMem2DMultisampleEXT( params->texture, params->samples, params->internalFormat, params->width, params->height, params->fixedSampleLocations, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorageMem3DEXT( void *args )
+{
+    struct glTextureStorageMem3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorageMem3DEXT( params->texture, params->levels, params->internalFormat, params->width, params->height, params->depth, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorageMem3DMultisampleEXT( void *args )
+{
+    struct glTextureStorageMem3DMultisampleEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorageMem3DMultisampleEXT( params->texture, params->samples, params->internalFormat, params->width, params->height, params->depth, params->fixedSampleLocations, params->memory, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureStorageSparseAMD( void *args )
+{
+    struct glTextureStorageSparseAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureStorageSparseAMD( params->texture, params->target, params->internalFormat, params->width, params->height, params->depth, params->layers, params->flags );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureSubImage1D( void *args )
+{
+    struct glTextureSubImage1D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureSubImage1D( params->texture, params->level, params->xoffset, params->width, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureSubImage1DEXT( void *args )
+{
+    struct glTextureSubImage1DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureSubImage1DEXT( params->texture, params->target, params->level, params->xoffset, params->width, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureSubImage2D( void *args )
+{
+    struct glTextureSubImage2D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureSubImage2D( params->texture, params->level, params->xoffset, params->yoffset, params->width, params->height, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureSubImage2DEXT( void *args )
+{
+    struct glTextureSubImage2DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureSubImage2DEXT( params->texture, params->target, params->level, params->xoffset, params->yoffset, params->width, params->height, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureSubImage3D( void *args )
+{
+    struct glTextureSubImage3D_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureSubImage3D( params->texture, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureSubImage3DEXT( void *args )
+{
+    struct glTextureSubImage3DEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureSubImage3DEXT( params->texture, params->target, params->level, params->xoffset, params->yoffset, params->zoffset, params->width, params->height, params->depth, params->format, params->type, params->pixels );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTextureView( void *args )
+{
+    struct glTextureView_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTextureView( params->texture, params->target, params->origtexture, params->internalformat, params->minlevel, params->numlevels, params->minlayer, params->numlayers );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTrackMatrixNV( void *args )
+{
+    struct glTrackMatrixNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTrackMatrixNV( params->target, params->address, params->matrix, params->transform );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTransformFeedbackAttribsNV( void *args )
+{
+    struct glTransformFeedbackAttribsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTransformFeedbackAttribsNV( params->count, params->attribs, params->bufferMode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTransformFeedbackBufferBase( void *args )
+{
+    struct glTransformFeedbackBufferBase_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTransformFeedbackBufferBase( params->xfb, params->index, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTransformFeedbackBufferRange( void *args )
+{
+    struct glTransformFeedbackBufferRange_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTransformFeedbackBufferRange( params->xfb, params->index, params->buffer, params->offset, params->size );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTransformFeedbackStreamAttribsNV( void *args )
+{
+    struct glTransformFeedbackStreamAttribsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTransformFeedbackStreamAttribsNV( params->count, params->attribs, params->nbuffers, params->bufstreams, params->bufferMode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTransformFeedbackVaryings( void *args )
+{
+    struct glTransformFeedbackVaryings_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTransformFeedbackVaryings( params->program, params->count, params->varyings, params->bufferMode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTransformFeedbackVaryingsEXT( void *args )
+{
+    struct glTransformFeedbackVaryingsEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTransformFeedbackVaryingsEXT( params->program, params->count, params->varyings, params->bufferMode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTransformFeedbackVaryingsNV( void *args )
+{
+    struct glTransformFeedbackVaryingsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTransformFeedbackVaryingsNV( params->program, params->count, params->locations, params->bufferMode );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTransformPathNV( void *args )
+{
+    struct glTransformPathNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTransformPathNV( params->resultPath, params->srcPath, params->transformType, params->transformValues );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glTranslatexOES( void *args )
+{
+    struct glTranslatexOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glTranslatexOES( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1d( void *args )
+{
+    struct glUniform1d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1d( params->location, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1dv( void *args )
+{
+    struct glUniform1dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1dv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1f( void *args )
+{
+    struct glUniform1f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1f( params->location, params->v0 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1fARB( void *args )
+{
+    struct glUniform1fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1fARB( params->location, params->v0 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1fv( void *args )
+{
+    struct glUniform1fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1fv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1fvARB( void *args )
+{
+    struct glUniform1fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1fvARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1i( void *args )
+{
+    struct glUniform1i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1i( params->location, params->v0 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1i64ARB( void *args )
+{
+    struct glUniform1i64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1i64ARB( params->location, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1i64NV( void *args )
+{
+    struct glUniform1i64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1i64NV( params->location, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1i64vARB( void *args )
+{
+    struct glUniform1i64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1i64vARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1i64vNV( void *args )
+{
+    struct glUniform1i64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1i64vNV( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1iARB( void *args )
+{
+    struct glUniform1iARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1iARB( params->location, params->v0 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1iv( void *args )
+{
+    struct glUniform1iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1iv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1ivARB( void *args )
+{
+    struct glUniform1ivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1ivARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1ui( void *args )
+{
+    struct glUniform1ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1ui( params->location, params->v0 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1ui64ARB( void *args )
+{
+    struct glUniform1ui64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1ui64ARB( params->location, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1ui64NV( void *args )
+{
+    struct glUniform1ui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1ui64NV( params->location, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1ui64vARB( void *args )
+{
+    struct glUniform1ui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1ui64vARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1ui64vNV( void *args )
+{
+    struct glUniform1ui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1ui64vNV( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1uiEXT( void *args )
+{
+    struct glUniform1uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1uiEXT( params->location, params->v0 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1uiv( void *args )
+{
+    struct glUniform1uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1uiv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform1uivEXT( void *args )
+{
+    struct glUniform1uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform1uivEXT( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2d( void *args )
+{
+    struct glUniform2d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2d( params->location, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2dv( void *args )
+{
+    struct glUniform2dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2dv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2f( void *args )
+{
+    struct glUniform2f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2f( params->location, params->v0, params->v1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2fARB( void *args )
+{
+    struct glUniform2fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2fARB( params->location, params->v0, params->v1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2fv( void *args )
+{
+    struct glUniform2fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2fv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2fvARB( void *args )
+{
+    struct glUniform2fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2fvARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2i( void *args )
+{
+    struct glUniform2i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2i( params->location, params->v0, params->v1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2i64ARB( void *args )
+{
+    struct glUniform2i64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2i64ARB( params->location, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2i64NV( void *args )
+{
+    struct glUniform2i64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2i64NV( params->location, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2i64vARB( void *args )
+{
+    struct glUniform2i64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2i64vARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2i64vNV( void *args )
+{
+    struct glUniform2i64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2i64vNV( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2iARB( void *args )
+{
+    struct glUniform2iARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2iARB( params->location, params->v0, params->v1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2iv( void *args )
+{
+    struct glUniform2iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2iv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2ivARB( void *args )
+{
+    struct glUniform2ivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2ivARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2ui( void *args )
+{
+    struct glUniform2ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2ui( params->location, params->v0, params->v1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2ui64ARB( void *args )
+{
+    struct glUniform2ui64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2ui64ARB( params->location, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2ui64NV( void *args )
+{
+    struct glUniform2ui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2ui64NV( params->location, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2ui64vARB( void *args )
+{
+    struct glUniform2ui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2ui64vARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2ui64vNV( void *args )
+{
+    struct glUniform2ui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2ui64vNV( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2uiEXT( void *args )
+{
+    struct glUniform2uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2uiEXT( params->location, params->v0, params->v1 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2uiv( void *args )
+{
+    struct glUniform2uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2uiv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform2uivEXT( void *args )
+{
+    struct glUniform2uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform2uivEXT( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3d( void *args )
+{
+    struct glUniform3d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3d( params->location, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3dv( void *args )
+{
+    struct glUniform3dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3dv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3f( void *args )
+{
+    struct glUniform3f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3f( params->location, params->v0, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3fARB( void *args )
+{
+    struct glUniform3fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3fARB( params->location, params->v0, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3fv( void *args )
+{
+    struct glUniform3fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3fv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3fvARB( void *args )
+{
+    struct glUniform3fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3fvARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3i( void *args )
+{
+    struct glUniform3i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3i( params->location, params->v0, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3i64ARB( void *args )
+{
+    struct glUniform3i64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3i64ARB( params->location, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3i64NV( void *args )
+{
+    struct glUniform3i64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3i64NV( params->location, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3i64vARB( void *args )
+{
+    struct glUniform3i64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3i64vARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3i64vNV( void *args )
+{
+    struct glUniform3i64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3i64vNV( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3iARB( void *args )
+{
+    struct glUniform3iARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3iARB( params->location, params->v0, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3iv( void *args )
+{
+    struct glUniform3iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3iv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3ivARB( void *args )
+{
+    struct glUniform3ivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3ivARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3ui( void *args )
+{
+    struct glUniform3ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3ui( params->location, params->v0, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3ui64ARB( void *args )
+{
+    struct glUniform3ui64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3ui64ARB( params->location, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3ui64NV( void *args )
+{
+    struct glUniform3ui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3ui64NV( params->location, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3ui64vARB( void *args )
+{
+    struct glUniform3ui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3ui64vARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3ui64vNV( void *args )
+{
+    struct glUniform3ui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3ui64vNV( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3uiEXT( void *args )
+{
+    struct glUniform3uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3uiEXT( params->location, params->v0, params->v1, params->v2 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3uiv( void *args )
+{
+    struct glUniform3uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3uiv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform3uivEXT( void *args )
+{
+    struct glUniform3uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform3uivEXT( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4d( void *args )
+{
+    struct glUniform4d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4d( params->location, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4dv( void *args )
+{
+    struct glUniform4dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4dv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4f( void *args )
+{
+    struct glUniform4f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4f( params->location, params->v0, params->v1, params->v2, params->v3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4fARB( void *args )
+{
+    struct glUniform4fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4fARB( params->location, params->v0, params->v1, params->v2, params->v3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4fv( void *args )
+{
+    struct glUniform4fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4fv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4fvARB( void *args )
+{
+    struct glUniform4fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4fvARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4i( void *args )
+{
+    struct glUniform4i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4i( params->location, params->v0, params->v1, params->v2, params->v3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4i64ARB( void *args )
+{
+    struct glUniform4i64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4i64ARB( params->location, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4i64NV( void *args )
+{
+    struct glUniform4i64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4i64NV( params->location, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4i64vARB( void *args )
+{
+    struct glUniform4i64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4i64vARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4i64vNV( void *args )
+{
+    struct glUniform4i64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4i64vNV( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4iARB( void *args )
+{
+    struct glUniform4iARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4iARB( params->location, params->v0, params->v1, params->v2, params->v3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4iv( void *args )
+{
+    struct glUniform4iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4iv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4ivARB( void *args )
+{
+    struct glUniform4ivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4ivARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4ui( void *args )
+{
+    struct glUniform4ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4ui( params->location, params->v0, params->v1, params->v2, params->v3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4ui64ARB( void *args )
+{
+    struct glUniform4ui64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4ui64ARB( params->location, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4ui64NV( void *args )
+{
+    struct glUniform4ui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4ui64NV( params->location, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4ui64vARB( void *args )
+{
+    struct glUniform4ui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4ui64vARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4ui64vNV( void *args )
+{
+    struct glUniform4ui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4ui64vNV( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4uiEXT( void *args )
+{
+    struct glUniform4uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4uiEXT( params->location, params->v0, params->v1, params->v2, params->v3 );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4uiv( void *args )
+{
+    struct glUniform4uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4uiv( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniform4uivEXT( void *args )
+{
+    struct glUniform4uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniform4uivEXT( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformBlockBinding( void *args )
+{
+    struct glUniformBlockBinding_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformBlockBinding( params->program, params->uniformBlockIndex, params->uniformBlockBinding );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformBufferEXT( void *args )
+{
+    struct glUniformBufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformBufferEXT( params->program, params->location, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformHandleui64ARB( void *args )
+{
+    struct glUniformHandleui64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformHandleui64ARB( params->location, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformHandleui64NV( void *args )
+{
+    struct glUniformHandleui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformHandleui64NV( params->location, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformHandleui64vARB( void *args )
+{
+    struct glUniformHandleui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformHandleui64vARB( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformHandleui64vNV( void *args )
+{
+    struct glUniformHandleui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformHandleui64vNV( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix2dv( void *args )
+{
+    struct glUniformMatrix2dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix2dv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix2fv( void *args )
+{
+    struct glUniformMatrix2fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix2fv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix2fvARB( void *args )
+{
+    struct glUniformMatrix2fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix2fvARB( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix2x3dv( void *args )
+{
+    struct glUniformMatrix2x3dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix2x3dv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix2x3fv( void *args )
+{
+    struct glUniformMatrix2x3fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix2x3fv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix2x4dv( void *args )
+{
+    struct glUniformMatrix2x4dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix2x4dv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix2x4fv( void *args )
+{
+    struct glUniformMatrix2x4fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix2x4fv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix3dv( void *args )
+{
+    struct glUniformMatrix3dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix3dv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix3fv( void *args )
+{
+    struct glUniformMatrix3fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix3fv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix3fvARB( void *args )
+{
+    struct glUniformMatrix3fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix3fvARB( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix3x2dv( void *args )
+{
+    struct glUniformMatrix3x2dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix3x2dv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix3x2fv( void *args )
+{
+    struct glUniformMatrix3x2fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix3x2fv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix3x4dv( void *args )
+{
+    struct glUniformMatrix3x4dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix3x4dv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix3x4fv( void *args )
+{
+    struct glUniformMatrix3x4fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix3x4fv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix4dv( void *args )
+{
+    struct glUniformMatrix4dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix4dv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix4fv( void *args )
+{
+    struct glUniformMatrix4fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix4fv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix4fvARB( void *args )
+{
+    struct glUniformMatrix4fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix4fvARB( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix4x2dv( void *args )
+{
+    struct glUniformMatrix4x2dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix4x2dv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix4x2fv( void *args )
+{
+    struct glUniformMatrix4x2fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix4x2fv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix4x3dv( void *args )
+{
+    struct glUniformMatrix4x3dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix4x3dv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformMatrix4x3fv( void *args )
+{
+    struct glUniformMatrix4x3fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformMatrix4x3fv( params->location, params->count, params->transpose, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformSubroutinesuiv( void *args )
+{
+    struct glUniformSubroutinesuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformSubroutinesuiv( params->shadertype, params->count, params->indices );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformui64NV( void *args )
+{
+    struct glUniformui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformui64NV( params->location, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUniformui64vNV( void *args )
+{
+    struct glUniformui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUniformui64vNV( params->location, params->count, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUnlockArraysEXT( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUnlockArraysEXT();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUnmapBuffer( void *args )
+{
+    struct glUnmapBuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glUnmapBuffer( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUnmapBufferARB( void *args )
+{
+    struct glUnmapBufferARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glUnmapBufferARB( params->target );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUnmapNamedBuffer( void *args )
+{
+    struct glUnmapNamedBuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glUnmapNamedBuffer( params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUnmapNamedBufferEXT( void *args )
+{
+    struct glUnmapNamedBufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glUnmapNamedBufferEXT( params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUnmapObjectBufferATI( void *args )
+{
+    struct glUnmapObjectBufferATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUnmapObjectBufferATI( params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUnmapTexture2DINTEL( void *args )
+{
+    struct glUnmapTexture2DINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUnmapTexture2DINTEL( params->texture, params->level );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUpdateObjectBufferATI( void *args )
+{
+    struct glUpdateObjectBufferATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUpdateObjectBufferATI( params->buffer, params->offset, params->size, params->pointer, params->preserve );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUploadGpuMaskNVX( void *args )
+{
+    struct glUploadGpuMaskNVX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUploadGpuMaskNVX( params->mask );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUseProgram( void *args )
+{
+    struct glUseProgram_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUseProgram( params->program );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUseProgramObjectARB( void *args )
+{
+    struct glUseProgramObjectARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUseProgramObjectARB( params->programObj );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUseProgramStages( void *args )
+{
+    struct glUseProgramStages_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUseProgramStages( params->pipeline, params->stages, params->program );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glUseShaderProgramEXT( void *args )
+{
+    struct glUseShaderProgramEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glUseShaderProgramEXT( params->type, params->program );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVDPAUFiniNV( void *args )
+{
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVDPAUFiniNV();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVDPAUGetSurfaceivNV( void *args )
+{
+    struct glVDPAUGetSurfaceivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVDPAUGetSurfaceivNV( params->surface, params->pname, params->count, params->length, params->values );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVDPAUInitNV( void *args )
+{
+    struct glVDPAUInitNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVDPAUInitNV( params->vdpDevice, params->getProcAddress );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVDPAUIsSurfaceNV( void *args )
+{
+    struct glVDPAUIsSurfaceNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glVDPAUIsSurfaceNV( params->surface );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVDPAUMapSurfacesNV( void *args )
+{
+    struct glVDPAUMapSurfacesNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVDPAUMapSurfacesNV( params->numSurfaces, params->surfaces );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVDPAURegisterOutputSurfaceNV( void *args )
+{
+    struct glVDPAURegisterOutputSurfaceNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glVDPAURegisterOutputSurfaceNV( params->vdpSurface, params->target, params->numTextureNames, params->textureNames );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVDPAURegisterVideoSurfaceNV( void *args )
+{
+    struct glVDPAURegisterVideoSurfaceNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glVDPAURegisterVideoSurfaceNV( params->vdpSurface, params->target, params->numTextureNames, params->textureNames );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVDPAURegisterVideoSurfaceWithPictureStructureNV( void *args )
+{
+    struct glVDPAURegisterVideoSurfaceWithPictureStructureNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glVDPAURegisterVideoSurfaceWithPictureStructureNV( params->vdpSurface, params->target, params->numTextureNames, params->textureNames, params->isFrameStructure );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVDPAUSurfaceAccessNV( void *args )
+{
+    struct glVDPAUSurfaceAccessNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVDPAUSurfaceAccessNV( params->surface, params->access );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVDPAUUnmapSurfacesNV( void *args )
+{
+    struct glVDPAUUnmapSurfacesNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVDPAUUnmapSurfacesNV( params->numSurface, params->surfaces );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVDPAUUnregisterSurfaceNV( void *args )
+{
+    struct glVDPAUUnregisterSurfaceNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVDPAUUnregisterSurfaceNV( params->surface );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glValidateProgram( void *args )
+{
+    struct glValidateProgram_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glValidateProgram( params->program );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glValidateProgramARB( void *args )
+{
+    struct glValidateProgramARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glValidateProgramARB( params->programObj );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glValidateProgramPipeline( void *args )
+{
+    struct glValidateProgramPipeline_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glValidateProgramPipeline( params->pipeline );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVariantArrayObjectATI( void *args )
+{
+    struct glVariantArrayObjectATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVariantArrayObjectATI( params->id, params->type, params->stride, params->buffer, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVariantPointerEXT( void *args )
+{
+    struct glVariantPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVariantPointerEXT( params->id, params->type, params->stride, params->addr );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVariantbvEXT( void *args )
+{
+    struct glVariantbvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVariantbvEXT( params->id, params->addr );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVariantdvEXT( void *args )
+{
+    struct glVariantdvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVariantdvEXT( params->id, params->addr );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVariantfvEXT( void *args )
+{
+    struct glVariantfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVariantfvEXT( params->id, params->addr );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVariantivEXT( void *args )
+{
+    struct glVariantivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVariantivEXT( params->id, params->addr );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVariantsvEXT( void *args )
+{
+    struct glVariantsvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVariantsvEXT( params->id, params->addr );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVariantubvEXT( void *args )
+{
+    struct glVariantubvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVariantubvEXT( params->id, params->addr );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVariantuivEXT( void *args )
+{
+    struct glVariantuivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVariantuivEXT( params->id, params->addr );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVariantusvEXT( void *args )
+{
+    struct glVariantusvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVariantusvEXT( params->id, params->addr );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex2bOES( void *args )
+{
+    struct glVertex2bOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex2bOES( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex2bvOES( void *args )
+{
+    struct glVertex2bvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex2bvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex2hNV( void *args )
+{
+    struct glVertex2hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex2hNV( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex2hvNV( void *args )
+{
+    struct glVertex2hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex2hvNV( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex2xOES( void *args )
+{
+    struct glVertex2xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex2xOES( params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex2xvOES( void *args )
+{
+    struct glVertex2xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex2xvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex3bOES( void *args )
+{
+    struct glVertex3bOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex3bOES( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex3bvOES( void *args )
+{
+    struct glVertex3bvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex3bvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex3hNV( void *args )
+{
+    struct glVertex3hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex3hNV( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex3hvNV( void *args )
+{
+    struct glVertex3hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex3hvNV( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex3xOES( void *args )
+{
+    struct glVertex3xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex3xOES( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex3xvOES( void *args )
+{
+    struct glVertex3xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex3xvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex4bOES( void *args )
+{
+    struct glVertex4bOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex4bOES( params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex4bvOES( void *args )
+{
+    struct glVertex4bvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex4bvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex4hNV( void *args )
+{
+    struct glVertex4hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex4hNV( params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex4hvNV( void *args )
+{
+    struct glVertex4hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex4hvNV( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex4xOES( void *args )
+{
+    struct glVertex4xOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex4xOES( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertex4xvOES( void *args )
+{
+    struct glVertex4xvOES_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertex4xvOES( params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayAttribBinding( void *args )
+{
+    struct glVertexArrayAttribBinding_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayAttribBinding( params->vaobj, params->attribindex, params->bindingindex );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayAttribFormat( void *args )
+{
+    struct glVertexArrayAttribFormat_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayAttribFormat( params->vaobj, params->attribindex, params->size, params->type, params->normalized, params->relativeoffset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayAttribIFormat( void *args )
+{
+    struct glVertexArrayAttribIFormat_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayAttribIFormat( params->vaobj, params->attribindex, params->size, params->type, params->relativeoffset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayAttribLFormat( void *args )
+{
+    struct glVertexArrayAttribLFormat_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayAttribLFormat( params->vaobj, params->attribindex, params->size, params->type, params->relativeoffset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayBindVertexBufferEXT( void *args )
+{
+    struct glVertexArrayBindVertexBufferEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayBindVertexBufferEXT( params->vaobj, params->bindingindex, params->buffer, params->offset, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayBindingDivisor( void *args )
+{
+    struct glVertexArrayBindingDivisor_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayBindingDivisor( params->vaobj, params->bindingindex, params->divisor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayColorOffsetEXT( void *args )
+{
+    struct glVertexArrayColorOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayColorOffsetEXT( params->vaobj, params->buffer, params->size, params->type, params->stride, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayEdgeFlagOffsetEXT( void *args )
+{
+    struct glVertexArrayEdgeFlagOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayEdgeFlagOffsetEXT( params->vaobj, params->buffer, params->stride, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayElementBuffer( void *args )
+{
+    struct glVertexArrayElementBuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayElementBuffer( params->vaobj, params->buffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayFogCoordOffsetEXT( void *args )
+{
+    struct glVertexArrayFogCoordOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayFogCoordOffsetEXT( params->vaobj, params->buffer, params->type, params->stride, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayIndexOffsetEXT( void *args )
+{
+    struct glVertexArrayIndexOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayIndexOffsetEXT( params->vaobj, params->buffer, params->type, params->stride, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayMultiTexCoordOffsetEXT( void *args )
+{
+    struct glVertexArrayMultiTexCoordOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayMultiTexCoordOffsetEXT( params->vaobj, params->buffer, params->texunit, params->size, params->type, params->stride, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayNormalOffsetEXT( void *args )
+{
+    struct glVertexArrayNormalOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayNormalOffsetEXT( params->vaobj, params->buffer, params->type, params->stride, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayParameteriAPPLE( void *args )
+{
+    struct glVertexArrayParameteriAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayParameteriAPPLE( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayRangeAPPLE( void *args )
+{
+    struct glVertexArrayRangeAPPLE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayRangeAPPLE( params->length, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayRangeNV( void *args )
+{
+    struct glVertexArrayRangeNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayRangeNV( params->length, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArraySecondaryColorOffsetEXT( void *args )
+{
+    struct glVertexArraySecondaryColorOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArraySecondaryColorOffsetEXT( params->vaobj, params->buffer, params->size, params->type, params->stride, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayTexCoordOffsetEXT( void *args )
+{
+    struct glVertexArrayTexCoordOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayTexCoordOffsetEXT( params->vaobj, params->buffer, params->size, params->type, params->stride, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayVertexAttribBindingEXT( void *args )
+{
+    struct glVertexArrayVertexAttribBindingEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayVertexAttribBindingEXT( params->vaobj, params->attribindex, params->bindingindex );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayVertexAttribDivisorEXT( void *args )
+{
+    struct glVertexArrayVertexAttribDivisorEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayVertexAttribDivisorEXT( params->vaobj, params->index, params->divisor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayVertexAttribFormatEXT( void *args )
+{
+    struct glVertexArrayVertexAttribFormatEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayVertexAttribFormatEXT( params->vaobj, params->attribindex, params->size, params->type, params->normalized, params->relativeoffset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayVertexAttribIFormatEXT( void *args )
+{
+    struct glVertexArrayVertexAttribIFormatEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayVertexAttribIFormatEXT( params->vaobj, params->attribindex, params->size, params->type, params->relativeoffset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayVertexAttribIOffsetEXT( void *args )
+{
+    struct glVertexArrayVertexAttribIOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayVertexAttribIOffsetEXT( params->vaobj, params->buffer, params->index, params->size, params->type, params->stride, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayVertexAttribLFormatEXT( void *args )
+{
+    struct glVertexArrayVertexAttribLFormatEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayVertexAttribLFormatEXT( params->vaobj, params->attribindex, params->size, params->type, params->relativeoffset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayVertexAttribLOffsetEXT( void *args )
+{
+    struct glVertexArrayVertexAttribLOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayVertexAttribLOffsetEXT( params->vaobj, params->buffer, params->index, params->size, params->type, params->stride, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayVertexAttribOffsetEXT( void *args )
+{
+    struct glVertexArrayVertexAttribOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayVertexAttribOffsetEXT( params->vaobj, params->buffer, params->index, params->size, params->type, params->normalized, params->stride, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayVertexBindingDivisorEXT( void *args )
+{
+    struct glVertexArrayVertexBindingDivisorEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayVertexBindingDivisorEXT( params->vaobj, params->bindingindex, params->divisor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayVertexBuffer( void *args )
+{
+    struct glVertexArrayVertexBuffer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayVertexBuffer( params->vaobj, params->bindingindex, params->buffer, params->offset, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayVertexBuffers( void *args )
+{
+    struct glVertexArrayVertexBuffers_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayVertexBuffers( params->vaobj, params->first, params->count, params->buffers, params->offsets, params->strides );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexArrayVertexOffsetEXT( void *args )
+{
+    struct glVertexArrayVertexOffsetEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexArrayVertexOffsetEXT( params->vaobj, params->buffer, params->size, params->type, params->stride, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1d( void *args )
+{
+    struct glVertexAttrib1d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1d( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1dARB( void *args )
+{
+    struct glVertexAttrib1dARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1dARB( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1dNV( void *args )
+{
+    struct glVertexAttrib1dNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1dNV( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1dv( void *args )
+{
+    struct glVertexAttrib1dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1dv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1dvARB( void *args )
+{
+    struct glVertexAttrib1dvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1dvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1dvNV( void *args )
+{
+    struct glVertexAttrib1dvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1dvNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1f( void *args )
+{
+    struct glVertexAttrib1f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1f( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1fARB( void *args )
+{
+    struct glVertexAttrib1fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1fARB( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1fNV( void *args )
+{
+    struct glVertexAttrib1fNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1fNV( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1fv( void *args )
+{
+    struct glVertexAttrib1fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1fv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1fvARB( void *args )
+{
+    struct glVertexAttrib1fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1fvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1fvNV( void *args )
+{
+    struct glVertexAttrib1fvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1fvNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1hNV( void *args )
+{
+    struct glVertexAttrib1hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1hNV( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1hvNV( void *args )
+{
+    struct glVertexAttrib1hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1hvNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1s( void *args )
+{
+    struct glVertexAttrib1s_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1s( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1sARB( void *args )
+{
+    struct glVertexAttrib1sARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1sARB( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1sNV( void *args )
+{
+    struct glVertexAttrib1sNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1sNV( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1sv( void *args )
+{
+    struct glVertexAttrib1sv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1sv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1svARB( void *args )
+{
+    struct glVertexAttrib1svARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1svARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib1svNV( void *args )
+{
+    struct glVertexAttrib1svNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib1svNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2d( void *args )
+{
+    struct glVertexAttrib2d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2d( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2dARB( void *args )
+{
+    struct glVertexAttrib2dARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2dARB( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2dNV( void *args )
+{
+    struct glVertexAttrib2dNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2dNV( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2dv( void *args )
+{
+    struct glVertexAttrib2dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2dv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2dvARB( void *args )
+{
+    struct glVertexAttrib2dvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2dvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2dvNV( void *args )
+{
+    struct glVertexAttrib2dvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2dvNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2f( void *args )
+{
+    struct glVertexAttrib2f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2f( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2fARB( void *args )
+{
+    struct glVertexAttrib2fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2fARB( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2fNV( void *args )
+{
+    struct glVertexAttrib2fNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2fNV( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2fv( void *args )
+{
+    struct glVertexAttrib2fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2fv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2fvARB( void *args )
+{
+    struct glVertexAttrib2fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2fvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2fvNV( void *args )
+{
+    struct glVertexAttrib2fvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2fvNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2hNV( void *args )
+{
+    struct glVertexAttrib2hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2hNV( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2hvNV( void *args )
+{
+    struct glVertexAttrib2hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2hvNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2s( void *args )
+{
+    struct glVertexAttrib2s_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2s( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2sARB( void *args )
+{
+    struct glVertexAttrib2sARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2sARB( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2sNV( void *args )
+{
+    struct glVertexAttrib2sNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2sNV( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2sv( void *args )
+{
+    struct glVertexAttrib2sv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2sv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2svARB( void *args )
+{
+    struct glVertexAttrib2svARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2svARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib2svNV( void *args )
+{
+    struct glVertexAttrib2svNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib2svNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3d( void *args )
+{
+    struct glVertexAttrib3d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3d( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3dARB( void *args )
+{
+    struct glVertexAttrib3dARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3dARB( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3dNV( void *args )
+{
+    struct glVertexAttrib3dNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3dNV( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3dv( void *args )
+{
+    struct glVertexAttrib3dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3dv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3dvARB( void *args )
+{
+    struct glVertexAttrib3dvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3dvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3dvNV( void *args )
+{
+    struct glVertexAttrib3dvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3dvNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3f( void *args )
+{
+    struct glVertexAttrib3f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3f( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3fARB( void *args )
+{
+    struct glVertexAttrib3fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3fARB( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3fNV( void *args )
+{
+    struct glVertexAttrib3fNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3fNV( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3fv( void *args )
+{
+    struct glVertexAttrib3fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3fv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3fvARB( void *args )
+{
+    struct glVertexAttrib3fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3fvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3fvNV( void *args )
+{
+    struct glVertexAttrib3fvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3fvNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3hNV( void *args )
+{
+    struct glVertexAttrib3hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3hNV( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3hvNV( void *args )
+{
+    struct glVertexAttrib3hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3hvNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3s( void *args )
+{
+    struct glVertexAttrib3s_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3s( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3sARB( void *args )
+{
+    struct glVertexAttrib3sARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3sARB( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3sNV( void *args )
+{
+    struct glVertexAttrib3sNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3sNV( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3sv( void *args )
+{
+    struct glVertexAttrib3sv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3sv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3svARB( void *args )
+{
+    struct glVertexAttrib3svARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3svARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib3svNV( void *args )
+{
+    struct glVertexAttrib3svNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib3svNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4Nbv( void *args )
+{
+    struct glVertexAttrib4Nbv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4Nbv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4NbvARB( void *args )
+{
+    struct glVertexAttrib4NbvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4NbvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4Niv( void *args )
+{
+    struct glVertexAttrib4Niv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4Niv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4NivARB( void *args )
+{
+    struct glVertexAttrib4NivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4NivARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4Nsv( void *args )
+{
+    struct glVertexAttrib4Nsv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4Nsv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4NsvARB( void *args )
+{
+    struct glVertexAttrib4NsvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4NsvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4Nub( void *args )
+{
+    struct glVertexAttrib4Nub_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4Nub( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4NubARB( void *args )
+{
+    struct glVertexAttrib4NubARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4NubARB( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4Nubv( void *args )
+{
+    struct glVertexAttrib4Nubv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4Nubv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4NubvARB( void *args )
+{
+    struct glVertexAttrib4NubvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4NubvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4Nuiv( void *args )
+{
+    struct glVertexAttrib4Nuiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4Nuiv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4NuivARB( void *args )
+{
+    struct glVertexAttrib4NuivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4NuivARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4Nusv( void *args )
+{
+    struct glVertexAttrib4Nusv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4Nusv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4NusvARB( void *args )
+{
+    struct glVertexAttrib4NusvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4NusvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4bv( void *args )
+{
+    struct glVertexAttrib4bv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4bv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4bvARB( void *args )
+{
+    struct glVertexAttrib4bvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4bvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4d( void *args )
+{
+    struct glVertexAttrib4d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4d( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4dARB( void *args )
+{
+    struct glVertexAttrib4dARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4dARB( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4dNV( void *args )
+{
+    struct glVertexAttrib4dNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4dNV( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4dv( void *args )
+{
+    struct glVertexAttrib4dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4dv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4dvARB( void *args )
+{
+    struct glVertexAttrib4dvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4dvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4dvNV( void *args )
+{
+    struct glVertexAttrib4dvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4dvNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4f( void *args )
+{
+    struct glVertexAttrib4f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4f( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4fARB( void *args )
+{
+    struct glVertexAttrib4fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4fARB( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4fNV( void *args )
+{
+    struct glVertexAttrib4fNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4fNV( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4fv( void *args )
+{
+    struct glVertexAttrib4fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4fv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4fvARB( void *args )
+{
+    struct glVertexAttrib4fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4fvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4fvNV( void *args )
+{
+    struct glVertexAttrib4fvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4fvNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4hNV( void *args )
+{
+    struct glVertexAttrib4hNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4hNV( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4hvNV( void *args )
+{
+    struct glVertexAttrib4hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4hvNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4iv( void *args )
+{
+    struct glVertexAttrib4iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4iv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4ivARB( void *args )
+{
+    struct glVertexAttrib4ivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4ivARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4s( void *args )
+{
+    struct glVertexAttrib4s_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4s( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4sARB( void *args )
+{
+    struct glVertexAttrib4sARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4sARB( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4sNV( void *args )
+{
+    struct glVertexAttrib4sNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4sNV( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4sv( void *args )
+{
+    struct glVertexAttrib4sv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4sv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4svARB( void *args )
+{
+    struct glVertexAttrib4svARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4svARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4svNV( void *args )
+{
+    struct glVertexAttrib4svNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4svNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4ubNV( void *args )
+{
+    struct glVertexAttrib4ubNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4ubNV( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4ubv( void *args )
+{
+    struct glVertexAttrib4ubv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4ubv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4ubvARB( void *args )
+{
+    struct glVertexAttrib4ubvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4ubvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4ubvNV( void *args )
+{
+    struct glVertexAttrib4ubvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4ubvNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4uiv( void *args )
+{
+    struct glVertexAttrib4uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4uiv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4uivARB( void *args )
+{
+    struct glVertexAttrib4uivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4uivARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4usv( void *args )
+{
+    struct glVertexAttrib4usv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4usv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttrib4usvARB( void *args )
+{
+    struct glVertexAttrib4usvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttrib4usvARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribArrayObjectATI( void *args )
+{
+    struct glVertexAttribArrayObjectATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribArrayObjectATI( params->index, params->size, params->type, params->normalized, params->stride, params->buffer, params->offset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribBinding( void *args )
+{
+    struct glVertexAttribBinding_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribBinding( params->attribindex, params->bindingindex );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribDivisor( void *args )
+{
+    struct glVertexAttribDivisor_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribDivisor( params->index, params->divisor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribDivisorARB( void *args )
+{
+    struct glVertexAttribDivisorARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribDivisorARB( params->index, params->divisor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribFormat( void *args )
+{
+    struct glVertexAttribFormat_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribFormat( params->attribindex, params->size, params->type, params->normalized, params->relativeoffset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribFormatNV( void *args )
+{
+    struct glVertexAttribFormatNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribFormatNV( params->index, params->size, params->type, params->normalized, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI1i( void *args )
+{
+    struct glVertexAttribI1i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI1i( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI1iEXT( void *args )
+{
+    struct glVertexAttribI1iEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI1iEXT( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI1iv( void *args )
+{
+    struct glVertexAttribI1iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI1iv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI1ivEXT( void *args )
+{
+    struct glVertexAttribI1ivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI1ivEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI1ui( void *args )
+{
+    struct glVertexAttribI1ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI1ui( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI1uiEXT( void *args )
+{
+    struct glVertexAttribI1uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI1uiEXT( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI1uiv( void *args )
+{
+    struct glVertexAttribI1uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI1uiv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI1uivEXT( void *args )
+{
+    struct glVertexAttribI1uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI1uivEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI2i( void *args )
+{
+    struct glVertexAttribI2i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI2i( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI2iEXT( void *args )
+{
+    struct glVertexAttribI2iEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI2iEXT( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI2iv( void *args )
+{
+    struct glVertexAttribI2iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI2iv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI2ivEXT( void *args )
+{
+    struct glVertexAttribI2ivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI2ivEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI2ui( void *args )
+{
+    struct glVertexAttribI2ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI2ui( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI2uiEXT( void *args )
+{
+    struct glVertexAttribI2uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI2uiEXT( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI2uiv( void *args )
+{
+    struct glVertexAttribI2uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI2uiv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI2uivEXT( void *args )
+{
+    struct glVertexAttribI2uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI2uivEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI3i( void *args )
+{
+    struct glVertexAttribI3i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI3i( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI3iEXT( void *args )
+{
+    struct glVertexAttribI3iEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI3iEXT( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI3iv( void *args )
+{
+    struct glVertexAttribI3iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI3iv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI3ivEXT( void *args )
+{
+    struct glVertexAttribI3ivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI3ivEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI3ui( void *args )
+{
+    struct glVertexAttribI3ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI3ui( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI3uiEXT( void *args )
+{
+    struct glVertexAttribI3uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI3uiEXT( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI3uiv( void *args )
+{
+    struct glVertexAttribI3uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI3uiv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI3uivEXT( void *args )
+{
+    struct glVertexAttribI3uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI3uivEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4bv( void *args )
+{
+    struct glVertexAttribI4bv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4bv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4bvEXT( void *args )
+{
+    struct glVertexAttribI4bvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4bvEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4i( void *args )
+{
+    struct glVertexAttribI4i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4i( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4iEXT( void *args )
+{
+    struct glVertexAttribI4iEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4iEXT( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4iv( void *args )
+{
+    struct glVertexAttribI4iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4iv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4ivEXT( void *args )
+{
+    struct glVertexAttribI4ivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4ivEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4sv( void *args )
+{
+    struct glVertexAttribI4sv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4sv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4svEXT( void *args )
+{
+    struct glVertexAttribI4svEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4svEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4ubv( void *args )
+{
+    struct glVertexAttribI4ubv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4ubv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4ubvEXT( void *args )
+{
+    struct glVertexAttribI4ubvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4ubvEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4ui( void *args )
+{
+    struct glVertexAttribI4ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4ui( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4uiEXT( void *args )
+{
+    struct glVertexAttribI4uiEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4uiEXT( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4uiv( void *args )
+{
+    struct glVertexAttribI4uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4uiv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4uivEXT( void *args )
+{
+    struct glVertexAttribI4uivEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4uivEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4usv( void *args )
+{
+    struct glVertexAttribI4usv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4usv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribI4usvEXT( void *args )
+{
+    struct glVertexAttribI4usvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribI4usvEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribIFormat( void *args )
+{
+    struct glVertexAttribIFormat_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribIFormat( params->attribindex, params->size, params->type, params->relativeoffset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribIFormatNV( void *args )
+{
+    struct glVertexAttribIFormatNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribIFormatNV( params->index, params->size, params->type, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribIPointer( void *args )
+{
+    struct glVertexAttribIPointer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribIPointer( params->index, params->size, params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribIPointerEXT( void *args )
+{
+    struct glVertexAttribIPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribIPointerEXT( params->index, params->size, params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL1d( void *args )
+{
+    struct glVertexAttribL1d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL1d( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL1dEXT( void *args )
+{
+    struct glVertexAttribL1dEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL1dEXT( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL1dv( void *args )
+{
+    struct glVertexAttribL1dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL1dv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL1dvEXT( void *args )
+{
+    struct glVertexAttribL1dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL1dvEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL1i64NV( void *args )
+{
+    struct glVertexAttribL1i64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL1i64NV( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL1i64vNV( void *args )
+{
+    struct glVertexAttribL1i64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL1i64vNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL1ui64ARB( void *args )
+{
+    struct glVertexAttribL1ui64ARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL1ui64ARB( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL1ui64NV( void *args )
+{
+    struct glVertexAttribL1ui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL1ui64NV( params->index, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL1ui64vARB( void *args )
+{
+    struct glVertexAttribL1ui64vARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL1ui64vARB( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL1ui64vNV( void *args )
+{
+    struct glVertexAttribL1ui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL1ui64vNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL2d( void *args )
+{
+    struct glVertexAttribL2d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL2d( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL2dEXT( void *args )
+{
+    struct glVertexAttribL2dEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL2dEXT( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL2dv( void *args )
+{
+    struct glVertexAttribL2dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL2dv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL2dvEXT( void *args )
+{
+    struct glVertexAttribL2dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL2dvEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL2i64NV( void *args )
+{
+    struct glVertexAttribL2i64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL2i64NV( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL2i64vNV( void *args )
+{
+    struct glVertexAttribL2i64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL2i64vNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL2ui64NV( void *args )
+{
+    struct glVertexAttribL2ui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL2ui64NV( params->index, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL2ui64vNV( void *args )
+{
+    struct glVertexAttribL2ui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL2ui64vNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL3d( void *args )
+{
+    struct glVertexAttribL3d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL3d( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL3dEXT( void *args )
+{
+    struct glVertexAttribL3dEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL3dEXT( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL3dv( void *args )
+{
+    struct glVertexAttribL3dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL3dv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL3dvEXT( void *args )
+{
+    struct glVertexAttribL3dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL3dvEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL3i64NV( void *args )
+{
+    struct glVertexAttribL3i64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL3i64NV( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL3i64vNV( void *args )
+{
+    struct glVertexAttribL3i64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL3i64vNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL3ui64NV( void *args )
+{
+    struct glVertexAttribL3ui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL3ui64NV( params->index, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL3ui64vNV( void *args )
+{
+    struct glVertexAttribL3ui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL3ui64vNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL4d( void *args )
+{
+    struct glVertexAttribL4d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL4d( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL4dEXT( void *args )
+{
+    struct glVertexAttribL4dEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL4dEXT( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL4dv( void *args )
+{
+    struct glVertexAttribL4dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL4dv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL4dvEXT( void *args )
+{
+    struct glVertexAttribL4dvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL4dvEXT( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL4i64NV( void *args )
+{
+    struct glVertexAttribL4i64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL4i64NV( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL4i64vNV( void *args )
+{
+    struct glVertexAttribL4i64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL4i64vNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL4ui64NV( void *args )
+{
+    struct glVertexAttribL4ui64NV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL4ui64NV( params->index, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribL4ui64vNV( void *args )
+{
+    struct glVertexAttribL4ui64vNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribL4ui64vNV( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribLFormat( void *args )
+{
+    struct glVertexAttribLFormat_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribLFormat( params->attribindex, params->size, params->type, params->relativeoffset );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribLFormatNV( void *args )
+{
+    struct glVertexAttribLFormatNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribLFormatNV( params->index, params->size, params->type, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribLPointer( void *args )
+{
+    struct glVertexAttribLPointer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribLPointer( params->index, params->size, params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribLPointerEXT( void *args )
+{
+    struct glVertexAttribLPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribLPointerEXT( params->index, params->size, params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribP1ui( void *args )
+{
+    struct glVertexAttribP1ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribP1ui( params->index, params->type, params->normalized, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribP1uiv( void *args )
+{
+    struct glVertexAttribP1uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribP1uiv( params->index, params->type, params->normalized, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribP2ui( void *args )
+{
+    struct glVertexAttribP2ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribP2ui( params->index, params->type, params->normalized, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribP2uiv( void *args )
+{
+    struct glVertexAttribP2uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribP2uiv( params->index, params->type, params->normalized, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribP3ui( void *args )
+{
+    struct glVertexAttribP3ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribP3ui( params->index, params->type, params->normalized, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribP3uiv( void *args )
+{
+    struct glVertexAttribP3uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribP3uiv( params->index, params->type, params->normalized, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribP4ui( void *args )
+{
+    struct glVertexAttribP4ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribP4ui( params->index, params->type, params->normalized, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribP4uiv( void *args )
+{
+    struct glVertexAttribP4uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribP4uiv( params->index, params->type, params->normalized, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribParameteriAMD( void *args )
+{
+    struct glVertexAttribParameteriAMD_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribParameteriAMD( params->index, params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribPointer( void *args )
+{
+    struct glVertexAttribPointer_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribPointer( params->index, params->size, params->type, params->normalized, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribPointerARB( void *args )
+{
+    struct glVertexAttribPointerARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribPointerARB( params->index, params->size, params->type, params->normalized, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribPointerNV( void *args )
+{
+    struct glVertexAttribPointerNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribPointerNV( params->index, params->fsize, params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs1dvNV( void *args )
+{
+    struct glVertexAttribs1dvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs1dvNV( params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs1fvNV( void *args )
+{
+    struct glVertexAttribs1fvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs1fvNV( params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs1hvNV( void *args )
+{
+    struct glVertexAttribs1hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs1hvNV( params->index, params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs1svNV( void *args )
+{
+    struct glVertexAttribs1svNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs1svNV( params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs2dvNV( void *args )
+{
+    struct glVertexAttribs2dvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs2dvNV( params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs2fvNV( void *args )
+{
+    struct glVertexAttribs2fvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs2fvNV( params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs2hvNV( void *args )
+{
+    struct glVertexAttribs2hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs2hvNV( params->index, params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs2svNV( void *args )
+{
+    struct glVertexAttribs2svNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs2svNV( params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs3dvNV( void *args )
+{
+    struct glVertexAttribs3dvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs3dvNV( params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs3fvNV( void *args )
+{
+    struct glVertexAttribs3fvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs3fvNV( params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs3hvNV( void *args )
+{
+    struct glVertexAttribs3hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs3hvNV( params->index, params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs3svNV( void *args )
+{
+    struct glVertexAttribs3svNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs3svNV( params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs4dvNV( void *args )
+{
+    struct glVertexAttribs4dvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs4dvNV( params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs4fvNV( void *args )
+{
+    struct glVertexAttribs4fvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs4fvNV( params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs4hvNV( void *args )
+{
+    struct glVertexAttribs4hvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs4hvNV( params->index, params->n, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs4svNV( void *args )
+{
+    struct glVertexAttribs4svNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs4svNV( params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexAttribs4ubvNV( void *args )
+{
+    struct glVertexAttribs4ubvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexAttribs4ubvNV( params->index, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexBindingDivisor( void *args )
+{
+    struct glVertexBindingDivisor_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexBindingDivisor( params->bindingindex, params->divisor );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexBlendARB( void *args )
+{
+    struct glVertexBlendARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexBlendARB( params->count );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexBlendEnvfATI( void *args )
+{
+    struct glVertexBlendEnvfATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexBlendEnvfATI( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexBlendEnviATI( void *args )
+{
+    struct glVertexBlendEnviATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexBlendEnviATI( params->pname, params->param );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexFormatNV( void *args )
+{
+    struct glVertexFormatNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexFormatNV( params->size, params->type, params->stride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexP2ui( void *args )
+{
+    struct glVertexP2ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexP2ui( params->type, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexP2uiv( void *args )
+{
+    struct glVertexP2uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexP2uiv( params->type, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexP3ui( void *args )
+{
+    struct glVertexP3ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexP3ui( params->type, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexP3uiv( void *args )
+{
+    struct glVertexP3uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexP3uiv( params->type, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexP4ui( void *args )
+{
+    struct glVertexP4ui_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexP4ui( params->type, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexP4uiv( void *args )
+{
+    struct glVertexP4uiv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexP4uiv( params->type, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexPointerEXT( void *args )
+{
+    struct glVertexPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexPointerEXT( params->size, params->type, params->stride, params->count, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexPointerListIBM( void *args )
+{
+    struct glVertexPointerListIBM_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexPointerListIBM( params->size, params->type, params->stride, params->pointer, params->ptrstride );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexPointervINTEL( void *args )
+{
+    struct glVertexPointervINTEL_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexPointervINTEL( params->size, params->type, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream1dATI( void *args )
+{
+    struct glVertexStream1dATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream1dATI( params->stream, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream1dvATI( void *args )
+{
+    struct glVertexStream1dvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream1dvATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream1fATI( void *args )
+{
+    struct glVertexStream1fATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream1fATI( params->stream, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream1fvATI( void *args )
+{
+    struct glVertexStream1fvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream1fvATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream1iATI( void *args )
+{
+    struct glVertexStream1iATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream1iATI( params->stream, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream1ivATI( void *args )
+{
+    struct glVertexStream1ivATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream1ivATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream1sATI( void *args )
+{
+    struct glVertexStream1sATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream1sATI( params->stream, params->x );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream1svATI( void *args )
+{
+    struct glVertexStream1svATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream1svATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream2dATI( void *args )
+{
+    struct glVertexStream2dATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream2dATI( params->stream, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream2dvATI( void *args )
+{
+    struct glVertexStream2dvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream2dvATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream2fATI( void *args )
+{
+    struct glVertexStream2fATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream2fATI( params->stream, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream2fvATI( void *args )
+{
+    struct glVertexStream2fvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream2fvATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream2iATI( void *args )
+{
+    struct glVertexStream2iATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream2iATI( params->stream, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream2ivATI( void *args )
+{
+    struct glVertexStream2ivATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream2ivATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream2sATI( void *args )
+{
+    struct glVertexStream2sATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream2sATI( params->stream, params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream2svATI( void *args )
+{
+    struct glVertexStream2svATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream2svATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream3dATI( void *args )
+{
+    struct glVertexStream3dATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream3dATI( params->stream, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream3dvATI( void *args )
+{
+    struct glVertexStream3dvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream3dvATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream3fATI( void *args )
+{
+    struct glVertexStream3fATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream3fATI( params->stream, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream3fvATI( void *args )
+{
+    struct glVertexStream3fvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream3fvATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream3iATI( void *args )
+{
+    struct glVertexStream3iATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream3iATI( params->stream, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream3ivATI( void *args )
+{
+    struct glVertexStream3ivATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream3ivATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream3sATI( void *args )
+{
+    struct glVertexStream3sATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream3sATI( params->stream, params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream3svATI( void *args )
+{
+    struct glVertexStream3svATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream3svATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream4dATI( void *args )
+{
+    struct glVertexStream4dATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream4dATI( params->stream, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream4dvATI( void *args )
+{
+    struct glVertexStream4dvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream4dvATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream4fATI( void *args )
+{
+    struct glVertexStream4fATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream4fATI( params->stream, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream4fvATI( void *args )
+{
+    struct glVertexStream4fvATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream4fvATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream4iATI( void *args )
+{
+    struct glVertexStream4iATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream4iATI( params->stream, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream4ivATI( void *args )
+{
+    struct glVertexStream4ivATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream4ivATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream4sATI( void *args )
+{
+    struct glVertexStream4sATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream4sATI( params->stream, params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexStream4svATI( void *args )
+{
+    struct glVertexStream4svATI_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexStream4svATI( params->stream, params->coords );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexWeightPointerEXT( void *args )
+{
+    struct glVertexWeightPointerEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexWeightPointerEXT( params->size, params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexWeightfEXT( void *args )
+{
+    struct glVertexWeightfEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexWeightfEXT( params->weight );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexWeightfvEXT( void *args )
+{
+    struct glVertexWeightfvEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexWeightfvEXT( params->weight );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexWeighthNV( void *args )
+{
+    struct glVertexWeighthNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexWeighthNV( params->weight );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVertexWeighthvNV( void *args )
+{
+    struct glVertexWeighthvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVertexWeighthvNV( params->weight );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVideoCaptureNV( void *args )
+{
+    struct glVideoCaptureNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_glVideoCaptureNV( params->video_capture_slot, params->sequence_num, params->capture_time );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVideoCaptureStreamParameterdvNV( void *args )
+{
+    struct glVideoCaptureStreamParameterdvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVideoCaptureStreamParameterdvNV( params->video_capture_slot, params->stream, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVideoCaptureStreamParameterfvNV( void *args )
+{
+    struct glVideoCaptureStreamParameterfvNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVideoCaptureStreamParameterfvNV( params->video_capture_slot, params->stream, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glVideoCaptureStreamParameterivNV( void *args )
+{
+    struct glVideoCaptureStreamParameterivNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glVideoCaptureStreamParameterivNV( params->video_capture_slot, params->stream, params->pname, params->params );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glViewportArrayv( void *args )
+{
+    struct glViewportArrayv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glViewportArrayv( params->first, params->count, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glViewportIndexedf( void *args )
+{
+    struct glViewportIndexedf_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glViewportIndexedf( params->index, params->x, params->y, params->w, params->h );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glViewportIndexedfv( void *args )
+{
+    struct glViewportIndexedfv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glViewportIndexedfv( params->index, params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glViewportPositionWScaleNV( void *args )
+{
+    struct glViewportPositionWScaleNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glViewportPositionWScaleNV( params->index, params->xcoeff, params->ycoeff );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glViewportSwizzleNV( void *args )
+{
+    struct glViewportSwizzleNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glViewportSwizzleNV( params->index, params->swizzlex, params->swizzley, params->swizzlez, params->swizzlew );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWaitSemaphoreEXT( void *args )
+{
+    struct glWaitSemaphoreEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWaitSemaphoreEXT( params->semaphore, params->numBufferBarriers, params->buffers, params->numTextureBarriers, params->textures, params->srcLayouts );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWaitSemaphoreui64NVX( void *args )
+{
+    struct glWaitSemaphoreui64NVX_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWaitSemaphoreui64NVX( params->waitGpu, params->fenceObjectCount, params->semaphoreArray, params->fenceValueArray );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWaitSync( void *args )
+{
+    struct glWaitSync_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWaitSync( params->sync, params->flags, params->timeout );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWaitVkSemaphoreNV( void *args )
+{
+    struct glWaitVkSemaphoreNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWaitVkSemaphoreNV( params->vkSemaphore );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWeightPathsNV( void *args )
+{
+    struct glWeightPathsNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWeightPathsNV( params->resultPath, params->numPaths, params->paths, params->weights );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWeightPointerARB( void *args )
+{
+    struct glWeightPointerARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWeightPointerARB( params->size, params->type, params->stride, params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWeightbvARB( void *args )
+{
+    struct glWeightbvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWeightbvARB( params->size, params->weights );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWeightdvARB( void *args )
+{
+    struct glWeightdvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWeightdvARB( params->size, params->weights );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWeightfvARB( void *args )
+{
+    struct glWeightfvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWeightfvARB( params->size, params->weights );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWeightivARB( void *args )
+{
+    struct glWeightivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWeightivARB( params->size, params->weights );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWeightsvARB( void *args )
+{
+    struct glWeightsvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWeightsvARB( params->size, params->weights );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWeightubvARB( void *args )
+{
+    struct glWeightubvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWeightubvARB( params->size, params->weights );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWeightuivARB( void *args )
+{
+    struct glWeightuivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWeightuivARB( params->size, params->weights );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWeightusvARB( void *args )
+{
+    struct glWeightusvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWeightusvARB( params->size, params->weights );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2d( void *args )
+{
+    struct glWindowPos2d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2d( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2dARB( void *args )
+{
+    struct glWindowPos2dARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2dARB( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2dMESA( void *args )
+{
+    struct glWindowPos2dMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2dMESA( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2dv( void *args )
+{
+    struct glWindowPos2dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2dv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2dvARB( void *args )
+{
+    struct glWindowPos2dvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2dvARB( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2dvMESA( void *args )
+{
+    struct glWindowPos2dvMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2dvMESA( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2f( void *args )
+{
+    struct glWindowPos2f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2f( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2fARB( void *args )
+{
+    struct glWindowPos2fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2fARB( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2fMESA( void *args )
+{
+    struct glWindowPos2fMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2fMESA( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2fv( void *args )
+{
+    struct glWindowPos2fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2fv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2fvARB( void *args )
+{
+    struct glWindowPos2fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2fvARB( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2fvMESA( void *args )
+{
+    struct glWindowPos2fvMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2fvMESA( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2i( void *args )
+{
+    struct glWindowPos2i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2i( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2iARB( void *args )
+{
+    struct glWindowPos2iARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2iARB( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2iMESA( void *args )
+{
+    struct glWindowPos2iMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2iMESA( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2iv( void *args )
+{
+    struct glWindowPos2iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2iv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2ivARB( void *args )
+{
+    struct glWindowPos2ivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2ivARB( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2ivMESA( void *args )
+{
+    struct glWindowPos2ivMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2ivMESA( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2s( void *args )
+{
+    struct glWindowPos2s_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2s( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2sARB( void *args )
+{
+    struct glWindowPos2sARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2sARB( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2sMESA( void *args )
+{
+    struct glWindowPos2sMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2sMESA( params->x, params->y );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2sv( void *args )
+{
+    struct glWindowPos2sv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2sv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2svARB( void *args )
+{
+    struct glWindowPos2svARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2svARB( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos2svMESA( void *args )
+{
+    struct glWindowPos2svMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos2svMESA( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3d( void *args )
+{
+    struct glWindowPos3d_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3d( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3dARB( void *args )
+{
+    struct glWindowPos3dARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3dARB( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3dMESA( void *args )
+{
+    struct glWindowPos3dMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3dMESA( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3dv( void *args )
+{
+    struct glWindowPos3dv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3dv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3dvARB( void *args )
+{
+    struct glWindowPos3dvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3dvARB( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3dvMESA( void *args )
+{
+    struct glWindowPos3dvMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3dvMESA( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3f( void *args )
+{
+    struct glWindowPos3f_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3f( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3fARB( void *args )
+{
+    struct glWindowPos3fARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3fARB( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3fMESA( void *args )
+{
+    struct glWindowPos3fMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3fMESA( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3fv( void *args )
+{
+    struct glWindowPos3fv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3fv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3fvARB( void *args )
+{
+    struct glWindowPos3fvARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3fvARB( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3fvMESA( void *args )
+{
+    struct glWindowPos3fvMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3fvMESA( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3i( void *args )
+{
+    struct glWindowPos3i_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3i( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3iARB( void *args )
+{
+    struct glWindowPos3iARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3iARB( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3iMESA( void *args )
+{
+    struct glWindowPos3iMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3iMESA( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3iv( void *args )
+{
+    struct glWindowPos3iv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3iv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3ivARB( void *args )
+{
+    struct glWindowPos3ivARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3ivARB( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3ivMESA( void *args )
+{
+    struct glWindowPos3ivMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3ivMESA( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3s( void *args )
+{
+    struct glWindowPos3s_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3s( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3sARB( void *args )
+{
+    struct glWindowPos3sARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3sARB( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3sMESA( void *args )
+{
+    struct glWindowPos3sMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3sMESA( params->x, params->y, params->z );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3sv( void *args )
+{
+    struct glWindowPos3sv_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3sv( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3svARB( void *args )
+{
+    struct glWindowPos3svARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3svARB( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos3svMESA( void *args )
+{
+    struct glWindowPos3svMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos3svMESA( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos4dMESA( void *args )
+{
+    struct glWindowPos4dMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos4dMESA( params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos4dvMESA( void *args )
+{
+    struct glWindowPos4dvMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos4dvMESA( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos4fMESA( void *args )
+{
+    struct glWindowPos4fMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos4fMESA( params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos4fvMESA( void *args )
+{
+    struct glWindowPos4fvMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos4fvMESA( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos4iMESA( void *args )
+{
+    struct glWindowPos4iMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos4iMESA( params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos4ivMESA( void *args )
+{
+    struct glWindowPos4ivMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos4ivMESA( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos4sMESA( void *args )
+{
+    struct glWindowPos4sMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos4sMESA( params->x, params->y, params->z, params->w );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowPos4svMESA( void *args )
+{
+    struct glWindowPos4svMESA_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowPos4svMESA( params->v );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWindowRectanglesEXT( void *args )
+{
+    struct glWindowRectanglesEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWindowRectanglesEXT( params->mode, params->count, params->box );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_glWriteMaskEXT( void *args )
+{
+    struct glWriteMaskEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_glWriteMaskEXT( params->res, params->in, params->outX, params->outY, params->outZ, params->outW );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglAllocateMemoryNV( void *args )
+{
+    struct wglAllocateMemoryNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglAllocateMemoryNV( params->size, params->readfreq, params->writefreq, params->priority );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglBindTexImageARB( void *args )
+{
+    struct wglBindTexImageARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglBindTexImageARB( (struct wgl_pbuffer *)params->hPbuffer, params->iBuffer );
+    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->ext.p_wglChoosePixelFormatARB) return STATUS_NOT_IMPLEMENTED;
+    params->ret = funcs->ext.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;
+    const struct opengl_funcs *funcs = get_dc_funcs( params->hDC );
+    if (!funcs || !funcs->ext.p_wglCreateContextAttribsARB) return STATUS_NOT_IMPLEMENTED;
+    params->ret = (HGLRC)funcs->ext.p_wglCreateContextAttribsARB( params->hDC, (struct wgl_context *)params->hShareContext, params->attribList );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglCreatePbufferARB( void *args )
+{
+    struct wglCreatePbufferARB_params *params = args;
+    const struct opengl_funcs *funcs = get_dc_funcs( params->hDC );
+    if (!funcs || !funcs->ext.p_wglCreatePbufferARB) return STATUS_NOT_IMPLEMENTED;
+    params->ret = (HPBUFFERARB)funcs->ext.p_wglCreatePbufferARB( params->hDC, params->iPixelFormat, params->iWidth, params->iHeight, params->piAttribList );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglDestroyPbufferARB( void *args )
+{
+    struct wglDestroyPbufferARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglDestroyPbufferARB( (struct wgl_pbuffer *)params->hPbuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglFreeMemoryNV( void *args )
+{
+    struct wglFreeMemoryNV_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    funcs->ext.p_wglFreeMemoryNV( params->pointer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglGetCurrentReadDCARB( void *args )
+{
+    struct wglGetCurrentReadDCARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglGetCurrentReadDCARB();
+    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->ext.p_wglGetExtensionsStringARB) return STATUS_NOT_IMPLEMENTED;
+    params->ret = funcs->ext.p_wglGetExtensionsStringARB( params->hdc );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglGetExtensionsStringEXT( void *args )
+{
+    struct wglGetExtensionsStringEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglGetExtensionsStringEXT();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglGetPbufferDCARB( void *args )
+{
+    struct wglGetPbufferDCARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglGetPbufferDCARB( (struct wgl_pbuffer *)params->hPbuffer );
+    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->ext.p_wglGetPixelFormatAttribfvARB) return STATUS_NOT_IMPLEMENTED;
+    params->ret = funcs->ext.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->ext.p_wglGetPixelFormatAttribivARB) return STATUS_NOT_IMPLEMENTED;
+    params->ret = funcs->ext.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;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglGetSwapIntervalEXT();
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglMakeContextCurrentARB( void *args )
+{
+    struct wglMakeContextCurrentARB_params *params = args;
+    const struct opengl_funcs *funcs = get_dc_funcs( params->hDrawDC );
+    if (!funcs || !funcs->ext.p_wglMakeContextCurrentARB) return STATUS_NOT_IMPLEMENTED;
+    params->ret = funcs->ext.p_wglMakeContextCurrentARB( params->hDrawDC, params->hReadDC, (struct wgl_context *)params->hglrc );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglQueryCurrentRendererIntegerWINE( void *args )
+{
+    struct wglQueryCurrentRendererIntegerWINE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglQueryCurrentRendererIntegerWINE( params->attribute, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglQueryCurrentRendererStringWINE( void *args )
+{
+    struct wglQueryCurrentRendererStringWINE_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglQueryCurrentRendererStringWINE( params->attribute );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglQueryPbufferARB( void *args )
+{
+    struct wglQueryPbufferARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglQueryPbufferARB( (struct wgl_pbuffer *)params->hPbuffer, params->iAttribute, params->piValue );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglQueryRendererIntegerWINE( void *args )
+{
+    struct wglQueryRendererIntegerWINE_params *params = args;
+    const struct opengl_funcs *funcs = get_dc_funcs( params->dc );
+    if (!funcs || !funcs->ext.p_wglQueryRendererIntegerWINE) return STATUS_NOT_IMPLEMENTED;
+    params->ret = funcs->ext.p_wglQueryRendererIntegerWINE( params->dc, params->renderer, params->attribute, params->value );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglQueryRendererStringWINE( void *args )
+{
+    struct wglQueryRendererStringWINE_params *params = args;
+    const struct opengl_funcs *funcs = get_dc_funcs( params->dc );
+    if (!funcs || !funcs->ext.p_wglQueryRendererStringWINE) return STATUS_NOT_IMPLEMENTED;
+    params->ret = funcs->ext.p_wglQueryRendererStringWINE( params->dc, params->renderer, params->attribute );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglReleasePbufferDCARB( void *args )
+{
+    struct wglReleasePbufferDCARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglReleasePbufferDCARB( (struct wgl_pbuffer *)params->hPbuffer, params->hDC );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglReleaseTexImageARB( void *args )
+{
+    struct wglReleaseTexImageARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglReleaseTexImageARB( (struct wgl_pbuffer *)params->hPbuffer, params->iBuffer );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglSetPbufferAttribARB( void *args )
+{
+    struct wglSetPbufferAttribARB_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglSetPbufferAttribARB( (struct wgl_pbuffer *)params->hPbuffer, params->piAttribList );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglSetPixelFormatWINE( void *args )
+{
+    struct wglSetPixelFormatWINE_params *params = args;
+    const struct opengl_funcs *funcs = get_dc_funcs( params->hdc );
+    if (!funcs || !funcs->ext.p_wglSetPixelFormatWINE) return STATUS_NOT_IMPLEMENTED;
+    params->ret = funcs->ext.p_wglSetPixelFormatWINE( params->hdc, params->format );
+    return STATUS_SUCCESS;
+}
+
+static NTSTATUS ext_wglSwapIntervalEXT( void *args )
+{
+    struct wglSwapIntervalEXT_params *params = args;
+    const struct opengl_funcs *funcs = NtCurrentTeb()->glTable;
+    params->ret = funcs->ext.p_wglSwapIntervalEXT( params->interval );
+    return STATUS_SUCCESS;
+}
+
 const unixlib_function_t __wine_unix_call_funcs[] =
 {
     &gl_glAccum,
@@ -3028,6 +24552,2700 @@ const unixlib_function_t __wine_unix_call_funcs[] =
     &gl_glVertex4sv,
     &gl_glVertexPointer,
     &gl_glViewport,
+    &ext_glAccumxOES,
+    &ext_glAcquireKeyedMutexWin32EXT,
+    &ext_glActiveProgramEXT,
+    &ext_glActiveShaderProgram,
+    &ext_glActiveStencilFaceEXT,
+    &ext_glActiveTexture,
+    &ext_glActiveTextureARB,
+    &ext_glActiveVaryingNV,
+    &ext_glAlphaFragmentOp1ATI,
+    &ext_glAlphaFragmentOp2ATI,
+    &ext_glAlphaFragmentOp3ATI,
+    &ext_glAlphaFuncxOES,
+    &ext_glAlphaToCoverageDitherControlNV,
+    &ext_glApplyFramebufferAttachmentCMAAINTEL,
+    &ext_glApplyTextureEXT,
+    &ext_glAreProgramsResidentNV,
+    &ext_glAreTexturesResidentEXT,
+    &ext_glArrayElementEXT,
+    &ext_glArrayObjectATI,
+    &ext_glAsyncCopyBufferSubDataNVX,
+    &ext_glAsyncCopyImageSubDataNVX,
+    &ext_glAsyncMarkerSGIX,
+    &ext_glAttachObjectARB,
+    &ext_glAttachShader,
+    &ext_glBeginConditionalRender,
+    &ext_glBeginConditionalRenderNV,
+    &ext_glBeginConditionalRenderNVX,
+    &ext_glBeginFragmentShaderATI,
+    &ext_glBeginOcclusionQueryNV,
+    &ext_glBeginPerfMonitorAMD,
+    &ext_glBeginPerfQueryINTEL,
+    &ext_glBeginQuery,
+    &ext_glBeginQueryARB,
+    &ext_glBeginQueryIndexed,
+    &ext_glBeginTransformFeedback,
+    &ext_glBeginTransformFeedbackEXT,
+    &ext_glBeginTransformFeedbackNV,
+    &ext_glBeginVertexShaderEXT,
+    &ext_glBeginVideoCaptureNV,
+    &ext_glBindAttribLocation,
+    &ext_glBindAttribLocationARB,
+    &ext_glBindBuffer,
+    &ext_glBindBufferARB,
+    &ext_glBindBufferBase,
+    &ext_glBindBufferBaseEXT,
+    &ext_glBindBufferBaseNV,
+    &ext_glBindBufferOffsetEXT,
+    &ext_glBindBufferOffsetNV,
+    &ext_glBindBufferRange,
+    &ext_glBindBufferRangeEXT,
+    &ext_glBindBufferRangeNV,
+    &ext_glBindBuffersBase,
+    &ext_glBindBuffersRange,
+    &ext_glBindFragDataLocation,
+    &ext_glBindFragDataLocationEXT,
+    &ext_glBindFragDataLocationIndexed,
+    &ext_glBindFragmentShaderATI,
+    &ext_glBindFramebuffer,
+    &ext_glBindFramebufferEXT,
+    &ext_glBindImageTexture,
+    &ext_glBindImageTextureEXT,
+    &ext_glBindImageTextures,
+    &ext_glBindLightParameterEXT,
+    &ext_glBindMaterialParameterEXT,
+    &ext_glBindMultiTextureEXT,
+    &ext_glBindParameterEXT,
+    &ext_glBindProgramARB,
+    &ext_glBindProgramNV,
+    &ext_glBindProgramPipeline,
+    &ext_glBindRenderbuffer,
+    &ext_glBindRenderbufferEXT,
+    &ext_glBindSampler,
+    &ext_glBindSamplers,
+    &ext_glBindShadingRateImageNV,
+    &ext_glBindTexGenParameterEXT,
+    &ext_glBindTextureEXT,
+    &ext_glBindTextureUnit,
+    &ext_glBindTextureUnitParameterEXT,
+    &ext_glBindTextures,
+    &ext_glBindTransformFeedback,
+    &ext_glBindTransformFeedbackNV,
+    &ext_glBindVertexArray,
+    &ext_glBindVertexArrayAPPLE,
+    &ext_glBindVertexBuffer,
+    &ext_glBindVertexBuffers,
+    &ext_glBindVertexShaderEXT,
+    &ext_glBindVideoCaptureStreamBufferNV,
+    &ext_glBindVideoCaptureStreamTextureNV,
+    &ext_glBinormal3bEXT,
+    &ext_glBinormal3bvEXT,
+    &ext_glBinormal3dEXT,
+    &ext_glBinormal3dvEXT,
+    &ext_glBinormal3fEXT,
+    &ext_glBinormal3fvEXT,
+    &ext_glBinormal3iEXT,
+    &ext_glBinormal3ivEXT,
+    &ext_glBinormal3sEXT,
+    &ext_glBinormal3svEXT,
+    &ext_glBinormalPointerEXT,
+    &ext_glBitmapxOES,
+    &ext_glBlendBarrierKHR,
+    &ext_glBlendBarrierNV,
+    &ext_glBlendColor,
+    &ext_glBlendColorEXT,
+    &ext_glBlendColorxOES,
+    &ext_glBlendEquation,
+    &ext_glBlendEquationEXT,
+    &ext_glBlendEquationIndexedAMD,
+    &ext_glBlendEquationSeparate,
+    &ext_glBlendEquationSeparateEXT,
+    &ext_glBlendEquationSeparateIndexedAMD,
+    &ext_glBlendEquationSeparatei,
+    &ext_glBlendEquationSeparateiARB,
+    &ext_glBlendEquationi,
+    &ext_glBlendEquationiARB,
+    &ext_glBlendFuncIndexedAMD,
+    &ext_glBlendFuncSeparate,
+    &ext_glBlendFuncSeparateEXT,
+    &ext_glBlendFuncSeparateINGR,
+    &ext_glBlendFuncSeparateIndexedAMD,
+    &ext_glBlendFuncSeparatei,
+    &ext_glBlendFuncSeparateiARB,
+    &ext_glBlendFunci,
+    &ext_glBlendFunciARB,
+    &ext_glBlendParameteriNV,
+    &ext_glBlitFramebuffer,
+    &ext_glBlitFramebufferEXT,
+    &ext_glBlitNamedFramebuffer,
+    &ext_glBufferAddressRangeNV,
+    &ext_glBufferAttachMemoryNV,
+    &ext_glBufferData,
+    &ext_glBufferDataARB,
+    &ext_glBufferPageCommitmentARB,
+    &ext_glBufferParameteriAPPLE,
+    &ext_glBufferRegionEnabled,
+    &ext_glBufferStorage,
+    &ext_glBufferStorageExternalEXT,
+    &ext_glBufferStorageMemEXT,
+    &ext_glBufferSubData,
+    &ext_glBufferSubDataARB,
+    &ext_glCallCommandListNV,
+    &ext_glCheckFramebufferStatus,
+    &ext_glCheckFramebufferStatusEXT,
+    &ext_glCheckNamedFramebufferStatus,
+    &ext_glCheckNamedFramebufferStatusEXT,
+    &ext_glClampColor,
+    &ext_glClampColorARB,
+    &ext_glClearAccumxOES,
+    &ext_glClearBufferData,
+    &ext_glClearBufferSubData,
+    &ext_glClearBufferfi,
+    &ext_glClearBufferfv,
+    &ext_glClearBufferiv,
+    &ext_glClearBufferuiv,
+    &ext_glClearColorIiEXT,
+    &ext_glClearColorIuiEXT,
+    &ext_glClearColorxOES,
+    &ext_glClearDepthdNV,
+    &ext_glClearDepthf,
+    &ext_glClearDepthfOES,
+    &ext_glClearDepthxOES,
+    &ext_glClearNamedBufferData,
+    &ext_glClearNamedBufferDataEXT,
+    &ext_glClearNamedBufferSubData,
+    &ext_glClearNamedBufferSubDataEXT,
+    &ext_glClearNamedFramebufferfi,
+    &ext_glClearNamedFramebufferfv,
+    &ext_glClearNamedFramebufferiv,
+    &ext_glClearNamedFramebufferuiv,
+    &ext_glClearTexImage,
+    &ext_glClearTexSubImage,
+    &ext_glClientActiveTexture,
+    &ext_glClientActiveTextureARB,
+    &ext_glClientActiveVertexStreamATI,
+    &ext_glClientAttribDefaultEXT,
+    &ext_glClientWaitSemaphoreui64NVX,
+    &ext_glClientWaitSync,
+    &ext_glClipControl,
+    &ext_glClipPlanefOES,
+    &ext_glClipPlanexOES,
+    &ext_glColor3fVertex3fSUN,
+    &ext_glColor3fVertex3fvSUN,
+    &ext_glColor3hNV,
+    &ext_glColor3hvNV,
+    &ext_glColor3xOES,
+    &ext_glColor3xvOES,
+    &ext_glColor4fNormal3fVertex3fSUN,
+    &ext_glColor4fNormal3fVertex3fvSUN,
+    &ext_glColor4hNV,
+    &ext_glColor4hvNV,
+    &ext_glColor4ubVertex2fSUN,
+    &ext_glColor4ubVertex2fvSUN,
+    &ext_glColor4ubVertex3fSUN,
+    &ext_glColor4ubVertex3fvSUN,
+    &ext_glColor4xOES,
+    &ext_glColor4xvOES,
+    &ext_glColorFormatNV,
+    &ext_glColorFragmentOp1ATI,
+    &ext_glColorFragmentOp2ATI,
+    &ext_glColorFragmentOp3ATI,
+    &ext_glColorMaskIndexedEXT,
+    &ext_glColorMaski,
+    &ext_glColorP3ui,
+    &ext_glColorP3uiv,
+    &ext_glColorP4ui,
+    &ext_glColorP4uiv,
+    &ext_glColorPointerEXT,
+    &ext_glColorPointerListIBM,
+    &ext_glColorPointervINTEL,
+    &ext_glColorSubTable,
+    &ext_glColorSubTableEXT,
+    &ext_glColorTable,
+    &ext_glColorTableEXT,
+    &ext_glColorTableParameterfv,
+    &ext_glColorTableParameterfvSGI,
+    &ext_glColorTableParameteriv,
+    &ext_glColorTableParameterivSGI,
+    &ext_glColorTableSGI,
+    &ext_glCombinerInputNV,
+    &ext_glCombinerOutputNV,
+    &ext_glCombinerParameterfNV,
+    &ext_glCombinerParameterfvNV,
+    &ext_glCombinerParameteriNV,
+    &ext_glCombinerParameterivNV,
+    &ext_glCombinerStageParameterfvNV,
+    &ext_glCommandListSegmentsNV,
+    &ext_glCompileCommandListNV,
+    &ext_glCompileShader,
+    &ext_glCompileShaderARB,
+    &ext_glCompileShaderIncludeARB,
+    &ext_glCompressedMultiTexImage1DEXT,
+    &ext_glCompressedMultiTexImage2DEXT,
+    &ext_glCompressedMultiTexImage3DEXT,
+    &ext_glCompressedMultiTexSubImage1DEXT,
+    &ext_glCompressedMultiTexSubImage2DEXT,
+    &ext_glCompressedMultiTexSubImage3DEXT,
+    &ext_glCompressedTexImage1D,
+    &ext_glCompressedTexImage1DARB,
+    &ext_glCompressedTexImage2D,
+    &ext_glCompressedTexImage2DARB,
+    &ext_glCompressedTexImage3D,
+    &ext_glCompressedTexImage3DARB,
+    &ext_glCompressedTexSubImage1D,
+    &ext_glCompressedTexSubImage1DARB,
+    &ext_glCompressedTexSubImage2D,
+    &ext_glCompressedTexSubImage2DARB,
+    &ext_glCompressedTexSubImage3D,
+    &ext_glCompressedTexSubImage3DARB,
+    &ext_glCompressedTextureImage1DEXT,
+    &ext_glCompressedTextureImage2DEXT,
+    &ext_glCompressedTextureImage3DEXT,
+    &ext_glCompressedTextureSubImage1D,
+    &ext_glCompressedTextureSubImage1DEXT,
+    &ext_glCompressedTextureSubImage2D,
+    &ext_glCompressedTextureSubImage2DEXT,
+    &ext_glCompressedTextureSubImage3D,
+    &ext_glCompressedTextureSubImage3DEXT,
+    &ext_glConservativeRasterParameterfNV,
+    &ext_glConservativeRasterParameteriNV,
+    &ext_glConvolutionFilter1D,
+    &ext_glConvolutionFilter1DEXT,
+    &ext_glConvolutionFilter2D,
+    &ext_glConvolutionFilter2DEXT,
+    &ext_glConvolutionParameterf,
+    &ext_glConvolutionParameterfEXT,
+    &ext_glConvolutionParameterfv,
+    &ext_glConvolutionParameterfvEXT,
+    &ext_glConvolutionParameteri,
+    &ext_glConvolutionParameteriEXT,
+    &ext_glConvolutionParameteriv,
+    &ext_glConvolutionParameterivEXT,
+    &ext_glConvolutionParameterxOES,
+    &ext_glConvolutionParameterxvOES,
+    &ext_glCopyBufferSubData,
+    &ext_glCopyColorSubTable,
+    &ext_glCopyColorSubTableEXT,
+    &ext_glCopyColorTable,
+    &ext_glCopyColorTableSGI,
+    &ext_glCopyConvolutionFilter1D,
+    &ext_glCopyConvolutionFilter1DEXT,
+    &ext_glCopyConvolutionFilter2D,
+    &ext_glCopyConvolutionFilter2DEXT,
+    &ext_glCopyImageSubData,
+    &ext_glCopyImageSubDataNV,
+    &ext_glCopyMultiTexImage1DEXT,
+    &ext_glCopyMultiTexImage2DEXT,
+    &ext_glCopyMultiTexSubImage1DEXT,
+    &ext_glCopyMultiTexSubImage2DEXT,
+    &ext_glCopyMultiTexSubImage3DEXT,
+    &ext_glCopyNamedBufferSubData,
+    &ext_glCopyPathNV,
+    &ext_glCopyTexImage1DEXT,
+    &ext_glCopyTexImage2DEXT,
+    &ext_glCopyTexSubImage1DEXT,
+    &ext_glCopyTexSubImage2DEXT,
+    &ext_glCopyTexSubImage3D,
+    &ext_glCopyTexSubImage3DEXT,
+    &ext_glCopyTextureImage1DEXT,
+    &ext_glCopyTextureImage2DEXT,
+    &ext_glCopyTextureSubImage1D,
+    &ext_glCopyTextureSubImage1DEXT,
+    &ext_glCopyTextureSubImage2D,
+    &ext_glCopyTextureSubImage2DEXT,
+    &ext_glCopyTextureSubImage3D,
+    &ext_glCopyTextureSubImage3DEXT,
+    &ext_glCoverFillPathInstancedNV,
+    &ext_glCoverFillPathNV,
+    &ext_glCoverStrokePathInstancedNV,
+    &ext_glCoverStrokePathNV,
+    &ext_glCoverageModulationNV,
+    &ext_glCoverageModulationTableNV,
+    &ext_glCreateBuffers,
+    &ext_glCreateCommandListsNV,
+    &ext_glCreateFramebuffers,
+    &ext_glCreateMemoryObjectsEXT,
+    &ext_glCreatePerfQueryINTEL,
+    &ext_glCreateProgram,
+    &ext_glCreateProgramObjectARB,
+    &ext_glCreateProgramPipelines,
+    &ext_glCreateProgressFenceNVX,
+    &ext_glCreateQueries,
+    &ext_glCreateRenderbuffers,
+    &ext_glCreateSamplers,
+    &ext_glCreateShader,
+    &ext_glCreateShaderObjectARB,
+    &ext_glCreateShaderProgramEXT,
+    &ext_glCreateShaderProgramv,
+    &ext_glCreateStatesNV,
+    &ext_glCreateSyncFromCLeventARB,
+    &ext_glCreateTextures,
+    &ext_glCreateTransformFeedbacks,
+    &ext_glCreateVertexArrays,
+    &ext_glCullParameterdvEXT,
+    &ext_glCullParameterfvEXT,
+    &ext_glCurrentPaletteMatrixARB,
+    &ext_glDebugMessageCallback,
+    &ext_glDebugMessageCallbackAMD,
+    &ext_glDebugMessageCallbackARB,
+    &ext_glDebugMessageControl,
+    &ext_glDebugMessageControlARB,
+    &ext_glDebugMessageEnableAMD,
+    &ext_glDebugMessageInsert,
+    &ext_glDebugMessageInsertAMD,
+    &ext_glDebugMessageInsertARB,
+    &ext_glDeformSGIX,
+    &ext_glDeformationMap3dSGIX,
+    &ext_glDeformationMap3fSGIX,
+    &ext_glDeleteAsyncMarkersSGIX,
+    &ext_glDeleteBufferRegion,
+    &ext_glDeleteBuffers,
+    &ext_glDeleteBuffersARB,
+    &ext_glDeleteCommandListsNV,
+    &ext_glDeleteFencesAPPLE,
+    &ext_glDeleteFencesNV,
+    &ext_glDeleteFragmentShaderATI,
+    &ext_glDeleteFramebuffers,
+    &ext_glDeleteFramebuffersEXT,
+    &ext_glDeleteMemoryObjectsEXT,
+    &ext_glDeleteNamedStringARB,
+    &ext_glDeleteNamesAMD,
+    &ext_glDeleteObjectARB,
+    &ext_glDeleteObjectBufferATI,
+    &ext_glDeleteOcclusionQueriesNV,
+    &ext_glDeletePathsNV,
+    &ext_glDeletePerfMonitorsAMD,
+    &ext_glDeletePerfQueryINTEL,
+    &ext_glDeleteProgram,
+    &ext_glDeleteProgramPipelines,
+    &ext_glDeleteProgramsARB,
+    &ext_glDeleteProgramsNV,
+    &ext_glDeleteQueries,
+    &ext_glDeleteQueriesARB,
+    &ext_glDeleteQueryResourceTagNV,
+    &ext_glDeleteRenderbuffers,
+    &ext_glDeleteRenderbuffersEXT,
+    &ext_glDeleteSamplers,
+    &ext_glDeleteSemaphoresEXT,
+    &ext_glDeleteShader,
+    &ext_glDeleteStatesNV,
+    &ext_glDeleteSync,
+    &ext_glDeleteTexturesEXT,
+    &ext_glDeleteTransformFeedbacks,
+    &ext_glDeleteTransformFeedbacksNV,
+    &ext_glDeleteVertexArrays,
+    &ext_glDeleteVertexArraysAPPLE,
+    &ext_glDeleteVertexShaderEXT,
+    &ext_glDepthBoundsEXT,
+    &ext_glDepthBoundsdNV,
+    &ext_glDepthRangeArraydvNV,
+    &ext_glDepthRangeArrayv,
+    &ext_glDepthRangeIndexed,
+    &ext_glDepthRangeIndexeddNV,
+    &ext_glDepthRangedNV,
+    &ext_glDepthRangef,
+    &ext_glDepthRangefOES,
+    &ext_glDepthRangexOES,
+    &ext_glDetachObjectARB,
+    &ext_glDetachShader,
+    &ext_glDetailTexFuncSGIS,
+    &ext_glDisableClientStateIndexedEXT,
+    &ext_glDisableClientStateiEXT,
+    &ext_glDisableIndexedEXT,
+    &ext_glDisableVariantClientStateEXT,
+    &ext_glDisableVertexArrayAttrib,
+    &ext_glDisableVertexArrayAttribEXT,
+    &ext_glDisableVertexArrayEXT,
+    &ext_glDisableVertexAttribAPPLE,
+    &ext_glDisableVertexAttribArray,
+    &ext_glDisableVertexAttribArrayARB,
+    &ext_glDisablei,
+    &ext_glDispatchCompute,
+    &ext_glDispatchComputeGroupSizeARB,
+    &ext_glDispatchComputeIndirect,
+    &ext_glDrawArraysEXT,
+    &ext_glDrawArraysIndirect,
+    &ext_glDrawArraysInstanced,
+    &ext_glDrawArraysInstancedARB,
+    &ext_glDrawArraysInstancedBaseInstance,
+    &ext_glDrawArraysInstancedEXT,
+    &ext_glDrawBufferRegion,
+    &ext_glDrawBuffers,
+    &ext_glDrawBuffersARB,
+    &ext_glDrawBuffersATI,
+    &ext_glDrawCommandsAddressNV,
+    &ext_glDrawCommandsNV,
+    &ext_glDrawCommandsStatesAddressNV,
+    &ext_glDrawCommandsStatesNV,
+    &ext_glDrawElementArrayAPPLE,
+    &ext_glDrawElementArrayATI,
+    &ext_glDrawElementsBaseVertex,
+    &ext_glDrawElementsIndirect,
+    &ext_glDrawElementsInstanced,
+    &ext_glDrawElementsInstancedARB,
+    &ext_glDrawElementsInstancedBaseInstance,
+    &ext_glDrawElementsInstancedBaseVertex,
+    &ext_glDrawElementsInstancedBaseVertexBaseInstance,
+    &ext_glDrawElementsInstancedEXT,
+    &ext_glDrawMeshArraysSUN,
+    &ext_glDrawMeshTasksIndirectNV,
+    &ext_glDrawMeshTasksNV,
+    &ext_glDrawRangeElementArrayAPPLE,
+    &ext_glDrawRangeElementArrayATI,
+    &ext_glDrawRangeElements,
+    &ext_glDrawRangeElementsBaseVertex,
+    &ext_glDrawRangeElementsEXT,
+    &ext_glDrawTextureNV,
+    &ext_glDrawTransformFeedback,
+    &ext_glDrawTransformFeedbackInstanced,
+    &ext_glDrawTransformFeedbackNV,
+    &ext_glDrawTransformFeedbackStream,
+    &ext_glDrawTransformFeedbackStreamInstanced,
+    &ext_glDrawVkImageNV,
+    &ext_glEGLImageTargetTexStorageEXT,
+    &ext_glEGLImageTargetTextureStorageEXT,
+    &ext_glEdgeFlagFormatNV,
+    &ext_glEdgeFlagPointerEXT,
+    &ext_glEdgeFlagPointerListIBM,
+    &ext_glElementPointerAPPLE,
+    &ext_glElementPointerATI,
+    &ext_glEnableClientStateIndexedEXT,
+    &ext_glEnableClientStateiEXT,
+    &ext_glEnableIndexedEXT,
+    &ext_glEnableVariantClientStateEXT,
+    &ext_glEnableVertexArrayAttrib,
+    &ext_glEnableVertexArrayAttribEXT,
+    &ext_glEnableVertexArrayEXT,
+    &ext_glEnableVertexAttribAPPLE,
+    &ext_glEnableVertexAttribArray,
+    &ext_glEnableVertexAttribArrayARB,
+    &ext_glEnablei,
+    &ext_glEndConditionalRender,
+    &ext_glEndConditionalRenderNV,
+    &ext_glEndConditionalRenderNVX,
+    &ext_glEndFragmentShaderATI,
+    &ext_glEndOcclusionQueryNV,
+    &ext_glEndPerfMonitorAMD,
+    &ext_glEndPerfQueryINTEL,
+    &ext_glEndQuery,
+    &ext_glEndQueryARB,
+    &ext_glEndQueryIndexed,
+    &ext_glEndTransformFeedback,
+    &ext_glEndTransformFeedbackEXT,
+    &ext_glEndTransformFeedbackNV,
+    &ext_glEndVertexShaderEXT,
+    &ext_glEndVideoCaptureNV,
+    &ext_glEvalCoord1xOES,
+    &ext_glEvalCoord1xvOES,
+    &ext_glEvalCoord2xOES,
+    &ext_glEvalCoord2xvOES,
+    &ext_glEvalMapsNV,
+    &ext_glEvaluateDepthValuesARB,
+    &ext_glExecuteProgramNV,
+    &ext_glExtractComponentEXT,
+    &ext_glFeedbackBufferxOES,
+    &ext_glFenceSync,
+    &ext_glFinalCombinerInputNV,
+    &ext_glFinishAsyncSGIX,
+    &ext_glFinishFenceAPPLE,
+    &ext_glFinishFenceNV,
+    &ext_glFinishObjectAPPLE,
+    &ext_glFinishTextureSUNX,
+    &ext_glFlushMappedBufferRange,
+    &ext_glFlushMappedBufferRangeAPPLE,
+    &ext_glFlushMappedNamedBufferRange,
+    &ext_glFlushMappedNamedBufferRangeEXT,
+    &ext_glFlushPixelDataRangeNV,
+    &ext_glFlushRasterSGIX,
+    &ext_glFlushStaticDataIBM,
+    &ext_glFlushVertexArrayRangeAPPLE,
+    &ext_glFlushVertexArrayRangeNV,
+    &ext_glFogCoordFormatNV,
+    &ext_glFogCoordPointer,
+    &ext_glFogCoordPointerEXT,
+    &ext_glFogCoordPointerListIBM,
+    &ext_glFogCoordd,
+    &ext_glFogCoorddEXT,
+    &ext_glFogCoorddv,
+    &ext_glFogCoorddvEXT,
+    &ext_glFogCoordf,
+    &ext_glFogCoordfEXT,
+    &ext_glFogCoordfv,
+    &ext_glFogCoordfvEXT,
+    &ext_glFogCoordhNV,
+    &ext_glFogCoordhvNV,
+    &ext_glFogFuncSGIS,
+    &ext_glFogxOES,
+    &ext_glFogxvOES,
+    &ext_glFragmentColorMaterialSGIX,
+    &ext_glFragmentCoverageColorNV,
+    &ext_glFragmentLightModelfSGIX,
+    &ext_glFragmentLightModelfvSGIX,
+    &ext_glFragmentLightModeliSGIX,
+    &ext_glFragmentLightModelivSGIX,
+    &ext_glFragmentLightfSGIX,
+    &ext_glFragmentLightfvSGIX,
+    &ext_glFragmentLightiSGIX,
+    &ext_glFragmentLightivSGIX,
+    &ext_glFragmentMaterialfSGIX,
+    &ext_glFragmentMaterialfvSGIX,
+    &ext_glFragmentMaterialiSGIX,
+    &ext_glFragmentMaterialivSGIX,
+    &ext_glFrameTerminatorGREMEDY,
+    &ext_glFrameZoomSGIX,
+    &ext_glFramebufferDrawBufferEXT,
+    &ext_glFramebufferDrawBuffersEXT,
+    &ext_glFramebufferFetchBarrierEXT,
+    &ext_glFramebufferParameteri,
+    &ext_glFramebufferParameteriMESA,
+    &ext_glFramebufferReadBufferEXT,
+    &ext_glFramebufferRenderbuffer,
+    &ext_glFramebufferRenderbufferEXT,
+    &ext_glFramebufferSampleLocationsfvARB,
+    &ext_glFramebufferSampleLocationsfvNV,
+    &ext_glFramebufferSamplePositionsfvAMD,
+    &ext_glFramebufferTexture,
+    &ext_glFramebufferTexture1D,
+    &ext_glFramebufferTexture1DEXT,
+    &ext_glFramebufferTexture2D,
+    &ext_glFramebufferTexture2DEXT,
+    &ext_glFramebufferTexture3D,
+    &ext_glFramebufferTexture3DEXT,
+    &ext_glFramebufferTextureARB,
+    &ext_glFramebufferTextureEXT,
+    &ext_glFramebufferTextureFaceARB,
+    &ext_glFramebufferTextureFaceEXT,
+    &ext_glFramebufferTextureLayer,
+    &ext_glFramebufferTextureLayerARB,
+    &ext_glFramebufferTextureLayerEXT,
+    &ext_glFramebufferTextureMultiviewOVR,
+    &ext_glFreeObjectBufferATI,
+    &ext_glFrustumfOES,
+    &ext_glFrustumxOES,
+    &ext_glGenAsyncMarkersSGIX,
+    &ext_glGenBuffers,
+    &ext_glGenBuffersARB,
+    &ext_glGenFencesAPPLE,
+    &ext_glGenFencesNV,
+    &ext_glGenFragmentShadersATI,
+    &ext_glGenFramebuffers,
+    &ext_glGenFramebuffersEXT,
+    &ext_glGenNamesAMD,
+    &ext_glGenOcclusionQueriesNV,
+    &ext_glGenPathsNV,
+    &ext_glGenPerfMonitorsAMD,
+    &ext_glGenProgramPipelines,
+    &ext_glGenProgramsARB,
+    &ext_glGenProgramsNV,
+    &ext_glGenQueries,
+    &ext_glGenQueriesARB,
+    &ext_glGenQueryResourceTagNV,
+    &ext_glGenRenderbuffers,
+    &ext_glGenRenderbuffersEXT,
+    &ext_glGenSamplers,
+    &ext_glGenSemaphoresEXT,
+    &ext_glGenSymbolsEXT,
+    &ext_glGenTexturesEXT,
+    &ext_glGenTransformFeedbacks,
+    &ext_glGenTransformFeedbacksNV,
+    &ext_glGenVertexArrays,
+    &ext_glGenVertexArraysAPPLE,
+    &ext_glGenVertexShadersEXT,
+    &ext_glGenerateMipmap,
+    &ext_glGenerateMipmapEXT,
+    &ext_glGenerateMultiTexMipmapEXT,
+    &ext_glGenerateTextureMipmap,
+    &ext_glGenerateTextureMipmapEXT,
+    &ext_glGetActiveAtomicCounterBufferiv,
+    &ext_glGetActiveAttrib,
+    &ext_glGetActiveAttribARB,
+    &ext_glGetActiveSubroutineName,
+    &ext_glGetActiveSubroutineUniformName,
+    &ext_glGetActiveSubroutineUniformiv,
+    &ext_glGetActiveUniform,
+    &ext_glGetActiveUniformARB,
+    &ext_glGetActiveUniformBlockName,
+    &ext_glGetActiveUniformBlockiv,
+    &ext_glGetActiveUniformName,
+    &ext_glGetActiveUniformsiv,
+    &ext_glGetActiveVaryingNV,
+    &ext_glGetArrayObjectfvATI,
+    &ext_glGetArrayObjectivATI,
+    &ext_glGetAttachedObjectsARB,
+    &ext_glGetAttachedShaders,
+    &ext_glGetAttribLocation,
+    &ext_glGetAttribLocationARB,
+    &ext_glGetBooleanIndexedvEXT,
+    &ext_glGetBooleani_v,
+    &ext_glGetBufferParameteri64v,
+    &ext_glGetBufferParameteriv,
+    &ext_glGetBufferParameterivARB,
+    &ext_glGetBufferParameterui64vNV,
+    &ext_glGetBufferPointerv,
+    &ext_glGetBufferPointervARB,
+    &ext_glGetBufferSubData,
+    &ext_glGetBufferSubDataARB,
+    &ext_glGetClipPlanefOES,
+    &ext_glGetClipPlanexOES,
+    &ext_glGetColorTable,
+    &ext_glGetColorTableEXT,
+    &ext_glGetColorTableParameterfv,
+    &ext_glGetColorTableParameterfvEXT,
+    &ext_glGetColorTableParameterfvSGI,
+    &ext_glGetColorTableParameteriv,
+    &ext_glGetColorTableParameterivEXT,
+    &ext_glGetColorTableParameterivSGI,
+    &ext_glGetColorTableSGI,
+    &ext_glGetCombinerInputParameterfvNV,
+    &ext_glGetCombinerInputParameterivNV,
+    &ext_glGetCombinerOutputParameterfvNV,
+    &ext_glGetCombinerOutputParameterivNV,
+    &ext_glGetCombinerStageParameterfvNV,
+    &ext_glGetCommandHeaderNV,
+    &ext_glGetCompressedMultiTexImageEXT,
+    &ext_glGetCompressedTexImage,
+    &ext_glGetCompressedTexImageARB,
+    &ext_glGetCompressedTextureImage,
+    &ext_glGetCompressedTextureImageEXT,
+    &ext_glGetCompressedTextureSubImage,
+    &ext_glGetConvolutionFilter,
+    &ext_glGetConvolutionFilterEXT,
+    &ext_glGetConvolutionParameterfv,
+    &ext_glGetConvolutionParameterfvEXT,
+    &ext_glGetConvolutionParameteriv,
+    &ext_glGetConvolutionParameterivEXT,
+    &ext_glGetConvolutionParameterxvOES,
+    &ext_glGetCoverageModulationTableNV,
+    &ext_glGetDebugMessageLog,
+    &ext_glGetDebugMessageLogAMD,
+    &ext_glGetDebugMessageLogARB,
+    &ext_glGetDetailTexFuncSGIS,
+    &ext_glGetDoubleIndexedvEXT,
+    &ext_glGetDoublei_v,
+    &ext_glGetDoublei_vEXT,
+    &ext_glGetFenceivNV,
+    &ext_glGetFinalCombinerInputParameterfvNV,
+    &ext_glGetFinalCombinerInputParameterivNV,
+    &ext_glGetFirstPerfQueryIdINTEL,
+    &ext_glGetFixedvOES,
+    &ext_glGetFloatIndexedvEXT,
+    &ext_glGetFloati_v,
+    &ext_glGetFloati_vEXT,
+    &ext_glGetFogFuncSGIS,
+    &ext_glGetFragDataIndex,
+    &ext_glGetFragDataLocation,
+    &ext_glGetFragDataLocationEXT,
+    &ext_glGetFragmentLightfvSGIX,
+    &ext_glGetFragmentLightivSGIX,
+    &ext_glGetFragmentMaterialfvSGIX,
+    &ext_glGetFragmentMaterialivSGIX,
+    &ext_glGetFramebufferAttachmentParameteriv,
+    &ext_glGetFramebufferAttachmentParameterivEXT,
+    &ext_glGetFramebufferParameterfvAMD,
+    &ext_glGetFramebufferParameteriv,
+    &ext_glGetFramebufferParameterivEXT,
+    &ext_glGetFramebufferParameterivMESA,
+    &ext_glGetGraphicsResetStatus,
+    &ext_glGetGraphicsResetStatusARB,
+    &ext_glGetHandleARB,
+    &ext_glGetHistogram,
+    &ext_glGetHistogramEXT,
+    &ext_glGetHistogramParameterfv,
+    &ext_glGetHistogramParameterfvEXT,
+    &ext_glGetHistogramParameteriv,
+    &ext_glGetHistogramParameterivEXT,
+    &ext_glGetHistogramParameterxvOES,
+    &ext_glGetImageHandleARB,
+    &ext_glGetImageHandleNV,
+    &ext_glGetImageTransformParameterfvHP,
+    &ext_glGetImageTransformParameterivHP,
+    &ext_glGetInfoLogARB,
+    &ext_glGetInstrumentsSGIX,
+    &ext_glGetInteger64i_v,
+    &ext_glGetInteger64v,
+    &ext_glGetIntegerIndexedvEXT,
+    &ext_glGetIntegeri_v,
+    &ext_glGetIntegerui64i_vNV,
+    &ext_glGetIntegerui64vNV,
+    &ext_glGetInternalformatSampleivNV,
+    &ext_glGetInternalformati64v,
+    &ext_glGetInternalformativ,
+    &ext_glGetInvariantBooleanvEXT,
+    &ext_glGetInvariantFloatvEXT,
+    &ext_glGetInvariantIntegervEXT,
+    &ext_glGetLightxOES,
+    &ext_glGetListParameterfvSGIX,
+    &ext_glGetListParameterivSGIX,
+    &ext_glGetLocalConstantBooleanvEXT,
+    &ext_glGetLocalConstantFloatvEXT,
+    &ext_glGetLocalConstantIntegervEXT,
+    &ext_glGetMapAttribParameterfvNV,
+    &ext_glGetMapAttribParameterivNV,
+    &ext_glGetMapControlPointsNV,
+    &ext_glGetMapParameterfvNV,
+    &ext_glGetMapParameterivNV,
+    &ext_glGetMapxvOES,
+    &ext_glGetMaterialxOES,
+    &ext_glGetMemoryObjectDetachedResourcesuivNV,
+    &ext_glGetMemoryObjectParameterivEXT,
+    &ext_glGetMinmax,
+    &ext_glGetMinmaxEXT,
+    &ext_glGetMinmaxParameterfv,
+    &ext_glGetMinmaxParameterfvEXT,
+    &ext_glGetMinmaxParameteriv,
+    &ext_glGetMinmaxParameterivEXT,
+    &ext_glGetMultiTexEnvfvEXT,
+    &ext_glGetMultiTexEnvivEXT,
+    &ext_glGetMultiTexGendvEXT,
+    &ext_glGetMultiTexGenfvEXT,
+    &ext_glGetMultiTexGenivEXT,
+    &ext_glGetMultiTexImageEXT,
+    &ext_glGetMultiTexLevelParameterfvEXT,
+    &ext_glGetMultiTexLevelParameterivEXT,
+    &ext_glGetMultiTexParameterIivEXT,
+    &ext_glGetMultiTexParameterIuivEXT,
+    &ext_glGetMultiTexParameterfvEXT,
+    &ext_glGetMultiTexParameterivEXT,
+    &ext_glGetMultisamplefv,
+    &ext_glGetMultisamplefvNV,
+    &ext_glGetNamedBufferParameteri64v,
+    &ext_glGetNamedBufferParameteriv,
+    &ext_glGetNamedBufferParameterivEXT,
+    &ext_glGetNamedBufferParameterui64vNV,
+    &ext_glGetNamedBufferPointerv,
+    &ext_glGetNamedBufferPointervEXT,
+    &ext_glGetNamedBufferSubData,
+    &ext_glGetNamedBufferSubDataEXT,
+    &ext_glGetNamedFramebufferAttachmentParameteriv,
+    &ext_glGetNamedFramebufferAttachmentParameterivEXT,
+    &ext_glGetNamedFramebufferParameterfvAMD,
+    &ext_glGetNamedFramebufferParameteriv,
+    &ext_glGetNamedFramebufferParameterivEXT,
+    &ext_glGetNamedProgramLocalParameterIivEXT,
+    &ext_glGetNamedProgramLocalParameterIuivEXT,
+    &ext_glGetNamedProgramLocalParameterdvEXT,
+    &ext_glGetNamedProgramLocalParameterfvEXT,
+    &ext_glGetNamedProgramStringEXT,
+    &ext_glGetNamedProgramivEXT,
+    &ext_glGetNamedRenderbufferParameteriv,
+    &ext_glGetNamedRenderbufferParameterivEXT,
+    &ext_glGetNamedStringARB,
+    &ext_glGetNamedStringivARB,
+    &ext_glGetNextPerfQueryIdINTEL,
+    &ext_glGetObjectBufferfvATI,
+    &ext_glGetObjectBufferivATI,
+    &ext_glGetObjectLabel,
+    &ext_glGetObjectLabelEXT,
+    &ext_glGetObjectParameterfvARB,
+    &ext_glGetObjectParameterivAPPLE,
+    &ext_glGetObjectParameterivARB,
+    &ext_glGetObjectPtrLabel,
+    &ext_glGetOcclusionQueryivNV,
+    &ext_glGetOcclusionQueryuivNV,
+    &ext_glGetPathColorGenfvNV,
+    &ext_glGetPathColorGenivNV,
+    &ext_glGetPathCommandsNV,
+    &ext_glGetPathCoordsNV,
+    &ext_glGetPathDashArrayNV,
+    &ext_glGetPathLengthNV,
+    &ext_glGetPathMetricRangeNV,
+    &ext_glGetPathMetricsNV,
+    &ext_glGetPathParameterfvNV,
+    &ext_glGetPathParameterivNV,
+    &ext_glGetPathSpacingNV,
+    &ext_glGetPathTexGenfvNV,
+    &ext_glGetPathTexGenivNV,
+    &ext_glGetPerfCounterInfoINTEL,
+    &ext_glGetPerfMonitorCounterDataAMD,
+    &ext_glGetPerfMonitorCounterInfoAMD,
+    &ext_glGetPerfMonitorCounterStringAMD,
+    &ext_glGetPerfMonitorCountersAMD,
+    &ext_glGetPerfMonitorGroupStringAMD,
+    &ext_glGetPerfMonitorGroupsAMD,
+    &ext_glGetPerfQueryDataINTEL,
+    &ext_glGetPerfQueryIdByNameINTEL,
+    &ext_glGetPerfQueryInfoINTEL,
+    &ext_glGetPixelMapxv,
+    &ext_glGetPixelTexGenParameterfvSGIS,
+    &ext_glGetPixelTexGenParameterivSGIS,
+    &ext_glGetPixelTransformParameterfvEXT,
+    &ext_glGetPixelTransformParameterivEXT,
+    &ext_glGetPointerIndexedvEXT,
+    &ext_glGetPointeri_vEXT,
+    &ext_glGetPointervEXT,
+    &ext_glGetProgramBinary,
+    &ext_glGetProgramEnvParameterIivNV,
+    &ext_glGetProgramEnvParameterIuivNV,
+    &ext_glGetProgramEnvParameterdvARB,
+    &ext_glGetProgramEnvParameterfvARB,
+    &ext_glGetProgramInfoLog,
+    &ext_glGetProgramInterfaceiv,
+    &ext_glGetProgramLocalParameterIivNV,
+    &ext_glGetProgramLocalParameterIuivNV,
+    &ext_glGetProgramLocalParameterdvARB,
+    &ext_glGetProgramLocalParameterfvARB,
+    &ext_glGetProgramNamedParameterdvNV,
+    &ext_glGetProgramNamedParameterfvNV,
+    &ext_glGetProgramParameterdvNV,
+    &ext_glGetProgramParameterfvNV,
+    &ext_glGetProgramPipelineInfoLog,
+    &ext_glGetProgramPipelineiv,
+    &ext_glGetProgramResourceIndex,
+    &ext_glGetProgramResourceLocation,
+    &ext_glGetProgramResourceLocationIndex,
+    &ext_glGetProgramResourceName,
+    &ext_glGetProgramResourcefvNV,
+    &ext_glGetProgramResourceiv,
+    &ext_glGetProgramStageiv,
+    &ext_glGetProgramStringARB,
+    &ext_glGetProgramStringNV,
+    &ext_glGetProgramSubroutineParameteruivNV,
+    &ext_glGetProgramiv,
+    &ext_glGetProgramivARB,
+    &ext_glGetProgramivNV,
+    &ext_glGetQueryBufferObjecti64v,
+    &ext_glGetQueryBufferObjectiv,
+    &ext_glGetQueryBufferObjectui64v,
+    &ext_glGetQueryBufferObjectuiv,
+    &ext_glGetQueryIndexediv,
+    &ext_glGetQueryObjecti64v,
+    &ext_glGetQueryObjecti64vEXT,
+    &ext_glGetQueryObjectiv,
+    &ext_glGetQueryObjectivARB,
+    &ext_glGetQueryObjectui64v,
+    &ext_glGetQueryObjectui64vEXT,
+    &ext_glGetQueryObjectuiv,
+    &ext_glGetQueryObjectuivARB,
+    &ext_glGetQueryiv,
+    &ext_glGetQueryivARB,
+    &ext_glGetRenderbufferParameteriv,
+    &ext_glGetRenderbufferParameterivEXT,
+    &ext_glGetSamplerParameterIiv,
+    &ext_glGetSamplerParameterIuiv,
+    &ext_glGetSamplerParameterfv,
+    &ext_glGetSamplerParameteriv,
+    &ext_glGetSemaphoreParameterui64vEXT,
+    &ext_glGetSeparableFilter,
+    &ext_glGetSeparableFilterEXT,
+    &ext_glGetShaderInfoLog,
+    &ext_glGetShaderPrecisionFormat,
+    &ext_glGetShaderSource,
+    &ext_glGetShaderSourceARB,
+    &ext_glGetShaderiv,
+    &ext_glGetShadingRateImagePaletteNV,
+    &ext_glGetShadingRateSampleLocationivNV,
+    &ext_glGetSharpenTexFuncSGIS,
+    &ext_glGetStageIndexNV,
+    &ext_glGetStringi,
+    &ext_glGetSubroutineIndex,
+    &ext_glGetSubroutineUniformLocation,
+    &ext_glGetSynciv,
+    &ext_glGetTexBumpParameterfvATI,
+    &ext_glGetTexBumpParameterivATI,
+    &ext_glGetTexEnvxvOES,
+    &ext_glGetTexFilterFuncSGIS,
+    &ext_glGetTexGenxvOES,
+    &ext_glGetTexLevelParameterxvOES,
+    &ext_glGetTexParameterIiv,
+    &ext_glGetTexParameterIivEXT,
+    &ext_glGetTexParameterIuiv,
+    &ext_glGetTexParameterIuivEXT,
+    &ext_glGetTexParameterPointervAPPLE,
+    &ext_glGetTexParameterxvOES,
+    &ext_glGetTextureHandleARB,
+    &ext_glGetTextureHandleNV,
+    &ext_glGetTextureImage,
+    &ext_glGetTextureImageEXT,
+    &ext_glGetTextureLevelParameterfv,
+    &ext_glGetTextureLevelParameterfvEXT,
+    &ext_glGetTextureLevelParameteriv,
+    &ext_glGetTextureLevelParameterivEXT,
+    &ext_glGetTextureParameterIiv,
+    &ext_glGetTextureParameterIivEXT,
+    &ext_glGetTextureParameterIuiv,
+    &ext_glGetTextureParameterIuivEXT,
+    &ext_glGetTextureParameterfv,
+    &ext_glGetTextureParameterfvEXT,
+    &ext_glGetTextureParameteriv,
+    &ext_glGetTextureParameterivEXT,
+    &ext_glGetTextureSamplerHandleARB,
+    &ext_glGetTextureSamplerHandleNV,
+    &ext_glGetTextureSubImage,
+    &ext_glGetTrackMatrixivNV,
+    &ext_glGetTransformFeedbackVarying,
+    &ext_glGetTransformFeedbackVaryingEXT,
+    &ext_glGetTransformFeedbackVaryingNV,
+    &ext_glGetTransformFeedbacki64_v,
+    &ext_glGetTransformFeedbacki_v,
+    &ext_glGetTransformFeedbackiv,
+    &ext_glGetUniformBlockIndex,
+    &ext_glGetUniformBufferSizeEXT,
+    &ext_glGetUniformIndices,
+    &ext_glGetUniformLocation,
+    &ext_glGetUniformLocationARB,
+    &ext_glGetUniformOffsetEXT,
+    &ext_glGetUniformSubroutineuiv,
+    &ext_glGetUniformdv,
+    &ext_glGetUniformfv,
+    &ext_glGetUniformfvARB,
+    &ext_glGetUniformi64vARB,
+    &ext_glGetUniformi64vNV,
+    &ext_glGetUniformiv,
+    &ext_glGetUniformivARB,
+    &ext_glGetUniformui64vARB,
+    &ext_glGetUniformui64vNV,
+    &ext_glGetUniformuiv,
+    &ext_glGetUniformuivEXT,
+    &ext_glGetUnsignedBytei_vEXT,
+    &ext_glGetUnsignedBytevEXT,
+    &ext_glGetVariantArrayObjectfvATI,
+    &ext_glGetVariantArrayObjectivATI,
+    &ext_glGetVariantBooleanvEXT,
+    &ext_glGetVariantFloatvEXT,
+    &ext_glGetVariantIntegervEXT,
+    &ext_glGetVariantPointervEXT,
+    &ext_glGetVaryingLocationNV,
+    &ext_glGetVertexArrayIndexed64iv,
+    &ext_glGetVertexArrayIndexediv,
+    &ext_glGetVertexArrayIntegeri_vEXT,
+    &ext_glGetVertexArrayIntegervEXT,
+    &ext_glGetVertexArrayPointeri_vEXT,
+    &ext_glGetVertexArrayPointervEXT,
+    &ext_glGetVertexArrayiv,
+    &ext_glGetVertexAttribArrayObjectfvATI,
+    &ext_glGetVertexAttribArrayObjectivATI,
+    &ext_glGetVertexAttribIiv,
+    &ext_glGetVertexAttribIivEXT,
+    &ext_glGetVertexAttribIuiv,
+    &ext_glGetVertexAttribIuivEXT,
+    &ext_glGetVertexAttribLdv,
+    &ext_glGetVertexAttribLdvEXT,
+    &ext_glGetVertexAttribLi64vNV,
+    &ext_glGetVertexAttribLui64vARB,
+    &ext_glGetVertexAttribLui64vNV,
+    &ext_glGetVertexAttribPointerv,
+    &ext_glGetVertexAttribPointervARB,
+    &ext_glGetVertexAttribPointervNV,
+    &ext_glGetVertexAttribdv,
+    &ext_glGetVertexAttribdvARB,
+    &ext_glGetVertexAttribdvNV,
+    &ext_glGetVertexAttribfv,
+    &ext_glGetVertexAttribfvARB,
+    &ext_glGetVertexAttribfvNV,
+    &ext_glGetVertexAttribiv,
+    &ext_glGetVertexAttribivARB,
+    &ext_glGetVertexAttribivNV,
+    &ext_glGetVideoCaptureStreamdvNV,
+    &ext_glGetVideoCaptureStreamfvNV,
+    &ext_glGetVideoCaptureStreamivNV,
+    &ext_glGetVideoCaptureivNV,
+    &ext_glGetVideoi64vNV,
+    &ext_glGetVideoivNV,
+    &ext_glGetVideoui64vNV,
+    &ext_glGetVideouivNV,
+    &ext_glGetVkProcAddrNV,
+    &ext_glGetnColorTable,
+    &ext_glGetnColorTableARB,
+    &ext_glGetnCompressedTexImage,
+    &ext_glGetnCompressedTexImageARB,
+    &ext_glGetnConvolutionFilter,
+    &ext_glGetnConvolutionFilterARB,
+    &ext_glGetnHistogram,
+    &ext_glGetnHistogramARB,
+    &ext_glGetnMapdv,
+    &ext_glGetnMapdvARB,
+    &ext_glGetnMapfv,
+    &ext_glGetnMapfvARB,
+    &ext_glGetnMapiv,
+    &ext_glGetnMapivARB,
+    &ext_glGetnMinmax,
+    &ext_glGetnMinmaxARB,
+    &ext_glGetnPixelMapfv,
+    &ext_glGetnPixelMapfvARB,
+    &ext_glGetnPixelMapuiv,
+    &ext_glGetnPixelMapuivARB,
+    &ext_glGetnPixelMapusv,
+    &ext_glGetnPixelMapusvARB,
+    &ext_glGetnPolygonStipple,
+    &ext_glGetnPolygonStippleARB,
+    &ext_glGetnSeparableFilter,
+    &ext_glGetnSeparableFilterARB,
+    &ext_glGetnTexImage,
+    &ext_glGetnTexImageARB,
+    &ext_glGetnUniformdv,
+    &ext_glGetnUniformdvARB,
+    &ext_glGetnUniformfv,
+    &ext_glGetnUniformfvARB,
+    &ext_glGetnUniformi64vARB,
+    &ext_glGetnUniformiv,
+    &ext_glGetnUniformivARB,
+    &ext_glGetnUniformui64vARB,
+    &ext_glGetnUniformuiv,
+    &ext_glGetnUniformuivARB,
+    &ext_glGlobalAlphaFactorbSUN,
+    &ext_glGlobalAlphaFactordSUN,
+    &ext_glGlobalAlphaFactorfSUN,
+    &ext_glGlobalAlphaFactoriSUN,
+    &ext_glGlobalAlphaFactorsSUN,
+    &ext_glGlobalAlphaFactorubSUN,
+    &ext_glGlobalAlphaFactoruiSUN,
+    &ext_glGlobalAlphaFactorusSUN,
+    &ext_glHintPGI,
+    &ext_glHistogram,
+    &ext_glHistogramEXT,
+    &ext_glIglooInterfaceSGIX,
+    &ext_glImageTransformParameterfHP,
+    &ext_glImageTransformParameterfvHP,
+    &ext_glImageTransformParameteriHP,
+    &ext_glImageTransformParameterivHP,
+    &ext_glImportMemoryFdEXT,
+    &ext_glImportMemoryWin32HandleEXT,
+    &ext_glImportMemoryWin32NameEXT,
+    &ext_glImportSemaphoreFdEXT,
+    &ext_glImportSemaphoreWin32HandleEXT,
+    &ext_glImportSemaphoreWin32NameEXT,
+    &ext_glImportSyncEXT,
+    &ext_glIndexFormatNV,
+    &ext_glIndexFuncEXT,
+    &ext_glIndexMaterialEXT,
+    &ext_glIndexPointerEXT,
+    &ext_glIndexPointerListIBM,
+    &ext_glIndexxOES,
+    &ext_glIndexxvOES,
+    &ext_glInsertComponentEXT,
+    &ext_glInsertEventMarkerEXT,
+    &ext_glInstrumentsBufferSGIX,
+    &ext_glInterpolatePathsNV,
+    &ext_glInvalidateBufferData,
+    &ext_glInvalidateBufferSubData,
+    &ext_glInvalidateFramebuffer,
+    &ext_glInvalidateNamedFramebufferData,
+    &ext_glInvalidateNamedFramebufferSubData,
+    &ext_glInvalidateSubFramebuffer,
+    &ext_glInvalidateTexImage,
+    &ext_glInvalidateTexSubImage,
+    &ext_glIsAsyncMarkerSGIX,
+    &ext_glIsBuffer,
+    &ext_glIsBufferARB,
+    &ext_glIsBufferResidentNV,
+    &ext_glIsCommandListNV,
+    &ext_glIsEnabledIndexedEXT,
+    &ext_glIsEnabledi,
+    &ext_glIsFenceAPPLE,
+    &ext_glIsFenceNV,
+    &ext_glIsFramebuffer,
+    &ext_glIsFramebufferEXT,
+    &ext_glIsImageHandleResidentARB,
+    &ext_glIsImageHandleResidentNV,
+    &ext_glIsMemoryObjectEXT,
+    &ext_glIsNameAMD,
+    &ext_glIsNamedBufferResidentNV,
+    &ext_glIsNamedStringARB,
+    &ext_glIsObjectBufferATI,
+    &ext_glIsOcclusionQueryNV,
+    &ext_glIsPathNV,
+    &ext_glIsPointInFillPathNV,
+    &ext_glIsPointInStrokePathNV,
+    &ext_glIsProgram,
+    &ext_glIsProgramARB,
+    &ext_glIsProgramNV,
+    &ext_glIsProgramPipeline,
+    &ext_glIsQuery,
+    &ext_glIsQueryARB,
+    &ext_glIsRenderbuffer,
+    &ext_glIsRenderbufferEXT,
+    &ext_glIsSampler,
+    &ext_glIsSemaphoreEXT,
+    &ext_glIsShader,
+    &ext_glIsStateNV,
+    &ext_glIsSync,
+    &ext_glIsTextureEXT,
+    &ext_glIsTextureHandleResidentARB,
+    &ext_glIsTextureHandleResidentNV,
+    &ext_glIsTransformFeedback,
+    &ext_glIsTransformFeedbackNV,
+    &ext_glIsVariantEnabledEXT,
+    &ext_glIsVertexArray,
+    &ext_glIsVertexArrayAPPLE,
+    &ext_glIsVertexAttribEnabledAPPLE,
+    &ext_glLGPUCopyImageSubDataNVX,
+    &ext_glLGPUInterlockNVX,
+    &ext_glLGPUNamedBufferSubDataNVX,
+    &ext_glLabelObjectEXT,
+    &ext_glLightEnviSGIX,
+    &ext_glLightModelxOES,
+    &ext_glLightModelxvOES,
+    &ext_glLightxOES,
+    &ext_glLightxvOES,
+    &ext_glLineWidthxOES,
+    &ext_glLinkProgram,
+    &ext_glLinkProgramARB,
+    &ext_glListDrawCommandsStatesClientNV,
+    &ext_glListParameterfSGIX,
+    &ext_glListParameterfvSGIX,
+    &ext_glListParameteriSGIX,
+    &ext_glListParameterivSGIX,
+    &ext_glLoadIdentityDeformationMapSGIX,
+    &ext_glLoadMatrixxOES,
+    &ext_glLoadProgramNV,
+    &ext_glLoadTransposeMatrixd,
+    &ext_glLoadTransposeMatrixdARB,
+    &ext_glLoadTransposeMatrixf,
+    &ext_glLoadTransposeMatrixfARB,
+    &ext_glLoadTransposeMatrixxOES,
+    &ext_glLockArraysEXT,
+    &ext_glMTexCoord2fSGIS,
+    &ext_glMTexCoord2fvSGIS,
+    &ext_glMakeBufferNonResidentNV,
+    &ext_glMakeBufferResidentNV,
+    &ext_glMakeImageHandleNonResidentARB,
+    &ext_glMakeImageHandleNonResidentNV,
+    &ext_glMakeImageHandleResidentARB,
+    &ext_glMakeImageHandleResidentNV,
+    &ext_glMakeNamedBufferNonResidentNV,
+    &ext_glMakeNamedBufferResidentNV,
+    &ext_glMakeTextureHandleNonResidentARB,
+    &ext_glMakeTextureHandleNonResidentNV,
+    &ext_glMakeTextureHandleResidentARB,
+    &ext_glMakeTextureHandleResidentNV,
+    &ext_glMap1xOES,
+    &ext_glMap2xOES,
+    &ext_glMapBuffer,
+    &ext_glMapBufferARB,
+    &ext_glMapBufferRange,
+    &ext_glMapControlPointsNV,
+    &ext_glMapGrid1xOES,
+    &ext_glMapGrid2xOES,
+    &ext_glMapNamedBuffer,
+    &ext_glMapNamedBufferEXT,
+    &ext_glMapNamedBufferRange,
+    &ext_glMapNamedBufferRangeEXT,
+    &ext_glMapObjectBufferATI,
+    &ext_glMapParameterfvNV,
+    &ext_glMapParameterivNV,
+    &ext_glMapTexture2DINTEL,
+    &ext_glMapVertexAttrib1dAPPLE,
+    &ext_glMapVertexAttrib1fAPPLE,
+    &ext_glMapVertexAttrib2dAPPLE,
+    &ext_glMapVertexAttrib2fAPPLE,
+    &ext_glMaterialxOES,
+    &ext_glMaterialxvOES,
+    &ext_glMatrixFrustumEXT,
+    &ext_glMatrixIndexPointerARB,
+    &ext_glMatrixIndexubvARB,
+    &ext_glMatrixIndexuivARB,
+    &ext_glMatrixIndexusvARB,
+    &ext_glMatrixLoad3x2fNV,
+    &ext_glMatrixLoad3x3fNV,
+    &ext_glMatrixLoadIdentityEXT,
+    &ext_glMatrixLoadTranspose3x3fNV,
+    &ext_glMatrixLoadTransposedEXT,
+    &ext_glMatrixLoadTransposefEXT,
+    &ext_glMatrixLoaddEXT,
+    &ext_glMatrixLoadfEXT,
+    &ext_glMatrixMult3x2fNV,
+    &ext_glMatrixMult3x3fNV,
+    &ext_glMatrixMultTranspose3x3fNV,
+    &ext_glMatrixMultTransposedEXT,
+    &ext_glMatrixMultTransposefEXT,
+    &ext_glMatrixMultdEXT,
+    &ext_glMatrixMultfEXT,
+    &ext_glMatrixOrthoEXT,
+    &ext_glMatrixPopEXT,
+    &ext_glMatrixPushEXT,
+    &ext_glMatrixRotatedEXT,
+    &ext_glMatrixRotatefEXT,
+    &ext_glMatrixScaledEXT,
+    &ext_glMatrixScalefEXT,
+    &ext_glMatrixTranslatedEXT,
+    &ext_glMatrixTranslatefEXT,
+    &ext_glMaxShaderCompilerThreadsARB,
+    &ext_glMaxShaderCompilerThreadsKHR,
+    &ext_glMemoryBarrier,
+    &ext_glMemoryBarrierByRegion,
+    &ext_glMemoryBarrierEXT,
+    &ext_glMemoryObjectParameterivEXT,
+    &ext_glMinSampleShading,
+    &ext_glMinSampleShadingARB,
+    &ext_glMinmax,
+    &ext_glMinmaxEXT,
+    &ext_glMultMatrixxOES,
+    &ext_glMultTransposeMatrixd,
+    &ext_glMultTransposeMatrixdARB,
+    &ext_glMultTransposeMatrixf,
+    &ext_glMultTransposeMatrixfARB,
+    &ext_glMultTransposeMatrixxOES,
+    &ext_glMultiDrawArrays,
+    &ext_glMultiDrawArraysEXT,
+    &ext_glMultiDrawArraysIndirect,
+    &ext_glMultiDrawArraysIndirectAMD,
+    &ext_glMultiDrawArraysIndirectBindlessCountNV,
+    &ext_glMultiDrawArraysIndirectBindlessNV,
+    &ext_glMultiDrawArraysIndirectCount,
+    &ext_glMultiDrawArraysIndirectCountARB,
+    &ext_glMultiDrawElementArrayAPPLE,
+    &ext_glMultiDrawElements,
+    &ext_glMultiDrawElementsBaseVertex,
+    &ext_glMultiDrawElementsEXT,
+    &ext_glMultiDrawElementsIndirect,
+    &ext_glMultiDrawElementsIndirectAMD,
+    &ext_glMultiDrawElementsIndirectBindlessCountNV,
+    &ext_glMultiDrawElementsIndirectBindlessNV,
+    &ext_glMultiDrawElementsIndirectCount,
+    &ext_glMultiDrawElementsIndirectCountARB,
+    &ext_glMultiDrawMeshTasksIndirectCountNV,
+    &ext_glMultiDrawMeshTasksIndirectNV,
+    &ext_glMultiDrawRangeElementArrayAPPLE,
+    &ext_glMultiModeDrawArraysIBM,
+    &ext_glMultiModeDrawElementsIBM,
+    &ext_glMultiTexBufferEXT,
+    &ext_glMultiTexCoord1bOES,
+    &ext_glMultiTexCoord1bvOES,
+    &ext_glMultiTexCoord1d,
+    &ext_glMultiTexCoord1dARB,
+    &ext_glMultiTexCoord1dSGIS,
+    &ext_glMultiTexCoord1dv,
+    &ext_glMultiTexCoord1dvARB,
+    &ext_glMultiTexCoord1dvSGIS,
+    &ext_glMultiTexCoord1f,
+    &ext_glMultiTexCoord1fARB,
+    &ext_glMultiTexCoord1fSGIS,
+    &ext_glMultiTexCoord1fv,
+    &ext_glMultiTexCoord1fvARB,
+    &ext_glMultiTexCoord1fvSGIS,
+    &ext_glMultiTexCoord1hNV,
+    &ext_glMultiTexCoord1hvNV,
+    &ext_glMultiTexCoord1i,
+    &ext_glMultiTexCoord1iARB,
+    &ext_glMultiTexCoord1iSGIS,
+    &ext_glMultiTexCoord1iv,
+    &ext_glMultiTexCoord1ivARB,
+    &ext_glMultiTexCoord1ivSGIS,
+    &ext_glMultiTexCoord1s,
+    &ext_glMultiTexCoord1sARB,
+    &ext_glMultiTexCoord1sSGIS,
+    &ext_glMultiTexCoord1sv,
+    &ext_glMultiTexCoord1svARB,
+    &ext_glMultiTexCoord1svSGIS,
+    &ext_glMultiTexCoord1xOES,
+    &ext_glMultiTexCoord1xvOES,
+    &ext_glMultiTexCoord2bOES,
+    &ext_glMultiTexCoord2bvOES,
+    &ext_glMultiTexCoord2d,
+    &ext_glMultiTexCoord2dARB,
+    &ext_glMultiTexCoord2dSGIS,
+    &ext_glMultiTexCoord2dv,
+    &ext_glMultiTexCoord2dvARB,
+    &ext_glMultiTexCoord2dvSGIS,
+    &ext_glMultiTexCoord2f,
+    &ext_glMultiTexCoord2fARB,
+    &ext_glMultiTexCoord2fSGIS,
+    &ext_glMultiTexCoord2fv,
+    &ext_glMultiTexCoord2fvARB,
+    &ext_glMultiTexCoord2fvSGIS,
+    &ext_glMultiTexCoord2hNV,
+    &ext_glMultiTexCoord2hvNV,
+    &ext_glMultiTexCoord2i,
+    &ext_glMultiTexCoord2iARB,
+    &ext_glMultiTexCoord2iSGIS,
+    &ext_glMultiTexCoord2iv,
+    &ext_glMultiTexCoord2ivARB,
+    &ext_glMultiTexCoord2ivSGIS,
+    &ext_glMultiTexCoord2s,
+    &ext_glMultiTexCoord2sARB,
+    &ext_glMultiTexCoord2sSGIS,
+    &ext_glMultiTexCoord2sv,
+    &ext_glMultiTexCoord2svARB,
+    &ext_glMultiTexCoord2svSGIS,
+    &ext_glMultiTexCoord2xOES,
+    &ext_glMultiTexCoord2xvOES,
+    &ext_glMultiTexCoord3bOES,
+    &ext_glMultiTexCoord3bvOES,
+    &ext_glMultiTexCoord3d,
+    &ext_glMultiTexCoord3dARB,
+    &ext_glMultiTexCoord3dSGIS,
+    &ext_glMultiTexCoord3dv,
+    &ext_glMultiTexCoord3dvARB,
+    &ext_glMultiTexCoord3dvSGIS,
+    &ext_glMultiTexCoord3f,
+    &ext_glMultiTexCoord3fARB,
+    &ext_glMultiTexCoord3fSGIS,
+    &ext_glMultiTexCoord3fv,
+    &ext_glMultiTexCoord3fvARB,
+    &ext_glMultiTexCoord3fvSGIS,
+    &ext_glMultiTexCoord3hNV,
+    &ext_glMultiTexCoord3hvNV,
+    &ext_glMultiTexCoord3i,
+    &ext_glMultiTexCoord3iARB,
+    &ext_glMultiTexCoord3iSGIS,
+    &ext_glMultiTexCoord3iv,
+    &ext_glMultiTexCoord3ivARB,
+    &ext_glMultiTexCoord3ivSGIS,
+    &ext_glMultiTexCoord3s,
+    &ext_glMultiTexCoord3sARB,
+    &ext_glMultiTexCoord3sSGIS,
+    &ext_glMultiTexCoord3sv,
+    &ext_glMultiTexCoord3svARB,
+    &ext_glMultiTexCoord3svSGIS,
+    &ext_glMultiTexCoord3xOES,
+    &ext_glMultiTexCoord3xvOES,
+    &ext_glMultiTexCoord4bOES,
+    &ext_glMultiTexCoord4bvOES,
+    &ext_glMultiTexCoord4d,
+    &ext_glMultiTexCoord4dARB,
+    &ext_glMultiTexCoord4dSGIS,
+    &ext_glMultiTexCoord4dv,
+    &ext_glMultiTexCoord4dvARB,
+    &ext_glMultiTexCoord4dvSGIS,
+    &ext_glMultiTexCoord4f,
+    &ext_glMultiTexCoord4fARB,
+    &ext_glMultiTexCoord4fSGIS,
+    &ext_glMultiTexCoord4fv,
+    &ext_glMultiTexCoord4fvARB,
+    &ext_glMultiTexCoord4fvSGIS,
+    &ext_glMultiTexCoord4hNV,
+    &ext_glMultiTexCoord4hvNV,
+    &ext_glMultiTexCoord4i,
+    &ext_glMultiTexCoord4iARB,
+    &ext_glMultiTexCoord4iSGIS,
+    &ext_glMultiTexCoord4iv,
+    &ext_glMultiTexCoord4ivARB,
+    &ext_glMultiTexCoord4ivSGIS,
+    &ext_glMultiTexCoord4s,
+    &ext_glMultiTexCoord4sARB,
+    &ext_glMultiTexCoord4sSGIS,
+    &ext_glMultiTexCoord4sv,
+    &ext_glMultiTexCoord4svARB,
+    &ext_glMultiTexCoord4svSGIS,
+    &ext_glMultiTexCoord4xOES,
+    &ext_glMultiTexCoord4xvOES,
+    &ext_glMultiTexCoordP1ui,
+    &ext_glMultiTexCoordP1uiv,
+    &ext_glMultiTexCoordP2ui,
+    &ext_glMultiTexCoordP2uiv,
+    &ext_glMultiTexCoordP3ui,
+    &ext_glMultiTexCoordP3uiv,
+    &ext_glMultiTexCoordP4ui,
+    &ext_glMultiTexCoordP4uiv,
+    &ext_glMultiTexCoordPointerEXT,
+    &ext_glMultiTexCoordPointerSGIS,
+    &ext_glMultiTexEnvfEXT,
+    &ext_glMultiTexEnvfvEXT,
+    &ext_glMultiTexEnviEXT,
+    &ext_glMultiTexEnvivEXT,
+    &ext_glMultiTexGendEXT,
+    &ext_glMultiTexGendvEXT,
+    &ext_glMultiTexGenfEXT,
+    &ext_glMultiTexGenfvEXT,
+    &ext_glMultiTexGeniEXT,
+    &ext_glMultiTexGenivEXT,
+    &ext_glMultiTexImage1DEXT,
+    &ext_glMultiTexImage2DEXT,
+    &ext_glMultiTexImage3DEXT,
+    &ext_glMultiTexParameterIivEXT,
+    &ext_glMultiTexParameterIuivEXT,
+    &ext_glMultiTexParameterfEXT,
+    &ext_glMultiTexParameterfvEXT,
+    &ext_glMultiTexParameteriEXT,
+    &ext_glMultiTexParameterivEXT,
+    &ext_glMultiTexRenderbufferEXT,
+    &ext_glMultiTexSubImage1DEXT,
+    &ext_glMultiTexSubImage2DEXT,
+    &ext_glMultiTexSubImage3DEXT,
+    &ext_glMulticastBarrierNV,
+    &ext_glMulticastBlitFramebufferNV,
+    &ext_glMulticastBufferSubDataNV,
+    &ext_glMulticastCopyBufferSubDataNV,
+    &ext_glMulticastCopyImageSubDataNV,
+    &ext_glMulticastFramebufferSampleLocationsfvNV,
+    &ext_glMulticastGetQueryObjecti64vNV,
+    &ext_glMulticastGetQueryObjectivNV,
+    &ext_glMulticastGetQueryObjectui64vNV,
+    &ext_glMulticastGetQueryObjectuivNV,
+    &ext_glMulticastScissorArrayvNVX,
+    &ext_glMulticastViewportArrayvNVX,
+    &ext_glMulticastViewportPositionWScaleNVX,
+    &ext_glMulticastWaitSyncNV,
+    &ext_glNamedBufferAttachMemoryNV,
+    &ext_glNamedBufferData,
+    &ext_glNamedBufferDataEXT,
+    &ext_glNamedBufferPageCommitmentARB,
+    &ext_glNamedBufferPageCommitmentEXT,
+    &ext_glNamedBufferStorage,
+    &ext_glNamedBufferStorageEXT,
+    &ext_glNamedBufferStorageExternalEXT,
+    &ext_glNamedBufferStorageMemEXT,
+    &ext_glNamedBufferSubData,
+    &ext_glNamedBufferSubDataEXT,
+    &ext_glNamedCopyBufferSubDataEXT,
+    &ext_glNamedFramebufferDrawBuffer,
+    &ext_glNamedFramebufferDrawBuffers,
+    &ext_glNamedFramebufferParameteri,
+    &ext_glNamedFramebufferParameteriEXT,
+    &ext_glNamedFramebufferReadBuffer,
+    &ext_glNamedFramebufferRenderbuffer,
+    &ext_glNamedFramebufferRenderbufferEXT,
+    &ext_glNamedFramebufferSampleLocationsfvARB,
+    &ext_glNamedFramebufferSampleLocationsfvNV,
+    &ext_glNamedFramebufferSamplePositionsfvAMD,
+    &ext_glNamedFramebufferTexture,
+    &ext_glNamedFramebufferTexture1DEXT,
+    &ext_glNamedFramebufferTexture2DEXT,
+    &ext_glNamedFramebufferTexture3DEXT,
+    &ext_glNamedFramebufferTextureEXT,
+    &ext_glNamedFramebufferTextureFaceEXT,
+    &ext_glNamedFramebufferTextureLayer,
+    &ext_glNamedFramebufferTextureLayerEXT,
+    &ext_glNamedProgramLocalParameter4dEXT,
+    &ext_glNamedProgramLocalParameter4dvEXT,
+    &ext_glNamedProgramLocalParameter4fEXT,
+    &ext_glNamedProgramLocalParameter4fvEXT,
+    &ext_glNamedProgramLocalParameterI4iEXT,
+    &ext_glNamedProgramLocalParameterI4ivEXT,
+    &ext_glNamedProgramLocalParameterI4uiEXT,
+    &ext_glNamedProgramLocalParameterI4uivEXT,
+    &ext_glNamedProgramLocalParameters4fvEXT,
+    &ext_glNamedProgramLocalParametersI4ivEXT,
+    &ext_glNamedProgramLocalParametersI4uivEXT,
+    &ext_glNamedProgramStringEXT,
+    &ext_glNamedRenderbufferStorage,
+    &ext_glNamedRenderbufferStorageEXT,
+    &ext_glNamedRenderbufferStorageMultisample,
+    &ext_glNamedRenderbufferStorageMultisampleAdvancedAMD,
+    &ext_glNamedRenderbufferStorageMultisampleCoverageEXT,
+    &ext_glNamedRenderbufferStorageMultisampleEXT,
+    &ext_glNamedStringARB,
+    &ext_glNewBufferRegion,
+    &ext_glNewObjectBufferATI,
+    &ext_glNormal3fVertex3fSUN,
+    &ext_glNormal3fVertex3fvSUN,
+    &ext_glNormal3hNV,
+    &ext_glNormal3hvNV,
+    &ext_glNormal3xOES,
+    &ext_glNormal3xvOES,
+    &ext_glNormalFormatNV,
+    &ext_glNormalP3ui,
+    &ext_glNormalP3uiv,
+    &ext_glNormalPointerEXT,
+    &ext_glNormalPointerListIBM,
+    &ext_glNormalPointervINTEL,
+    &ext_glNormalStream3bATI,
+    &ext_glNormalStream3bvATI,
+    &ext_glNormalStream3dATI,
+    &ext_glNormalStream3dvATI,
+    &ext_glNormalStream3fATI,
+    &ext_glNormalStream3fvATI,
+    &ext_glNormalStream3iATI,
+    &ext_glNormalStream3ivATI,
+    &ext_glNormalStream3sATI,
+    &ext_glNormalStream3svATI,
+    &ext_glObjectLabel,
+    &ext_glObjectPtrLabel,
+    &ext_glObjectPurgeableAPPLE,
+    &ext_glObjectUnpurgeableAPPLE,
+    &ext_glOrthofOES,
+    &ext_glOrthoxOES,
+    &ext_glPNTrianglesfATI,
+    &ext_glPNTrianglesiATI,
+    &ext_glPassTexCoordATI,
+    &ext_glPassThroughxOES,
+    &ext_glPatchParameterfv,
+    &ext_glPatchParameteri,
+    &ext_glPathColorGenNV,
+    &ext_glPathCommandsNV,
+    &ext_glPathCoordsNV,
+    &ext_glPathCoverDepthFuncNV,
+    &ext_glPathDashArrayNV,
+    &ext_glPathFogGenNV,
+    &ext_glPathGlyphIndexArrayNV,
+    &ext_glPathGlyphIndexRangeNV,
+    &ext_glPathGlyphRangeNV,
+    &ext_glPathGlyphsNV,
+    &ext_glPathMemoryGlyphIndexArrayNV,
+    &ext_glPathParameterfNV,
+    &ext_glPathParameterfvNV,
+    &ext_glPathParameteriNV,
+    &ext_glPathParameterivNV,
+    &ext_glPathStencilDepthOffsetNV,
+    &ext_glPathStencilFuncNV,
+    &ext_glPathStringNV,
+    &ext_glPathSubCommandsNV,
+    &ext_glPathSubCoordsNV,
+    &ext_glPathTexGenNV,
+    &ext_glPauseTransformFeedback,
+    &ext_glPauseTransformFeedbackNV,
+    &ext_glPixelDataRangeNV,
+    &ext_glPixelMapx,
+    &ext_glPixelStorex,
+    &ext_glPixelTexGenParameterfSGIS,
+    &ext_glPixelTexGenParameterfvSGIS,
+    &ext_glPixelTexGenParameteriSGIS,
+    &ext_glPixelTexGenParameterivSGIS,
+    &ext_glPixelTexGenSGIX,
+    &ext_glPixelTransferxOES,
+    &ext_glPixelTransformParameterfEXT,
+    &ext_glPixelTransformParameterfvEXT,
+    &ext_glPixelTransformParameteriEXT,
+    &ext_glPixelTransformParameterivEXT,
+    &ext_glPixelZoomxOES,
+    &ext_glPointAlongPathNV,
+    &ext_glPointParameterf,
+    &ext_glPointParameterfARB,
+    &ext_glPointParameterfEXT,
+    &ext_glPointParameterfSGIS,
+    &ext_glPointParameterfv,
+    &ext_glPointParameterfvARB,
+    &ext_glPointParameterfvEXT,
+    &ext_glPointParameterfvSGIS,
+    &ext_glPointParameteri,
+    &ext_glPointParameteriNV,
+    &ext_glPointParameteriv,
+    &ext_glPointParameterivNV,
+    &ext_glPointParameterxvOES,
+    &ext_glPointSizexOES,
+    &ext_glPollAsyncSGIX,
+    &ext_glPollInstrumentsSGIX,
+    &ext_glPolygonOffsetClamp,
+    &ext_glPolygonOffsetClampEXT,
+    &ext_glPolygonOffsetEXT,
+    &ext_glPolygonOffsetxOES,
+    &ext_glPopDebugGroup,
+    &ext_glPopGroupMarkerEXT,
+    &ext_glPresentFrameDualFillNV,
+    &ext_glPresentFrameKeyedNV,
+    &ext_glPrimitiveBoundingBoxARB,
+    &ext_glPrimitiveRestartIndex,
+    &ext_glPrimitiveRestartIndexNV,
+    &ext_glPrimitiveRestartNV,
+    &ext_glPrioritizeTexturesEXT,
+    &ext_glPrioritizeTexturesxOES,
+    &ext_glProgramBinary,
+    &ext_glProgramBufferParametersIivNV,
+    &ext_glProgramBufferParametersIuivNV,
+    &ext_glProgramBufferParametersfvNV,
+    &ext_glProgramEnvParameter4dARB,
+    &ext_glProgramEnvParameter4dvARB,
+    &ext_glProgramEnvParameter4fARB,
+    &ext_glProgramEnvParameter4fvARB,
+    &ext_glProgramEnvParameterI4iNV,
+    &ext_glProgramEnvParameterI4ivNV,
+    &ext_glProgramEnvParameterI4uiNV,
+    &ext_glProgramEnvParameterI4uivNV,
+    &ext_glProgramEnvParameters4fvEXT,
+    &ext_glProgramEnvParametersI4ivNV,
+    &ext_glProgramEnvParametersI4uivNV,
+    &ext_glProgramLocalParameter4dARB,
+    &ext_glProgramLocalParameter4dvARB,
+    &ext_glProgramLocalParameter4fARB,
+    &ext_glProgramLocalParameter4fvARB,
+    &ext_glProgramLocalParameterI4iNV,
+    &ext_glProgramLocalParameterI4ivNV,
+    &ext_glProgramLocalParameterI4uiNV,
+    &ext_glProgramLocalParameterI4uivNV,
+    &ext_glProgramLocalParameters4fvEXT,
+    &ext_glProgramLocalParametersI4ivNV,
+    &ext_glProgramLocalParametersI4uivNV,
+    &ext_glProgramNamedParameter4dNV,
+    &ext_glProgramNamedParameter4dvNV,
+    &ext_glProgramNamedParameter4fNV,
+    &ext_glProgramNamedParameter4fvNV,
+    &ext_glProgramParameter4dNV,
+    &ext_glProgramParameter4dvNV,
+    &ext_glProgramParameter4fNV,
+    &ext_glProgramParameter4fvNV,
+    &ext_glProgramParameteri,
+    &ext_glProgramParameteriARB,
+    &ext_glProgramParameteriEXT,
+    &ext_glProgramParameters4dvNV,
+    &ext_glProgramParameters4fvNV,
+    &ext_glProgramPathFragmentInputGenNV,
+    &ext_glProgramStringARB,
+    &ext_glProgramSubroutineParametersuivNV,
+    &ext_glProgramUniform1d,
+    &ext_glProgramUniform1dEXT,
+    &ext_glProgramUniform1dv,
+    &ext_glProgramUniform1dvEXT,
+    &ext_glProgramUniform1f,
+    &ext_glProgramUniform1fEXT,
+    &ext_glProgramUniform1fv,
+    &ext_glProgramUniform1fvEXT,
+    &ext_glProgramUniform1i,
+    &ext_glProgramUniform1i64ARB,
+    &ext_glProgramUniform1i64NV,
+    &ext_glProgramUniform1i64vARB,
+    &ext_glProgramUniform1i64vNV,
+    &ext_glProgramUniform1iEXT,
+    &ext_glProgramUniform1iv,
+    &ext_glProgramUniform1ivEXT,
+    &ext_glProgramUniform1ui,
+    &ext_glProgramUniform1ui64ARB,
+    &ext_glProgramUniform1ui64NV,
+    &ext_glProgramUniform1ui64vARB,
+    &ext_glProgramUniform1ui64vNV,
+    &ext_glProgramUniform1uiEXT,
+    &ext_glProgramUniform1uiv,
+    &ext_glProgramUniform1uivEXT,
+    &ext_glProgramUniform2d,
+    &ext_glProgramUniform2dEXT,
+    &ext_glProgramUniform2dv,
+    &ext_glProgramUniform2dvEXT,
+    &ext_glProgramUniform2f,
+    &ext_glProgramUniform2fEXT,
+    &ext_glProgramUniform2fv,
+    &ext_glProgramUniform2fvEXT,
+    &ext_glProgramUniform2i,
+    &ext_glProgramUniform2i64ARB,
+    &ext_glProgramUniform2i64NV,
+    &ext_glProgramUniform2i64vARB,
+    &ext_glProgramUniform2i64vNV,
+    &ext_glProgramUniform2iEXT,
+    &ext_glProgramUniform2iv,
+    &ext_glProgramUniform2ivEXT,
+    &ext_glProgramUniform2ui,
+    &ext_glProgramUniform2ui64ARB,
+    &ext_glProgramUniform2ui64NV,
+    &ext_glProgramUniform2ui64vARB,
+    &ext_glProgramUniform2ui64vNV,
+    &ext_glProgramUniform2uiEXT,
+    &ext_glProgramUniform2uiv,
+    &ext_glProgramUniform2uivEXT,
+    &ext_glProgramUniform3d,
+    &ext_glProgramUniform3dEXT,
+    &ext_glProgramUniform3dv,
+    &ext_glProgramUniform3dvEXT,
+    &ext_glProgramUniform3f,
+    &ext_glProgramUniform3fEXT,
+    &ext_glProgramUniform3fv,
+    &ext_glProgramUniform3fvEXT,
+    &ext_glProgramUniform3i,
+    &ext_glProgramUniform3i64ARB,
+    &ext_glProgramUniform3i64NV,
+    &ext_glProgramUniform3i64vARB,
+    &ext_glProgramUniform3i64vNV,
+    &ext_glProgramUniform3iEXT,
+    &ext_glProgramUniform3iv,
+    &ext_glProgramUniform3ivEXT,
+    &ext_glProgramUniform3ui,
+    &ext_glProgramUniform3ui64ARB,
+    &ext_glProgramUniform3ui64NV,
+    &ext_glProgramUniform3ui64vARB,
+    &ext_glProgramUniform3ui64vNV,
+    &ext_glProgramUniform3uiEXT,
+    &ext_glProgramUniform3uiv,
+    &ext_glProgramUniform3uivEXT,
+    &ext_glProgramUniform4d,
+    &ext_glProgramUniform4dEXT,
+    &ext_glProgramUniform4dv,
+    &ext_glProgramUniform4dvEXT,
+    &ext_glProgramUniform4f,
+    &ext_glProgramUniform4fEXT,
+    &ext_glProgramUniform4fv,
+    &ext_glProgramUniform4fvEXT,
+    &ext_glProgramUniform4i,
+    &ext_glProgramUniform4i64ARB,
+    &ext_glProgramUniform4i64NV,
+    &ext_glProgramUniform4i64vARB,
+    &ext_glProgramUniform4i64vNV,
+    &ext_glProgramUniform4iEXT,
+    &ext_glProgramUniform4iv,
+    &ext_glProgramUniform4ivEXT,
+    &ext_glProgramUniform4ui,
+    &ext_glProgramUniform4ui64ARB,
+    &ext_glProgramUniform4ui64NV,
+    &ext_glProgramUniform4ui64vARB,
+    &ext_glProgramUniform4ui64vNV,
+    &ext_glProgramUniform4uiEXT,
+    &ext_glProgramUniform4uiv,
+    &ext_glProgramUniform4uivEXT,
+    &ext_glProgramUniformHandleui64ARB,
+    &ext_glProgramUniformHandleui64NV,
+    &ext_glProgramUniformHandleui64vARB,
+    &ext_glProgramUniformHandleui64vNV,
+    &ext_glProgramUniformMatrix2dv,
+    &ext_glProgramUniformMatrix2dvEXT,
+    &ext_glProgramUniformMatrix2fv,
+    &ext_glProgramUniformMatrix2fvEXT,
+    &ext_glProgramUniformMatrix2x3dv,
+    &ext_glProgramUniformMatrix2x3dvEXT,
+    &ext_glProgramUniformMatrix2x3fv,
+    &ext_glProgramUniformMatrix2x3fvEXT,
+    &ext_glProgramUniformMatrix2x4dv,
+    &ext_glProgramUniformMatrix2x4dvEXT,
+    &ext_glProgramUniformMatrix2x4fv,
+    &ext_glProgramUniformMatrix2x4fvEXT,
+    &ext_glProgramUniformMatrix3dv,
+    &ext_glProgramUniformMatrix3dvEXT,
+    &ext_glProgramUniformMatrix3fv,
+    &ext_glProgramUniformMatrix3fvEXT,
+    &ext_glProgramUniformMatrix3x2dv,
+    &ext_glProgramUniformMatrix3x2dvEXT,
+    &ext_glProgramUniformMatrix3x2fv,
+    &ext_glProgramUniformMatrix3x2fvEXT,
+    &ext_glProgramUniformMatrix3x4dv,
+    &ext_glProgramUniformMatrix3x4dvEXT,
+    &ext_glProgramUniformMatrix3x4fv,
+    &ext_glProgramUniformMatrix3x4fvEXT,
+    &ext_glProgramUniformMatrix4dv,
+    &ext_glProgramUniformMatrix4dvEXT,
+    &ext_glProgramUniformMatrix4fv,
+    &ext_glProgramUniformMatrix4fvEXT,
+    &ext_glProgramUniformMatrix4x2dv,
+    &ext_glProgramUniformMatrix4x2dvEXT,
+    &ext_glProgramUniformMatrix4x2fv,
+    &ext_glProgramUniformMatrix4x2fvEXT,
+    &ext_glProgramUniformMatrix4x3dv,
+    &ext_glProgramUniformMatrix4x3dvEXT,
+    &ext_glProgramUniformMatrix4x3fv,
+    &ext_glProgramUniformMatrix4x3fvEXT,
+    &ext_glProgramUniformui64NV,
+    &ext_glProgramUniformui64vNV,
+    &ext_glProgramVertexLimitNV,
+    &ext_glProvokingVertex,
+    &ext_glProvokingVertexEXT,
+    &ext_glPushClientAttribDefaultEXT,
+    &ext_glPushDebugGroup,
+    &ext_glPushGroupMarkerEXT,
+    &ext_glQueryCounter,
+    &ext_glQueryMatrixxOES,
+    &ext_glQueryObjectParameteruiAMD,
+    &ext_glQueryResourceNV,
+    &ext_glQueryResourceTagNV,
+    &ext_glRasterPos2xOES,
+    &ext_glRasterPos2xvOES,
+    &ext_glRasterPos3xOES,
+    &ext_glRasterPos3xvOES,
+    &ext_glRasterPos4xOES,
+    &ext_glRasterPos4xvOES,
+    &ext_glRasterSamplesEXT,
+    &ext_glReadBufferRegion,
+    &ext_glReadInstrumentsSGIX,
+    &ext_glReadnPixels,
+    &ext_glReadnPixelsARB,
+    &ext_glRectxOES,
+    &ext_glRectxvOES,
+    &ext_glReferencePlaneSGIX,
+    &ext_glReleaseKeyedMutexWin32EXT,
+    &ext_glReleaseShaderCompiler,
+    &ext_glRenderGpuMaskNV,
+    &ext_glRenderbufferStorage,
+    &ext_glRenderbufferStorageEXT,
+    &ext_glRenderbufferStorageMultisample,
+    &ext_glRenderbufferStorageMultisampleAdvancedAMD,
+    &ext_glRenderbufferStorageMultisampleCoverageNV,
+    &ext_glRenderbufferStorageMultisampleEXT,
+    &ext_glReplacementCodePointerSUN,
+    &ext_glReplacementCodeubSUN,
+    &ext_glReplacementCodeubvSUN,
+    &ext_glReplacementCodeuiColor3fVertex3fSUN,
+    &ext_glReplacementCodeuiColor3fVertex3fvSUN,
+    &ext_glReplacementCodeuiColor4fNormal3fVertex3fSUN,
+    &ext_glReplacementCodeuiColor4fNormal3fVertex3fvSUN,
+    &ext_glReplacementCodeuiColor4ubVertex3fSUN,
+    &ext_glReplacementCodeuiColor4ubVertex3fvSUN,
+    &ext_glReplacementCodeuiNormal3fVertex3fSUN,
+    &ext_glReplacementCodeuiNormal3fVertex3fvSUN,
+    &ext_glReplacementCodeuiSUN,
+    &ext_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN,
+    &ext_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN,
+    &ext_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN,
+    &ext_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN,
+    &ext_glReplacementCodeuiTexCoord2fVertex3fSUN,
+    &ext_glReplacementCodeuiTexCoord2fVertex3fvSUN,
+    &ext_glReplacementCodeuiVertex3fSUN,
+    &ext_glReplacementCodeuiVertex3fvSUN,
+    &ext_glReplacementCodeuivSUN,
+    &ext_glReplacementCodeusSUN,
+    &ext_glReplacementCodeusvSUN,
+    &ext_glRequestResidentProgramsNV,
+    &ext_glResetHistogram,
+    &ext_glResetHistogramEXT,
+    &ext_glResetMemoryObjectParameterNV,
+    &ext_glResetMinmax,
+    &ext_glResetMinmaxEXT,
+    &ext_glResizeBuffersMESA,
+    &ext_glResolveDepthValuesNV,
+    &ext_glResumeTransformFeedback,
+    &ext_glResumeTransformFeedbackNV,
+    &ext_glRotatexOES,
+    &ext_glSampleCoverage,
+    &ext_glSampleCoverageARB,
+    &ext_glSampleMapATI,
+    &ext_glSampleMaskEXT,
+    &ext_glSampleMaskIndexedNV,
+    &ext_glSampleMaskSGIS,
+    &ext_glSampleMaski,
+    &ext_glSamplePatternEXT,
+    &ext_glSamplePatternSGIS,
+    &ext_glSamplerParameterIiv,
+    &ext_glSamplerParameterIuiv,
+    &ext_glSamplerParameterf,
+    &ext_glSamplerParameterfv,
+    &ext_glSamplerParameteri,
+    &ext_glSamplerParameteriv,
+    &ext_glScalexOES,
+    &ext_glScissorArrayv,
+    &ext_glScissorExclusiveArrayvNV,
+    &ext_glScissorExclusiveNV,
+    &ext_glScissorIndexed,
+    &ext_glScissorIndexedv,
+    &ext_glSecondaryColor3b,
+    &ext_glSecondaryColor3bEXT,
+    &ext_glSecondaryColor3bv,
+    &ext_glSecondaryColor3bvEXT,
+    &ext_glSecondaryColor3d,
+    &ext_glSecondaryColor3dEXT,
+    &ext_glSecondaryColor3dv,
+    &ext_glSecondaryColor3dvEXT,
+    &ext_glSecondaryColor3f,
+    &ext_glSecondaryColor3fEXT,
+    &ext_glSecondaryColor3fv,
+    &ext_glSecondaryColor3fvEXT,
+    &ext_glSecondaryColor3hNV,
+    &ext_glSecondaryColor3hvNV,
+    &ext_glSecondaryColor3i,
+    &ext_glSecondaryColor3iEXT,
+    &ext_glSecondaryColor3iv,
+    &ext_glSecondaryColor3ivEXT,
+    &ext_glSecondaryColor3s,
+    &ext_glSecondaryColor3sEXT,
+    &ext_glSecondaryColor3sv,
+    &ext_glSecondaryColor3svEXT,
+    &ext_glSecondaryColor3ub,
+    &ext_glSecondaryColor3ubEXT,
+    &ext_glSecondaryColor3ubv,
+    &ext_glSecondaryColor3ubvEXT,
+    &ext_glSecondaryColor3ui,
+    &ext_glSecondaryColor3uiEXT,
+    &ext_glSecondaryColor3uiv,
+    &ext_glSecondaryColor3uivEXT,
+    &ext_glSecondaryColor3us,
+    &ext_glSecondaryColor3usEXT,
+    &ext_glSecondaryColor3usv,
+    &ext_glSecondaryColor3usvEXT,
+    &ext_glSecondaryColorFormatNV,
+    &ext_glSecondaryColorP3ui,
+    &ext_glSecondaryColorP3uiv,
+    &ext_glSecondaryColorPointer,
+    &ext_glSecondaryColorPointerEXT,
+    &ext_glSecondaryColorPointerListIBM,
+    &ext_glSelectPerfMonitorCountersAMD,
+    &ext_glSelectTextureCoordSetSGIS,
+    &ext_glSelectTextureSGIS,
+    &ext_glSemaphoreParameterui64vEXT,
+    &ext_glSeparableFilter2D,
+    &ext_glSeparableFilter2DEXT,
+    &ext_glSetFenceAPPLE,
+    &ext_glSetFenceNV,
+    &ext_glSetFragmentShaderConstantATI,
+    &ext_glSetInvariantEXT,
+    &ext_glSetLocalConstantEXT,
+    &ext_glSetMultisamplefvAMD,
+    &ext_glShaderBinary,
+    &ext_glShaderOp1EXT,
+    &ext_glShaderOp2EXT,
+    &ext_glShaderOp3EXT,
+    &ext_glShaderSource,
+    &ext_glShaderSourceARB,
+    &ext_glShaderStorageBlockBinding,
+    &ext_glShadingRateImageBarrierNV,
+    &ext_glShadingRateImagePaletteNV,
+    &ext_glShadingRateSampleOrderCustomNV,
+    &ext_glShadingRateSampleOrderNV,
+    &ext_glSharpenTexFuncSGIS,
+    &ext_glSignalSemaphoreEXT,
+    &ext_glSignalSemaphoreui64NVX,
+    &ext_glSignalVkFenceNV,
+    &ext_glSignalVkSemaphoreNV,
+    &ext_glSpecializeShader,
+    &ext_glSpecializeShaderARB,
+    &ext_glSpriteParameterfSGIX,
+    &ext_glSpriteParameterfvSGIX,
+    &ext_glSpriteParameteriSGIX,
+    &ext_glSpriteParameterivSGIX,
+    &ext_glStartInstrumentsSGIX,
+    &ext_glStateCaptureNV,
+    &ext_glStencilClearTagEXT,
+    &ext_glStencilFillPathInstancedNV,
+    &ext_glStencilFillPathNV,
+    &ext_glStencilFuncSeparate,
+    &ext_glStencilFuncSeparateATI,
+    &ext_glStencilMaskSeparate,
+    &ext_glStencilOpSeparate,
+    &ext_glStencilOpSeparateATI,
+    &ext_glStencilOpValueAMD,
+    &ext_glStencilStrokePathInstancedNV,
+    &ext_glStencilStrokePathNV,
+    &ext_glStencilThenCoverFillPathInstancedNV,
+    &ext_glStencilThenCoverFillPathNV,
+    &ext_glStencilThenCoverStrokePathInstancedNV,
+    &ext_glStencilThenCoverStrokePathNV,
+    &ext_glStopInstrumentsSGIX,
+    &ext_glStringMarkerGREMEDY,
+    &ext_glSubpixelPrecisionBiasNV,
+    &ext_glSwizzleEXT,
+    &ext_glSyncTextureINTEL,
+    &ext_glTagSampleBufferSGIX,
+    &ext_glTangent3bEXT,
+    &ext_glTangent3bvEXT,
+    &ext_glTangent3dEXT,
+    &ext_glTangent3dvEXT,
+    &ext_glTangent3fEXT,
+    &ext_glTangent3fvEXT,
+    &ext_glTangent3iEXT,
+    &ext_glTangent3ivEXT,
+    &ext_glTangent3sEXT,
+    &ext_glTangent3svEXT,
+    &ext_glTangentPointerEXT,
+    &ext_glTbufferMask3DFX,
+    &ext_glTessellationFactorAMD,
+    &ext_glTessellationModeAMD,
+    &ext_glTestFenceAPPLE,
+    &ext_glTestFenceNV,
+    &ext_glTestObjectAPPLE,
+    &ext_glTexAttachMemoryNV,
+    &ext_glTexBuffer,
+    &ext_glTexBufferARB,
+    &ext_glTexBufferEXT,
+    &ext_glTexBufferRange,
+    &ext_glTexBumpParameterfvATI,
+    &ext_glTexBumpParameterivATI,
+    &ext_glTexCoord1bOES,
+    &ext_glTexCoord1bvOES,
+    &ext_glTexCoord1hNV,
+    &ext_glTexCoord1hvNV,
+    &ext_glTexCoord1xOES,
+    &ext_glTexCoord1xvOES,
+    &ext_glTexCoord2bOES,
+    &ext_glTexCoord2bvOES,
+    &ext_glTexCoord2fColor3fVertex3fSUN,
+    &ext_glTexCoord2fColor3fVertex3fvSUN,
+    &ext_glTexCoord2fColor4fNormal3fVertex3fSUN,
+    &ext_glTexCoord2fColor4fNormal3fVertex3fvSUN,
+    &ext_glTexCoord2fColor4ubVertex3fSUN,
+    &ext_glTexCoord2fColor4ubVertex3fvSUN,
+    &ext_glTexCoord2fNormal3fVertex3fSUN,
+    &ext_glTexCoord2fNormal3fVertex3fvSUN,
+    &ext_glTexCoord2fVertex3fSUN,
+    &ext_glTexCoord2fVertex3fvSUN,
+    &ext_glTexCoord2hNV,
+    &ext_glTexCoord2hvNV,
+    &ext_glTexCoord2xOES,
+    &ext_glTexCoord2xvOES,
+    &ext_glTexCoord3bOES,
+    &ext_glTexCoord3bvOES,
+    &ext_glTexCoord3hNV,
+    &ext_glTexCoord3hvNV,
+    &ext_glTexCoord3xOES,
+    &ext_glTexCoord3xvOES,
+    &ext_glTexCoord4bOES,
+    &ext_glTexCoord4bvOES,
+    &ext_glTexCoord4fColor4fNormal3fVertex4fSUN,
+    &ext_glTexCoord4fColor4fNormal3fVertex4fvSUN,
+    &ext_glTexCoord4fVertex4fSUN,
+    &ext_glTexCoord4fVertex4fvSUN,
+    &ext_glTexCoord4hNV,
+    &ext_glTexCoord4hvNV,
+    &ext_glTexCoord4xOES,
+    &ext_glTexCoord4xvOES,
+    &ext_glTexCoordFormatNV,
+    &ext_glTexCoordP1ui,
+    &ext_glTexCoordP1uiv,
+    &ext_glTexCoordP2ui,
+    &ext_glTexCoordP2uiv,
+    &ext_glTexCoordP3ui,
+    &ext_glTexCoordP3uiv,
+    &ext_glTexCoordP4ui,
+    &ext_glTexCoordP4uiv,
+    &ext_glTexCoordPointerEXT,
+    &ext_glTexCoordPointerListIBM,
+    &ext_glTexCoordPointervINTEL,
+    &ext_glTexEnvxOES,
+    &ext_glTexEnvxvOES,
+    &ext_glTexFilterFuncSGIS,
+    &ext_glTexGenxOES,
+    &ext_glTexGenxvOES,
+    &ext_glTexImage2DMultisample,
+    &ext_glTexImage2DMultisampleCoverageNV,
+    &ext_glTexImage3D,
+    &ext_glTexImage3DEXT,
+    &ext_glTexImage3DMultisample,
+    &ext_glTexImage3DMultisampleCoverageNV,
+    &ext_glTexImage4DSGIS,
+    &ext_glTexPageCommitmentARB,
+    &ext_glTexParameterIiv,
+    &ext_glTexParameterIivEXT,
+    &ext_glTexParameterIuiv,
+    &ext_glTexParameterIuivEXT,
+    &ext_glTexParameterxOES,
+    &ext_glTexParameterxvOES,
+    &ext_glTexRenderbufferNV,
+    &ext_glTexStorage1D,
+    &ext_glTexStorage2D,
+    &ext_glTexStorage2DMultisample,
+    &ext_glTexStorage3D,
+    &ext_glTexStorage3DMultisample,
+    &ext_glTexStorageMem1DEXT,
+    &ext_glTexStorageMem2DEXT,
+    &ext_glTexStorageMem2DMultisampleEXT,
+    &ext_glTexStorageMem3DEXT,
+    &ext_glTexStorageMem3DMultisampleEXT,
+    &ext_glTexStorageSparseAMD,
+    &ext_glTexSubImage1DEXT,
+    &ext_glTexSubImage2DEXT,
+    &ext_glTexSubImage3D,
+    &ext_glTexSubImage3DEXT,
+    &ext_glTexSubImage4DSGIS,
+    &ext_glTextureAttachMemoryNV,
+    &ext_glTextureBarrier,
+    &ext_glTextureBarrierNV,
+    &ext_glTextureBuffer,
+    &ext_glTextureBufferEXT,
+    &ext_glTextureBufferRange,
+    &ext_glTextureBufferRangeEXT,
+    &ext_glTextureColorMaskSGIS,
+    &ext_glTextureImage1DEXT,
+    &ext_glTextureImage2DEXT,
+    &ext_glTextureImage2DMultisampleCoverageNV,
+    &ext_glTextureImage2DMultisampleNV,
+    &ext_glTextureImage3DEXT,
+    &ext_glTextureImage3DMultisampleCoverageNV,
+    &ext_glTextureImage3DMultisampleNV,
+    &ext_glTextureLightEXT,
+    &ext_glTextureMaterialEXT,
+    &ext_glTextureNormalEXT,
+    &ext_glTexturePageCommitmentEXT,
+    &ext_glTextureParameterIiv,
+    &ext_glTextureParameterIivEXT,
+    &ext_glTextureParameterIuiv,
+    &ext_glTextureParameterIuivEXT,
+    &ext_glTextureParameterf,
+    &ext_glTextureParameterfEXT,
+    &ext_glTextureParameterfv,
+    &ext_glTextureParameterfvEXT,
+    &ext_glTextureParameteri,
+    &ext_glTextureParameteriEXT,
+    &ext_glTextureParameteriv,
+    &ext_glTextureParameterivEXT,
+    &ext_glTextureRangeAPPLE,
+    &ext_glTextureRenderbufferEXT,
+    &ext_glTextureStorage1D,
+    &ext_glTextureStorage1DEXT,
+    &ext_glTextureStorage2D,
+    &ext_glTextureStorage2DEXT,
+    &ext_glTextureStorage2DMultisample,
+    &ext_glTextureStorage2DMultisampleEXT,
+    &ext_glTextureStorage3D,
+    &ext_glTextureStorage3DEXT,
+    &ext_glTextureStorage3DMultisample,
+    &ext_glTextureStorage3DMultisampleEXT,
+    &ext_glTextureStorageMem1DEXT,
+    &ext_glTextureStorageMem2DEXT,
+    &ext_glTextureStorageMem2DMultisampleEXT,
+    &ext_glTextureStorageMem3DEXT,
+    &ext_glTextureStorageMem3DMultisampleEXT,
+    &ext_glTextureStorageSparseAMD,
+    &ext_glTextureSubImage1D,
+    &ext_glTextureSubImage1DEXT,
+    &ext_glTextureSubImage2D,
+    &ext_glTextureSubImage2DEXT,
+    &ext_glTextureSubImage3D,
+    &ext_glTextureSubImage3DEXT,
+    &ext_glTextureView,
+    &ext_glTrackMatrixNV,
+    &ext_glTransformFeedbackAttribsNV,
+    &ext_glTransformFeedbackBufferBase,
+    &ext_glTransformFeedbackBufferRange,
+    &ext_glTransformFeedbackStreamAttribsNV,
+    &ext_glTransformFeedbackVaryings,
+    &ext_glTransformFeedbackVaryingsEXT,
+    &ext_glTransformFeedbackVaryingsNV,
+    &ext_glTransformPathNV,
+    &ext_glTranslatexOES,
+    &ext_glUniform1d,
+    &ext_glUniform1dv,
+    &ext_glUniform1f,
+    &ext_glUniform1fARB,
+    &ext_glUniform1fv,
+    &ext_glUniform1fvARB,
+    &ext_glUniform1i,
+    &ext_glUniform1i64ARB,
+    &ext_glUniform1i64NV,
+    &ext_glUniform1i64vARB,
+    &ext_glUniform1i64vNV,
+    &ext_glUniform1iARB,
+    &ext_glUniform1iv,
+    &ext_glUniform1ivARB,
+    &ext_glUniform1ui,
+    &ext_glUniform1ui64ARB,
+    &ext_glUniform1ui64NV,
+    &ext_glUniform1ui64vARB,
+    &ext_glUniform1ui64vNV,
+    &ext_glUniform1uiEXT,
+    &ext_glUniform1uiv,
+    &ext_glUniform1uivEXT,
+    &ext_glUniform2d,
+    &ext_glUniform2dv,
+    &ext_glUniform2f,
+    &ext_glUniform2fARB,
+    &ext_glUniform2fv,
+    &ext_glUniform2fvARB,
+    &ext_glUniform2i,
+    &ext_glUniform2i64ARB,
+    &ext_glUniform2i64NV,
+    &ext_glUniform2i64vARB,
+    &ext_glUniform2i64vNV,
+    &ext_glUniform2iARB,
+    &ext_glUniform2iv,
+    &ext_glUniform2ivARB,
+    &ext_glUniform2ui,
+    &ext_glUniform2ui64ARB,
+    &ext_glUniform2ui64NV,
+    &ext_glUniform2ui64vARB,
+    &ext_glUniform2ui64vNV,
+    &ext_glUniform2uiEXT,
+    &ext_glUniform2uiv,
+    &ext_glUniform2uivEXT,
+    &ext_glUniform3d,
+    &ext_glUniform3dv,
+    &ext_glUniform3f,
+    &ext_glUniform3fARB,
+    &ext_glUniform3fv,
+    &ext_glUniform3fvARB,
+    &ext_glUniform3i,
+    &ext_glUniform3i64ARB,
+    &ext_glUniform3i64NV,
+    &ext_glUniform3i64vARB,
+    &ext_glUniform3i64vNV,
+    &ext_glUniform3iARB,
+    &ext_glUniform3iv,
+    &ext_glUniform3ivARB,
+    &ext_glUniform3ui,
+    &ext_glUniform3ui64ARB,
+    &ext_glUniform3ui64NV,
+    &ext_glUniform3ui64vARB,
+    &ext_glUniform3ui64vNV,
+    &ext_glUniform3uiEXT,
+    &ext_glUniform3uiv,
+    &ext_glUniform3uivEXT,
+    &ext_glUniform4d,
+    &ext_glUniform4dv,
+    &ext_glUniform4f,
+    &ext_glUniform4fARB,
+    &ext_glUniform4fv,
+    &ext_glUniform4fvARB,
+    &ext_glUniform4i,
+    &ext_glUniform4i64ARB,
+    &ext_glUniform4i64NV,
+    &ext_glUniform4i64vARB,
+    &ext_glUniform4i64vNV,
+    &ext_glUniform4iARB,
+    &ext_glUniform4iv,
+    &ext_glUniform4ivARB,
+    &ext_glUniform4ui,
+    &ext_glUniform4ui64ARB,
+    &ext_glUniform4ui64NV,
+    &ext_glUniform4ui64vARB,
+    &ext_glUniform4ui64vNV,
+    &ext_glUniform4uiEXT,
+    &ext_glUniform4uiv,
+    &ext_glUniform4uivEXT,
+    &ext_glUniformBlockBinding,
+    &ext_glUniformBufferEXT,
+    &ext_glUniformHandleui64ARB,
+    &ext_glUniformHandleui64NV,
+    &ext_glUniformHandleui64vARB,
+    &ext_glUniformHandleui64vNV,
+    &ext_glUniformMatrix2dv,
+    &ext_glUniformMatrix2fv,
+    &ext_glUniformMatrix2fvARB,
+    &ext_glUniformMatrix2x3dv,
+    &ext_glUniformMatrix2x3fv,
+    &ext_glUniformMatrix2x4dv,
+    &ext_glUniformMatrix2x4fv,
+    &ext_glUniformMatrix3dv,
+    &ext_glUniformMatrix3fv,
+    &ext_glUniformMatrix3fvARB,
+    &ext_glUniformMatrix3x2dv,
+    &ext_glUniformMatrix3x2fv,
+    &ext_glUniformMatrix3x4dv,
+    &ext_glUniformMatrix3x4fv,
+    &ext_glUniformMatrix4dv,
+    &ext_glUniformMatrix4fv,
+    &ext_glUniformMatrix4fvARB,
+    &ext_glUniformMatrix4x2dv,
+    &ext_glUniformMatrix4x2fv,
+    &ext_glUniformMatrix4x3dv,
+    &ext_glUniformMatrix4x3fv,
+    &ext_glUniformSubroutinesuiv,
+    &ext_glUniformui64NV,
+    &ext_glUniformui64vNV,
+    &ext_glUnlockArraysEXT,
+    &ext_glUnmapBuffer,
+    &ext_glUnmapBufferARB,
+    &ext_glUnmapNamedBuffer,
+    &ext_glUnmapNamedBufferEXT,
+    &ext_glUnmapObjectBufferATI,
+    &ext_glUnmapTexture2DINTEL,
+    &ext_glUpdateObjectBufferATI,
+    &ext_glUploadGpuMaskNVX,
+    &ext_glUseProgram,
+    &ext_glUseProgramObjectARB,
+    &ext_glUseProgramStages,
+    &ext_glUseShaderProgramEXT,
+    &ext_glVDPAUFiniNV,
+    &ext_glVDPAUGetSurfaceivNV,
+    &ext_glVDPAUInitNV,
+    &ext_glVDPAUIsSurfaceNV,
+    &ext_glVDPAUMapSurfacesNV,
+    &ext_glVDPAURegisterOutputSurfaceNV,
+    &ext_glVDPAURegisterVideoSurfaceNV,
+    &ext_glVDPAURegisterVideoSurfaceWithPictureStructureNV,
+    &ext_glVDPAUSurfaceAccessNV,
+    &ext_glVDPAUUnmapSurfacesNV,
+    &ext_glVDPAUUnregisterSurfaceNV,
+    &ext_glValidateProgram,
+    &ext_glValidateProgramARB,
+    &ext_glValidateProgramPipeline,
+    &ext_glVariantArrayObjectATI,
+    &ext_glVariantPointerEXT,
+    &ext_glVariantbvEXT,
+    &ext_glVariantdvEXT,
+    &ext_glVariantfvEXT,
+    &ext_glVariantivEXT,
+    &ext_glVariantsvEXT,
+    &ext_glVariantubvEXT,
+    &ext_glVariantuivEXT,
+    &ext_glVariantusvEXT,
+    &ext_glVertex2bOES,
+    &ext_glVertex2bvOES,
+    &ext_glVertex2hNV,
+    &ext_glVertex2hvNV,
+    &ext_glVertex2xOES,
+    &ext_glVertex2xvOES,
+    &ext_glVertex3bOES,
+    &ext_glVertex3bvOES,
+    &ext_glVertex3hNV,
+    &ext_glVertex3hvNV,
+    &ext_glVertex3xOES,
+    &ext_glVertex3xvOES,
+    &ext_glVertex4bOES,
+    &ext_glVertex4bvOES,
+    &ext_glVertex4hNV,
+    &ext_glVertex4hvNV,
+    &ext_glVertex4xOES,
+    &ext_glVertex4xvOES,
+    &ext_glVertexArrayAttribBinding,
+    &ext_glVertexArrayAttribFormat,
+    &ext_glVertexArrayAttribIFormat,
+    &ext_glVertexArrayAttribLFormat,
+    &ext_glVertexArrayBindVertexBufferEXT,
+    &ext_glVertexArrayBindingDivisor,
+    &ext_glVertexArrayColorOffsetEXT,
+    &ext_glVertexArrayEdgeFlagOffsetEXT,
+    &ext_glVertexArrayElementBuffer,
+    &ext_glVertexArrayFogCoordOffsetEXT,
+    &ext_glVertexArrayIndexOffsetEXT,
+    &ext_glVertexArrayMultiTexCoordOffsetEXT,
+    &ext_glVertexArrayNormalOffsetEXT,
+    &ext_glVertexArrayParameteriAPPLE,
+    &ext_glVertexArrayRangeAPPLE,
+    &ext_glVertexArrayRangeNV,
+    &ext_glVertexArraySecondaryColorOffsetEXT,
+    &ext_glVertexArrayTexCoordOffsetEXT,
+    &ext_glVertexArrayVertexAttribBindingEXT,
+    &ext_glVertexArrayVertexAttribDivisorEXT,
+    &ext_glVertexArrayVertexAttribFormatEXT,
+    &ext_glVertexArrayVertexAttribIFormatEXT,
+    &ext_glVertexArrayVertexAttribIOffsetEXT,
+    &ext_glVertexArrayVertexAttribLFormatEXT,
+    &ext_glVertexArrayVertexAttribLOffsetEXT,
+    &ext_glVertexArrayVertexAttribOffsetEXT,
+    &ext_glVertexArrayVertexBindingDivisorEXT,
+    &ext_glVertexArrayVertexBuffer,
+    &ext_glVertexArrayVertexBuffers,
+    &ext_glVertexArrayVertexOffsetEXT,
+    &ext_glVertexAttrib1d,
+    &ext_glVertexAttrib1dARB,
+    &ext_glVertexAttrib1dNV,
+    &ext_glVertexAttrib1dv,
+    &ext_glVertexAttrib1dvARB,
+    &ext_glVertexAttrib1dvNV,
+    &ext_glVertexAttrib1f,
+    &ext_glVertexAttrib1fARB,
+    &ext_glVertexAttrib1fNV,
+    &ext_glVertexAttrib1fv,
+    &ext_glVertexAttrib1fvARB,
+    &ext_glVertexAttrib1fvNV,
+    &ext_glVertexAttrib1hNV,
+    &ext_glVertexAttrib1hvNV,
+    &ext_glVertexAttrib1s,
+    &ext_glVertexAttrib1sARB,
+    &ext_glVertexAttrib1sNV,
+    &ext_glVertexAttrib1sv,
+    &ext_glVertexAttrib1svARB,
+    &ext_glVertexAttrib1svNV,
+    &ext_glVertexAttrib2d,
+    &ext_glVertexAttrib2dARB,
+    &ext_glVertexAttrib2dNV,
+    &ext_glVertexAttrib2dv,
+    &ext_glVertexAttrib2dvARB,
+    &ext_glVertexAttrib2dvNV,
+    &ext_glVertexAttrib2f,
+    &ext_glVertexAttrib2fARB,
+    &ext_glVertexAttrib2fNV,
+    &ext_glVertexAttrib2fv,
+    &ext_glVertexAttrib2fvARB,
+    &ext_glVertexAttrib2fvNV,
+    &ext_glVertexAttrib2hNV,
+    &ext_glVertexAttrib2hvNV,
+    &ext_glVertexAttrib2s,
+    &ext_glVertexAttrib2sARB,
+    &ext_glVertexAttrib2sNV,
+    &ext_glVertexAttrib2sv,
+    &ext_glVertexAttrib2svARB,
+    &ext_glVertexAttrib2svNV,
+    &ext_glVertexAttrib3d,
+    &ext_glVertexAttrib3dARB,
+    &ext_glVertexAttrib3dNV,
+    &ext_glVertexAttrib3dv,
+    &ext_glVertexAttrib3dvARB,
+    &ext_glVertexAttrib3dvNV,
+    &ext_glVertexAttrib3f,
+    &ext_glVertexAttrib3fARB,
+    &ext_glVertexAttrib3fNV,
+    &ext_glVertexAttrib3fv,
+    &ext_glVertexAttrib3fvARB,
+    &ext_glVertexAttrib3fvNV,
+    &ext_glVertexAttrib3hNV,
+    &ext_glVertexAttrib3hvNV,
+    &ext_glVertexAttrib3s,
+    &ext_glVertexAttrib3sARB,
+    &ext_glVertexAttrib3sNV,
+    &ext_glVertexAttrib3sv,
+    &ext_glVertexAttrib3svARB,
+    &ext_glVertexAttrib3svNV,
+    &ext_glVertexAttrib4Nbv,
+    &ext_glVertexAttrib4NbvARB,
+    &ext_glVertexAttrib4Niv,
+    &ext_glVertexAttrib4NivARB,
+    &ext_glVertexAttrib4Nsv,
+    &ext_glVertexAttrib4NsvARB,
+    &ext_glVertexAttrib4Nub,
+    &ext_glVertexAttrib4NubARB,
+    &ext_glVertexAttrib4Nubv,
+    &ext_glVertexAttrib4NubvARB,
+    &ext_glVertexAttrib4Nuiv,
+    &ext_glVertexAttrib4NuivARB,
+    &ext_glVertexAttrib4Nusv,
+    &ext_glVertexAttrib4NusvARB,
+    &ext_glVertexAttrib4bv,
+    &ext_glVertexAttrib4bvARB,
+    &ext_glVertexAttrib4d,
+    &ext_glVertexAttrib4dARB,
+    &ext_glVertexAttrib4dNV,
+    &ext_glVertexAttrib4dv,
+    &ext_glVertexAttrib4dvARB,
+    &ext_glVertexAttrib4dvNV,
+    &ext_glVertexAttrib4f,
+    &ext_glVertexAttrib4fARB,
+    &ext_glVertexAttrib4fNV,
+    &ext_glVertexAttrib4fv,
+    &ext_glVertexAttrib4fvARB,
+    &ext_glVertexAttrib4fvNV,
+    &ext_glVertexAttrib4hNV,
+    &ext_glVertexAttrib4hvNV,
+    &ext_glVertexAttrib4iv,
+    &ext_glVertexAttrib4ivARB,
+    &ext_glVertexAttrib4s,
+    &ext_glVertexAttrib4sARB,
+    &ext_glVertexAttrib4sNV,
+    &ext_glVertexAttrib4sv,
+    &ext_glVertexAttrib4svARB,
+    &ext_glVertexAttrib4svNV,
+    &ext_glVertexAttrib4ubNV,
+    &ext_glVertexAttrib4ubv,
+    &ext_glVertexAttrib4ubvARB,
+    &ext_glVertexAttrib4ubvNV,
+    &ext_glVertexAttrib4uiv,
+    &ext_glVertexAttrib4uivARB,
+    &ext_glVertexAttrib4usv,
+    &ext_glVertexAttrib4usvARB,
+    &ext_glVertexAttribArrayObjectATI,
+    &ext_glVertexAttribBinding,
+    &ext_glVertexAttribDivisor,
+    &ext_glVertexAttribDivisorARB,
+    &ext_glVertexAttribFormat,
+    &ext_glVertexAttribFormatNV,
+    &ext_glVertexAttribI1i,
+    &ext_glVertexAttribI1iEXT,
+    &ext_glVertexAttribI1iv,
+    &ext_glVertexAttribI1ivEXT,
+    &ext_glVertexAttribI1ui,
+    &ext_glVertexAttribI1uiEXT,
+    &ext_glVertexAttribI1uiv,
+    &ext_glVertexAttribI1uivEXT,
+    &ext_glVertexAttribI2i,
+    &ext_glVertexAttribI2iEXT,
+    &ext_glVertexAttribI2iv,
+    &ext_glVertexAttribI2ivEXT,
+    &ext_glVertexAttribI2ui,
+    &ext_glVertexAttribI2uiEXT,
+    &ext_glVertexAttribI2uiv,
+    &ext_glVertexAttribI2uivEXT,
+    &ext_glVertexAttribI3i,
+    &ext_glVertexAttribI3iEXT,
+    &ext_glVertexAttribI3iv,
+    &ext_glVertexAttribI3ivEXT,
+    &ext_glVertexAttribI3ui,
+    &ext_glVertexAttribI3uiEXT,
+    &ext_glVertexAttribI3uiv,
+    &ext_glVertexAttribI3uivEXT,
+    &ext_glVertexAttribI4bv,
+    &ext_glVertexAttribI4bvEXT,
+    &ext_glVertexAttribI4i,
+    &ext_glVertexAttribI4iEXT,
+    &ext_glVertexAttribI4iv,
+    &ext_glVertexAttribI4ivEXT,
+    &ext_glVertexAttribI4sv,
+    &ext_glVertexAttribI4svEXT,
+    &ext_glVertexAttribI4ubv,
+    &ext_glVertexAttribI4ubvEXT,
+    &ext_glVertexAttribI4ui,
+    &ext_glVertexAttribI4uiEXT,
+    &ext_glVertexAttribI4uiv,
+    &ext_glVertexAttribI4uivEXT,
+    &ext_glVertexAttribI4usv,
+    &ext_glVertexAttribI4usvEXT,
+    &ext_glVertexAttribIFormat,
+    &ext_glVertexAttribIFormatNV,
+    &ext_glVertexAttribIPointer,
+    &ext_glVertexAttribIPointerEXT,
+    &ext_glVertexAttribL1d,
+    &ext_glVertexAttribL1dEXT,
+    &ext_glVertexAttribL1dv,
+    &ext_glVertexAttribL1dvEXT,
+    &ext_glVertexAttribL1i64NV,
+    &ext_glVertexAttribL1i64vNV,
+    &ext_glVertexAttribL1ui64ARB,
+    &ext_glVertexAttribL1ui64NV,
+    &ext_glVertexAttribL1ui64vARB,
+    &ext_glVertexAttribL1ui64vNV,
+    &ext_glVertexAttribL2d,
+    &ext_glVertexAttribL2dEXT,
+    &ext_glVertexAttribL2dv,
+    &ext_glVertexAttribL2dvEXT,
+    &ext_glVertexAttribL2i64NV,
+    &ext_glVertexAttribL2i64vNV,
+    &ext_glVertexAttribL2ui64NV,
+    &ext_glVertexAttribL2ui64vNV,
+    &ext_glVertexAttribL3d,
+    &ext_glVertexAttribL3dEXT,
+    &ext_glVertexAttribL3dv,
+    &ext_glVertexAttribL3dvEXT,
+    &ext_glVertexAttribL3i64NV,
+    &ext_glVertexAttribL3i64vNV,
+    &ext_glVertexAttribL3ui64NV,
+    &ext_glVertexAttribL3ui64vNV,
+    &ext_glVertexAttribL4d,
+    &ext_glVertexAttribL4dEXT,
+    &ext_glVertexAttribL4dv,
+    &ext_glVertexAttribL4dvEXT,
+    &ext_glVertexAttribL4i64NV,
+    &ext_glVertexAttribL4i64vNV,
+    &ext_glVertexAttribL4ui64NV,
+    &ext_glVertexAttribL4ui64vNV,
+    &ext_glVertexAttribLFormat,
+    &ext_glVertexAttribLFormatNV,
+    &ext_glVertexAttribLPointer,
+    &ext_glVertexAttribLPointerEXT,
+    &ext_glVertexAttribP1ui,
+    &ext_glVertexAttribP1uiv,
+    &ext_glVertexAttribP2ui,
+    &ext_glVertexAttribP2uiv,
+    &ext_glVertexAttribP3ui,
+    &ext_glVertexAttribP3uiv,
+    &ext_glVertexAttribP4ui,
+    &ext_glVertexAttribP4uiv,
+    &ext_glVertexAttribParameteriAMD,
+    &ext_glVertexAttribPointer,
+    &ext_glVertexAttribPointerARB,
+    &ext_glVertexAttribPointerNV,
+    &ext_glVertexAttribs1dvNV,
+    &ext_glVertexAttribs1fvNV,
+    &ext_glVertexAttribs1hvNV,
+    &ext_glVertexAttribs1svNV,
+    &ext_glVertexAttribs2dvNV,
+    &ext_glVertexAttribs2fvNV,
+    &ext_glVertexAttribs2hvNV,
+    &ext_glVertexAttribs2svNV,
+    &ext_glVertexAttribs3dvNV,
+    &ext_glVertexAttribs3fvNV,
+    &ext_glVertexAttribs3hvNV,
+    &ext_glVertexAttribs3svNV,
+    &ext_glVertexAttribs4dvNV,
+    &ext_glVertexAttribs4fvNV,
+    &ext_glVertexAttribs4hvNV,
+    &ext_glVertexAttribs4svNV,
+    &ext_glVertexAttribs4ubvNV,
+    &ext_glVertexBindingDivisor,
+    &ext_glVertexBlendARB,
+    &ext_glVertexBlendEnvfATI,
+    &ext_glVertexBlendEnviATI,
+    &ext_glVertexFormatNV,
+    &ext_glVertexP2ui,
+    &ext_glVertexP2uiv,
+    &ext_glVertexP3ui,
+    &ext_glVertexP3uiv,
+    &ext_glVertexP4ui,
+    &ext_glVertexP4uiv,
+    &ext_glVertexPointerEXT,
+    &ext_glVertexPointerListIBM,
+    &ext_glVertexPointervINTEL,
+    &ext_glVertexStream1dATI,
+    &ext_glVertexStream1dvATI,
+    &ext_glVertexStream1fATI,
+    &ext_glVertexStream1fvATI,
+    &ext_glVertexStream1iATI,
+    &ext_glVertexStream1ivATI,
+    &ext_glVertexStream1sATI,
+    &ext_glVertexStream1svATI,
+    &ext_glVertexStream2dATI,
+    &ext_glVertexStream2dvATI,
+    &ext_glVertexStream2fATI,
+    &ext_glVertexStream2fvATI,
+    &ext_glVertexStream2iATI,
+    &ext_glVertexStream2ivATI,
+    &ext_glVertexStream2sATI,
+    &ext_glVertexStream2svATI,
+    &ext_glVertexStream3dATI,
+    &ext_glVertexStream3dvATI,
+    &ext_glVertexStream3fATI,
+    &ext_glVertexStream3fvATI,
+    &ext_glVertexStream3iATI,
+    &ext_glVertexStream3ivATI,
+    &ext_glVertexStream3sATI,
+    &ext_glVertexStream3svATI,
+    &ext_glVertexStream4dATI,
+    &ext_glVertexStream4dvATI,
+    &ext_glVertexStream4fATI,
+    &ext_glVertexStream4fvATI,
+    &ext_glVertexStream4iATI,
+    &ext_glVertexStream4ivATI,
+    &ext_glVertexStream4sATI,
+    &ext_glVertexStream4svATI,
+    &ext_glVertexWeightPointerEXT,
+    &ext_glVertexWeightfEXT,
+    &ext_glVertexWeightfvEXT,
+    &ext_glVertexWeighthNV,
+    &ext_glVertexWeighthvNV,
+    &ext_glVideoCaptureNV,
+    &ext_glVideoCaptureStreamParameterdvNV,
+    &ext_glVideoCaptureStreamParameterfvNV,
+    &ext_glVideoCaptureStreamParameterivNV,
+    &ext_glViewportArrayv,
+    &ext_glViewportIndexedf,
+    &ext_glViewportIndexedfv,
+    &ext_glViewportPositionWScaleNV,
+    &ext_glViewportSwizzleNV,
+    &ext_glWaitSemaphoreEXT,
+    &ext_glWaitSemaphoreui64NVX,
+    &ext_glWaitSync,
+    &ext_glWaitVkSemaphoreNV,
+    &ext_glWeightPathsNV,
+    &ext_glWeightPointerARB,
+    &ext_glWeightbvARB,
+    &ext_glWeightdvARB,
+    &ext_glWeightfvARB,
+    &ext_glWeightivARB,
+    &ext_glWeightsvARB,
+    &ext_glWeightubvARB,
+    &ext_glWeightuivARB,
+    &ext_glWeightusvARB,
+    &ext_glWindowPos2d,
+    &ext_glWindowPos2dARB,
+    &ext_glWindowPos2dMESA,
+    &ext_glWindowPos2dv,
+    &ext_glWindowPos2dvARB,
+    &ext_glWindowPos2dvMESA,
+    &ext_glWindowPos2f,
+    &ext_glWindowPos2fARB,
+    &ext_glWindowPos2fMESA,
+    &ext_glWindowPos2fv,
+    &ext_glWindowPos2fvARB,
+    &ext_glWindowPos2fvMESA,
+    &ext_glWindowPos2i,
+    &ext_glWindowPos2iARB,
+    &ext_glWindowPos2iMESA,
+    &ext_glWindowPos2iv,
+    &ext_glWindowPos2ivARB,
+    &ext_glWindowPos2ivMESA,
+    &ext_glWindowPos2s,
+    &ext_glWindowPos2sARB,
+    &ext_glWindowPos2sMESA,
+    &ext_glWindowPos2sv,
+    &ext_glWindowPos2svARB,
+    &ext_glWindowPos2svMESA,
+    &ext_glWindowPos3d,
+    &ext_glWindowPos3dARB,
+    &ext_glWindowPos3dMESA,
+    &ext_glWindowPos3dv,
+    &ext_glWindowPos3dvARB,
+    &ext_glWindowPos3dvMESA,
+    &ext_glWindowPos3f,
+    &ext_glWindowPos3fARB,
+    &ext_glWindowPos3fMESA,
+    &ext_glWindowPos3fv,
+    &ext_glWindowPos3fvARB,
+    &ext_glWindowPos3fvMESA,
+    &ext_glWindowPos3i,
+    &ext_glWindowPos3iARB,
+    &ext_glWindowPos3iMESA,
+    &ext_glWindowPos3iv,
+    &ext_glWindowPos3ivARB,
+    &ext_glWindowPos3ivMESA,
+    &ext_glWindowPos3s,
+    &ext_glWindowPos3sARB,
+    &ext_glWindowPos3sMESA,
+    &ext_glWindowPos3sv,
+    &ext_glWindowPos3svARB,
+    &ext_glWindowPos3svMESA,
+    &ext_glWindowPos4dMESA,
+    &ext_glWindowPos4dvMESA,
+    &ext_glWindowPos4fMESA,
+    &ext_glWindowPos4fvMESA,
+    &ext_glWindowPos4iMESA,
+    &ext_glWindowPos4ivMESA,
+    &ext_glWindowPos4sMESA,
+    &ext_glWindowPos4svMESA,
+    &ext_glWindowRectanglesEXT,
+    &ext_glWriteMaskEXT,
+    &ext_wglAllocateMemoryNV,
+    &ext_wglBindTexImageARB,
+    &ext_wglChoosePixelFormatARB,
+    &ext_wglCreateContextAttribsARB,
+    &ext_wglCreatePbufferARB,
+    &ext_wglDestroyPbufferARB,
+    &ext_wglFreeMemoryNV,
+    &ext_wglGetCurrentReadDCARB,
+    &ext_wglGetExtensionsStringARB,
+    &ext_wglGetExtensionsStringEXT,
+    &ext_wglGetPbufferDCARB,
+    &ext_wglGetPixelFormatAttribfvARB,
+    &ext_wglGetPixelFormatAttribivARB,
+    &ext_wglGetSwapIntervalEXT,
+    &ext_wglMakeContextCurrentARB,
+    &ext_wglQueryCurrentRendererIntegerWINE,
+    &ext_wglQueryCurrentRendererStringWINE,
+    &ext_wglQueryPbufferARB,
+    &ext_wglQueryRendererIntegerWINE,
+    &ext_wglQueryRendererStringWINE,
+    &ext_wglReleasePbufferDCARB,
+    &ext_wglReleaseTexImageARB,
+    &ext_wglSetPbufferAttribARB,
+    &ext_wglSetPixelFormatWINE,
+    &ext_wglSwapIntervalEXT,
 };
 
 static BOOL WINAPI null_wglCopyContext( struct wgl_context * hglrcSrc, struct wgl_context * hglrcDst, UINT mask ) { return 0; }
diff --git a/dlls/opengl32/unixlib.h b/dlls/opengl32/unixlib.h
index a99d9c8e729..a85e23402ea 100644
--- a/dlls/opengl32/unixlib.h
+++ b/dlls/opengl32/unixlib.h
@@ -2153,6 +2153,20075 @@ struct glViewport_params
     GLsizei height;
 };
 
+struct glAccumxOES_params
+{
+    GLenum op;
+    GLfixed value;
+};
+
+struct glAcquireKeyedMutexWin32EXT_params
+{
+    GLuint memory;
+    GLuint64 key;
+    GLuint timeout;
+    GLboolean ret;
+};
+
+struct glActiveProgramEXT_params
+{
+    GLuint program;
+};
+
+struct glActiveShaderProgram_params
+{
+    GLuint pipeline;
+    GLuint program;
+};
+
+struct glActiveStencilFaceEXT_params
+{
+    GLenum face;
+};
+
+struct glActiveTexture_params
+{
+    GLenum texture;
+};
+
+struct glActiveTextureARB_params
+{
+    GLenum texture;
+};
+
+struct glActiveVaryingNV_params
+{
+    GLuint program;
+    const GLchar *name;
+};
+
+struct glAlphaFragmentOp1ATI_params
+{
+    GLenum op;
+    GLuint dst;
+    GLuint dstMod;
+    GLuint arg1;
+    GLuint arg1Rep;
+    GLuint arg1Mod;
+};
+
+struct glAlphaFragmentOp2ATI_params
+{
+    GLenum op;
+    GLuint dst;
+    GLuint dstMod;
+    GLuint arg1;
+    GLuint arg1Rep;
+    GLuint arg1Mod;
+    GLuint arg2;
+    GLuint arg2Rep;
+    GLuint arg2Mod;
+};
+
+struct glAlphaFragmentOp3ATI_params
+{
+    GLenum op;
+    GLuint dst;
+    GLuint dstMod;
+    GLuint arg1;
+    GLuint arg1Rep;
+    GLuint arg1Mod;
+    GLuint arg2;
+    GLuint arg2Rep;
+    GLuint arg2Mod;
+    GLuint arg3;
+    GLuint arg3Rep;
+    GLuint arg3Mod;
+};
+
+struct glAlphaFuncxOES_params
+{
+    GLenum func;
+    GLfixed ref;
+};
+
+struct glAlphaToCoverageDitherControlNV_params
+{
+    GLenum mode;
+};
+
+struct glApplyFramebufferAttachmentCMAAINTEL_params
+{
+};
+
+struct glApplyTextureEXT_params
+{
+    GLenum mode;
+};
+
+struct glAreProgramsResidentNV_params
+{
+    GLsizei n;
+    const GLuint *programs;
+    GLboolean *residences;
+    GLboolean ret;
+};
+
+struct glAreTexturesResidentEXT_params
+{
+    GLsizei n;
+    const GLuint *textures;
+    GLboolean *residences;
+    GLboolean ret;
+};
+
+struct glArrayElementEXT_params
+{
+    GLint i;
+};
+
+struct glArrayObjectATI_params
+{
+    GLenum array;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    GLuint buffer;
+    GLuint offset;
+};
+
+struct glAsyncCopyBufferSubDataNVX_params
+{
+    GLsizei waitSemaphoreCount;
+    const GLuint *waitSemaphoreArray;
+    const GLuint64 *fenceValueArray;
+    GLuint readGpu;
+    GLbitfield writeGpuMask;
+    GLuint readBuffer;
+    GLuint writeBuffer;
+    GLintptr readOffset;
+    GLintptr writeOffset;
+    GLsizeiptr size;
+    GLsizei signalSemaphoreCount;
+    const GLuint *signalSemaphoreArray;
+    const GLuint64 *signalValueArray;
+    GLuint ret;
+};
+
+struct glAsyncCopyImageSubDataNVX_params
+{
+    GLsizei waitSemaphoreCount;
+    const GLuint *waitSemaphoreArray;
+    const GLuint64 *waitValueArray;
+    GLuint srcGpu;
+    GLbitfield dstGpuMask;
+    GLuint srcName;
+    GLenum srcTarget;
+    GLint srcLevel;
+    GLint srcX;
+    GLint srcY;
+    GLint srcZ;
+    GLuint dstName;
+    GLenum dstTarget;
+    GLint dstLevel;
+    GLint dstX;
+    GLint dstY;
+    GLint dstZ;
+    GLsizei srcWidth;
+    GLsizei srcHeight;
+    GLsizei srcDepth;
+    GLsizei signalSemaphoreCount;
+    const GLuint *signalSemaphoreArray;
+    const GLuint64 *signalValueArray;
+    GLuint ret;
+};
+
+struct glAsyncMarkerSGIX_params
+{
+    GLuint marker;
+};
+
+struct glAttachObjectARB_params
+{
+    GLhandleARB containerObj;
+    GLhandleARB obj;
+};
+
+struct glAttachShader_params
+{
+    GLuint program;
+    GLuint shader;
+};
+
+struct glBeginConditionalRender_params
+{
+    GLuint id;
+    GLenum mode;
+};
+
+struct glBeginConditionalRenderNV_params
+{
+    GLuint id;
+    GLenum mode;
+};
+
+struct glBeginConditionalRenderNVX_params
+{
+    GLuint id;
+};
+
+struct glBeginFragmentShaderATI_params
+{
+};
+
+struct glBeginOcclusionQueryNV_params
+{
+    GLuint id;
+};
+
+struct glBeginPerfMonitorAMD_params
+{
+    GLuint monitor;
+};
+
+struct glBeginPerfQueryINTEL_params
+{
+    GLuint queryHandle;
+};
+
+struct glBeginQuery_params
+{
+    GLenum target;
+    GLuint id;
+};
+
+struct glBeginQueryARB_params
+{
+    GLenum target;
+    GLuint id;
+};
+
+struct glBeginQueryIndexed_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint id;
+};
+
+struct glBeginTransformFeedback_params
+{
+    GLenum primitiveMode;
+};
+
+struct glBeginTransformFeedbackEXT_params
+{
+    GLenum primitiveMode;
+};
+
+struct glBeginTransformFeedbackNV_params
+{
+    GLenum primitiveMode;
+};
+
+struct glBeginVertexShaderEXT_params
+{
+};
+
+struct glBeginVideoCaptureNV_params
+{
+    GLuint video_capture_slot;
+};
+
+struct glBindAttribLocation_params
+{
+    GLuint program;
+    GLuint index;
+    const GLchar *name;
+};
+
+struct glBindAttribLocationARB_params
+{
+    GLhandleARB programObj;
+    GLuint index;
+    const GLcharARB *name;
+};
+
+struct glBindBuffer_params
+{
+    GLenum target;
+    GLuint buffer;
+};
+
+struct glBindBufferARB_params
+{
+    GLenum target;
+    GLuint buffer;
+};
+
+struct glBindBufferBase_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint buffer;
+};
+
+struct glBindBufferBaseEXT_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint buffer;
+};
+
+struct glBindBufferBaseNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint buffer;
+};
+
+struct glBindBufferOffsetEXT_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint buffer;
+    GLintptr offset;
+};
+
+struct glBindBufferOffsetNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint buffer;
+    GLintptr offset;
+};
+
+struct glBindBufferRange_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+};
+
+struct glBindBufferRangeEXT_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+};
+
+struct glBindBufferRangeNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+};
+
+struct glBindBuffersBase_params
+{
+    GLenum target;
+    GLuint first;
+    GLsizei count;
+    const GLuint *buffers;
+};
+
+struct glBindBuffersRange_params
+{
+    GLenum target;
+    GLuint first;
+    GLsizei count;
+    const GLuint *buffers;
+    const GLintptr *offsets;
+    const GLsizeiptr *sizes;
+};
+
+struct glBindFragDataLocation_params
+{
+    GLuint program;
+    GLuint color;
+    const GLchar *name;
+};
+
+struct glBindFragDataLocationEXT_params
+{
+    GLuint program;
+    GLuint color;
+    const GLchar *name;
+};
+
+struct glBindFragDataLocationIndexed_params
+{
+    GLuint program;
+    GLuint colorNumber;
+    GLuint index;
+    const GLchar *name;
+};
+
+struct glBindFragmentShaderATI_params
+{
+    GLuint id;
+};
+
+struct glBindFramebuffer_params
+{
+    GLenum target;
+    GLuint framebuffer;
+};
+
+struct glBindFramebufferEXT_params
+{
+    GLenum target;
+    GLuint framebuffer;
+};
+
+struct glBindImageTexture_params
+{
+    GLuint unit;
+    GLuint texture;
+    GLint level;
+    GLboolean layered;
+    GLint layer;
+    GLenum access;
+    GLenum format;
+};
+
+struct glBindImageTextureEXT_params
+{
+    GLuint index;
+    GLuint texture;
+    GLint level;
+    GLboolean layered;
+    GLint layer;
+    GLenum access;
+    GLint format;
+};
+
+struct glBindImageTextures_params
+{
+    GLuint first;
+    GLsizei count;
+    const GLuint *textures;
+};
+
+struct glBindLightParameterEXT_params
+{
+    GLenum light;
+    GLenum value;
+    GLuint ret;
+};
+
+struct glBindMaterialParameterEXT_params
+{
+    GLenum face;
+    GLenum value;
+    GLuint ret;
+};
+
+struct glBindMultiTextureEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLuint texture;
+};
+
+struct glBindParameterEXT_params
+{
+    GLenum value;
+    GLuint ret;
+};
+
+struct glBindProgramARB_params
+{
+    GLenum target;
+    GLuint program;
+};
+
+struct glBindProgramNV_params
+{
+    GLenum target;
+    GLuint id;
+};
+
+struct glBindProgramPipeline_params
+{
+    GLuint pipeline;
+};
+
+struct glBindRenderbuffer_params
+{
+    GLenum target;
+    GLuint renderbuffer;
+};
+
+struct glBindRenderbufferEXT_params
+{
+    GLenum target;
+    GLuint renderbuffer;
+};
+
+struct glBindSampler_params
+{
+    GLuint unit;
+    GLuint sampler;
+};
+
+struct glBindSamplers_params
+{
+    GLuint first;
+    GLsizei count;
+    const GLuint *samplers;
+};
+
+struct glBindShadingRateImageNV_params
+{
+    GLuint texture;
+};
+
+struct glBindTexGenParameterEXT_params
+{
+    GLenum unit;
+    GLenum coord;
+    GLenum value;
+    GLuint ret;
+};
+
+struct glBindTextureEXT_params
+{
+    GLenum target;
+    GLuint texture;
+};
+
+struct glBindTextureUnit_params
+{
+    GLuint unit;
+    GLuint texture;
+};
+
+struct glBindTextureUnitParameterEXT_params
+{
+    GLenum unit;
+    GLenum value;
+    GLuint ret;
+};
+
+struct glBindTextures_params
+{
+    GLuint first;
+    GLsizei count;
+    const GLuint *textures;
+};
+
+struct glBindTransformFeedback_params
+{
+    GLenum target;
+    GLuint id;
+};
+
+struct glBindTransformFeedbackNV_params
+{
+    GLenum target;
+    GLuint id;
+};
+
+struct glBindVertexArray_params
+{
+    GLuint array;
+};
+
+struct glBindVertexArrayAPPLE_params
+{
+    GLuint array;
+};
+
+struct glBindVertexBuffer_params
+{
+    GLuint bindingindex;
+    GLuint buffer;
+    GLintptr offset;
+    GLsizei stride;
+};
+
+struct glBindVertexBuffers_params
+{
+    GLuint first;
+    GLsizei count;
+    const GLuint *buffers;
+    const GLintptr *offsets;
+    const GLsizei *strides;
+};
+
+struct glBindVertexShaderEXT_params
+{
+    GLuint id;
+};
+
+struct glBindVideoCaptureStreamBufferNV_params
+{
+    GLuint video_capture_slot;
+    GLuint stream;
+    GLenum frame_region;
+    GLintptrARB offset;
+};
+
+struct glBindVideoCaptureStreamTextureNV_params
+{
+    GLuint video_capture_slot;
+    GLuint stream;
+    GLenum frame_region;
+    GLenum target;
+    GLuint texture;
+};
+
+struct glBinormal3bEXT_params
+{
+    GLbyte bx;
+    GLbyte by;
+    GLbyte bz;
+};
+
+struct glBinormal3bvEXT_params
+{
+    const GLbyte *v;
+};
+
+struct glBinormal3dEXT_params
+{
+    GLdouble bx;
+    GLdouble by;
+    GLdouble bz;
+};
+
+struct glBinormal3dvEXT_params
+{
+    const GLdouble *v;
+};
+
+struct glBinormal3fEXT_params
+{
+    GLfloat bx;
+    GLfloat by;
+    GLfloat bz;
+};
+
+struct glBinormal3fvEXT_params
+{
+    const GLfloat *v;
+};
+
+struct glBinormal3iEXT_params
+{
+    GLint bx;
+    GLint by;
+    GLint bz;
+};
+
+struct glBinormal3ivEXT_params
+{
+    const GLint *v;
+};
+
+struct glBinormal3sEXT_params
+{
+    GLshort bx;
+    GLshort by;
+    GLshort bz;
+};
+
+struct glBinormal3svEXT_params
+{
+    const GLshort *v;
+};
+
+struct glBinormalPointerEXT_params
+{
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glBitmapxOES_params
+{
+    GLsizei width;
+    GLsizei height;
+    GLfixed xorig;
+    GLfixed yorig;
+    GLfixed xmove;
+    GLfixed ymove;
+    const GLubyte *bitmap;
+};
+
+struct glBlendBarrierKHR_params
+{
+};
+
+struct glBlendBarrierNV_params
+{
+};
+
+struct glBlendColor_params
+{
+    GLfloat red;
+    GLfloat green;
+    GLfloat blue;
+    GLfloat alpha;
+};
+
+struct glBlendColorEXT_params
+{
+    GLfloat red;
+    GLfloat green;
+    GLfloat blue;
+    GLfloat alpha;
+};
+
+struct glBlendColorxOES_params
+{
+    GLfixed red;
+    GLfixed green;
+    GLfixed blue;
+    GLfixed alpha;
+};
+
+struct glBlendEquation_params
+{
+    GLenum mode;
+};
+
+struct glBlendEquationEXT_params
+{
+    GLenum mode;
+};
+
+struct glBlendEquationIndexedAMD_params
+{
+    GLuint buf;
+    GLenum mode;
+};
+
+struct glBlendEquationSeparate_params
+{
+    GLenum modeRGB;
+    GLenum modeAlpha;
+};
+
+struct glBlendEquationSeparateEXT_params
+{
+    GLenum modeRGB;
+    GLenum modeAlpha;
+};
+
+struct glBlendEquationSeparateIndexedAMD_params
+{
+    GLuint buf;
+    GLenum modeRGB;
+    GLenum modeAlpha;
+};
+
+struct glBlendEquationSeparatei_params
+{
+    GLuint buf;
+    GLenum modeRGB;
+    GLenum modeAlpha;
+};
+
+struct glBlendEquationSeparateiARB_params
+{
+    GLuint buf;
+    GLenum modeRGB;
+    GLenum modeAlpha;
+};
+
+struct glBlendEquationi_params
+{
+    GLuint buf;
+    GLenum mode;
+};
+
+struct glBlendEquationiARB_params
+{
+    GLuint buf;
+    GLenum mode;
+};
+
+struct glBlendFuncIndexedAMD_params
+{
+    GLuint buf;
+    GLenum src;
+    GLenum dst;
+};
+
+struct glBlendFuncSeparate_params
+{
+    GLenum sfactorRGB;
+    GLenum dfactorRGB;
+    GLenum sfactorAlpha;
+    GLenum dfactorAlpha;
+};
+
+struct glBlendFuncSeparateEXT_params
+{
+    GLenum sfactorRGB;
+    GLenum dfactorRGB;
+    GLenum sfactorAlpha;
+    GLenum dfactorAlpha;
+};
+
+struct glBlendFuncSeparateINGR_params
+{
+    GLenum sfactorRGB;
+    GLenum dfactorRGB;
+    GLenum sfactorAlpha;
+    GLenum dfactorAlpha;
+};
+
+struct glBlendFuncSeparateIndexedAMD_params
+{
+    GLuint buf;
+    GLenum srcRGB;
+    GLenum dstRGB;
+    GLenum srcAlpha;
+    GLenum dstAlpha;
+};
+
+struct glBlendFuncSeparatei_params
+{
+    GLuint buf;
+    GLenum srcRGB;
+    GLenum dstRGB;
+    GLenum srcAlpha;
+    GLenum dstAlpha;
+};
+
+struct glBlendFuncSeparateiARB_params
+{
+    GLuint buf;
+    GLenum srcRGB;
+    GLenum dstRGB;
+    GLenum srcAlpha;
+    GLenum dstAlpha;
+};
+
+struct glBlendFunci_params
+{
+    GLuint buf;
+    GLenum src;
+    GLenum dst;
+};
+
+struct glBlendFunciARB_params
+{
+    GLuint buf;
+    GLenum src;
+    GLenum dst;
+};
+
+struct glBlendParameteriNV_params
+{
+    GLenum pname;
+    GLint value;
+};
+
+struct glBlitFramebuffer_params
+{
+    GLint srcX0;
+    GLint srcY0;
+    GLint srcX1;
+    GLint srcY1;
+    GLint dstX0;
+    GLint dstY0;
+    GLint dstX1;
+    GLint dstY1;
+    GLbitfield mask;
+    GLenum filter;
+};
+
+struct glBlitFramebufferEXT_params
+{
+    GLint srcX0;
+    GLint srcY0;
+    GLint srcX1;
+    GLint srcY1;
+    GLint dstX0;
+    GLint dstY0;
+    GLint dstX1;
+    GLint dstY1;
+    GLbitfield mask;
+    GLenum filter;
+};
+
+struct glBlitNamedFramebuffer_params
+{
+    GLuint readFramebuffer;
+    GLuint drawFramebuffer;
+    GLint srcX0;
+    GLint srcY0;
+    GLint srcX1;
+    GLint srcY1;
+    GLint dstX0;
+    GLint dstY0;
+    GLint dstX1;
+    GLint dstY1;
+    GLbitfield mask;
+    GLenum filter;
+};
+
+struct glBufferAddressRangeNV_params
+{
+    GLenum pname;
+    GLuint index;
+    GLuint64EXT address;
+    GLsizeiptr length;
+};
+
+struct glBufferAttachMemoryNV_params
+{
+    GLenum target;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glBufferData_params
+{
+    GLenum target;
+    GLsizeiptr size;
+    const void *data;
+    GLenum usage;
+};
+
+struct glBufferDataARB_params
+{
+    GLenum target;
+    GLsizeiptrARB size;
+    const void *data;
+    GLenum usage;
+};
+
+struct glBufferPageCommitmentARB_params
+{
+    GLenum target;
+    GLintptr offset;
+    GLsizeiptr size;
+    GLboolean commit;
+};
+
+struct glBufferParameteriAPPLE_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint param;
+};
+
+struct glBufferRegionEnabled_params
+{
+    GLuint ret;
+};
+
+struct glBufferStorage_params
+{
+    GLenum target;
+    GLsizeiptr size;
+    const void *data;
+    GLbitfield flags;
+};
+
+struct glBufferStorageExternalEXT_params
+{
+    GLenum target;
+    GLintptr offset;
+    GLsizeiptr size;
+    GLeglClientBufferEXT clientBuffer;
+    GLbitfield flags;
+};
+
+struct glBufferStorageMemEXT_params
+{
+    GLenum target;
+    GLsizeiptr size;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glBufferSubData_params
+{
+    GLenum target;
+    GLintptr offset;
+    GLsizeiptr size;
+    const void *data;
+};
+
+struct glBufferSubDataARB_params
+{
+    GLenum target;
+    GLintptrARB offset;
+    GLsizeiptrARB size;
+    const void *data;
+};
+
+struct glCallCommandListNV_params
+{
+    GLuint list;
+};
+
+struct glCheckFramebufferStatus_params
+{
+    GLenum target;
+    GLenum ret;
+};
+
+struct glCheckFramebufferStatusEXT_params
+{
+    GLenum target;
+    GLenum ret;
+};
+
+struct glCheckNamedFramebufferStatus_params
+{
+    GLuint framebuffer;
+    GLenum target;
+    GLenum ret;
+};
+
+struct glCheckNamedFramebufferStatusEXT_params
+{
+    GLuint framebuffer;
+    GLenum target;
+    GLenum ret;
+};
+
+struct glClampColor_params
+{
+    GLenum target;
+    GLenum clamp;
+};
+
+struct glClampColorARB_params
+{
+    GLenum target;
+    GLenum clamp;
+};
+
+struct glClearAccumxOES_params
+{
+    GLfixed red;
+    GLfixed green;
+    GLfixed blue;
+    GLfixed alpha;
+};
+
+struct glClearBufferData_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLenum format;
+    GLenum type;
+    const void *data;
+};
+
+struct glClearBufferSubData_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLintptr offset;
+    GLsizeiptr size;
+    GLenum format;
+    GLenum type;
+    const void *data;
+};
+
+struct glClearBufferfi_params
+{
+    GLenum buffer;
+    GLint drawbuffer;
+    GLfloat depth;
+    GLint stencil;
+};
+
+struct glClearBufferfv_params
+{
+    GLenum buffer;
+    GLint drawbuffer;
+    const GLfloat *value;
+};
+
+struct glClearBufferiv_params
+{
+    GLenum buffer;
+    GLint drawbuffer;
+    const GLint *value;
+};
+
+struct glClearBufferuiv_params
+{
+    GLenum buffer;
+    GLint drawbuffer;
+    const GLuint *value;
+};
+
+struct glClearColorIiEXT_params
+{
+    GLint red;
+    GLint green;
+    GLint blue;
+    GLint alpha;
+};
+
+struct glClearColorIuiEXT_params
+{
+    GLuint red;
+    GLuint green;
+    GLuint blue;
+    GLuint alpha;
+};
+
+struct glClearColorxOES_params
+{
+    GLfixed red;
+    GLfixed green;
+    GLfixed blue;
+    GLfixed alpha;
+};
+
+struct glClearDepthdNV_params
+{
+    GLdouble depth;
+};
+
+struct glClearDepthf_params
+{
+    GLfloat d;
+};
+
+struct glClearDepthfOES_params
+{
+    GLclampf depth;
+};
+
+struct glClearDepthxOES_params
+{
+    GLfixed depth;
+};
+
+struct glClearNamedBufferData_params
+{
+    GLuint buffer;
+    GLenum internalformat;
+    GLenum format;
+    GLenum type;
+    const void *data;
+};
+
+struct glClearNamedBufferDataEXT_params
+{
+    GLuint buffer;
+    GLenum internalformat;
+    GLenum format;
+    GLenum type;
+    const void *data;
+};
+
+struct glClearNamedBufferSubData_params
+{
+    GLuint buffer;
+    GLenum internalformat;
+    GLintptr offset;
+    GLsizeiptr size;
+    GLenum format;
+    GLenum type;
+    const void *data;
+};
+
+struct glClearNamedBufferSubDataEXT_params
+{
+    GLuint buffer;
+    GLenum internalformat;
+    GLsizeiptr offset;
+    GLsizeiptr size;
+    GLenum format;
+    GLenum type;
+    const void *data;
+};
+
+struct glClearNamedFramebufferfi_params
+{
+    GLuint framebuffer;
+    GLenum buffer;
+    GLint drawbuffer;
+    GLfloat depth;
+    GLint stencil;
+};
+
+struct glClearNamedFramebufferfv_params
+{
+    GLuint framebuffer;
+    GLenum buffer;
+    GLint drawbuffer;
+    const GLfloat *value;
+};
+
+struct glClearNamedFramebufferiv_params
+{
+    GLuint framebuffer;
+    GLenum buffer;
+    GLint drawbuffer;
+    const GLint *value;
+};
+
+struct glClearNamedFramebufferuiv_params
+{
+    GLuint framebuffer;
+    GLenum buffer;
+    GLint drawbuffer;
+    const GLuint *value;
+};
+
+struct glClearTexImage_params
+{
+    GLuint texture;
+    GLint level;
+    GLenum format;
+    GLenum type;
+    const void *data;
+};
+
+struct glClearTexSubImage_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLenum format;
+    GLenum type;
+    const void *data;
+};
+
+struct glClientActiveTexture_params
+{
+    GLenum texture;
+};
+
+struct glClientActiveTextureARB_params
+{
+    GLenum texture;
+};
+
+struct glClientActiveVertexStreamATI_params
+{
+    GLenum stream;
+};
+
+struct glClientAttribDefaultEXT_params
+{
+    GLbitfield mask;
+};
+
+struct glClientWaitSemaphoreui64NVX_params
+{
+    GLsizei fenceObjectCount;
+    const GLuint *semaphoreArray;
+    const GLuint64 *fenceValueArray;
+};
+
+struct glClientWaitSync_params
+{
+    GLsync sync;
+    GLbitfield flags;
+    GLuint64 timeout;
+    GLenum ret;
+};
+
+struct glClipControl_params
+{
+    GLenum origin;
+    GLenum depth;
+};
+
+struct glClipPlanefOES_params
+{
+    GLenum plane;
+    const GLfloat *equation;
+};
+
+struct glClipPlanexOES_params
+{
+    GLenum plane;
+    const GLfixed *equation;
+};
+
+struct glColor3fVertex3fSUN_params
+{
+    GLfloat r;
+    GLfloat g;
+    GLfloat b;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glColor3fVertex3fvSUN_params
+{
+    const GLfloat *c;
+    const GLfloat *v;
+};
+
+struct glColor3hNV_params
+{
+    GLhalfNV red;
+    GLhalfNV green;
+    GLhalfNV blue;
+};
+
+struct glColor3hvNV_params
+{
+    const GLhalfNV *v;
+};
+
+struct glColor3xOES_params
+{
+    GLfixed red;
+    GLfixed green;
+    GLfixed blue;
+};
+
+struct glColor3xvOES_params
+{
+    const GLfixed *components;
+};
+
+struct glColor4fNormal3fVertex3fSUN_params
+{
+    GLfloat r;
+    GLfloat g;
+    GLfloat b;
+    GLfloat a;
+    GLfloat nx;
+    GLfloat ny;
+    GLfloat nz;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glColor4fNormal3fVertex3fvSUN_params
+{
+    const GLfloat *c;
+    const GLfloat *n;
+    const GLfloat *v;
+};
+
+struct glColor4hNV_params
+{
+    GLhalfNV red;
+    GLhalfNV green;
+    GLhalfNV blue;
+    GLhalfNV alpha;
+};
+
+struct glColor4hvNV_params
+{
+    const GLhalfNV *v;
+};
+
+struct glColor4ubVertex2fSUN_params
+{
+    GLubyte r;
+    GLubyte g;
+    GLubyte b;
+    GLubyte a;
+    GLfloat x;
+    GLfloat y;
+};
+
+struct glColor4ubVertex2fvSUN_params
+{
+    const GLubyte *c;
+    const GLfloat *v;
+};
+
+struct glColor4ubVertex3fSUN_params
+{
+    GLubyte r;
+    GLubyte g;
+    GLubyte b;
+    GLubyte a;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glColor4ubVertex3fvSUN_params
+{
+    const GLubyte *c;
+    const GLfloat *v;
+};
+
+struct glColor4xOES_params
+{
+    GLfixed red;
+    GLfixed green;
+    GLfixed blue;
+    GLfixed alpha;
+};
+
+struct glColor4xvOES_params
+{
+    const GLfixed *components;
+};
+
+struct glColorFormatNV_params
+{
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+};
+
+struct glColorFragmentOp1ATI_params
+{
+    GLenum op;
+    GLuint dst;
+    GLuint dstMask;
+    GLuint dstMod;
+    GLuint arg1;
+    GLuint arg1Rep;
+    GLuint arg1Mod;
+};
+
+struct glColorFragmentOp2ATI_params
+{
+    GLenum op;
+    GLuint dst;
+    GLuint dstMask;
+    GLuint dstMod;
+    GLuint arg1;
+    GLuint arg1Rep;
+    GLuint arg1Mod;
+    GLuint arg2;
+    GLuint arg2Rep;
+    GLuint arg2Mod;
+};
+
+struct glColorFragmentOp3ATI_params
+{
+    GLenum op;
+    GLuint dst;
+    GLuint dstMask;
+    GLuint dstMod;
+    GLuint arg1;
+    GLuint arg1Rep;
+    GLuint arg1Mod;
+    GLuint arg2;
+    GLuint arg2Rep;
+    GLuint arg2Mod;
+    GLuint arg3;
+    GLuint arg3Rep;
+    GLuint arg3Mod;
+};
+
+struct glColorMaskIndexedEXT_params
+{
+    GLuint index;
+    GLboolean r;
+    GLboolean g;
+    GLboolean b;
+    GLboolean a;
+};
+
+struct glColorMaski_params
+{
+    GLuint index;
+    GLboolean r;
+    GLboolean g;
+    GLboolean b;
+    GLboolean a;
+};
+
+struct glColorP3ui_params
+{
+    GLenum type;
+    GLuint color;
+};
+
+struct glColorP3uiv_params
+{
+    GLenum type;
+    const GLuint *color;
+};
+
+struct glColorP4ui_params
+{
+    GLenum type;
+    GLuint color;
+};
+
+struct glColorP4uiv_params
+{
+    GLenum type;
+    const GLuint *color;
+};
+
+struct glColorPointerEXT_params
+{
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    GLsizei count;
+    const void *pointer;
+};
+
+struct glColorPointerListIBM_params
+{
+    GLint size;
+    GLenum type;
+    GLint stride;
+    const void **pointer;
+    GLint ptrstride;
+};
+
+struct glColorPointervINTEL_params
+{
+    GLint size;
+    GLenum type;
+    const void **pointer;
+};
+
+struct glColorSubTable_params
+{
+    GLenum target;
+    GLsizei start;
+    GLsizei count;
+    GLenum format;
+    GLenum type;
+    const void *data;
+};
+
+struct glColorSubTableEXT_params
+{
+    GLenum target;
+    GLsizei start;
+    GLsizei count;
+    GLenum format;
+    GLenum type;
+    const void *data;
+};
+
+struct glColorTable_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLsizei width;
+    GLenum format;
+    GLenum type;
+    const void *table;
+};
+
+struct glColorTableEXT_params
+{
+    GLenum target;
+    GLenum internalFormat;
+    GLsizei width;
+    GLenum format;
+    GLenum type;
+    const void *table;
+};
+
+struct glColorTableParameterfv_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glColorTableParameterfvSGI_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glColorTableParameteriv_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glColorTableParameterivSGI_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glColorTableSGI_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLsizei width;
+    GLenum format;
+    GLenum type;
+    const void *table;
+};
+
+struct glCombinerInputNV_params
+{
+    GLenum stage;
+    GLenum portion;
+    GLenum variable;
+    GLenum input;
+    GLenum mapping;
+    GLenum componentUsage;
+};
+
+struct glCombinerOutputNV_params
+{
+    GLenum stage;
+    GLenum portion;
+    GLenum abOutput;
+    GLenum cdOutput;
+    GLenum sumOutput;
+    GLenum scale;
+    GLenum bias;
+    GLboolean abDotProduct;
+    GLboolean cdDotProduct;
+    GLboolean muxSum;
+};
+
+struct glCombinerParameterfNV_params
+{
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glCombinerParameterfvNV_params
+{
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glCombinerParameteriNV_params
+{
+    GLenum pname;
+    GLint param;
+};
+
+struct glCombinerParameterivNV_params
+{
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glCombinerStageParameterfvNV_params
+{
+    GLenum stage;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glCommandListSegmentsNV_params
+{
+    GLuint list;
+    GLuint segments;
+};
+
+struct glCompileCommandListNV_params
+{
+    GLuint list;
+};
+
+struct glCompileShader_params
+{
+    GLuint shader;
+};
+
+struct glCompileShaderARB_params
+{
+    GLhandleARB shaderObj;
+};
+
+struct glCompileShaderIncludeARB_params
+{
+    GLuint shader;
+    GLsizei count;
+    const GLchar *const*path;
+    const GLint *length;
+};
+
+struct glCompressedMultiTexImage1DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLint border;
+    GLsizei imageSize;
+    const void *bits;
+};
+
+struct glCompressedMultiTexImage2DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLint border;
+    GLsizei imageSize;
+    const void *bits;
+};
+
+struct glCompressedMultiTexImage3DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLint border;
+    GLsizei imageSize;
+    const void *bits;
+};
+
+struct glCompressedMultiTexSubImage1DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLsizei width;
+    GLenum format;
+    GLsizei imageSize;
+    const void *bits;
+};
+
+struct glCompressedMultiTexSubImage2DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLsizei imageSize;
+    const void *bits;
+};
+
+struct glCompressedMultiTexSubImage3DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLenum format;
+    GLsizei imageSize;
+    const void *bits;
+};
+
+struct glCompressedTexImage1D_params
+{
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLint border;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTexImage1DARB_params
+{
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLint border;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTexImage2D_params
+{
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLint border;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTexImage2DARB_params
+{
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLint border;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTexImage3D_params
+{
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLint border;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTexImage3DARB_params
+{
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLint border;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTexSubImage1D_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLsizei width;
+    GLenum format;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTexSubImage1DARB_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLsizei width;
+    GLenum format;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTexSubImage2D_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTexSubImage2DARB_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTexSubImage3D_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLenum format;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTexSubImage3DARB_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLenum format;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTextureImage1DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLint border;
+    GLsizei imageSize;
+    const void *bits;
+};
+
+struct glCompressedTextureImage2DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLint border;
+    GLsizei imageSize;
+    const void *bits;
+};
+
+struct glCompressedTextureImage3DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLint border;
+    GLsizei imageSize;
+    const void *bits;
+};
+
+struct glCompressedTextureSubImage1D_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLsizei width;
+    GLenum format;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTextureSubImage1DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLsizei width;
+    GLenum format;
+    GLsizei imageSize;
+    const void *bits;
+};
+
+struct glCompressedTextureSubImage2D_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTextureSubImage2DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLsizei imageSize;
+    const void *bits;
+};
+
+struct glCompressedTextureSubImage3D_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLenum format;
+    GLsizei imageSize;
+    const void *data;
+};
+
+struct glCompressedTextureSubImage3DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLenum format;
+    GLsizei imageSize;
+    const void *bits;
+};
+
+struct glConservativeRasterParameterfNV_params
+{
+    GLenum pname;
+    GLfloat value;
+};
+
+struct glConservativeRasterParameteriNV_params
+{
+    GLenum pname;
+    GLint param;
+};
+
+struct glConvolutionFilter1D_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLsizei width;
+    GLenum format;
+    GLenum type;
+    const void *image;
+};
+
+struct glConvolutionFilter1DEXT_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLsizei width;
+    GLenum format;
+    GLenum type;
+    const void *image;
+};
+
+struct glConvolutionFilter2D_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLenum type;
+    const void *image;
+};
+
+struct glConvolutionFilter2DEXT_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLenum type;
+    const void *image;
+};
+
+struct glConvolutionParameterf_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat params;
+};
+
+struct glConvolutionParameterfEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat params;
+};
+
+struct glConvolutionParameterfv_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glConvolutionParameterfvEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glConvolutionParameteri_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint params;
+};
+
+struct glConvolutionParameteriEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint params;
+};
+
+struct glConvolutionParameteriv_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glConvolutionParameterivEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glConvolutionParameterxOES_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfixed param;
+};
+
+struct glConvolutionParameterxvOES_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLfixed *params;
+};
+
+struct glCopyBufferSubData_params
+{
+    GLenum readTarget;
+    GLenum writeTarget;
+    GLintptr readOffset;
+    GLintptr writeOffset;
+    GLsizeiptr size;
+};
+
+struct glCopyColorSubTable_params
+{
+    GLenum target;
+    GLsizei start;
+    GLint x;
+    GLint y;
+    GLsizei width;
+};
+
+struct glCopyColorSubTableEXT_params
+{
+    GLenum target;
+    GLsizei start;
+    GLint x;
+    GLint y;
+    GLsizei width;
+};
+
+struct glCopyColorTable_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLint x;
+    GLint y;
+    GLsizei width;
+};
+
+struct glCopyColorTableSGI_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLint x;
+    GLint y;
+    GLsizei width;
+};
+
+struct glCopyConvolutionFilter1D_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLint x;
+    GLint y;
+    GLsizei width;
+};
+
+struct glCopyConvolutionFilter1DEXT_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLint x;
+    GLint y;
+    GLsizei width;
+};
+
+struct glCopyConvolutionFilter2D_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glCopyConvolutionFilter2DEXT_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glCopyImageSubData_params
+{
+    GLuint srcName;
+    GLenum srcTarget;
+    GLint srcLevel;
+    GLint srcX;
+    GLint srcY;
+    GLint srcZ;
+    GLuint dstName;
+    GLenum dstTarget;
+    GLint dstLevel;
+    GLint dstX;
+    GLint dstY;
+    GLint dstZ;
+    GLsizei srcWidth;
+    GLsizei srcHeight;
+    GLsizei srcDepth;
+};
+
+struct glCopyImageSubDataNV_params
+{
+    GLuint srcName;
+    GLenum srcTarget;
+    GLint srcLevel;
+    GLint srcX;
+    GLint srcY;
+    GLint srcZ;
+    GLuint dstName;
+    GLenum dstTarget;
+    GLint dstLevel;
+    GLint dstX;
+    GLint dstY;
+    GLint dstZ;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+};
+
+struct glCopyMultiTexImage1DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLint border;
+};
+
+struct glCopyMultiTexImage2DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+    GLint border;
+};
+
+struct glCopyMultiTexSubImage1DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint x;
+    GLint y;
+    GLsizei width;
+};
+
+struct glCopyMultiTexSubImage2DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glCopyMultiTexSubImage3DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glCopyNamedBufferSubData_params
+{
+    GLuint readBuffer;
+    GLuint writeBuffer;
+    GLintptr readOffset;
+    GLintptr writeOffset;
+    GLsizeiptr size;
+};
+
+struct glCopyPathNV_params
+{
+    GLuint resultPath;
+    GLuint srcPath;
+};
+
+struct glCopyTexImage1DEXT_params
+{
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLint border;
+};
+
+struct glCopyTexImage2DEXT_params
+{
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+    GLint border;
+};
+
+struct glCopyTexSubImage1DEXT_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint x;
+    GLint y;
+    GLsizei width;
+};
+
+struct glCopyTexSubImage2DEXT_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glCopyTexSubImage3D_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glCopyTexSubImage3DEXT_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glCopyTextureImage1DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLint border;
+};
+
+struct glCopyTextureImage2DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+    GLint border;
+};
+
+struct glCopyTextureSubImage1D_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLint x;
+    GLint y;
+    GLsizei width;
+};
+
+struct glCopyTextureSubImage1DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint x;
+    GLint y;
+    GLsizei width;
+};
+
+struct glCopyTextureSubImage2D_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glCopyTextureSubImage2DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glCopyTextureSubImage3D_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glCopyTextureSubImage3DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glCoverFillPathInstancedNV_params
+{
+    GLsizei numPaths;
+    GLenum pathNameType;
+    const void *paths;
+    GLuint pathBase;
+    GLenum coverMode;
+    GLenum transformType;
+    const GLfloat *transformValues;
+};
+
+struct glCoverFillPathNV_params
+{
+    GLuint path;
+    GLenum coverMode;
+};
+
+struct glCoverStrokePathInstancedNV_params
+{
+    GLsizei numPaths;
+    GLenum pathNameType;
+    const void *paths;
+    GLuint pathBase;
+    GLenum coverMode;
+    GLenum transformType;
+    const GLfloat *transformValues;
+};
+
+struct glCoverStrokePathNV_params
+{
+    GLuint path;
+    GLenum coverMode;
+};
+
+struct glCoverageModulationNV_params
+{
+    GLenum components;
+};
+
+struct glCoverageModulationTableNV_params
+{
+    GLsizei n;
+    const GLfloat *v;
+};
+
+struct glCreateBuffers_params
+{
+    GLsizei n;
+    GLuint *buffers;
+};
+
+struct glCreateCommandListsNV_params
+{
+    GLsizei n;
+    GLuint *lists;
+};
+
+struct glCreateFramebuffers_params
+{
+    GLsizei n;
+    GLuint *framebuffers;
+};
+
+struct glCreateMemoryObjectsEXT_params
+{
+    GLsizei n;
+    GLuint *memoryObjects;
+};
+
+struct glCreatePerfQueryINTEL_params
+{
+    GLuint queryId;
+    GLuint *queryHandle;
+};
+
+struct glCreateProgram_params
+{
+    GLuint ret;
+};
+
+struct glCreateProgramObjectARB_params
+{
+    GLhandleARB ret;
+};
+
+struct glCreateProgramPipelines_params
+{
+    GLsizei n;
+    GLuint *pipelines;
+};
+
+struct glCreateProgressFenceNVX_params
+{
+    GLuint ret;
+};
+
+struct glCreateQueries_params
+{
+    GLenum target;
+    GLsizei n;
+    GLuint *ids;
+};
+
+struct glCreateRenderbuffers_params
+{
+    GLsizei n;
+    GLuint *renderbuffers;
+};
+
+struct glCreateSamplers_params
+{
+    GLsizei n;
+    GLuint *samplers;
+};
+
+struct glCreateShader_params
+{
+    GLenum type;
+    GLuint ret;
+};
+
+struct glCreateShaderObjectARB_params
+{
+    GLenum shaderType;
+    GLhandleARB ret;
+};
+
+struct glCreateShaderProgramEXT_params
+{
+    GLenum type;
+    const GLchar *string;
+    GLuint ret;
+};
+
+struct glCreateShaderProgramv_params
+{
+    GLenum type;
+    GLsizei count;
+    const GLchar *const*strings;
+    GLuint ret;
+};
+
+struct glCreateStatesNV_params
+{
+    GLsizei n;
+    GLuint *states;
+};
+
+struct glCreateSyncFromCLeventARB_params
+{
+    struct _cl_context *context;
+    struct _cl_event *event;
+    GLbitfield flags;
+    GLsync ret;
+};
+
+struct glCreateTextures_params
+{
+    GLenum target;
+    GLsizei n;
+    GLuint *textures;
+};
+
+struct glCreateTransformFeedbacks_params
+{
+    GLsizei n;
+    GLuint *ids;
+};
+
+struct glCreateVertexArrays_params
+{
+    GLsizei n;
+    GLuint *arrays;
+};
+
+struct glCullParameterdvEXT_params
+{
+    GLenum pname;
+    GLdouble *params;
+};
+
+struct glCullParameterfvEXT_params
+{
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glCurrentPaletteMatrixARB_params
+{
+    GLint index;
+};
+
+struct glDebugMessageCallback_params
+{
+    GLDEBUGPROC callback;
+    const void *userParam;
+};
+
+struct glDebugMessageCallbackAMD_params
+{
+    GLDEBUGPROCAMD callback;
+    void *userParam;
+};
+
+struct glDebugMessageCallbackARB_params
+{
+    GLDEBUGPROCARB callback;
+    const void *userParam;
+};
+
+struct glDebugMessageControl_params
+{
+    GLenum source;
+    GLenum type;
+    GLenum severity;
+    GLsizei count;
+    const GLuint *ids;
+    GLboolean enabled;
+};
+
+struct glDebugMessageControlARB_params
+{
+    GLenum source;
+    GLenum type;
+    GLenum severity;
+    GLsizei count;
+    const GLuint *ids;
+    GLboolean enabled;
+};
+
+struct glDebugMessageEnableAMD_params
+{
+    GLenum category;
+    GLenum severity;
+    GLsizei count;
+    const GLuint *ids;
+    GLboolean enabled;
+};
+
+struct glDebugMessageInsert_params
+{
+    GLenum source;
+    GLenum type;
+    GLuint id;
+    GLenum severity;
+    GLsizei length;
+    const GLchar *buf;
+};
+
+struct glDebugMessageInsertAMD_params
+{
+    GLenum category;
+    GLenum severity;
+    GLuint id;
+    GLsizei length;
+    const GLchar *buf;
+};
+
+struct glDebugMessageInsertARB_params
+{
+    GLenum source;
+    GLenum type;
+    GLuint id;
+    GLenum severity;
+    GLsizei length;
+    const GLchar *buf;
+};
+
+struct glDeformSGIX_params
+{
+    GLbitfield mask;
+};
+
+struct glDeformationMap3dSGIX_params
+{
+    GLenum target;
+    GLdouble u1;
+    GLdouble u2;
+    GLint ustride;
+    GLint uorder;
+    GLdouble v1;
+    GLdouble v2;
+    GLint vstride;
+    GLint vorder;
+    GLdouble w1;
+    GLdouble w2;
+    GLint wstride;
+    GLint worder;
+    const GLdouble *points;
+};
+
+struct glDeformationMap3fSGIX_params
+{
+    GLenum target;
+    GLfloat u1;
+    GLfloat u2;
+    GLint ustride;
+    GLint uorder;
+    GLfloat v1;
+    GLfloat v2;
+    GLint vstride;
+    GLint vorder;
+    GLfloat w1;
+    GLfloat w2;
+    GLint wstride;
+    GLint worder;
+    const GLfloat *points;
+};
+
+struct glDeleteAsyncMarkersSGIX_params
+{
+    GLuint marker;
+    GLsizei range;
+};
+
+struct glDeleteBufferRegion_params
+{
+    GLenum region;
+};
+
+struct glDeleteBuffers_params
+{
+    GLsizei n;
+    const GLuint *buffers;
+};
+
+struct glDeleteBuffersARB_params
+{
+    GLsizei n;
+    const GLuint *buffers;
+};
+
+struct glDeleteCommandListsNV_params
+{
+    GLsizei n;
+    const GLuint *lists;
+};
+
+struct glDeleteFencesAPPLE_params
+{
+    GLsizei n;
+    const GLuint *fences;
+};
+
+struct glDeleteFencesNV_params
+{
+    GLsizei n;
+    const GLuint *fences;
+};
+
+struct glDeleteFragmentShaderATI_params
+{
+    GLuint id;
+};
+
+struct glDeleteFramebuffers_params
+{
+    GLsizei n;
+    const GLuint *framebuffers;
+};
+
+struct glDeleteFramebuffersEXT_params
+{
+    GLsizei n;
+    const GLuint *framebuffers;
+};
+
+struct glDeleteMemoryObjectsEXT_params
+{
+    GLsizei n;
+    const GLuint *memoryObjects;
+};
+
+struct glDeleteNamedStringARB_params
+{
+    GLint namelen;
+    const GLchar *name;
+};
+
+struct glDeleteNamesAMD_params
+{
+    GLenum identifier;
+    GLuint num;
+    const GLuint *names;
+};
+
+struct glDeleteObjectARB_params
+{
+    GLhandleARB obj;
+};
+
+struct glDeleteObjectBufferATI_params
+{
+    GLuint buffer;
+};
+
+struct glDeleteOcclusionQueriesNV_params
+{
+    GLsizei n;
+    const GLuint *ids;
+};
+
+struct glDeletePathsNV_params
+{
+    GLuint path;
+    GLsizei range;
+};
+
+struct glDeletePerfMonitorsAMD_params
+{
+    GLsizei n;
+    GLuint *monitors;
+};
+
+struct glDeletePerfQueryINTEL_params
+{
+    GLuint queryHandle;
+};
+
+struct glDeleteProgram_params
+{
+    GLuint program;
+};
+
+struct glDeleteProgramPipelines_params
+{
+    GLsizei n;
+    const GLuint *pipelines;
+};
+
+struct glDeleteProgramsARB_params
+{
+    GLsizei n;
+    const GLuint *programs;
+};
+
+struct glDeleteProgramsNV_params
+{
+    GLsizei n;
+    const GLuint *programs;
+};
+
+struct glDeleteQueries_params
+{
+    GLsizei n;
+    const GLuint *ids;
+};
+
+struct glDeleteQueriesARB_params
+{
+    GLsizei n;
+    const GLuint *ids;
+};
+
+struct glDeleteQueryResourceTagNV_params
+{
+    GLsizei n;
+    const GLint *tagIds;
+};
+
+struct glDeleteRenderbuffers_params
+{
+    GLsizei n;
+    const GLuint *renderbuffers;
+};
+
+struct glDeleteRenderbuffersEXT_params
+{
+    GLsizei n;
+    const GLuint *renderbuffers;
+};
+
+struct glDeleteSamplers_params
+{
+    GLsizei count;
+    const GLuint *samplers;
+};
+
+struct glDeleteSemaphoresEXT_params
+{
+    GLsizei n;
+    const GLuint *semaphores;
+};
+
+struct glDeleteShader_params
+{
+    GLuint shader;
+};
+
+struct glDeleteStatesNV_params
+{
+    GLsizei n;
+    const GLuint *states;
+};
+
+struct glDeleteSync_params
+{
+    GLsync sync;
+};
+
+struct glDeleteTexturesEXT_params
+{
+    GLsizei n;
+    const GLuint *textures;
+};
+
+struct glDeleteTransformFeedbacks_params
+{
+    GLsizei n;
+    const GLuint *ids;
+};
+
+struct glDeleteTransformFeedbacksNV_params
+{
+    GLsizei n;
+    const GLuint *ids;
+};
+
+struct glDeleteVertexArrays_params
+{
+    GLsizei n;
+    const GLuint *arrays;
+};
+
+struct glDeleteVertexArraysAPPLE_params
+{
+    GLsizei n;
+    const GLuint *arrays;
+};
+
+struct glDeleteVertexShaderEXT_params
+{
+    GLuint id;
+};
+
+struct glDepthBoundsEXT_params
+{
+    GLclampd zmin;
+    GLclampd zmax;
+};
+
+struct glDepthBoundsdNV_params
+{
+    GLdouble zmin;
+    GLdouble zmax;
+};
+
+struct glDepthRangeArraydvNV_params
+{
+    GLuint first;
+    GLsizei count;
+    const GLdouble *v;
+};
+
+struct glDepthRangeArrayv_params
+{
+    GLuint first;
+    GLsizei count;
+    const GLdouble *v;
+};
+
+struct glDepthRangeIndexed_params
+{
+    GLuint index;
+    GLdouble n;
+    GLdouble f;
+};
+
+struct glDepthRangeIndexeddNV_params
+{
+    GLuint index;
+    GLdouble n;
+    GLdouble f;
+};
+
+struct glDepthRangedNV_params
+{
+    GLdouble zNear;
+    GLdouble zFar;
+};
+
+struct glDepthRangef_params
+{
+    GLfloat n;
+    GLfloat f;
+};
+
+struct glDepthRangefOES_params
+{
+    GLclampf n;
+    GLclampf f;
+};
+
+struct glDepthRangexOES_params
+{
+    GLfixed n;
+    GLfixed f;
+};
+
+struct glDetachObjectARB_params
+{
+    GLhandleARB containerObj;
+    GLhandleARB attachedObj;
+};
+
+struct glDetachShader_params
+{
+    GLuint program;
+    GLuint shader;
+};
+
+struct glDetailTexFuncSGIS_params
+{
+    GLenum target;
+    GLsizei n;
+    const GLfloat *points;
+};
+
+struct glDisableClientStateIndexedEXT_params
+{
+    GLenum array;
+    GLuint index;
+};
+
+struct glDisableClientStateiEXT_params
+{
+    GLenum array;
+    GLuint index;
+};
+
+struct glDisableIndexedEXT_params
+{
+    GLenum target;
+    GLuint index;
+};
+
+struct glDisableVariantClientStateEXT_params
+{
+    GLuint id;
+};
+
+struct glDisableVertexArrayAttrib_params
+{
+    GLuint vaobj;
+    GLuint index;
+};
+
+struct glDisableVertexArrayAttribEXT_params
+{
+    GLuint vaobj;
+    GLuint index;
+};
+
+struct glDisableVertexArrayEXT_params
+{
+    GLuint vaobj;
+    GLenum array;
+};
+
+struct glDisableVertexAttribAPPLE_params
+{
+    GLuint index;
+    GLenum pname;
+};
+
+struct glDisableVertexAttribArray_params
+{
+    GLuint index;
+};
+
+struct glDisableVertexAttribArrayARB_params
+{
+    GLuint index;
+};
+
+struct glDisablei_params
+{
+    GLenum target;
+    GLuint index;
+};
+
+struct glDispatchCompute_params
+{
+    GLuint num_groups_x;
+    GLuint num_groups_y;
+    GLuint num_groups_z;
+};
+
+struct glDispatchComputeGroupSizeARB_params
+{
+    GLuint num_groups_x;
+    GLuint num_groups_y;
+    GLuint num_groups_z;
+    GLuint group_size_x;
+    GLuint group_size_y;
+    GLuint group_size_z;
+};
+
+struct glDispatchComputeIndirect_params
+{
+    GLintptr indirect;
+};
+
+struct glDrawArraysEXT_params
+{
+    GLenum mode;
+    GLint first;
+    GLsizei count;
+};
+
+struct glDrawArraysIndirect_params
+{
+    GLenum mode;
+    const void *indirect;
+};
+
+struct glDrawArraysInstanced_params
+{
+    GLenum mode;
+    GLint first;
+    GLsizei count;
+    GLsizei instancecount;
+};
+
+struct glDrawArraysInstancedARB_params
+{
+    GLenum mode;
+    GLint first;
+    GLsizei count;
+    GLsizei primcount;
+};
+
+struct glDrawArraysInstancedBaseInstance_params
+{
+    GLenum mode;
+    GLint first;
+    GLsizei count;
+    GLsizei instancecount;
+    GLuint baseinstance;
+};
+
+struct glDrawArraysInstancedEXT_params
+{
+    GLenum mode;
+    GLint start;
+    GLsizei count;
+    GLsizei primcount;
+};
+
+struct glDrawBufferRegion_params
+{
+    GLenum region;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+    GLint xDest;
+    GLint yDest;
+};
+
+struct glDrawBuffers_params
+{
+    GLsizei n;
+    const GLenum *bufs;
+};
+
+struct glDrawBuffersARB_params
+{
+    GLsizei n;
+    const GLenum *bufs;
+};
+
+struct glDrawBuffersATI_params
+{
+    GLsizei n;
+    const GLenum *bufs;
+};
+
+struct glDrawCommandsAddressNV_params
+{
+    GLenum primitiveMode;
+    const GLuint64 *indirects;
+    const GLsizei *sizes;
+    GLuint count;
+};
+
+struct glDrawCommandsNV_params
+{
+    GLenum primitiveMode;
+    GLuint buffer;
+    const GLintptr *indirects;
+    const GLsizei *sizes;
+    GLuint count;
+};
+
+struct glDrawCommandsStatesAddressNV_params
+{
+    const GLuint64 *indirects;
+    const GLsizei *sizes;
+    const GLuint *states;
+    const GLuint *fbos;
+    GLuint count;
+};
+
+struct glDrawCommandsStatesNV_params
+{
+    GLuint buffer;
+    const GLintptr *indirects;
+    const GLsizei *sizes;
+    const GLuint *states;
+    const GLuint *fbos;
+    GLuint count;
+};
+
+struct glDrawElementArrayAPPLE_params
+{
+    GLenum mode;
+    GLint first;
+    GLsizei count;
+};
+
+struct glDrawElementArrayATI_params
+{
+    GLenum mode;
+    GLsizei count;
+};
+
+struct glDrawElementsBaseVertex_params
+{
+    GLenum mode;
+    GLsizei count;
+    GLenum type;
+    const void *indices;
+    GLint basevertex;
+};
+
+struct glDrawElementsIndirect_params
+{
+    GLenum mode;
+    GLenum type;
+    const void *indirect;
+};
+
+struct glDrawElementsInstanced_params
+{
+    GLenum mode;
+    GLsizei count;
+    GLenum type;
+    const void *indices;
+    GLsizei instancecount;
+};
+
+struct glDrawElementsInstancedARB_params
+{
+    GLenum mode;
+    GLsizei count;
+    GLenum type;
+    const void *indices;
+    GLsizei primcount;
+};
+
+struct glDrawElementsInstancedBaseInstance_params
+{
+    GLenum mode;
+    GLsizei count;
+    GLenum type;
+    const void *indices;
+    GLsizei instancecount;
+    GLuint baseinstance;
+};
+
+struct glDrawElementsInstancedBaseVertex_params
+{
+    GLenum mode;
+    GLsizei count;
+    GLenum type;
+    const void *indices;
+    GLsizei instancecount;
+    GLint basevertex;
+};
+
+struct glDrawElementsInstancedBaseVertexBaseInstance_params
+{
+    GLenum mode;
+    GLsizei count;
+    GLenum type;
+    const void *indices;
+    GLsizei instancecount;
+    GLint basevertex;
+    GLuint baseinstance;
+};
+
+struct glDrawElementsInstancedEXT_params
+{
+    GLenum mode;
+    GLsizei count;
+    GLenum type;
+    const void *indices;
+    GLsizei primcount;
+};
+
+struct glDrawMeshArraysSUN_params
+{
+    GLenum mode;
+    GLint first;
+    GLsizei count;
+    GLsizei width;
+};
+
+struct glDrawMeshTasksIndirectNV_params
+{
+    GLintptr indirect;
+};
+
+struct glDrawMeshTasksNV_params
+{
+    GLuint first;
+    GLuint count;
+};
+
+struct glDrawRangeElementArrayAPPLE_params
+{
+    GLenum mode;
+    GLuint start;
+    GLuint end;
+    GLint first;
+    GLsizei count;
+};
+
+struct glDrawRangeElementArrayATI_params
+{
+    GLenum mode;
+    GLuint start;
+    GLuint end;
+    GLsizei count;
+};
+
+struct glDrawRangeElements_params
+{
+    GLenum mode;
+    GLuint start;
+    GLuint end;
+    GLsizei count;
+    GLenum type;
+    const void *indices;
+};
+
+struct glDrawRangeElementsBaseVertex_params
+{
+    GLenum mode;
+    GLuint start;
+    GLuint end;
+    GLsizei count;
+    GLenum type;
+    const void *indices;
+    GLint basevertex;
+};
+
+struct glDrawRangeElementsEXT_params
+{
+    GLenum mode;
+    GLuint start;
+    GLuint end;
+    GLsizei count;
+    GLenum type;
+    const void *indices;
+};
+
+struct glDrawTextureNV_params
+{
+    GLuint texture;
+    GLuint sampler;
+    GLfloat x0;
+    GLfloat y0;
+    GLfloat x1;
+    GLfloat y1;
+    GLfloat z;
+    GLfloat s0;
+    GLfloat t0;
+    GLfloat s1;
+    GLfloat t1;
+};
+
+struct glDrawTransformFeedback_params
+{
+    GLenum mode;
+    GLuint id;
+};
+
+struct glDrawTransformFeedbackInstanced_params
+{
+    GLenum mode;
+    GLuint id;
+    GLsizei instancecount;
+};
+
+struct glDrawTransformFeedbackNV_params
+{
+    GLenum mode;
+    GLuint id;
+};
+
+struct glDrawTransformFeedbackStream_params
+{
+    GLenum mode;
+    GLuint id;
+    GLuint stream;
+};
+
+struct glDrawTransformFeedbackStreamInstanced_params
+{
+    GLenum mode;
+    GLuint id;
+    GLuint stream;
+    GLsizei instancecount;
+};
+
+struct glDrawVkImageNV_params
+{
+    GLuint64 vkImage;
+    GLuint sampler;
+    GLfloat x0;
+    GLfloat y0;
+    GLfloat x1;
+    GLfloat y1;
+    GLfloat z;
+    GLfloat s0;
+    GLfloat t0;
+    GLfloat s1;
+    GLfloat t1;
+};
+
+struct glEGLImageTargetTexStorageEXT_params
+{
+    GLenum target;
+    GLeglImageOES image;
+    const GLint* attrib_list;
+};
+
+struct glEGLImageTargetTextureStorageEXT_params
+{
+    GLuint texture;
+    GLeglImageOES image;
+    const GLint* attrib_list;
+};
+
+struct glEdgeFlagFormatNV_params
+{
+    GLsizei stride;
+};
+
+struct glEdgeFlagPointerEXT_params
+{
+    GLsizei stride;
+    GLsizei count;
+    const GLboolean *pointer;
+};
+
+struct glEdgeFlagPointerListIBM_params
+{
+    GLint stride;
+    const GLboolean **pointer;
+    GLint ptrstride;
+};
+
+struct glElementPointerAPPLE_params
+{
+    GLenum type;
+    const void *pointer;
+};
+
+struct glElementPointerATI_params
+{
+    GLenum type;
+    const void *pointer;
+};
+
+struct glEnableClientStateIndexedEXT_params
+{
+    GLenum array;
+    GLuint index;
+};
+
+struct glEnableClientStateiEXT_params
+{
+    GLenum array;
+    GLuint index;
+};
+
+struct glEnableIndexedEXT_params
+{
+    GLenum target;
+    GLuint index;
+};
+
+struct glEnableVariantClientStateEXT_params
+{
+    GLuint id;
+};
+
+struct glEnableVertexArrayAttrib_params
+{
+    GLuint vaobj;
+    GLuint index;
+};
+
+struct glEnableVertexArrayAttribEXT_params
+{
+    GLuint vaobj;
+    GLuint index;
+};
+
+struct glEnableVertexArrayEXT_params
+{
+    GLuint vaobj;
+    GLenum array;
+};
+
+struct glEnableVertexAttribAPPLE_params
+{
+    GLuint index;
+    GLenum pname;
+};
+
+struct glEnableVertexAttribArray_params
+{
+    GLuint index;
+};
+
+struct glEnableVertexAttribArrayARB_params
+{
+    GLuint index;
+};
+
+struct glEnablei_params
+{
+    GLenum target;
+    GLuint index;
+};
+
+struct glEndConditionalRender_params
+{
+};
+
+struct glEndConditionalRenderNV_params
+{
+};
+
+struct glEndConditionalRenderNVX_params
+{
+};
+
+struct glEndFragmentShaderATI_params
+{
+};
+
+struct glEndOcclusionQueryNV_params
+{
+};
+
+struct glEndPerfMonitorAMD_params
+{
+    GLuint monitor;
+};
+
+struct glEndPerfQueryINTEL_params
+{
+    GLuint queryHandle;
+};
+
+struct glEndQuery_params
+{
+    GLenum target;
+};
+
+struct glEndQueryARB_params
+{
+    GLenum target;
+};
+
+struct glEndQueryIndexed_params
+{
+    GLenum target;
+    GLuint index;
+};
+
+struct glEndTransformFeedback_params
+{
+};
+
+struct glEndTransformFeedbackEXT_params
+{
+};
+
+struct glEndTransformFeedbackNV_params
+{
+};
+
+struct glEndVertexShaderEXT_params
+{
+};
+
+struct glEndVideoCaptureNV_params
+{
+    GLuint video_capture_slot;
+};
+
+struct glEvalCoord1xOES_params
+{
+    GLfixed u;
+};
+
+struct glEvalCoord1xvOES_params
+{
+    const GLfixed *coords;
+};
+
+struct glEvalCoord2xOES_params
+{
+    GLfixed u;
+    GLfixed v;
+};
+
+struct glEvalCoord2xvOES_params
+{
+    const GLfixed *coords;
+};
+
+struct glEvalMapsNV_params
+{
+    GLenum target;
+    GLenum mode;
+};
+
+struct glEvaluateDepthValuesARB_params
+{
+};
+
+struct glExecuteProgramNV_params
+{
+    GLenum target;
+    GLuint id;
+    const GLfloat *params;
+};
+
+struct glExtractComponentEXT_params
+{
+    GLuint res;
+    GLuint src;
+    GLuint num;
+};
+
+struct glFeedbackBufferxOES_params
+{
+    GLsizei n;
+    GLenum type;
+    const GLfixed *buffer;
+};
+
+struct glFenceSync_params
+{
+    GLenum condition;
+    GLbitfield flags;
+    GLsync ret;
+};
+
+struct glFinalCombinerInputNV_params
+{
+    GLenum variable;
+    GLenum input;
+    GLenum mapping;
+    GLenum componentUsage;
+};
+
+struct glFinishAsyncSGIX_params
+{
+    GLuint *markerp;
+    GLint ret;
+};
+
+struct glFinishFenceAPPLE_params
+{
+    GLuint fence;
+};
+
+struct glFinishFenceNV_params
+{
+    GLuint fence;
+};
+
+struct glFinishObjectAPPLE_params
+{
+    GLenum object;
+    GLint name;
+};
+
+struct glFinishTextureSUNX_params
+{
+};
+
+struct glFlushMappedBufferRange_params
+{
+    GLenum target;
+    GLintptr offset;
+    GLsizeiptr length;
+};
+
+struct glFlushMappedBufferRangeAPPLE_params
+{
+    GLenum target;
+    GLintptr offset;
+    GLsizeiptr size;
+};
+
+struct glFlushMappedNamedBufferRange_params
+{
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr length;
+};
+
+struct glFlushMappedNamedBufferRangeEXT_params
+{
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr length;
+};
+
+struct glFlushPixelDataRangeNV_params
+{
+    GLenum target;
+};
+
+struct glFlushRasterSGIX_params
+{
+};
+
+struct glFlushStaticDataIBM_params
+{
+    GLenum target;
+};
+
+struct glFlushVertexArrayRangeAPPLE_params
+{
+    GLsizei length;
+    void *pointer;
+};
+
+struct glFlushVertexArrayRangeNV_params
+{
+};
+
+struct glFogCoordFormatNV_params
+{
+    GLenum type;
+    GLsizei stride;
+};
+
+struct glFogCoordPointer_params
+{
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glFogCoordPointerEXT_params
+{
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glFogCoordPointerListIBM_params
+{
+    GLenum type;
+    GLint stride;
+    const void **pointer;
+    GLint ptrstride;
+};
+
+struct glFogCoordd_params
+{
+    GLdouble coord;
+};
+
+struct glFogCoorddEXT_params
+{
+    GLdouble coord;
+};
+
+struct glFogCoorddv_params
+{
+    const GLdouble *coord;
+};
+
+struct glFogCoorddvEXT_params
+{
+    const GLdouble *coord;
+};
+
+struct glFogCoordf_params
+{
+    GLfloat coord;
+};
+
+struct glFogCoordfEXT_params
+{
+    GLfloat coord;
+};
+
+struct glFogCoordfv_params
+{
+    const GLfloat *coord;
+};
+
+struct glFogCoordfvEXT_params
+{
+    const GLfloat *coord;
+};
+
+struct glFogCoordhNV_params
+{
+    GLhalfNV fog;
+};
+
+struct glFogCoordhvNV_params
+{
+    const GLhalfNV *fog;
+};
+
+struct glFogFuncSGIS_params
+{
+    GLsizei n;
+    const GLfloat *points;
+};
+
+struct glFogxOES_params
+{
+    GLenum pname;
+    GLfixed param;
+};
+
+struct glFogxvOES_params
+{
+    GLenum pname;
+    const GLfixed *param;
+};
+
+struct glFragmentColorMaterialSGIX_params
+{
+    GLenum face;
+    GLenum mode;
+};
+
+struct glFragmentCoverageColorNV_params
+{
+    GLuint color;
+};
+
+struct glFragmentLightModelfSGIX_params
+{
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glFragmentLightModelfvSGIX_params
+{
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glFragmentLightModeliSGIX_params
+{
+    GLenum pname;
+    GLint param;
+};
+
+struct glFragmentLightModelivSGIX_params
+{
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glFragmentLightfSGIX_params
+{
+    GLenum light;
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glFragmentLightfvSGIX_params
+{
+    GLenum light;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glFragmentLightiSGIX_params
+{
+    GLenum light;
+    GLenum pname;
+    GLint param;
+};
+
+struct glFragmentLightivSGIX_params
+{
+    GLenum light;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glFragmentMaterialfSGIX_params
+{
+    GLenum face;
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glFragmentMaterialfvSGIX_params
+{
+    GLenum face;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glFragmentMaterialiSGIX_params
+{
+    GLenum face;
+    GLenum pname;
+    GLint param;
+};
+
+struct glFragmentMaterialivSGIX_params
+{
+    GLenum face;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glFrameTerminatorGREMEDY_params
+{
+};
+
+struct glFrameZoomSGIX_params
+{
+    GLint factor;
+};
+
+struct glFramebufferDrawBufferEXT_params
+{
+    GLuint framebuffer;
+    GLenum mode;
+};
+
+struct glFramebufferDrawBuffersEXT_params
+{
+    GLuint framebuffer;
+    GLsizei n;
+    const GLenum *bufs;
+};
+
+struct glFramebufferFetchBarrierEXT_params
+{
+};
+
+struct glFramebufferParameteri_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint param;
+};
+
+struct glFramebufferParameteriMESA_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint param;
+};
+
+struct glFramebufferReadBufferEXT_params
+{
+    GLuint framebuffer;
+    GLenum mode;
+};
+
+struct glFramebufferRenderbuffer_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLenum renderbuffertarget;
+    GLuint renderbuffer;
+};
+
+struct glFramebufferRenderbufferEXT_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLenum renderbuffertarget;
+    GLuint renderbuffer;
+};
+
+struct glFramebufferSampleLocationsfvARB_params
+{
+    GLenum target;
+    GLuint start;
+    GLsizei count;
+    const GLfloat *v;
+};
+
+struct glFramebufferSampleLocationsfvNV_params
+{
+    GLenum target;
+    GLuint start;
+    GLsizei count;
+    const GLfloat *v;
+};
+
+struct glFramebufferSamplePositionsfvAMD_params
+{
+    GLenum target;
+    GLuint numsamples;
+    GLuint pixelindex;
+    const GLfloat *values;
+};
+
+struct glFramebufferTexture_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+};
+
+struct glFramebufferTexture1D_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLenum textarget;
+    GLuint texture;
+    GLint level;
+};
+
+struct glFramebufferTexture1DEXT_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLenum textarget;
+    GLuint texture;
+    GLint level;
+};
+
+struct glFramebufferTexture2D_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLenum textarget;
+    GLuint texture;
+    GLint level;
+};
+
+struct glFramebufferTexture2DEXT_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLenum textarget;
+    GLuint texture;
+    GLint level;
+};
+
+struct glFramebufferTexture3D_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLenum textarget;
+    GLuint texture;
+    GLint level;
+    GLint zoffset;
+};
+
+struct glFramebufferTexture3DEXT_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLenum textarget;
+    GLuint texture;
+    GLint level;
+    GLint zoffset;
+};
+
+struct glFramebufferTextureARB_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+};
+
+struct glFramebufferTextureEXT_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+};
+
+struct glFramebufferTextureFaceARB_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+    GLenum face;
+};
+
+struct glFramebufferTextureFaceEXT_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+    GLenum face;
+};
+
+struct glFramebufferTextureLayer_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+    GLint layer;
+};
+
+struct glFramebufferTextureLayerARB_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+    GLint layer;
+};
+
+struct glFramebufferTextureLayerEXT_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+    GLint layer;
+};
+
+struct glFramebufferTextureMultiviewOVR_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+    GLint baseViewIndex;
+    GLsizei numViews;
+};
+
+struct glFreeObjectBufferATI_params
+{
+    GLuint buffer;
+};
+
+struct glFrustumfOES_params
+{
+    GLfloat l;
+    GLfloat r;
+    GLfloat b;
+    GLfloat t;
+    GLfloat n;
+    GLfloat f;
+};
+
+struct glFrustumxOES_params
+{
+    GLfixed l;
+    GLfixed r;
+    GLfixed b;
+    GLfixed t;
+    GLfixed n;
+    GLfixed f;
+};
+
+struct glGenAsyncMarkersSGIX_params
+{
+    GLsizei range;
+    GLuint ret;
+};
+
+struct glGenBuffers_params
+{
+    GLsizei n;
+    GLuint *buffers;
+};
+
+struct glGenBuffersARB_params
+{
+    GLsizei n;
+    GLuint *buffers;
+};
+
+struct glGenFencesAPPLE_params
+{
+    GLsizei n;
+    GLuint *fences;
+};
+
+struct glGenFencesNV_params
+{
+    GLsizei n;
+    GLuint *fences;
+};
+
+struct glGenFragmentShadersATI_params
+{
+    GLuint range;
+    GLuint ret;
+};
+
+struct glGenFramebuffers_params
+{
+    GLsizei n;
+    GLuint *framebuffers;
+};
+
+struct glGenFramebuffersEXT_params
+{
+    GLsizei n;
+    GLuint *framebuffers;
+};
+
+struct glGenNamesAMD_params
+{
+    GLenum identifier;
+    GLuint num;
+    GLuint *names;
+};
+
+struct glGenOcclusionQueriesNV_params
+{
+    GLsizei n;
+    GLuint *ids;
+};
+
+struct glGenPathsNV_params
+{
+    GLsizei range;
+    GLuint ret;
+};
+
+struct glGenPerfMonitorsAMD_params
+{
+    GLsizei n;
+    GLuint *monitors;
+};
+
+struct glGenProgramPipelines_params
+{
+    GLsizei n;
+    GLuint *pipelines;
+};
+
+struct glGenProgramsARB_params
+{
+    GLsizei n;
+    GLuint *programs;
+};
+
+struct glGenProgramsNV_params
+{
+    GLsizei n;
+    GLuint *programs;
+};
+
+struct glGenQueries_params
+{
+    GLsizei n;
+    GLuint *ids;
+};
+
+struct glGenQueriesARB_params
+{
+    GLsizei n;
+    GLuint *ids;
+};
+
+struct glGenQueryResourceTagNV_params
+{
+    GLsizei n;
+    GLint *tagIds;
+};
+
+struct glGenRenderbuffers_params
+{
+    GLsizei n;
+    GLuint *renderbuffers;
+};
+
+struct glGenRenderbuffersEXT_params
+{
+    GLsizei n;
+    GLuint *renderbuffers;
+};
+
+struct glGenSamplers_params
+{
+    GLsizei count;
+    GLuint *samplers;
+};
+
+struct glGenSemaphoresEXT_params
+{
+    GLsizei n;
+    GLuint *semaphores;
+};
+
+struct glGenSymbolsEXT_params
+{
+    GLenum datatype;
+    GLenum storagetype;
+    GLenum range;
+    GLuint components;
+    GLuint ret;
+};
+
+struct glGenTexturesEXT_params
+{
+    GLsizei n;
+    GLuint *textures;
+};
+
+struct glGenTransformFeedbacks_params
+{
+    GLsizei n;
+    GLuint *ids;
+};
+
+struct glGenTransformFeedbacksNV_params
+{
+    GLsizei n;
+    GLuint *ids;
+};
+
+struct glGenVertexArrays_params
+{
+    GLsizei n;
+    GLuint *arrays;
+};
+
+struct glGenVertexArraysAPPLE_params
+{
+    GLsizei n;
+    GLuint *arrays;
+};
+
+struct glGenVertexShadersEXT_params
+{
+    GLuint range;
+    GLuint ret;
+};
+
+struct glGenerateMipmap_params
+{
+    GLenum target;
+};
+
+struct glGenerateMipmapEXT_params
+{
+    GLenum target;
+};
+
+struct glGenerateMultiTexMipmapEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+};
+
+struct glGenerateTextureMipmap_params
+{
+    GLuint texture;
+};
+
+struct glGenerateTextureMipmapEXT_params
+{
+    GLuint texture;
+    GLenum target;
+};
+
+struct glGetActiveAtomicCounterBufferiv_params
+{
+    GLuint program;
+    GLuint bufferIndex;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetActiveAttrib_params
+{
+    GLuint program;
+    GLuint index;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLint *size;
+    GLenum *type;
+    GLchar *name;
+};
+
+struct glGetActiveAttribARB_params
+{
+    GLhandleARB programObj;
+    GLuint index;
+    GLsizei maxLength;
+    GLsizei *length;
+    GLint *size;
+    GLenum *type;
+    GLcharARB *name;
+};
+
+struct glGetActiveSubroutineName_params
+{
+    GLuint program;
+    GLenum shadertype;
+    GLuint index;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *name;
+};
+
+struct glGetActiveSubroutineUniformName_params
+{
+    GLuint program;
+    GLenum shadertype;
+    GLuint index;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *name;
+};
+
+struct glGetActiveSubroutineUniformiv_params
+{
+    GLuint program;
+    GLenum shadertype;
+    GLuint index;
+    GLenum pname;
+    GLint *values;
+};
+
+struct glGetActiveUniform_params
+{
+    GLuint program;
+    GLuint index;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLint *size;
+    GLenum *type;
+    GLchar *name;
+};
+
+struct glGetActiveUniformARB_params
+{
+    GLhandleARB programObj;
+    GLuint index;
+    GLsizei maxLength;
+    GLsizei *length;
+    GLint *size;
+    GLenum *type;
+    GLcharARB *name;
+};
+
+struct glGetActiveUniformBlockName_params
+{
+    GLuint program;
+    GLuint uniformBlockIndex;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *uniformBlockName;
+};
+
+struct glGetActiveUniformBlockiv_params
+{
+    GLuint program;
+    GLuint uniformBlockIndex;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetActiveUniformName_params
+{
+    GLuint program;
+    GLuint uniformIndex;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *uniformName;
+};
+
+struct glGetActiveUniformsiv_params
+{
+    GLuint program;
+    GLsizei uniformCount;
+    const GLuint *uniformIndices;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetActiveVaryingNV_params
+{
+    GLuint program;
+    GLuint index;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLsizei *size;
+    GLenum *type;
+    GLchar *name;
+};
+
+struct glGetArrayObjectfvATI_params
+{
+    GLenum array;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetArrayObjectivATI_params
+{
+    GLenum array;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetAttachedObjectsARB_params
+{
+    GLhandleARB containerObj;
+    GLsizei maxCount;
+    GLsizei *count;
+    GLhandleARB *obj;
+};
+
+struct glGetAttachedShaders_params
+{
+    GLuint program;
+    GLsizei maxCount;
+    GLsizei *count;
+    GLuint *shaders;
+};
+
+struct glGetAttribLocation_params
+{
+    GLuint program;
+    const GLchar *name;
+    GLint ret;
+};
+
+struct glGetAttribLocationARB_params
+{
+    GLhandleARB programObj;
+    const GLcharARB *name;
+    GLint ret;
+};
+
+struct glGetBooleanIndexedvEXT_params
+{
+    GLenum target;
+    GLuint index;
+    GLboolean *data;
+};
+
+struct glGetBooleani_v_params
+{
+    GLenum target;
+    GLuint index;
+    GLboolean *data;
+};
+
+struct glGetBufferParameteri64v_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint64 *params;
+};
+
+struct glGetBufferParameteriv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetBufferParameterivARB_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetBufferParameterui64vNV_params
+{
+    GLenum target;
+    GLenum pname;
+    GLuint64EXT *params;
+};
+
+struct glGetBufferPointerv_params
+{
+    GLenum target;
+    GLenum pname;
+    void **params;
+};
+
+struct glGetBufferPointervARB_params
+{
+    GLenum target;
+    GLenum pname;
+    void **params;
+};
+
+struct glGetBufferSubData_params
+{
+    GLenum target;
+    GLintptr offset;
+    GLsizeiptr size;
+    void *data;
+};
+
+struct glGetBufferSubDataARB_params
+{
+    GLenum target;
+    GLintptrARB offset;
+    GLsizeiptrARB size;
+    void *data;
+};
+
+struct glGetClipPlanefOES_params
+{
+    GLenum plane;
+    GLfloat *equation;
+};
+
+struct glGetClipPlanexOES_params
+{
+    GLenum plane;
+    GLfixed *equation;
+};
+
+struct glGetColorTable_params
+{
+    GLenum target;
+    GLenum format;
+    GLenum type;
+    void *table;
+};
+
+struct glGetColorTableEXT_params
+{
+    GLenum target;
+    GLenum format;
+    GLenum type;
+    void *data;
+};
+
+struct glGetColorTableParameterfv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetColorTableParameterfvEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetColorTableParameterfvSGI_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetColorTableParameteriv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetColorTableParameterivEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetColorTableParameterivSGI_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetColorTableSGI_params
+{
+    GLenum target;
+    GLenum format;
+    GLenum type;
+    void *table;
+};
+
+struct glGetCombinerInputParameterfvNV_params
+{
+    GLenum stage;
+    GLenum portion;
+    GLenum variable;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetCombinerInputParameterivNV_params
+{
+    GLenum stage;
+    GLenum portion;
+    GLenum variable;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetCombinerOutputParameterfvNV_params
+{
+    GLenum stage;
+    GLenum portion;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetCombinerOutputParameterivNV_params
+{
+    GLenum stage;
+    GLenum portion;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetCombinerStageParameterfvNV_params
+{
+    GLenum stage;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetCommandHeaderNV_params
+{
+    GLenum tokenID;
+    GLuint size;
+    GLuint ret;
+};
+
+struct glGetCompressedMultiTexImageEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint lod;
+    void *img;
+};
+
+struct glGetCompressedTexImage_params
+{
+    GLenum target;
+    GLint level;
+    void *img;
+};
+
+struct glGetCompressedTexImageARB_params
+{
+    GLenum target;
+    GLint level;
+    void *img;
+};
+
+struct glGetCompressedTextureImage_params
+{
+    GLuint texture;
+    GLint level;
+    GLsizei bufSize;
+    void *pixels;
+};
+
+struct glGetCompressedTextureImageEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint lod;
+    void *img;
+};
+
+struct glGetCompressedTextureSubImage_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLsizei bufSize;
+    void *pixels;
+};
+
+struct glGetConvolutionFilter_params
+{
+    GLenum target;
+    GLenum format;
+    GLenum type;
+    void *image;
+};
+
+struct glGetConvolutionFilterEXT_params
+{
+    GLenum target;
+    GLenum format;
+    GLenum type;
+    void *image;
+};
+
+struct glGetConvolutionParameterfv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetConvolutionParameterfvEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetConvolutionParameteriv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetConvolutionParameterivEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetConvolutionParameterxvOES_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfixed *params;
+};
+
+struct glGetCoverageModulationTableNV_params
+{
+    GLsizei bufSize;
+    GLfloat *v;
+};
+
+struct glGetDebugMessageLog_params
+{
+    GLuint count;
+    GLsizei bufSize;
+    GLenum *sources;
+    GLenum *types;
+    GLuint *ids;
+    GLenum *severities;
+    GLsizei *lengths;
+    GLchar *messageLog;
+    GLuint ret;
+};
+
+struct glGetDebugMessageLogAMD_params
+{
+    GLuint count;
+    GLsizei bufSize;
+    GLenum *categories;
+    GLuint *severities;
+    GLuint *ids;
+    GLsizei *lengths;
+    GLchar *message;
+    GLuint ret;
+};
+
+struct glGetDebugMessageLogARB_params
+{
+    GLuint count;
+    GLsizei bufSize;
+    GLenum *sources;
+    GLenum *types;
+    GLuint *ids;
+    GLenum *severities;
+    GLsizei *lengths;
+    GLchar *messageLog;
+    GLuint ret;
+};
+
+struct glGetDetailTexFuncSGIS_params
+{
+    GLenum target;
+    GLfloat *points;
+};
+
+struct glGetDoubleIndexedvEXT_params
+{
+    GLenum target;
+    GLuint index;
+    GLdouble *data;
+};
+
+struct glGetDoublei_v_params
+{
+    GLenum target;
+    GLuint index;
+    GLdouble *data;
+};
+
+struct glGetDoublei_vEXT_params
+{
+    GLenum pname;
+    GLuint index;
+    GLdouble *params;
+};
+
+struct glGetFenceivNV_params
+{
+    GLuint fence;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetFinalCombinerInputParameterfvNV_params
+{
+    GLenum variable;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetFinalCombinerInputParameterivNV_params
+{
+    GLenum variable;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetFirstPerfQueryIdINTEL_params
+{
+    GLuint *queryId;
+};
+
+struct glGetFixedvOES_params
+{
+    GLenum pname;
+    GLfixed *params;
+};
+
+struct glGetFloatIndexedvEXT_params
+{
+    GLenum target;
+    GLuint index;
+    GLfloat *data;
+};
+
+struct glGetFloati_v_params
+{
+    GLenum target;
+    GLuint index;
+    GLfloat *data;
+};
+
+struct glGetFloati_vEXT_params
+{
+    GLenum pname;
+    GLuint index;
+    GLfloat *params;
+};
+
+struct glGetFogFuncSGIS_params
+{
+    GLfloat *points;
+};
+
+struct glGetFragDataIndex_params
+{
+    GLuint program;
+    const GLchar *name;
+    GLint ret;
+};
+
+struct glGetFragDataLocation_params
+{
+    GLuint program;
+    const GLchar *name;
+    GLint ret;
+};
+
+struct glGetFragDataLocationEXT_params
+{
+    GLuint program;
+    const GLchar *name;
+    GLint ret;
+};
+
+struct glGetFragmentLightfvSGIX_params
+{
+    GLenum light;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetFragmentLightivSGIX_params
+{
+    GLenum light;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetFragmentMaterialfvSGIX_params
+{
+    GLenum face;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetFragmentMaterialivSGIX_params
+{
+    GLenum face;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetFramebufferAttachmentParameteriv_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetFramebufferAttachmentParameterivEXT_params
+{
+    GLenum target;
+    GLenum attachment;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetFramebufferParameterfvAMD_params
+{
+    GLenum target;
+    GLenum pname;
+    GLuint numsamples;
+    GLuint pixelindex;
+    GLsizei size;
+    GLfloat *values;
+};
+
+struct glGetFramebufferParameteriv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetFramebufferParameterivEXT_params
+{
+    GLuint framebuffer;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetFramebufferParameterivMESA_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetGraphicsResetStatus_params
+{
+    GLenum ret;
+};
+
+struct glGetGraphicsResetStatusARB_params
+{
+    GLenum ret;
+};
+
+struct glGetHandleARB_params
+{
+    GLenum pname;
+    GLhandleARB ret;
+};
+
+struct glGetHistogram_params
+{
+    GLenum target;
+    GLboolean reset;
+    GLenum format;
+    GLenum type;
+    void *values;
+};
+
+struct glGetHistogramEXT_params
+{
+    GLenum target;
+    GLboolean reset;
+    GLenum format;
+    GLenum type;
+    void *values;
+};
+
+struct glGetHistogramParameterfv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetHistogramParameterfvEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetHistogramParameteriv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetHistogramParameterivEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetHistogramParameterxvOES_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfixed *params;
+};
+
+struct glGetImageHandleARB_params
+{
+    GLuint texture;
+    GLint level;
+    GLboolean layered;
+    GLint layer;
+    GLenum format;
+    GLuint64 ret;
+};
+
+struct glGetImageHandleNV_params
+{
+    GLuint texture;
+    GLint level;
+    GLboolean layered;
+    GLint layer;
+    GLenum format;
+    GLuint64 ret;
+};
+
+struct glGetImageTransformParameterfvHP_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetImageTransformParameterivHP_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetInfoLogARB_params
+{
+    GLhandleARB obj;
+    GLsizei maxLength;
+    GLsizei *length;
+    GLcharARB *infoLog;
+};
+
+struct glGetInstrumentsSGIX_params
+{
+    GLint ret;
+};
+
+struct glGetInteger64i_v_params
+{
+    GLenum target;
+    GLuint index;
+    GLint64 *data;
+};
+
+struct glGetInteger64v_params
+{
+    GLenum pname;
+    GLint64 *data;
+};
+
+struct glGetIntegerIndexedvEXT_params
+{
+    GLenum target;
+    GLuint index;
+    GLint *data;
+};
+
+struct glGetIntegeri_v_params
+{
+    GLenum target;
+    GLuint index;
+    GLint *data;
+};
+
+struct glGetIntegerui64i_vNV_params
+{
+    GLenum value;
+    GLuint index;
+    GLuint64EXT *result;
+};
+
+struct glGetIntegerui64vNV_params
+{
+    GLenum value;
+    GLuint64EXT *result;
+};
+
+struct glGetInternalformatSampleivNV_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLsizei samples;
+    GLenum pname;
+    GLsizei count;
+    GLint *params;
+};
+
+struct glGetInternalformati64v_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLenum pname;
+    GLsizei count;
+    GLint64 *params;
+};
+
+struct glGetInternalformativ_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLenum pname;
+    GLsizei count;
+    GLint *params;
+};
+
+struct glGetInvariantBooleanvEXT_params
+{
+    GLuint id;
+    GLenum value;
+    GLboolean *data;
+};
+
+struct glGetInvariantFloatvEXT_params
+{
+    GLuint id;
+    GLenum value;
+    GLfloat *data;
+};
+
+struct glGetInvariantIntegervEXT_params
+{
+    GLuint id;
+    GLenum value;
+    GLint *data;
+};
+
+struct glGetLightxOES_params
+{
+    GLenum light;
+    GLenum pname;
+    GLfixed *params;
+};
+
+struct glGetListParameterfvSGIX_params
+{
+    GLuint list;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetListParameterivSGIX_params
+{
+    GLuint list;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetLocalConstantBooleanvEXT_params
+{
+    GLuint id;
+    GLenum value;
+    GLboolean *data;
+};
+
+struct glGetLocalConstantFloatvEXT_params
+{
+    GLuint id;
+    GLenum value;
+    GLfloat *data;
+};
+
+struct glGetLocalConstantIntegervEXT_params
+{
+    GLuint id;
+    GLenum value;
+    GLint *data;
+};
+
+struct glGetMapAttribParameterfvNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetMapAttribParameterivNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetMapControlPointsNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLenum type;
+    GLsizei ustride;
+    GLsizei vstride;
+    GLboolean packed;
+    void *points;
+};
+
+struct glGetMapParameterfvNV_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetMapParameterivNV_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetMapxvOES_params
+{
+    GLenum target;
+    GLenum query;
+    GLfixed *v;
+};
+
+struct glGetMaterialxOES_params
+{
+    GLenum face;
+    GLenum pname;
+    GLfixed param;
+};
+
+struct glGetMemoryObjectDetachedResourcesuivNV_params
+{
+    GLuint memory;
+    GLenum pname;
+    GLint first;
+    GLsizei count;
+    GLuint *params;
+};
+
+struct glGetMemoryObjectParameterivEXT_params
+{
+    GLuint memoryObject;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetMinmax_params
+{
+    GLenum target;
+    GLboolean reset;
+    GLenum format;
+    GLenum type;
+    void *values;
+};
+
+struct glGetMinmaxEXT_params
+{
+    GLenum target;
+    GLboolean reset;
+    GLenum format;
+    GLenum type;
+    void *values;
+};
+
+struct glGetMinmaxParameterfv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetMinmaxParameterfvEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetMinmaxParameteriv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetMinmaxParameterivEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetMultiTexEnvfvEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetMultiTexEnvivEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetMultiTexGendvEXT_params
+{
+    GLenum texunit;
+    GLenum coord;
+    GLenum pname;
+    GLdouble *params;
+};
+
+struct glGetMultiTexGenfvEXT_params
+{
+    GLenum texunit;
+    GLenum coord;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetMultiTexGenivEXT_params
+{
+    GLenum texunit;
+    GLenum coord;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetMultiTexImageEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLenum format;
+    GLenum type;
+    void *pixels;
+};
+
+struct glGetMultiTexLevelParameterfvEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetMultiTexLevelParameterivEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetMultiTexParameterIivEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetMultiTexParameterIuivEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    GLuint *params;
+};
+
+struct glGetMultiTexParameterfvEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetMultiTexParameterivEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetMultisamplefv_params
+{
+    GLenum pname;
+    GLuint index;
+    GLfloat *val;
+};
+
+struct glGetMultisamplefvNV_params
+{
+    GLenum pname;
+    GLuint index;
+    GLfloat *val;
+};
+
+struct glGetNamedBufferParameteri64v_params
+{
+    GLuint buffer;
+    GLenum pname;
+    GLint64 *params;
+};
+
+struct glGetNamedBufferParameteriv_params
+{
+    GLuint buffer;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetNamedBufferParameterivEXT_params
+{
+    GLuint buffer;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetNamedBufferParameterui64vNV_params
+{
+    GLuint buffer;
+    GLenum pname;
+    GLuint64EXT *params;
+};
+
+struct glGetNamedBufferPointerv_params
+{
+    GLuint buffer;
+    GLenum pname;
+    void **params;
+};
+
+struct glGetNamedBufferPointervEXT_params
+{
+    GLuint buffer;
+    GLenum pname;
+    void **params;
+};
+
+struct glGetNamedBufferSubData_params
+{
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+    void *data;
+};
+
+struct glGetNamedBufferSubDataEXT_params
+{
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+    void *data;
+};
+
+struct glGetNamedFramebufferAttachmentParameteriv_params
+{
+    GLuint framebuffer;
+    GLenum attachment;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetNamedFramebufferAttachmentParameterivEXT_params
+{
+    GLuint framebuffer;
+    GLenum attachment;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetNamedFramebufferParameterfvAMD_params
+{
+    GLuint framebuffer;
+    GLenum pname;
+    GLuint numsamples;
+    GLuint pixelindex;
+    GLsizei size;
+    GLfloat *values;
+};
+
+struct glGetNamedFramebufferParameteriv_params
+{
+    GLuint framebuffer;
+    GLenum pname;
+    GLint *param;
+};
+
+struct glGetNamedFramebufferParameterivEXT_params
+{
+    GLuint framebuffer;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetNamedProgramLocalParameterIivEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    GLint *params;
+};
+
+struct glGetNamedProgramLocalParameterIuivEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    GLuint *params;
+};
+
+struct glGetNamedProgramLocalParameterdvEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    GLdouble *params;
+};
+
+struct glGetNamedProgramLocalParameterfvEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    GLfloat *params;
+};
+
+struct glGetNamedProgramStringEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLenum pname;
+    void *string;
+};
+
+struct glGetNamedProgramivEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetNamedRenderbufferParameteriv_params
+{
+    GLuint renderbuffer;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetNamedRenderbufferParameterivEXT_params
+{
+    GLuint renderbuffer;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetNamedStringARB_params
+{
+    GLint namelen;
+    const GLchar *name;
+    GLsizei bufSize;
+    GLint *stringlen;
+    GLchar *string;
+};
+
+struct glGetNamedStringivARB_params
+{
+    GLint namelen;
+    const GLchar *name;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetNextPerfQueryIdINTEL_params
+{
+    GLuint queryId;
+    GLuint *nextQueryId;
+};
+
+struct glGetObjectBufferfvATI_params
+{
+    GLuint buffer;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetObjectBufferivATI_params
+{
+    GLuint buffer;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetObjectLabel_params
+{
+    GLenum identifier;
+    GLuint name;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *label;
+};
+
+struct glGetObjectLabelEXT_params
+{
+    GLenum type;
+    GLuint object;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *label;
+};
+
+struct glGetObjectParameterfvARB_params
+{
+    GLhandleARB obj;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetObjectParameterivAPPLE_params
+{
+    GLenum objectType;
+    GLuint name;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetObjectParameterivARB_params
+{
+    GLhandleARB obj;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetObjectPtrLabel_params
+{
+    const void *ptr;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *label;
+};
+
+struct glGetOcclusionQueryivNV_params
+{
+    GLuint id;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetOcclusionQueryuivNV_params
+{
+    GLuint id;
+    GLenum pname;
+    GLuint *params;
+};
+
+struct glGetPathColorGenfvNV_params
+{
+    GLenum color;
+    GLenum pname;
+    GLfloat *value;
+};
+
+struct glGetPathColorGenivNV_params
+{
+    GLenum color;
+    GLenum pname;
+    GLint *value;
+};
+
+struct glGetPathCommandsNV_params
+{
+    GLuint path;
+    GLubyte *commands;
+};
+
+struct glGetPathCoordsNV_params
+{
+    GLuint path;
+    GLfloat *coords;
+};
+
+struct glGetPathDashArrayNV_params
+{
+    GLuint path;
+    GLfloat *dashArray;
+};
+
+struct glGetPathLengthNV_params
+{
+    GLuint path;
+    GLsizei startSegment;
+    GLsizei numSegments;
+    GLfloat ret;
+};
+
+struct glGetPathMetricRangeNV_params
+{
+    GLbitfield metricQueryMask;
+    GLuint firstPathName;
+    GLsizei numPaths;
+    GLsizei stride;
+    GLfloat *metrics;
+};
+
+struct glGetPathMetricsNV_params
+{
+    GLbitfield metricQueryMask;
+    GLsizei numPaths;
+    GLenum pathNameType;
+    const void *paths;
+    GLuint pathBase;
+    GLsizei stride;
+    GLfloat *metrics;
+};
+
+struct glGetPathParameterfvNV_params
+{
+    GLuint path;
+    GLenum pname;
+    GLfloat *value;
+};
+
+struct glGetPathParameterivNV_params
+{
+    GLuint path;
+    GLenum pname;
+    GLint *value;
+};
+
+struct glGetPathSpacingNV_params
+{
+    GLenum pathListMode;
+    GLsizei numPaths;
+    GLenum pathNameType;
+    const void *paths;
+    GLuint pathBase;
+    GLfloat advanceScale;
+    GLfloat kerningScale;
+    GLenum transformType;
+    GLfloat *returnedSpacing;
+};
+
+struct glGetPathTexGenfvNV_params
+{
+    GLenum texCoordSet;
+    GLenum pname;
+    GLfloat *value;
+};
+
+struct glGetPathTexGenivNV_params
+{
+    GLenum texCoordSet;
+    GLenum pname;
+    GLint *value;
+};
+
+struct glGetPerfCounterInfoINTEL_params
+{
+    GLuint queryId;
+    GLuint counterId;
+    GLuint counterNameLength;
+    GLchar *counterName;
+    GLuint counterDescLength;
+    GLchar *counterDesc;
+    GLuint *counterOffset;
+    GLuint *counterDataSize;
+    GLuint *counterTypeEnum;
+    GLuint *counterDataTypeEnum;
+    GLuint64 *rawCounterMaxValue;
+};
+
+struct glGetPerfMonitorCounterDataAMD_params
+{
+    GLuint monitor;
+    GLenum pname;
+    GLsizei dataSize;
+    GLuint *data;
+    GLint *bytesWritten;
+};
+
+struct glGetPerfMonitorCounterInfoAMD_params
+{
+    GLuint group;
+    GLuint counter;
+    GLenum pname;
+    void *data;
+};
+
+struct glGetPerfMonitorCounterStringAMD_params
+{
+    GLuint group;
+    GLuint counter;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *counterString;
+};
+
+struct glGetPerfMonitorCountersAMD_params
+{
+    GLuint group;
+    GLint *numCounters;
+    GLint *maxActiveCounters;
+    GLsizei counterSize;
+    GLuint *counters;
+};
+
+struct glGetPerfMonitorGroupStringAMD_params
+{
+    GLuint group;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *groupString;
+};
+
+struct glGetPerfMonitorGroupsAMD_params
+{
+    GLint *numGroups;
+    GLsizei groupsSize;
+    GLuint *groups;
+};
+
+struct glGetPerfQueryDataINTEL_params
+{
+    GLuint queryHandle;
+    GLuint flags;
+    GLsizei dataSize;
+    void *data;
+    GLuint *bytesWritten;
+};
+
+struct glGetPerfQueryIdByNameINTEL_params
+{
+    GLchar *queryName;
+    GLuint *queryId;
+};
+
+struct glGetPerfQueryInfoINTEL_params
+{
+    GLuint queryId;
+    GLuint queryNameLength;
+    GLchar *queryName;
+    GLuint *dataSize;
+    GLuint *noCounters;
+    GLuint *noInstances;
+    GLuint *capsMask;
+};
+
+struct glGetPixelMapxv_params
+{
+    GLenum map;
+    GLint size;
+    GLfixed *values;
+};
+
+struct glGetPixelTexGenParameterfvSGIS_params
+{
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetPixelTexGenParameterivSGIS_params
+{
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetPixelTransformParameterfvEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetPixelTransformParameterivEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetPointerIndexedvEXT_params
+{
+    GLenum target;
+    GLuint index;
+    void **data;
+};
+
+struct glGetPointeri_vEXT_params
+{
+    GLenum pname;
+    GLuint index;
+    void **params;
+};
+
+struct glGetPointervEXT_params
+{
+    GLenum pname;
+    void **params;
+};
+
+struct glGetProgramBinary_params
+{
+    GLuint program;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLenum *binaryFormat;
+    void *binary;
+};
+
+struct glGetProgramEnvParameterIivNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLint *params;
+};
+
+struct glGetProgramEnvParameterIuivNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint *params;
+};
+
+struct glGetProgramEnvParameterdvARB_params
+{
+    GLenum target;
+    GLuint index;
+    GLdouble *params;
+};
+
+struct glGetProgramEnvParameterfvARB_params
+{
+    GLenum target;
+    GLuint index;
+    GLfloat *params;
+};
+
+struct glGetProgramInfoLog_params
+{
+    GLuint program;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *infoLog;
+};
+
+struct glGetProgramInterfaceiv_params
+{
+    GLuint program;
+    GLenum programInterface;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetProgramLocalParameterIivNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLint *params;
+};
+
+struct glGetProgramLocalParameterIuivNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint *params;
+};
+
+struct glGetProgramLocalParameterdvARB_params
+{
+    GLenum target;
+    GLuint index;
+    GLdouble *params;
+};
+
+struct glGetProgramLocalParameterfvARB_params
+{
+    GLenum target;
+    GLuint index;
+    GLfloat *params;
+};
+
+struct glGetProgramNamedParameterdvNV_params
+{
+    GLuint id;
+    GLsizei len;
+    const GLubyte *name;
+    GLdouble *params;
+};
+
+struct glGetProgramNamedParameterfvNV_params
+{
+    GLuint id;
+    GLsizei len;
+    const GLubyte *name;
+    GLfloat *params;
+};
+
+struct glGetProgramParameterdvNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLenum pname;
+    GLdouble *params;
+};
+
+struct glGetProgramParameterfvNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetProgramPipelineInfoLog_params
+{
+    GLuint pipeline;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *infoLog;
+};
+
+struct glGetProgramPipelineiv_params
+{
+    GLuint pipeline;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetProgramResourceIndex_params
+{
+    GLuint program;
+    GLenum programInterface;
+    const GLchar *name;
+    GLuint ret;
+};
+
+struct glGetProgramResourceLocation_params
+{
+    GLuint program;
+    GLenum programInterface;
+    const GLchar *name;
+    GLint ret;
+};
+
+struct glGetProgramResourceLocationIndex_params
+{
+    GLuint program;
+    GLenum programInterface;
+    const GLchar *name;
+    GLint ret;
+};
+
+struct glGetProgramResourceName_params
+{
+    GLuint program;
+    GLenum programInterface;
+    GLuint index;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *name;
+};
+
+struct glGetProgramResourcefvNV_params
+{
+    GLuint program;
+    GLenum programInterface;
+    GLuint index;
+    GLsizei propCount;
+    const GLenum *props;
+    GLsizei count;
+    GLsizei *length;
+    GLfloat *params;
+};
+
+struct glGetProgramResourceiv_params
+{
+    GLuint program;
+    GLenum programInterface;
+    GLuint index;
+    GLsizei propCount;
+    const GLenum *props;
+    GLsizei count;
+    GLsizei *length;
+    GLint *params;
+};
+
+struct glGetProgramStageiv_params
+{
+    GLuint program;
+    GLenum shadertype;
+    GLenum pname;
+    GLint *values;
+};
+
+struct glGetProgramStringARB_params
+{
+    GLenum target;
+    GLenum pname;
+    void *string;
+};
+
+struct glGetProgramStringNV_params
+{
+    GLuint id;
+    GLenum pname;
+    GLubyte *program;
+};
+
+struct glGetProgramSubroutineParameteruivNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint *param;
+};
+
+struct glGetProgramiv_params
+{
+    GLuint program;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetProgramivARB_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetProgramivNV_params
+{
+    GLuint id;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetQueryBufferObjecti64v_params
+{
+    GLuint id;
+    GLuint buffer;
+    GLenum pname;
+    GLintptr offset;
+};
+
+struct glGetQueryBufferObjectiv_params
+{
+    GLuint id;
+    GLuint buffer;
+    GLenum pname;
+    GLintptr offset;
+};
+
+struct glGetQueryBufferObjectui64v_params
+{
+    GLuint id;
+    GLuint buffer;
+    GLenum pname;
+    GLintptr offset;
+};
+
+struct glGetQueryBufferObjectuiv_params
+{
+    GLuint id;
+    GLuint buffer;
+    GLenum pname;
+    GLintptr offset;
+};
+
+struct glGetQueryIndexediv_params
+{
+    GLenum target;
+    GLuint index;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetQueryObjecti64v_params
+{
+    GLuint id;
+    GLenum pname;
+    GLint64 *params;
+};
+
+struct glGetQueryObjecti64vEXT_params
+{
+    GLuint id;
+    GLenum pname;
+    GLint64 *params;
+};
+
+struct glGetQueryObjectiv_params
+{
+    GLuint id;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetQueryObjectivARB_params
+{
+    GLuint id;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetQueryObjectui64v_params
+{
+    GLuint id;
+    GLenum pname;
+    GLuint64 *params;
+};
+
+struct glGetQueryObjectui64vEXT_params
+{
+    GLuint id;
+    GLenum pname;
+    GLuint64 *params;
+};
+
+struct glGetQueryObjectuiv_params
+{
+    GLuint id;
+    GLenum pname;
+    GLuint *params;
+};
+
+struct glGetQueryObjectuivARB_params
+{
+    GLuint id;
+    GLenum pname;
+    GLuint *params;
+};
+
+struct glGetQueryiv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetQueryivARB_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetRenderbufferParameteriv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetRenderbufferParameterivEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetSamplerParameterIiv_params
+{
+    GLuint sampler;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetSamplerParameterIuiv_params
+{
+    GLuint sampler;
+    GLenum pname;
+    GLuint *params;
+};
+
+struct glGetSamplerParameterfv_params
+{
+    GLuint sampler;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetSamplerParameteriv_params
+{
+    GLuint sampler;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetSemaphoreParameterui64vEXT_params
+{
+    GLuint semaphore;
+    GLenum pname;
+    GLuint64 *params;
+};
+
+struct glGetSeparableFilter_params
+{
+    GLenum target;
+    GLenum format;
+    GLenum type;
+    void *row;
+    void *column;
+    void *span;
+};
+
+struct glGetSeparableFilterEXT_params
+{
+    GLenum target;
+    GLenum format;
+    GLenum type;
+    void *row;
+    void *column;
+    void *span;
+};
+
+struct glGetShaderInfoLog_params
+{
+    GLuint shader;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *infoLog;
+};
+
+struct glGetShaderPrecisionFormat_params
+{
+    GLenum shadertype;
+    GLenum precisiontype;
+    GLint *range;
+    GLint *precision;
+};
+
+struct glGetShaderSource_params
+{
+    GLuint shader;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLchar *source;
+};
+
+struct glGetShaderSourceARB_params
+{
+    GLhandleARB obj;
+    GLsizei maxLength;
+    GLsizei *length;
+    GLcharARB *source;
+};
+
+struct glGetShaderiv_params
+{
+    GLuint shader;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetShadingRateImagePaletteNV_params
+{
+    GLuint viewport;
+    GLuint entry;
+    GLenum *rate;
+};
+
+struct glGetShadingRateSampleLocationivNV_params
+{
+    GLenum rate;
+    GLuint samples;
+    GLuint index;
+    GLint *location;
+};
+
+struct glGetSharpenTexFuncSGIS_params
+{
+    GLenum target;
+    GLfloat *points;
+};
+
+struct glGetStageIndexNV_params
+{
+    GLenum shadertype;
+    GLushort ret;
+};
+
+struct glGetStringi_params
+{
+    GLenum name;
+    GLuint index;
+    const GLubyte *ret;
+};
+
+struct glGetSubroutineIndex_params
+{
+    GLuint program;
+    GLenum shadertype;
+    const GLchar *name;
+    GLuint ret;
+};
+
+struct glGetSubroutineUniformLocation_params
+{
+    GLuint program;
+    GLenum shadertype;
+    const GLchar *name;
+    GLint ret;
+};
+
+struct glGetSynciv_params
+{
+    GLsync sync;
+    GLenum pname;
+    GLsizei count;
+    GLsizei *length;
+    GLint *values;
+};
+
+struct glGetTexBumpParameterfvATI_params
+{
+    GLenum pname;
+    GLfloat *param;
+};
+
+struct glGetTexBumpParameterivATI_params
+{
+    GLenum pname;
+    GLint *param;
+};
+
+struct glGetTexEnvxvOES_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfixed *params;
+};
+
+struct glGetTexFilterFuncSGIS_params
+{
+    GLenum target;
+    GLenum filter;
+    GLfloat *weights;
+};
+
+struct glGetTexGenxvOES_params
+{
+    GLenum coord;
+    GLenum pname;
+    GLfixed *params;
+};
+
+struct glGetTexLevelParameterxvOES_params
+{
+    GLenum target;
+    GLint level;
+    GLenum pname;
+    GLfixed *params;
+};
+
+struct glGetTexParameterIiv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetTexParameterIivEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetTexParameterIuiv_params
+{
+    GLenum target;
+    GLenum pname;
+    GLuint *params;
+};
+
+struct glGetTexParameterIuivEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLuint *params;
+};
+
+struct glGetTexParameterPointervAPPLE_params
+{
+    GLenum target;
+    GLenum pname;
+    void **params;
+};
+
+struct glGetTexParameterxvOES_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfixed *params;
+};
+
+struct glGetTextureHandleARB_params
+{
+    GLuint texture;
+    GLuint64 ret;
+};
+
+struct glGetTextureHandleNV_params
+{
+    GLuint texture;
+    GLuint64 ret;
+};
+
+struct glGetTextureImage_params
+{
+    GLuint texture;
+    GLint level;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *pixels;
+};
+
+struct glGetTextureImageEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLenum format;
+    GLenum type;
+    void *pixels;
+};
+
+struct glGetTextureLevelParameterfv_params
+{
+    GLuint texture;
+    GLint level;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetTextureLevelParameterfvEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetTextureLevelParameteriv_params
+{
+    GLuint texture;
+    GLint level;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetTextureLevelParameterivEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetTextureParameterIiv_params
+{
+    GLuint texture;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetTextureParameterIivEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetTextureParameterIuiv_params
+{
+    GLuint texture;
+    GLenum pname;
+    GLuint *params;
+};
+
+struct glGetTextureParameterIuivEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLenum pname;
+    GLuint *params;
+};
+
+struct glGetTextureParameterfv_params
+{
+    GLuint texture;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetTextureParameterfvEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetTextureParameteriv_params
+{
+    GLuint texture;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetTextureParameterivEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetTextureSamplerHandleARB_params
+{
+    GLuint texture;
+    GLuint sampler;
+    GLuint64 ret;
+};
+
+struct glGetTextureSamplerHandleNV_params
+{
+    GLuint texture;
+    GLuint sampler;
+    GLuint64 ret;
+};
+
+struct glGetTextureSubImage_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *pixels;
+};
+
+struct glGetTrackMatrixivNV_params
+{
+    GLenum target;
+    GLuint address;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetTransformFeedbackVarying_params
+{
+    GLuint program;
+    GLuint index;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLsizei *size;
+    GLenum *type;
+    GLchar *name;
+};
+
+struct glGetTransformFeedbackVaryingEXT_params
+{
+    GLuint program;
+    GLuint index;
+    GLsizei bufSize;
+    GLsizei *length;
+    GLsizei *size;
+    GLenum *type;
+    GLchar *name;
+};
+
+struct glGetTransformFeedbackVaryingNV_params
+{
+    GLuint program;
+    GLuint index;
+    GLint *location;
+};
+
+struct glGetTransformFeedbacki64_v_params
+{
+    GLuint xfb;
+    GLenum pname;
+    GLuint index;
+    GLint64 *param;
+};
+
+struct glGetTransformFeedbacki_v_params
+{
+    GLuint xfb;
+    GLenum pname;
+    GLuint index;
+    GLint *param;
+};
+
+struct glGetTransformFeedbackiv_params
+{
+    GLuint xfb;
+    GLenum pname;
+    GLint *param;
+};
+
+struct glGetUniformBlockIndex_params
+{
+    GLuint program;
+    const GLchar *uniformBlockName;
+    GLuint ret;
+};
+
+struct glGetUniformBufferSizeEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLint ret;
+};
+
+struct glGetUniformIndices_params
+{
+    GLuint program;
+    GLsizei uniformCount;
+    const GLchar *const*uniformNames;
+    GLuint *uniformIndices;
+};
+
+struct glGetUniformLocation_params
+{
+    GLuint program;
+    const GLchar *name;
+    GLint ret;
+};
+
+struct glGetUniformLocationARB_params
+{
+    GLhandleARB programObj;
+    const GLcharARB *name;
+    GLint ret;
+};
+
+struct glGetUniformOffsetEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLintptr ret;
+};
+
+struct glGetUniformSubroutineuiv_params
+{
+    GLenum shadertype;
+    GLint location;
+    GLuint *params;
+};
+
+struct glGetUniformdv_params
+{
+    GLuint program;
+    GLint location;
+    GLdouble *params;
+};
+
+struct glGetUniformfv_params
+{
+    GLuint program;
+    GLint location;
+    GLfloat *params;
+};
+
+struct glGetUniformfvARB_params
+{
+    GLhandleARB programObj;
+    GLint location;
+    GLfloat *params;
+};
+
+struct glGetUniformi64vARB_params
+{
+    GLuint program;
+    GLint location;
+    GLint64 *params;
+};
+
+struct glGetUniformi64vNV_params
+{
+    GLuint program;
+    GLint location;
+    GLint64EXT *params;
+};
+
+struct glGetUniformiv_params
+{
+    GLuint program;
+    GLint location;
+    GLint *params;
+};
+
+struct glGetUniformivARB_params
+{
+    GLhandleARB programObj;
+    GLint location;
+    GLint *params;
+};
+
+struct glGetUniformui64vARB_params
+{
+    GLuint program;
+    GLint location;
+    GLuint64 *params;
+};
+
+struct glGetUniformui64vNV_params
+{
+    GLuint program;
+    GLint location;
+    GLuint64EXT *params;
+};
+
+struct glGetUniformuiv_params
+{
+    GLuint program;
+    GLint location;
+    GLuint *params;
+};
+
+struct glGetUniformuivEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLuint *params;
+};
+
+struct glGetUnsignedBytei_vEXT_params
+{
+    GLenum target;
+    GLuint index;
+    GLubyte *data;
+};
+
+struct glGetUnsignedBytevEXT_params
+{
+    GLenum pname;
+    GLubyte *data;
+};
+
+struct glGetVariantArrayObjectfvATI_params
+{
+    GLuint id;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetVariantArrayObjectivATI_params
+{
+    GLuint id;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetVariantBooleanvEXT_params
+{
+    GLuint id;
+    GLenum value;
+    GLboolean *data;
+};
+
+struct glGetVariantFloatvEXT_params
+{
+    GLuint id;
+    GLenum value;
+    GLfloat *data;
+};
+
+struct glGetVariantIntegervEXT_params
+{
+    GLuint id;
+    GLenum value;
+    GLint *data;
+};
+
+struct glGetVariantPointervEXT_params
+{
+    GLuint id;
+    GLenum value;
+    void **data;
+};
+
+struct glGetVaryingLocationNV_params
+{
+    GLuint program;
+    const GLchar *name;
+    GLint ret;
+};
+
+struct glGetVertexArrayIndexed64iv_params
+{
+    GLuint vaobj;
+    GLuint index;
+    GLenum pname;
+    GLint64 *param;
+};
+
+struct glGetVertexArrayIndexediv_params
+{
+    GLuint vaobj;
+    GLuint index;
+    GLenum pname;
+    GLint *param;
+};
+
+struct glGetVertexArrayIntegeri_vEXT_params
+{
+    GLuint vaobj;
+    GLuint index;
+    GLenum pname;
+    GLint *param;
+};
+
+struct glGetVertexArrayIntegervEXT_params
+{
+    GLuint vaobj;
+    GLenum pname;
+    GLint *param;
+};
+
+struct glGetVertexArrayPointeri_vEXT_params
+{
+    GLuint vaobj;
+    GLuint index;
+    GLenum pname;
+    void **param;
+};
+
+struct glGetVertexArrayPointervEXT_params
+{
+    GLuint vaobj;
+    GLenum pname;
+    void **param;
+};
+
+struct glGetVertexArrayiv_params
+{
+    GLuint vaobj;
+    GLenum pname;
+    GLint *param;
+};
+
+struct glGetVertexAttribArrayObjectfvATI_params
+{
+    GLuint index;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetVertexAttribArrayObjectivATI_params
+{
+    GLuint index;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetVertexAttribIiv_params
+{
+    GLuint index;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetVertexAttribIivEXT_params
+{
+    GLuint index;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetVertexAttribIuiv_params
+{
+    GLuint index;
+    GLenum pname;
+    GLuint *params;
+};
+
+struct glGetVertexAttribIuivEXT_params
+{
+    GLuint index;
+    GLenum pname;
+    GLuint *params;
+};
+
+struct glGetVertexAttribLdv_params
+{
+    GLuint index;
+    GLenum pname;
+    GLdouble *params;
+};
+
+struct glGetVertexAttribLdvEXT_params
+{
+    GLuint index;
+    GLenum pname;
+    GLdouble *params;
+};
+
+struct glGetVertexAttribLi64vNV_params
+{
+    GLuint index;
+    GLenum pname;
+    GLint64EXT *params;
+};
+
+struct glGetVertexAttribLui64vARB_params
+{
+    GLuint index;
+    GLenum pname;
+    GLuint64EXT *params;
+};
+
+struct glGetVertexAttribLui64vNV_params
+{
+    GLuint index;
+    GLenum pname;
+    GLuint64EXT *params;
+};
+
+struct glGetVertexAttribPointerv_params
+{
+    GLuint index;
+    GLenum pname;
+    void **pointer;
+};
+
+struct glGetVertexAttribPointervARB_params
+{
+    GLuint index;
+    GLenum pname;
+    void **pointer;
+};
+
+struct glGetVertexAttribPointervNV_params
+{
+    GLuint index;
+    GLenum pname;
+    void **pointer;
+};
+
+struct glGetVertexAttribdv_params
+{
+    GLuint index;
+    GLenum pname;
+    GLdouble *params;
+};
+
+struct glGetVertexAttribdvARB_params
+{
+    GLuint index;
+    GLenum pname;
+    GLdouble *params;
+};
+
+struct glGetVertexAttribdvNV_params
+{
+    GLuint index;
+    GLenum pname;
+    GLdouble *params;
+};
+
+struct glGetVertexAttribfv_params
+{
+    GLuint index;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetVertexAttribfvARB_params
+{
+    GLuint index;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetVertexAttribfvNV_params
+{
+    GLuint index;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetVertexAttribiv_params
+{
+    GLuint index;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetVertexAttribivARB_params
+{
+    GLuint index;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetVertexAttribivNV_params
+{
+    GLuint index;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetVideoCaptureStreamdvNV_params
+{
+    GLuint video_capture_slot;
+    GLuint stream;
+    GLenum pname;
+    GLdouble *params;
+};
+
+struct glGetVideoCaptureStreamfvNV_params
+{
+    GLuint video_capture_slot;
+    GLuint stream;
+    GLenum pname;
+    GLfloat *params;
+};
+
+struct glGetVideoCaptureStreamivNV_params
+{
+    GLuint video_capture_slot;
+    GLuint stream;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetVideoCaptureivNV_params
+{
+    GLuint video_capture_slot;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetVideoi64vNV_params
+{
+    GLuint video_slot;
+    GLenum pname;
+    GLint64EXT *params;
+};
+
+struct glGetVideoivNV_params
+{
+    GLuint video_slot;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glGetVideoui64vNV_params
+{
+    GLuint video_slot;
+    GLenum pname;
+    GLuint64EXT *params;
+};
+
+struct glGetVideouivNV_params
+{
+    GLuint video_slot;
+    GLenum pname;
+    GLuint *params;
+};
+
+struct glGetVkProcAddrNV_params
+{
+    const GLchar *name;
+    GLVULKANPROCNV ret;
+};
+
+struct glGetnColorTable_params
+{
+    GLenum target;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *table;
+};
+
+struct glGetnColorTableARB_params
+{
+    GLenum target;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *table;
+};
+
+struct glGetnCompressedTexImage_params
+{
+    GLenum target;
+    GLint lod;
+    GLsizei bufSize;
+    void *pixels;
+};
+
+struct glGetnCompressedTexImageARB_params
+{
+    GLenum target;
+    GLint lod;
+    GLsizei bufSize;
+    void *img;
+};
+
+struct glGetnConvolutionFilter_params
+{
+    GLenum target;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *image;
+};
+
+struct glGetnConvolutionFilterARB_params
+{
+    GLenum target;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *image;
+};
+
+struct glGetnHistogram_params
+{
+    GLenum target;
+    GLboolean reset;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *values;
+};
+
+struct glGetnHistogramARB_params
+{
+    GLenum target;
+    GLboolean reset;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *values;
+};
+
+struct glGetnMapdv_params
+{
+    GLenum target;
+    GLenum query;
+    GLsizei bufSize;
+    GLdouble *v;
+};
+
+struct glGetnMapdvARB_params
+{
+    GLenum target;
+    GLenum query;
+    GLsizei bufSize;
+    GLdouble *v;
+};
+
+struct glGetnMapfv_params
+{
+    GLenum target;
+    GLenum query;
+    GLsizei bufSize;
+    GLfloat *v;
+};
+
+struct glGetnMapfvARB_params
+{
+    GLenum target;
+    GLenum query;
+    GLsizei bufSize;
+    GLfloat *v;
+};
+
+struct glGetnMapiv_params
+{
+    GLenum target;
+    GLenum query;
+    GLsizei bufSize;
+    GLint *v;
+};
+
+struct glGetnMapivARB_params
+{
+    GLenum target;
+    GLenum query;
+    GLsizei bufSize;
+    GLint *v;
+};
+
+struct glGetnMinmax_params
+{
+    GLenum target;
+    GLboolean reset;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *values;
+};
+
+struct glGetnMinmaxARB_params
+{
+    GLenum target;
+    GLboolean reset;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *values;
+};
+
+struct glGetnPixelMapfv_params
+{
+    GLenum map;
+    GLsizei bufSize;
+    GLfloat *values;
+};
+
+struct glGetnPixelMapfvARB_params
+{
+    GLenum map;
+    GLsizei bufSize;
+    GLfloat *values;
+};
+
+struct glGetnPixelMapuiv_params
+{
+    GLenum map;
+    GLsizei bufSize;
+    GLuint *values;
+};
+
+struct glGetnPixelMapuivARB_params
+{
+    GLenum map;
+    GLsizei bufSize;
+    GLuint *values;
+};
+
+struct glGetnPixelMapusv_params
+{
+    GLenum map;
+    GLsizei bufSize;
+    GLushort *values;
+};
+
+struct glGetnPixelMapusvARB_params
+{
+    GLenum map;
+    GLsizei bufSize;
+    GLushort *values;
+};
+
+struct glGetnPolygonStipple_params
+{
+    GLsizei bufSize;
+    GLubyte *pattern;
+};
+
+struct glGetnPolygonStippleARB_params
+{
+    GLsizei bufSize;
+    GLubyte *pattern;
+};
+
+struct glGetnSeparableFilter_params
+{
+    GLenum target;
+    GLenum format;
+    GLenum type;
+    GLsizei rowBufSize;
+    void *row;
+    GLsizei columnBufSize;
+    void *column;
+    void *span;
+};
+
+struct glGetnSeparableFilterARB_params
+{
+    GLenum target;
+    GLenum format;
+    GLenum type;
+    GLsizei rowBufSize;
+    void *row;
+    GLsizei columnBufSize;
+    void *column;
+    void *span;
+};
+
+struct glGetnTexImage_params
+{
+    GLenum target;
+    GLint level;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *pixels;
+};
+
+struct glGetnTexImageARB_params
+{
+    GLenum target;
+    GLint level;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *img;
+};
+
+struct glGetnUniformdv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei bufSize;
+    GLdouble *params;
+};
+
+struct glGetnUniformdvARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei bufSize;
+    GLdouble *params;
+};
+
+struct glGetnUniformfv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei bufSize;
+    GLfloat *params;
+};
+
+struct glGetnUniformfvARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei bufSize;
+    GLfloat *params;
+};
+
+struct glGetnUniformi64vARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei bufSize;
+    GLint64 *params;
+};
+
+struct glGetnUniformiv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei bufSize;
+    GLint *params;
+};
+
+struct glGetnUniformivARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei bufSize;
+    GLint *params;
+};
+
+struct glGetnUniformui64vARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei bufSize;
+    GLuint64 *params;
+};
+
+struct glGetnUniformuiv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei bufSize;
+    GLuint *params;
+};
+
+struct glGetnUniformuivARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei bufSize;
+    GLuint *params;
+};
+
+struct glGlobalAlphaFactorbSUN_params
+{
+    GLbyte factor;
+};
+
+struct glGlobalAlphaFactordSUN_params
+{
+    GLdouble factor;
+};
+
+struct glGlobalAlphaFactorfSUN_params
+{
+    GLfloat factor;
+};
+
+struct glGlobalAlphaFactoriSUN_params
+{
+    GLint factor;
+};
+
+struct glGlobalAlphaFactorsSUN_params
+{
+    GLshort factor;
+};
+
+struct glGlobalAlphaFactorubSUN_params
+{
+    GLubyte factor;
+};
+
+struct glGlobalAlphaFactoruiSUN_params
+{
+    GLuint factor;
+};
+
+struct glGlobalAlphaFactorusSUN_params
+{
+    GLushort factor;
+};
+
+struct glHintPGI_params
+{
+    GLenum target;
+    GLint mode;
+};
+
+struct glHistogram_params
+{
+    GLenum target;
+    GLsizei width;
+    GLenum internalformat;
+    GLboolean sink;
+};
+
+struct glHistogramEXT_params
+{
+    GLenum target;
+    GLsizei width;
+    GLenum internalformat;
+    GLboolean sink;
+};
+
+struct glIglooInterfaceSGIX_params
+{
+    GLenum pname;
+    const void *params;
+};
+
+struct glImageTransformParameterfHP_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glImageTransformParameterfvHP_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glImageTransformParameteriHP_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint param;
+};
+
+struct glImageTransformParameterivHP_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glImportMemoryFdEXT_params
+{
+    GLuint memory;
+    GLuint64 size;
+    GLenum handleType;
+    GLint fd;
+};
+
+struct glImportMemoryWin32HandleEXT_params
+{
+    GLuint memory;
+    GLuint64 size;
+    GLenum handleType;
+    void *handle;
+};
+
+struct glImportMemoryWin32NameEXT_params
+{
+    GLuint memory;
+    GLuint64 size;
+    GLenum handleType;
+    const void *name;
+};
+
+struct glImportSemaphoreFdEXT_params
+{
+    GLuint semaphore;
+    GLenum handleType;
+    GLint fd;
+};
+
+struct glImportSemaphoreWin32HandleEXT_params
+{
+    GLuint semaphore;
+    GLenum handleType;
+    void *handle;
+};
+
+struct glImportSemaphoreWin32NameEXT_params
+{
+    GLuint semaphore;
+    GLenum handleType;
+    const void *name;
+};
+
+struct glImportSyncEXT_params
+{
+    GLenum external_sync_type;
+    GLintptr external_sync;
+    GLbitfield flags;
+    GLsync ret;
+};
+
+struct glIndexFormatNV_params
+{
+    GLenum type;
+    GLsizei stride;
+};
+
+struct glIndexFuncEXT_params
+{
+    GLenum func;
+    GLclampf ref;
+};
+
+struct glIndexMaterialEXT_params
+{
+    GLenum face;
+    GLenum mode;
+};
+
+struct glIndexPointerEXT_params
+{
+    GLenum type;
+    GLsizei stride;
+    GLsizei count;
+    const void *pointer;
+};
+
+struct glIndexPointerListIBM_params
+{
+    GLenum type;
+    GLint stride;
+    const void **pointer;
+    GLint ptrstride;
+};
+
+struct glIndexxOES_params
+{
+    GLfixed component;
+};
+
+struct glIndexxvOES_params
+{
+    const GLfixed *component;
+};
+
+struct glInsertComponentEXT_params
+{
+    GLuint res;
+    GLuint src;
+    GLuint num;
+};
+
+struct glInsertEventMarkerEXT_params
+{
+    GLsizei length;
+    const GLchar *marker;
+};
+
+struct glInstrumentsBufferSGIX_params
+{
+    GLsizei size;
+    GLint *buffer;
+};
+
+struct glInterpolatePathsNV_params
+{
+    GLuint resultPath;
+    GLuint pathA;
+    GLuint pathB;
+    GLfloat weight;
+};
+
+struct glInvalidateBufferData_params
+{
+    GLuint buffer;
+};
+
+struct glInvalidateBufferSubData_params
+{
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr length;
+};
+
+struct glInvalidateFramebuffer_params
+{
+    GLenum target;
+    GLsizei numAttachments;
+    const GLenum *attachments;
+};
+
+struct glInvalidateNamedFramebufferData_params
+{
+    GLuint framebuffer;
+    GLsizei numAttachments;
+    const GLenum *attachments;
+};
+
+struct glInvalidateNamedFramebufferSubData_params
+{
+    GLuint framebuffer;
+    GLsizei numAttachments;
+    const GLenum *attachments;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glInvalidateSubFramebuffer_params
+{
+    GLenum target;
+    GLsizei numAttachments;
+    const GLenum *attachments;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glInvalidateTexImage_params
+{
+    GLuint texture;
+    GLint level;
+};
+
+struct glInvalidateTexSubImage_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+};
+
+struct glIsAsyncMarkerSGIX_params
+{
+    GLuint marker;
+    GLboolean ret;
+};
+
+struct glIsBuffer_params
+{
+    GLuint buffer;
+    GLboolean ret;
+};
+
+struct glIsBufferARB_params
+{
+    GLuint buffer;
+    GLboolean ret;
+};
+
+struct glIsBufferResidentNV_params
+{
+    GLenum target;
+    GLboolean ret;
+};
+
+struct glIsCommandListNV_params
+{
+    GLuint list;
+    GLboolean ret;
+};
+
+struct glIsEnabledIndexedEXT_params
+{
+    GLenum target;
+    GLuint index;
+    GLboolean ret;
+};
+
+struct glIsEnabledi_params
+{
+    GLenum target;
+    GLuint index;
+    GLboolean ret;
+};
+
+struct glIsFenceAPPLE_params
+{
+    GLuint fence;
+    GLboolean ret;
+};
+
+struct glIsFenceNV_params
+{
+    GLuint fence;
+    GLboolean ret;
+};
+
+struct glIsFramebuffer_params
+{
+    GLuint framebuffer;
+    GLboolean ret;
+};
+
+struct glIsFramebufferEXT_params
+{
+    GLuint framebuffer;
+    GLboolean ret;
+};
+
+struct glIsImageHandleResidentARB_params
+{
+    GLuint64 handle;
+    GLboolean ret;
+};
+
+struct glIsImageHandleResidentNV_params
+{
+    GLuint64 handle;
+    GLboolean ret;
+};
+
+struct glIsMemoryObjectEXT_params
+{
+    GLuint memoryObject;
+    GLboolean ret;
+};
+
+struct glIsNameAMD_params
+{
+    GLenum identifier;
+    GLuint name;
+    GLboolean ret;
+};
+
+struct glIsNamedBufferResidentNV_params
+{
+    GLuint buffer;
+    GLboolean ret;
+};
+
+struct glIsNamedStringARB_params
+{
+    GLint namelen;
+    const GLchar *name;
+    GLboolean ret;
+};
+
+struct glIsObjectBufferATI_params
+{
+    GLuint buffer;
+    GLboolean ret;
+};
+
+struct glIsOcclusionQueryNV_params
+{
+    GLuint id;
+    GLboolean ret;
+};
+
+struct glIsPathNV_params
+{
+    GLuint path;
+    GLboolean ret;
+};
+
+struct glIsPointInFillPathNV_params
+{
+    GLuint path;
+    GLuint mask;
+    GLfloat x;
+    GLfloat y;
+    GLboolean ret;
+};
+
+struct glIsPointInStrokePathNV_params
+{
+    GLuint path;
+    GLfloat x;
+    GLfloat y;
+    GLboolean ret;
+};
+
+struct glIsProgram_params
+{
+    GLuint program;
+    GLboolean ret;
+};
+
+struct glIsProgramARB_params
+{
+    GLuint program;
+    GLboolean ret;
+};
+
+struct glIsProgramNV_params
+{
+    GLuint id;
+    GLboolean ret;
+};
+
+struct glIsProgramPipeline_params
+{
+    GLuint pipeline;
+    GLboolean ret;
+};
+
+struct glIsQuery_params
+{
+    GLuint id;
+    GLboolean ret;
+};
+
+struct glIsQueryARB_params
+{
+    GLuint id;
+    GLboolean ret;
+};
+
+struct glIsRenderbuffer_params
+{
+    GLuint renderbuffer;
+    GLboolean ret;
+};
+
+struct glIsRenderbufferEXT_params
+{
+    GLuint renderbuffer;
+    GLboolean ret;
+};
+
+struct glIsSampler_params
+{
+    GLuint sampler;
+    GLboolean ret;
+};
+
+struct glIsSemaphoreEXT_params
+{
+    GLuint semaphore;
+    GLboolean ret;
+};
+
+struct glIsShader_params
+{
+    GLuint shader;
+    GLboolean ret;
+};
+
+struct glIsStateNV_params
+{
+    GLuint state;
+    GLboolean ret;
+};
+
+struct glIsSync_params
+{
+    GLsync sync;
+    GLboolean ret;
+};
+
+struct glIsTextureEXT_params
+{
+    GLuint texture;
+    GLboolean ret;
+};
+
+struct glIsTextureHandleResidentARB_params
+{
+    GLuint64 handle;
+    GLboolean ret;
+};
+
+struct glIsTextureHandleResidentNV_params
+{
+    GLuint64 handle;
+    GLboolean ret;
+};
+
+struct glIsTransformFeedback_params
+{
+    GLuint id;
+    GLboolean ret;
+};
+
+struct glIsTransformFeedbackNV_params
+{
+    GLuint id;
+    GLboolean ret;
+};
+
+struct glIsVariantEnabledEXT_params
+{
+    GLuint id;
+    GLenum cap;
+    GLboolean ret;
+};
+
+struct glIsVertexArray_params
+{
+    GLuint array;
+    GLboolean ret;
+};
+
+struct glIsVertexArrayAPPLE_params
+{
+    GLuint array;
+    GLboolean ret;
+};
+
+struct glIsVertexAttribEnabledAPPLE_params
+{
+    GLuint index;
+    GLenum pname;
+    GLboolean ret;
+};
+
+struct glLGPUCopyImageSubDataNVX_params
+{
+    GLuint sourceGpu;
+    GLbitfield destinationGpuMask;
+    GLuint srcName;
+    GLenum srcTarget;
+    GLint srcLevel;
+    GLint srcX;
+    GLint srxY;
+    GLint srcZ;
+    GLuint dstName;
+    GLenum dstTarget;
+    GLint dstLevel;
+    GLint dstX;
+    GLint dstY;
+    GLint dstZ;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+};
+
+struct glLGPUInterlockNVX_params
+{
+};
+
+struct glLGPUNamedBufferSubDataNVX_params
+{
+    GLbitfield gpuMask;
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+    const void *data;
+};
+
+struct glLabelObjectEXT_params
+{
+    GLenum type;
+    GLuint object;
+    GLsizei length;
+    const GLchar *label;
+};
+
+struct glLightEnviSGIX_params
+{
+    GLenum pname;
+    GLint param;
+};
+
+struct glLightModelxOES_params
+{
+    GLenum pname;
+    GLfixed param;
+};
+
+struct glLightModelxvOES_params
+{
+    GLenum pname;
+    const GLfixed *param;
+};
+
+struct glLightxOES_params
+{
+    GLenum light;
+    GLenum pname;
+    GLfixed param;
+};
+
+struct glLightxvOES_params
+{
+    GLenum light;
+    GLenum pname;
+    const GLfixed *params;
+};
+
+struct glLineWidthxOES_params
+{
+    GLfixed width;
+};
+
+struct glLinkProgram_params
+{
+    GLuint program;
+};
+
+struct glLinkProgramARB_params
+{
+    GLhandleARB programObj;
+};
+
+struct glListDrawCommandsStatesClientNV_params
+{
+    GLuint list;
+    GLuint segment;
+    const void **indirects;
+    const GLsizei *sizes;
+    const GLuint *states;
+    const GLuint *fbos;
+    GLuint count;
+};
+
+struct glListParameterfSGIX_params
+{
+    GLuint list;
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glListParameterfvSGIX_params
+{
+    GLuint list;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glListParameteriSGIX_params
+{
+    GLuint list;
+    GLenum pname;
+    GLint param;
+};
+
+struct glListParameterivSGIX_params
+{
+    GLuint list;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glLoadIdentityDeformationMapSGIX_params
+{
+    GLbitfield mask;
+};
+
+struct glLoadMatrixxOES_params
+{
+    const GLfixed *m;
+};
+
+struct glLoadProgramNV_params
+{
+    GLenum target;
+    GLuint id;
+    GLsizei len;
+    const GLubyte *program;
+};
+
+struct glLoadTransposeMatrixd_params
+{
+    const GLdouble *m;
+};
+
+struct glLoadTransposeMatrixdARB_params
+{
+    const GLdouble *m;
+};
+
+struct glLoadTransposeMatrixf_params
+{
+    const GLfloat *m;
+};
+
+struct glLoadTransposeMatrixfARB_params
+{
+    const GLfloat *m;
+};
+
+struct glLoadTransposeMatrixxOES_params
+{
+    const GLfixed *m;
+};
+
+struct glLockArraysEXT_params
+{
+    GLint first;
+    GLsizei count;
+};
+
+struct glMTexCoord2fSGIS_params
+{
+    GLenum target;
+    GLfloat s;
+    GLfloat t;
+};
+
+struct glMTexCoord2fvSGIS_params
+{
+    GLenum target;
+    GLfloat * v;
+};
+
+struct glMakeBufferNonResidentNV_params
+{
+    GLenum target;
+};
+
+struct glMakeBufferResidentNV_params
+{
+    GLenum target;
+    GLenum access;
+};
+
+struct glMakeImageHandleNonResidentARB_params
+{
+    GLuint64 handle;
+};
+
+struct glMakeImageHandleNonResidentNV_params
+{
+    GLuint64 handle;
+};
+
+struct glMakeImageHandleResidentARB_params
+{
+    GLuint64 handle;
+    GLenum access;
+};
+
+struct glMakeImageHandleResidentNV_params
+{
+    GLuint64 handle;
+    GLenum access;
+};
+
+struct glMakeNamedBufferNonResidentNV_params
+{
+    GLuint buffer;
+};
+
+struct glMakeNamedBufferResidentNV_params
+{
+    GLuint buffer;
+    GLenum access;
+};
+
+struct glMakeTextureHandleNonResidentARB_params
+{
+    GLuint64 handle;
+};
+
+struct glMakeTextureHandleNonResidentNV_params
+{
+    GLuint64 handle;
+};
+
+struct glMakeTextureHandleResidentARB_params
+{
+    GLuint64 handle;
+};
+
+struct glMakeTextureHandleResidentNV_params
+{
+    GLuint64 handle;
+};
+
+struct glMap1xOES_params
+{
+    GLenum target;
+    GLfixed u1;
+    GLfixed u2;
+    GLint stride;
+    GLint order;
+    GLfixed points;
+};
+
+struct glMap2xOES_params
+{
+    GLenum target;
+    GLfixed u1;
+    GLfixed u2;
+    GLint ustride;
+    GLint uorder;
+    GLfixed v1;
+    GLfixed v2;
+    GLint vstride;
+    GLint vorder;
+    GLfixed points;
+};
+
+struct glMapBuffer_params
+{
+    GLenum target;
+    GLenum access;
+    void *ret;
+};
+
+struct glMapBufferARB_params
+{
+    GLenum target;
+    GLenum access;
+    void *ret;
+};
+
+struct glMapBufferRange_params
+{
+    GLenum target;
+    GLintptr offset;
+    GLsizeiptr length;
+    GLbitfield access;
+    void *ret;
+};
+
+struct glMapControlPointsNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLenum type;
+    GLsizei ustride;
+    GLsizei vstride;
+    GLint uorder;
+    GLint vorder;
+    GLboolean packed;
+    const void *points;
+};
+
+struct glMapGrid1xOES_params
+{
+    GLint n;
+    GLfixed u1;
+    GLfixed u2;
+};
+
+struct glMapGrid2xOES_params
+{
+    GLint n;
+    GLfixed u1;
+    GLfixed u2;
+    GLfixed v1;
+    GLfixed v2;
+};
+
+struct glMapNamedBuffer_params
+{
+    GLuint buffer;
+    GLenum access;
+    void *ret;
+};
+
+struct glMapNamedBufferEXT_params
+{
+    GLuint buffer;
+    GLenum access;
+    void *ret;
+};
+
+struct glMapNamedBufferRange_params
+{
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr length;
+    GLbitfield access;
+    void *ret;
+};
+
+struct glMapNamedBufferRangeEXT_params
+{
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr length;
+    GLbitfield access;
+    void *ret;
+};
+
+struct glMapObjectBufferATI_params
+{
+    GLuint buffer;
+    void *ret;
+};
+
+struct glMapParameterfvNV_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glMapParameterivNV_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glMapTexture2DINTEL_params
+{
+    GLuint texture;
+    GLint level;
+    GLbitfield access;
+    GLint *stride;
+    GLenum *layout;
+    void *ret;
+};
+
+struct glMapVertexAttrib1dAPPLE_params
+{
+    GLuint index;
+    GLuint size;
+    GLdouble u1;
+    GLdouble u2;
+    GLint stride;
+    GLint order;
+    const GLdouble *points;
+};
+
+struct glMapVertexAttrib1fAPPLE_params
+{
+    GLuint index;
+    GLuint size;
+    GLfloat u1;
+    GLfloat u2;
+    GLint stride;
+    GLint order;
+    const GLfloat *points;
+};
+
+struct glMapVertexAttrib2dAPPLE_params
+{
+    GLuint index;
+    GLuint size;
+    GLdouble u1;
+    GLdouble u2;
+    GLint ustride;
+    GLint uorder;
+    GLdouble v1;
+    GLdouble v2;
+    GLint vstride;
+    GLint vorder;
+    const GLdouble *points;
+};
+
+struct glMapVertexAttrib2fAPPLE_params
+{
+    GLuint index;
+    GLuint size;
+    GLfloat u1;
+    GLfloat u2;
+    GLint ustride;
+    GLint uorder;
+    GLfloat v1;
+    GLfloat v2;
+    GLint vstride;
+    GLint vorder;
+    const GLfloat *points;
+};
+
+struct glMaterialxOES_params
+{
+    GLenum face;
+    GLenum pname;
+    GLfixed param;
+};
+
+struct glMaterialxvOES_params
+{
+    GLenum face;
+    GLenum pname;
+    const GLfixed *param;
+};
+
+struct glMatrixFrustumEXT_params
+{
+    GLenum mode;
+    GLdouble left;
+    GLdouble right;
+    GLdouble bottom;
+    GLdouble top;
+    GLdouble zNear;
+    GLdouble zFar;
+};
+
+struct glMatrixIndexPointerARB_params
+{
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glMatrixIndexubvARB_params
+{
+    GLint size;
+    const GLubyte *indices;
+};
+
+struct glMatrixIndexuivARB_params
+{
+    GLint size;
+    const GLuint *indices;
+};
+
+struct glMatrixIndexusvARB_params
+{
+    GLint size;
+    const GLushort *indices;
+};
+
+struct glMatrixLoad3x2fNV_params
+{
+    GLenum matrixMode;
+    const GLfloat *m;
+};
+
+struct glMatrixLoad3x3fNV_params
+{
+    GLenum matrixMode;
+    const GLfloat *m;
+};
+
+struct glMatrixLoadIdentityEXT_params
+{
+    GLenum mode;
+};
+
+struct glMatrixLoadTranspose3x3fNV_params
+{
+    GLenum matrixMode;
+    const GLfloat *m;
+};
+
+struct glMatrixLoadTransposedEXT_params
+{
+    GLenum mode;
+    const GLdouble *m;
+};
+
+struct glMatrixLoadTransposefEXT_params
+{
+    GLenum mode;
+    const GLfloat *m;
+};
+
+struct glMatrixLoaddEXT_params
+{
+    GLenum mode;
+    const GLdouble *m;
+};
+
+struct glMatrixLoadfEXT_params
+{
+    GLenum mode;
+    const GLfloat *m;
+};
+
+struct glMatrixMult3x2fNV_params
+{
+    GLenum matrixMode;
+    const GLfloat *m;
+};
+
+struct glMatrixMult3x3fNV_params
+{
+    GLenum matrixMode;
+    const GLfloat *m;
+};
+
+struct glMatrixMultTranspose3x3fNV_params
+{
+    GLenum matrixMode;
+    const GLfloat *m;
+};
+
+struct glMatrixMultTransposedEXT_params
+{
+    GLenum mode;
+    const GLdouble *m;
+};
+
+struct glMatrixMultTransposefEXT_params
+{
+    GLenum mode;
+    const GLfloat *m;
+};
+
+struct glMatrixMultdEXT_params
+{
+    GLenum mode;
+    const GLdouble *m;
+};
+
+struct glMatrixMultfEXT_params
+{
+    GLenum mode;
+    const GLfloat *m;
+};
+
+struct glMatrixOrthoEXT_params
+{
+    GLenum mode;
+    GLdouble left;
+    GLdouble right;
+    GLdouble bottom;
+    GLdouble top;
+    GLdouble zNear;
+    GLdouble zFar;
+};
+
+struct glMatrixPopEXT_params
+{
+    GLenum mode;
+};
+
+struct glMatrixPushEXT_params
+{
+    GLenum mode;
+};
+
+struct glMatrixRotatedEXT_params
+{
+    GLenum mode;
+    GLdouble angle;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glMatrixRotatefEXT_params
+{
+    GLenum mode;
+    GLfloat angle;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glMatrixScaledEXT_params
+{
+    GLenum mode;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glMatrixScalefEXT_params
+{
+    GLenum mode;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glMatrixTranslatedEXT_params
+{
+    GLenum mode;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glMatrixTranslatefEXT_params
+{
+    GLenum mode;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glMaxShaderCompilerThreadsARB_params
+{
+    GLuint count;
+};
+
+struct glMaxShaderCompilerThreadsKHR_params
+{
+    GLuint count;
+};
+
+struct glMemoryBarrier_params
+{
+    GLbitfield barriers;
+};
+
+struct glMemoryBarrierByRegion_params
+{
+    GLbitfield barriers;
+};
+
+struct glMemoryBarrierEXT_params
+{
+    GLbitfield barriers;
+};
+
+struct glMemoryObjectParameterivEXT_params
+{
+    GLuint memoryObject;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glMinSampleShading_params
+{
+    GLfloat value;
+};
+
+struct glMinSampleShadingARB_params
+{
+    GLfloat value;
+};
+
+struct glMinmax_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLboolean sink;
+};
+
+struct glMinmaxEXT_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLboolean sink;
+};
+
+struct glMultMatrixxOES_params
+{
+    const GLfixed *m;
+};
+
+struct glMultTransposeMatrixd_params
+{
+    const GLdouble *m;
+};
+
+struct glMultTransposeMatrixdARB_params
+{
+    const GLdouble *m;
+};
+
+struct glMultTransposeMatrixf_params
+{
+    const GLfloat *m;
+};
+
+struct glMultTransposeMatrixfARB_params
+{
+    const GLfloat *m;
+};
+
+struct glMultTransposeMatrixxOES_params
+{
+    const GLfixed *m;
+};
+
+struct glMultiDrawArrays_params
+{
+    GLenum mode;
+    const GLint *first;
+    const GLsizei *count;
+    GLsizei drawcount;
+};
+
+struct glMultiDrawArraysEXT_params
+{
+    GLenum mode;
+    const GLint *first;
+    const GLsizei *count;
+    GLsizei primcount;
+};
+
+struct glMultiDrawArraysIndirect_params
+{
+    GLenum mode;
+    const void *indirect;
+    GLsizei drawcount;
+    GLsizei stride;
+};
+
+struct glMultiDrawArraysIndirectAMD_params
+{
+    GLenum mode;
+    const void *indirect;
+    GLsizei primcount;
+    GLsizei stride;
+};
+
+struct glMultiDrawArraysIndirectBindlessCountNV_params
+{
+    GLenum mode;
+    const void *indirect;
+    GLsizei drawCount;
+    GLsizei maxDrawCount;
+    GLsizei stride;
+    GLint vertexBufferCount;
+};
+
+struct glMultiDrawArraysIndirectBindlessNV_params
+{
+    GLenum mode;
+    const void *indirect;
+    GLsizei drawCount;
+    GLsizei stride;
+    GLint vertexBufferCount;
+};
+
+struct glMultiDrawArraysIndirectCount_params
+{
+    GLenum mode;
+    const void *indirect;
+    GLintptr drawcount;
+    GLsizei maxdrawcount;
+    GLsizei stride;
+};
+
+struct glMultiDrawArraysIndirectCountARB_params
+{
+    GLenum mode;
+    const void *indirect;
+    GLintptr drawcount;
+    GLsizei maxdrawcount;
+    GLsizei stride;
+};
+
+struct glMultiDrawElementArrayAPPLE_params
+{
+    GLenum mode;
+    const GLint *first;
+    const GLsizei *count;
+    GLsizei primcount;
+};
+
+struct glMultiDrawElements_params
+{
+    GLenum mode;
+    const GLsizei *count;
+    GLenum type;
+    const void *const*indices;
+    GLsizei drawcount;
+};
+
+struct glMultiDrawElementsBaseVertex_params
+{
+    GLenum mode;
+    const GLsizei *count;
+    GLenum type;
+    const void *const*indices;
+    GLsizei drawcount;
+    const GLint *basevertex;
+};
+
+struct glMultiDrawElementsEXT_params
+{
+    GLenum mode;
+    const GLsizei *count;
+    GLenum type;
+    const void *const*indices;
+    GLsizei primcount;
+};
+
+struct glMultiDrawElementsIndirect_params
+{
+    GLenum mode;
+    GLenum type;
+    const void *indirect;
+    GLsizei drawcount;
+    GLsizei stride;
+};
+
+struct glMultiDrawElementsIndirectAMD_params
+{
+    GLenum mode;
+    GLenum type;
+    const void *indirect;
+    GLsizei primcount;
+    GLsizei stride;
+};
+
+struct glMultiDrawElementsIndirectBindlessCountNV_params
+{
+    GLenum mode;
+    GLenum type;
+    const void *indirect;
+    GLsizei drawCount;
+    GLsizei maxDrawCount;
+    GLsizei stride;
+    GLint vertexBufferCount;
+};
+
+struct glMultiDrawElementsIndirectBindlessNV_params
+{
+    GLenum mode;
+    GLenum type;
+    const void *indirect;
+    GLsizei drawCount;
+    GLsizei stride;
+    GLint vertexBufferCount;
+};
+
+struct glMultiDrawElementsIndirectCount_params
+{
+    GLenum mode;
+    GLenum type;
+    const void *indirect;
+    GLintptr drawcount;
+    GLsizei maxdrawcount;
+    GLsizei stride;
+};
+
+struct glMultiDrawElementsIndirectCountARB_params
+{
+    GLenum mode;
+    GLenum type;
+    const void *indirect;
+    GLintptr drawcount;
+    GLsizei maxdrawcount;
+    GLsizei stride;
+};
+
+struct glMultiDrawMeshTasksIndirectCountNV_params
+{
+    GLintptr indirect;
+    GLintptr drawcount;
+    GLsizei maxdrawcount;
+    GLsizei stride;
+};
+
+struct glMultiDrawMeshTasksIndirectNV_params
+{
+    GLintptr indirect;
+    GLsizei drawcount;
+    GLsizei stride;
+};
+
+struct glMultiDrawRangeElementArrayAPPLE_params
+{
+    GLenum mode;
+    GLuint start;
+    GLuint end;
+    const GLint *first;
+    const GLsizei *count;
+    GLsizei primcount;
+};
+
+struct glMultiModeDrawArraysIBM_params
+{
+    const GLenum *mode;
+    const GLint *first;
+    const GLsizei *count;
+    GLsizei primcount;
+    GLint modestride;
+};
+
+struct glMultiModeDrawElementsIBM_params
+{
+    const GLenum *mode;
+    const GLsizei *count;
+    GLenum type;
+    const void *const*indices;
+    GLsizei primcount;
+    GLint modestride;
+};
+
+struct glMultiTexBufferEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum internalformat;
+    GLuint buffer;
+};
+
+struct glMultiTexCoord1bOES_params
+{
+    GLenum texture;
+    GLbyte s;
+};
+
+struct glMultiTexCoord1bvOES_params
+{
+    GLenum texture;
+    const GLbyte *coords;
+};
+
+struct glMultiTexCoord1d_params
+{
+    GLenum target;
+    GLdouble s;
+};
+
+struct glMultiTexCoord1dARB_params
+{
+    GLenum target;
+    GLdouble s;
+};
+
+struct glMultiTexCoord1dSGIS_params
+{
+    GLenum target;
+    GLdouble s;
+};
+
+struct glMultiTexCoord1dv_params
+{
+    GLenum target;
+    const GLdouble *v;
+};
+
+struct glMultiTexCoord1dvARB_params
+{
+    GLenum target;
+    const GLdouble *v;
+};
+
+struct glMultiTexCoord1dvSGIS_params
+{
+    GLenum target;
+    GLdouble * v;
+};
+
+struct glMultiTexCoord1f_params
+{
+    GLenum target;
+    GLfloat s;
+};
+
+struct glMultiTexCoord1fARB_params
+{
+    GLenum target;
+    GLfloat s;
+};
+
+struct glMultiTexCoord1fSGIS_params
+{
+    GLenum target;
+    GLfloat s;
+};
+
+struct glMultiTexCoord1fv_params
+{
+    GLenum target;
+    const GLfloat *v;
+};
+
+struct glMultiTexCoord1fvARB_params
+{
+    GLenum target;
+    const GLfloat *v;
+};
+
+struct glMultiTexCoord1fvSGIS_params
+{
+    GLenum target;
+    const GLfloat * v;
+};
+
+struct glMultiTexCoord1hNV_params
+{
+    GLenum target;
+    GLhalfNV s;
+};
+
+struct glMultiTexCoord1hvNV_params
+{
+    GLenum target;
+    const GLhalfNV *v;
+};
+
+struct glMultiTexCoord1i_params
+{
+    GLenum target;
+    GLint s;
+};
+
+struct glMultiTexCoord1iARB_params
+{
+    GLenum target;
+    GLint s;
+};
+
+struct glMultiTexCoord1iSGIS_params
+{
+    GLenum target;
+    GLint s;
+};
+
+struct glMultiTexCoord1iv_params
+{
+    GLenum target;
+    const GLint *v;
+};
+
+struct glMultiTexCoord1ivARB_params
+{
+    GLenum target;
+    const GLint *v;
+};
+
+struct glMultiTexCoord1ivSGIS_params
+{
+    GLenum target;
+    GLint * v;
+};
+
+struct glMultiTexCoord1s_params
+{
+    GLenum target;
+    GLshort s;
+};
+
+struct glMultiTexCoord1sARB_params
+{
+    GLenum target;
+    GLshort s;
+};
+
+struct glMultiTexCoord1sSGIS_params
+{
+    GLenum target;
+    GLshort s;
+};
+
+struct glMultiTexCoord1sv_params
+{
+    GLenum target;
+    const GLshort *v;
+};
+
+struct glMultiTexCoord1svARB_params
+{
+    GLenum target;
+    const GLshort *v;
+};
+
+struct glMultiTexCoord1svSGIS_params
+{
+    GLenum target;
+    GLshort * v;
+};
+
+struct glMultiTexCoord1xOES_params
+{
+    GLenum texture;
+    GLfixed s;
+};
+
+struct glMultiTexCoord1xvOES_params
+{
+    GLenum texture;
+    const GLfixed *coords;
+};
+
+struct glMultiTexCoord2bOES_params
+{
+    GLenum texture;
+    GLbyte s;
+    GLbyte t;
+};
+
+struct glMultiTexCoord2bvOES_params
+{
+    GLenum texture;
+    const GLbyte *coords;
+};
+
+struct glMultiTexCoord2d_params
+{
+    GLenum target;
+    GLdouble s;
+    GLdouble t;
+};
+
+struct glMultiTexCoord2dARB_params
+{
+    GLenum target;
+    GLdouble s;
+    GLdouble t;
+};
+
+struct glMultiTexCoord2dSGIS_params
+{
+    GLenum target;
+    GLdouble s;
+    GLdouble t;
+};
+
+struct glMultiTexCoord2dv_params
+{
+    GLenum target;
+    const GLdouble *v;
+};
+
+struct glMultiTexCoord2dvARB_params
+{
+    GLenum target;
+    const GLdouble *v;
+};
+
+struct glMultiTexCoord2dvSGIS_params
+{
+    GLenum target;
+    GLdouble * v;
+};
+
+struct glMultiTexCoord2f_params
+{
+    GLenum target;
+    GLfloat s;
+    GLfloat t;
+};
+
+struct glMultiTexCoord2fARB_params
+{
+    GLenum target;
+    GLfloat s;
+    GLfloat t;
+};
+
+struct glMultiTexCoord2fSGIS_params
+{
+    GLenum target;
+    GLfloat s;
+    GLfloat t;
+};
+
+struct glMultiTexCoord2fv_params
+{
+    GLenum target;
+    const GLfloat *v;
+};
+
+struct glMultiTexCoord2fvARB_params
+{
+    GLenum target;
+    const GLfloat *v;
+};
+
+struct glMultiTexCoord2fvSGIS_params
+{
+    GLenum target;
+    GLfloat * v;
+};
+
+struct glMultiTexCoord2hNV_params
+{
+    GLenum target;
+    GLhalfNV s;
+    GLhalfNV t;
+};
+
+struct glMultiTexCoord2hvNV_params
+{
+    GLenum target;
+    const GLhalfNV *v;
+};
+
+struct glMultiTexCoord2i_params
+{
+    GLenum target;
+    GLint s;
+    GLint t;
+};
+
+struct glMultiTexCoord2iARB_params
+{
+    GLenum target;
+    GLint s;
+    GLint t;
+};
+
+struct glMultiTexCoord2iSGIS_params
+{
+    GLenum target;
+    GLint s;
+    GLint t;
+};
+
+struct glMultiTexCoord2iv_params
+{
+    GLenum target;
+    const GLint *v;
+};
+
+struct glMultiTexCoord2ivARB_params
+{
+    GLenum target;
+    const GLint *v;
+};
+
+struct glMultiTexCoord2ivSGIS_params
+{
+    GLenum target;
+    GLint * v;
+};
+
+struct glMultiTexCoord2s_params
+{
+    GLenum target;
+    GLshort s;
+    GLshort t;
+};
+
+struct glMultiTexCoord2sARB_params
+{
+    GLenum target;
+    GLshort s;
+    GLshort t;
+};
+
+struct glMultiTexCoord2sSGIS_params
+{
+    GLenum target;
+    GLshort s;
+    GLshort t;
+};
+
+struct glMultiTexCoord2sv_params
+{
+    GLenum target;
+    const GLshort *v;
+};
+
+struct glMultiTexCoord2svARB_params
+{
+    GLenum target;
+    const GLshort *v;
+};
+
+struct glMultiTexCoord2svSGIS_params
+{
+    GLenum target;
+    GLshort * v;
+};
+
+struct glMultiTexCoord2xOES_params
+{
+    GLenum texture;
+    GLfixed s;
+    GLfixed t;
+};
+
+struct glMultiTexCoord2xvOES_params
+{
+    GLenum texture;
+    const GLfixed *coords;
+};
+
+struct glMultiTexCoord3bOES_params
+{
+    GLenum texture;
+    GLbyte s;
+    GLbyte t;
+    GLbyte r;
+};
+
+struct glMultiTexCoord3bvOES_params
+{
+    GLenum texture;
+    const GLbyte *coords;
+};
+
+struct glMultiTexCoord3d_params
+{
+    GLenum target;
+    GLdouble s;
+    GLdouble t;
+    GLdouble r;
+};
+
+struct glMultiTexCoord3dARB_params
+{
+    GLenum target;
+    GLdouble s;
+    GLdouble t;
+    GLdouble r;
+};
+
+struct glMultiTexCoord3dSGIS_params
+{
+    GLenum target;
+    GLdouble s;
+    GLdouble t;
+    GLdouble r;
+};
+
+struct glMultiTexCoord3dv_params
+{
+    GLenum target;
+    const GLdouble *v;
+};
+
+struct glMultiTexCoord3dvARB_params
+{
+    GLenum target;
+    const GLdouble *v;
+};
+
+struct glMultiTexCoord3dvSGIS_params
+{
+    GLenum target;
+    GLdouble * v;
+};
+
+struct glMultiTexCoord3f_params
+{
+    GLenum target;
+    GLfloat s;
+    GLfloat t;
+    GLfloat r;
+};
+
+struct glMultiTexCoord3fARB_params
+{
+    GLenum target;
+    GLfloat s;
+    GLfloat t;
+    GLfloat r;
+};
+
+struct glMultiTexCoord3fSGIS_params
+{
+    GLenum target;
+    GLfloat s;
+    GLfloat t;
+    GLfloat r;
+};
+
+struct glMultiTexCoord3fv_params
+{
+    GLenum target;
+    const GLfloat *v;
+};
+
+struct glMultiTexCoord3fvARB_params
+{
+    GLenum target;
+    const GLfloat *v;
+};
+
+struct glMultiTexCoord3fvSGIS_params
+{
+    GLenum target;
+    GLfloat * v;
+};
+
+struct glMultiTexCoord3hNV_params
+{
+    GLenum target;
+    GLhalfNV s;
+    GLhalfNV t;
+    GLhalfNV r;
+};
+
+struct glMultiTexCoord3hvNV_params
+{
+    GLenum target;
+    const GLhalfNV *v;
+};
+
+struct glMultiTexCoord3i_params
+{
+    GLenum target;
+    GLint s;
+    GLint t;
+    GLint r;
+};
+
+struct glMultiTexCoord3iARB_params
+{
+    GLenum target;
+    GLint s;
+    GLint t;
+    GLint r;
+};
+
+struct glMultiTexCoord3iSGIS_params
+{
+    GLenum target;
+    GLint s;
+    GLint t;
+    GLint r;
+};
+
+struct glMultiTexCoord3iv_params
+{
+    GLenum target;
+    const GLint *v;
+};
+
+struct glMultiTexCoord3ivARB_params
+{
+    GLenum target;
+    const GLint *v;
+};
+
+struct glMultiTexCoord3ivSGIS_params
+{
+    GLenum target;
+    GLint * v;
+};
+
+struct glMultiTexCoord3s_params
+{
+    GLenum target;
+    GLshort s;
+    GLshort t;
+    GLshort r;
+};
+
+struct glMultiTexCoord3sARB_params
+{
+    GLenum target;
+    GLshort s;
+    GLshort t;
+    GLshort r;
+};
+
+struct glMultiTexCoord3sSGIS_params
+{
+    GLenum target;
+    GLshort s;
+    GLshort t;
+    GLshort r;
+};
+
+struct glMultiTexCoord3sv_params
+{
+    GLenum target;
+    const GLshort *v;
+};
+
+struct glMultiTexCoord3svARB_params
+{
+    GLenum target;
+    const GLshort *v;
+};
+
+struct glMultiTexCoord3svSGIS_params
+{
+    GLenum target;
+    GLshort * v;
+};
+
+struct glMultiTexCoord3xOES_params
+{
+    GLenum texture;
+    GLfixed s;
+    GLfixed t;
+    GLfixed r;
+};
+
+struct glMultiTexCoord3xvOES_params
+{
+    GLenum texture;
+    const GLfixed *coords;
+};
+
+struct glMultiTexCoord4bOES_params
+{
+    GLenum texture;
+    GLbyte s;
+    GLbyte t;
+    GLbyte r;
+    GLbyte q;
+};
+
+struct glMultiTexCoord4bvOES_params
+{
+    GLenum texture;
+    const GLbyte *coords;
+};
+
+struct glMultiTexCoord4d_params
+{
+    GLenum target;
+    GLdouble s;
+    GLdouble t;
+    GLdouble r;
+    GLdouble q;
+};
+
+struct glMultiTexCoord4dARB_params
+{
+    GLenum target;
+    GLdouble s;
+    GLdouble t;
+    GLdouble r;
+    GLdouble q;
+};
+
+struct glMultiTexCoord4dSGIS_params
+{
+    GLenum target;
+    GLdouble s;
+    GLdouble t;
+    GLdouble r;
+    GLdouble q;
+};
+
+struct glMultiTexCoord4dv_params
+{
+    GLenum target;
+    const GLdouble *v;
+};
+
+struct glMultiTexCoord4dvARB_params
+{
+    GLenum target;
+    const GLdouble *v;
+};
+
+struct glMultiTexCoord4dvSGIS_params
+{
+    GLenum target;
+    GLdouble * v;
+};
+
+struct glMultiTexCoord4f_params
+{
+    GLenum target;
+    GLfloat s;
+    GLfloat t;
+    GLfloat r;
+    GLfloat q;
+};
+
+struct glMultiTexCoord4fARB_params
+{
+    GLenum target;
+    GLfloat s;
+    GLfloat t;
+    GLfloat r;
+    GLfloat q;
+};
+
+struct glMultiTexCoord4fSGIS_params
+{
+    GLenum target;
+    GLfloat s;
+    GLfloat t;
+    GLfloat r;
+    GLfloat q;
+};
+
+struct glMultiTexCoord4fv_params
+{
+    GLenum target;
+    const GLfloat *v;
+};
+
+struct glMultiTexCoord4fvARB_params
+{
+    GLenum target;
+    const GLfloat *v;
+};
+
+struct glMultiTexCoord4fvSGIS_params
+{
+    GLenum target;
+    GLfloat * v;
+};
+
+struct glMultiTexCoord4hNV_params
+{
+    GLenum target;
+    GLhalfNV s;
+    GLhalfNV t;
+    GLhalfNV r;
+    GLhalfNV q;
+};
+
+struct glMultiTexCoord4hvNV_params
+{
+    GLenum target;
+    const GLhalfNV *v;
+};
+
+struct glMultiTexCoord4i_params
+{
+    GLenum target;
+    GLint s;
+    GLint t;
+    GLint r;
+    GLint q;
+};
+
+struct glMultiTexCoord4iARB_params
+{
+    GLenum target;
+    GLint s;
+    GLint t;
+    GLint r;
+    GLint q;
+};
+
+struct glMultiTexCoord4iSGIS_params
+{
+    GLenum target;
+    GLint s;
+    GLint t;
+    GLint r;
+    GLint q;
+};
+
+struct glMultiTexCoord4iv_params
+{
+    GLenum target;
+    const GLint *v;
+};
+
+struct glMultiTexCoord4ivARB_params
+{
+    GLenum target;
+    const GLint *v;
+};
+
+struct glMultiTexCoord4ivSGIS_params
+{
+    GLenum target;
+    GLint * v;
+};
+
+struct glMultiTexCoord4s_params
+{
+    GLenum target;
+    GLshort s;
+    GLshort t;
+    GLshort r;
+    GLshort q;
+};
+
+struct glMultiTexCoord4sARB_params
+{
+    GLenum target;
+    GLshort s;
+    GLshort t;
+    GLshort r;
+    GLshort q;
+};
+
+struct glMultiTexCoord4sSGIS_params
+{
+    GLenum target;
+    GLshort s;
+    GLshort t;
+    GLshort r;
+    GLshort q;
+};
+
+struct glMultiTexCoord4sv_params
+{
+    GLenum target;
+    const GLshort *v;
+};
+
+struct glMultiTexCoord4svARB_params
+{
+    GLenum target;
+    const GLshort *v;
+};
+
+struct glMultiTexCoord4svSGIS_params
+{
+    GLenum target;
+    GLshort * v;
+};
+
+struct glMultiTexCoord4xOES_params
+{
+    GLenum texture;
+    GLfixed s;
+    GLfixed t;
+    GLfixed r;
+    GLfixed q;
+};
+
+struct glMultiTexCoord4xvOES_params
+{
+    GLenum texture;
+    const GLfixed *coords;
+};
+
+struct glMultiTexCoordP1ui_params
+{
+    GLenum texture;
+    GLenum type;
+    GLuint coords;
+};
+
+struct glMultiTexCoordP1uiv_params
+{
+    GLenum texture;
+    GLenum type;
+    const GLuint *coords;
+};
+
+struct glMultiTexCoordP2ui_params
+{
+    GLenum texture;
+    GLenum type;
+    GLuint coords;
+};
+
+struct glMultiTexCoordP2uiv_params
+{
+    GLenum texture;
+    GLenum type;
+    const GLuint *coords;
+};
+
+struct glMultiTexCoordP3ui_params
+{
+    GLenum texture;
+    GLenum type;
+    GLuint coords;
+};
+
+struct glMultiTexCoordP3uiv_params
+{
+    GLenum texture;
+    GLenum type;
+    const GLuint *coords;
+};
+
+struct glMultiTexCoordP4ui_params
+{
+    GLenum texture;
+    GLenum type;
+    GLuint coords;
+};
+
+struct glMultiTexCoordP4uiv_params
+{
+    GLenum texture;
+    GLenum type;
+    const GLuint *coords;
+};
+
+struct glMultiTexCoordPointerEXT_params
+{
+    GLenum texunit;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glMultiTexCoordPointerSGIS_params
+{
+    GLenum target;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    GLvoid * pointer;
+};
+
+struct glMultiTexEnvfEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glMultiTexEnvfvEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glMultiTexEnviEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    GLint param;
+};
+
+struct glMultiTexEnvivEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glMultiTexGendEXT_params
+{
+    GLenum texunit;
+    GLenum coord;
+    GLenum pname;
+    GLdouble param;
+};
+
+struct glMultiTexGendvEXT_params
+{
+    GLenum texunit;
+    GLenum coord;
+    GLenum pname;
+    const GLdouble *params;
+};
+
+struct glMultiTexGenfEXT_params
+{
+    GLenum texunit;
+    GLenum coord;
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glMultiTexGenfvEXT_params
+{
+    GLenum texunit;
+    GLenum coord;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glMultiTexGeniEXT_params
+{
+    GLenum texunit;
+    GLenum coord;
+    GLenum pname;
+    GLint param;
+};
+
+struct glMultiTexGenivEXT_params
+{
+    GLenum texunit;
+    GLenum coord;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glMultiTexImage1DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLint internalformat;
+    GLsizei width;
+    GLint border;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glMultiTexImage2DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLint internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLint border;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glMultiTexImage3DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLint internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLint border;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glMultiTexParameterIivEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glMultiTexParameterIuivEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    const GLuint *params;
+};
+
+struct glMultiTexParameterfEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glMultiTexParameterfvEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glMultiTexParameteriEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    GLint param;
+};
+
+struct glMultiTexParameterivEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glMultiTexRenderbufferEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLuint renderbuffer;
+};
+
+struct glMultiTexSubImage1DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLsizei width;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glMultiTexSubImage2DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glMultiTexSubImage3DEXT_params
+{
+    GLenum texunit;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glMulticastBarrierNV_params
+{
+};
+
+struct glMulticastBlitFramebufferNV_params
+{
+    GLuint srcGpu;
+    GLuint dstGpu;
+    GLint srcX0;
+    GLint srcY0;
+    GLint srcX1;
+    GLint srcY1;
+    GLint dstX0;
+    GLint dstY0;
+    GLint dstX1;
+    GLint dstY1;
+    GLbitfield mask;
+    GLenum filter;
+};
+
+struct glMulticastBufferSubDataNV_params
+{
+    GLbitfield gpuMask;
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+    const void *data;
+};
+
+struct glMulticastCopyBufferSubDataNV_params
+{
+    GLuint readGpu;
+    GLbitfield writeGpuMask;
+    GLuint readBuffer;
+    GLuint writeBuffer;
+    GLintptr readOffset;
+    GLintptr writeOffset;
+    GLsizeiptr size;
+};
+
+struct glMulticastCopyImageSubDataNV_params
+{
+    GLuint srcGpu;
+    GLbitfield dstGpuMask;
+    GLuint srcName;
+    GLenum srcTarget;
+    GLint srcLevel;
+    GLint srcX;
+    GLint srcY;
+    GLint srcZ;
+    GLuint dstName;
+    GLenum dstTarget;
+    GLint dstLevel;
+    GLint dstX;
+    GLint dstY;
+    GLint dstZ;
+    GLsizei srcWidth;
+    GLsizei srcHeight;
+    GLsizei srcDepth;
+};
+
+struct glMulticastFramebufferSampleLocationsfvNV_params
+{
+    GLuint gpu;
+    GLuint framebuffer;
+    GLuint start;
+    GLsizei count;
+    const GLfloat *v;
+};
+
+struct glMulticastGetQueryObjecti64vNV_params
+{
+    GLuint gpu;
+    GLuint id;
+    GLenum pname;
+    GLint64 *params;
+};
+
+struct glMulticastGetQueryObjectivNV_params
+{
+    GLuint gpu;
+    GLuint id;
+    GLenum pname;
+    GLint *params;
+};
+
+struct glMulticastGetQueryObjectui64vNV_params
+{
+    GLuint gpu;
+    GLuint id;
+    GLenum pname;
+    GLuint64 *params;
+};
+
+struct glMulticastGetQueryObjectuivNV_params
+{
+    GLuint gpu;
+    GLuint id;
+    GLenum pname;
+    GLuint *params;
+};
+
+struct glMulticastScissorArrayvNVX_params
+{
+    GLuint gpu;
+    GLuint first;
+    GLsizei count;
+    const GLint *v;
+};
+
+struct glMulticastViewportArrayvNVX_params
+{
+    GLuint gpu;
+    GLuint first;
+    GLsizei count;
+    const GLfloat *v;
+};
+
+struct glMulticastViewportPositionWScaleNVX_params
+{
+    GLuint gpu;
+    GLuint index;
+    GLfloat xcoeff;
+    GLfloat ycoeff;
+};
+
+struct glMulticastWaitSyncNV_params
+{
+    GLuint signalGpu;
+    GLbitfield waitGpuMask;
+};
+
+struct glNamedBufferAttachMemoryNV_params
+{
+    GLuint buffer;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glNamedBufferData_params
+{
+    GLuint buffer;
+    GLsizeiptr size;
+    const void *data;
+    GLenum usage;
+};
+
+struct glNamedBufferDataEXT_params
+{
+    GLuint buffer;
+    GLsizeiptr size;
+    const void *data;
+    GLenum usage;
+};
+
+struct glNamedBufferPageCommitmentARB_params
+{
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+    GLboolean commit;
+};
+
+struct glNamedBufferPageCommitmentEXT_params
+{
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+    GLboolean commit;
+};
+
+struct glNamedBufferStorage_params
+{
+    GLuint buffer;
+    GLsizeiptr size;
+    const void *data;
+    GLbitfield flags;
+};
+
+struct glNamedBufferStorageEXT_params
+{
+    GLuint buffer;
+    GLsizeiptr size;
+    const void *data;
+    GLbitfield flags;
+};
+
+struct glNamedBufferStorageExternalEXT_params
+{
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+    GLeglClientBufferEXT clientBuffer;
+    GLbitfield flags;
+};
+
+struct glNamedBufferStorageMemEXT_params
+{
+    GLuint buffer;
+    GLsizeiptr size;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glNamedBufferSubData_params
+{
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+    const void *data;
+};
+
+struct glNamedBufferSubDataEXT_params
+{
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+    const void *data;
+};
+
+struct glNamedCopyBufferSubDataEXT_params
+{
+    GLuint readBuffer;
+    GLuint writeBuffer;
+    GLintptr readOffset;
+    GLintptr writeOffset;
+    GLsizeiptr size;
+};
+
+struct glNamedFramebufferDrawBuffer_params
+{
+    GLuint framebuffer;
+    GLenum buf;
+};
+
+struct glNamedFramebufferDrawBuffers_params
+{
+    GLuint framebuffer;
+    GLsizei n;
+    const GLenum *bufs;
+};
+
+struct glNamedFramebufferParameteri_params
+{
+    GLuint framebuffer;
+    GLenum pname;
+    GLint param;
+};
+
+struct glNamedFramebufferParameteriEXT_params
+{
+    GLuint framebuffer;
+    GLenum pname;
+    GLint param;
+};
+
+struct glNamedFramebufferReadBuffer_params
+{
+    GLuint framebuffer;
+    GLenum src;
+};
+
+struct glNamedFramebufferRenderbuffer_params
+{
+    GLuint framebuffer;
+    GLenum attachment;
+    GLenum renderbuffertarget;
+    GLuint renderbuffer;
+};
+
+struct glNamedFramebufferRenderbufferEXT_params
+{
+    GLuint framebuffer;
+    GLenum attachment;
+    GLenum renderbuffertarget;
+    GLuint renderbuffer;
+};
+
+struct glNamedFramebufferSampleLocationsfvARB_params
+{
+    GLuint framebuffer;
+    GLuint start;
+    GLsizei count;
+    const GLfloat *v;
+};
+
+struct glNamedFramebufferSampleLocationsfvNV_params
+{
+    GLuint framebuffer;
+    GLuint start;
+    GLsizei count;
+    const GLfloat *v;
+};
+
+struct glNamedFramebufferSamplePositionsfvAMD_params
+{
+    GLuint framebuffer;
+    GLuint numsamples;
+    GLuint pixelindex;
+    const GLfloat *values;
+};
+
+struct glNamedFramebufferTexture_params
+{
+    GLuint framebuffer;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+};
+
+struct glNamedFramebufferTexture1DEXT_params
+{
+    GLuint framebuffer;
+    GLenum attachment;
+    GLenum textarget;
+    GLuint texture;
+    GLint level;
+};
+
+struct glNamedFramebufferTexture2DEXT_params
+{
+    GLuint framebuffer;
+    GLenum attachment;
+    GLenum textarget;
+    GLuint texture;
+    GLint level;
+};
+
+struct glNamedFramebufferTexture3DEXT_params
+{
+    GLuint framebuffer;
+    GLenum attachment;
+    GLenum textarget;
+    GLuint texture;
+    GLint level;
+    GLint zoffset;
+};
+
+struct glNamedFramebufferTextureEXT_params
+{
+    GLuint framebuffer;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+};
+
+struct glNamedFramebufferTextureFaceEXT_params
+{
+    GLuint framebuffer;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+    GLenum face;
+};
+
+struct glNamedFramebufferTextureLayer_params
+{
+    GLuint framebuffer;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+    GLint layer;
+};
+
+struct glNamedFramebufferTextureLayerEXT_params
+{
+    GLuint framebuffer;
+    GLenum attachment;
+    GLuint texture;
+    GLint level;
+    GLint layer;
+};
+
+struct glNamedProgramLocalParameter4dEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glNamedProgramLocalParameter4dvEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    const GLdouble *params;
+};
+
+struct glNamedProgramLocalParameter4fEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+    GLfloat w;
+};
+
+struct glNamedProgramLocalParameter4fvEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    const GLfloat *params;
+};
+
+struct glNamedProgramLocalParameterI4iEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    GLint x;
+    GLint y;
+    GLint z;
+    GLint w;
+};
+
+struct glNamedProgramLocalParameterI4ivEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    const GLint *params;
+};
+
+struct glNamedProgramLocalParameterI4uiEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    GLuint x;
+    GLuint y;
+    GLuint z;
+    GLuint w;
+};
+
+struct glNamedProgramLocalParameterI4uivEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    const GLuint *params;
+};
+
+struct glNamedProgramLocalParameters4fvEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    GLsizei count;
+    const GLfloat *params;
+};
+
+struct glNamedProgramLocalParametersI4ivEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    GLsizei count;
+    const GLint *params;
+};
+
+struct glNamedProgramLocalParametersI4uivEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLuint index;
+    GLsizei count;
+    const GLuint *params;
+};
+
+struct glNamedProgramStringEXT_params
+{
+    GLuint program;
+    GLenum target;
+    GLenum format;
+    GLsizei len;
+    const void *string;
+};
+
+struct glNamedRenderbufferStorage_params
+{
+    GLuint renderbuffer;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glNamedRenderbufferStorageEXT_params
+{
+    GLuint renderbuffer;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glNamedRenderbufferStorageMultisample_params
+{
+    GLuint renderbuffer;
+    GLsizei samples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glNamedRenderbufferStorageMultisampleAdvancedAMD_params
+{
+    GLuint renderbuffer;
+    GLsizei samples;
+    GLsizei storageSamples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glNamedRenderbufferStorageMultisampleCoverageEXT_params
+{
+    GLuint renderbuffer;
+    GLsizei coverageSamples;
+    GLsizei colorSamples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glNamedRenderbufferStorageMultisampleEXT_params
+{
+    GLuint renderbuffer;
+    GLsizei samples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glNamedStringARB_params
+{
+    GLenum type;
+    GLint namelen;
+    const GLchar *name;
+    GLint stringlen;
+    const GLchar *string;
+};
+
+struct glNewBufferRegion_params
+{
+    GLenum type;
+    GLuint ret;
+};
+
+struct glNewObjectBufferATI_params
+{
+    GLsizei size;
+    const void *pointer;
+    GLenum usage;
+    GLuint ret;
+};
+
+struct glNormal3fVertex3fSUN_params
+{
+    GLfloat nx;
+    GLfloat ny;
+    GLfloat nz;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glNormal3fVertex3fvSUN_params
+{
+    const GLfloat *n;
+    const GLfloat *v;
+};
+
+struct glNormal3hNV_params
+{
+    GLhalfNV nx;
+    GLhalfNV ny;
+    GLhalfNV nz;
+};
+
+struct glNormal3hvNV_params
+{
+    const GLhalfNV *v;
+};
+
+struct glNormal3xOES_params
+{
+    GLfixed nx;
+    GLfixed ny;
+    GLfixed nz;
+};
+
+struct glNormal3xvOES_params
+{
+    const GLfixed *coords;
+};
+
+struct glNormalFormatNV_params
+{
+    GLenum type;
+    GLsizei stride;
+};
+
+struct glNormalP3ui_params
+{
+    GLenum type;
+    GLuint coords;
+};
+
+struct glNormalP3uiv_params
+{
+    GLenum type;
+    const GLuint *coords;
+};
+
+struct glNormalPointerEXT_params
+{
+    GLenum type;
+    GLsizei stride;
+    GLsizei count;
+    const void *pointer;
+};
+
+struct glNormalPointerListIBM_params
+{
+    GLenum type;
+    GLint stride;
+    const void **pointer;
+    GLint ptrstride;
+};
+
+struct glNormalPointervINTEL_params
+{
+    GLenum type;
+    const void **pointer;
+};
+
+struct glNormalStream3bATI_params
+{
+    GLenum stream;
+    GLbyte nx;
+    GLbyte ny;
+    GLbyte nz;
+};
+
+struct glNormalStream3bvATI_params
+{
+    GLenum stream;
+    const GLbyte *coords;
+};
+
+struct glNormalStream3dATI_params
+{
+    GLenum stream;
+    GLdouble nx;
+    GLdouble ny;
+    GLdouble nz;
+};
+
+struct glNormalStream3dvATI_params
+{
+    GLenum stream;
+    const GLdouble *coords;
+};
+
+struct glNormalStream3fATI_params
+{
+    GLenum stream;
+    GLfloat nx;
+    GLfloat ny;
+    GLfloat nz;
+};
+
+struct glNormalStream3fvATI_params
+{
+    GLenum stream;
+    const GLfloat *coords;
+};
+
+struct glNormalStream3iATI_params
+{
+    GLenum stream;
+    GLint nx;
+    GLint ny;
+    GLint nz;
+};
+
+struct glNormalStream3ivATI_params
+{
+    GLenum stream;
+    const GLint *coords;
+};
+
+struct glNormalStream3sATI_params
+{
+    GLenum stream;
+    GLshort nx;
+    GLshort ny;
+    GLshort nz;
+};
+
+struct glNormalStream3svATI_params
+{
+    GLenum stream;
+    const GLshort *coords;
+};
+
+struct glObjectLabel_params
+{
+    GLenum identifier;
+    GLuint name;
+    GLsizei length;
+    const GLchar *label;
+};
+
+struct glObjectPtrLabel_params
+{
+    const void *ptr;
+    GLsizei length;
+    const GLchar *label;
+};
+
+struct glObjectPurgeableAPPLE_params
+{
+    GLenum objectType;
+    GLuint name;
+    GLenum option;
+    GLenum ret;
+};
+
+struct glObjectUnpurgeableAPPLE_params
+{
+    GLenum objectType;
+    GLuint name;
+    GLenum option;
+    GLenum ret;
+};
+
+struct glOrthofOES_params
+{
+    GLfloat l;
+    GLfloat r;
+    GLfloat b;
+    GLfloat t;
+    GLfloat n;
+    GLfloat f;
+};
+
+struct glOrthoxOES_params
+{
+    GLfixed l;
+    GLfixed r;
+    GLfixed b;
+    GLfixed t;
+    GLfixed n;
+    GLfixed f;
+};
+
+struct glPNTrianglesfATI_params
+{
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glPNTrianglesiATI_params
+{
+    GLenum pname;
+    GLint param;
+};
+
+struct glPassTexCoordATI_params
+{
+    GLuint dst;
+    GLuint coord;
+    GLenum swizzle;
+};
+
+struct glPassThroughxOES_params
+{
+    GLfixed token;
+};
+
+struct glPatchParameterfv_params
+{
+    GLenum pname;
+    const GLfloat *values;
+};
+
+struct glPatchParameteri_params
+{
+    GLenum pname;
+    GLint value;
+};
+
+struct glPathColorGenNV_params
+{
+    GLenum color;
+    GLenum genMode;
+    GLenum colorFormat;
+    const GLfloat *coeffs;
+};
+
+struct glPathCommandsNV_params
+{
+    GLuint path;
+    GLsizei numCommands;
+    const GLubyte *commands;
+    GLsizei numCoords;
+    GLenum coordType;
+    const void *coords;
+};
+
+struct glPathCoordsNV_params
+{
+    GLuint path;
+    GLsizei numCoords;
+    GLenum coordType;
+    const void *coords;
+};
+
+struct glPathCoverDepthFuncNV_params
+{
+    GLenum func;
+};
+
+struct glPathDashArrayNV_params
+{
+    GLuint path;
+    GLsizei dashCount;
+    const GLfloat *dashArray;
+};
+
+struct glPathFogGenNV_params
+{
+    GLenum genMode;
+};
+
+struct glPathGlyphIndexArrayNV_params
+{
+    GLuint firstPathName;
+    GLenum fontTarget;
+    const void *fontName;
+    GLbitfield fontStyle;
+    GLuint firstGlyphIndex;
+    GLsizei numGlyphs;
+    GLuint pathParameterTemplate;
+    GLfloat emScale;
+    GLenum ret;
+};
+
+struct glPathGlyphIndexRangeNV_params
+{
+    GLenum fontTarget;
+    const void *fontName;
+    GLbitfield fontStyle;
+    GLuint pathParameterTemplate;
+    GLfloat emScale;
+    GLuint baseAndCount[2];
+    GLenum ret;
+};
+
+struct glPathGlyphRangeNV_params
+{
+    GLuint firstPathName;
+    GLenum fontTarget;
+    const void *fontName;
+    GLbitfield fontStyle;
+    GLuint firstGlyph;
+    GLsizei numGlyphs;
+    GLenum handleMissingGlyphs;
+    GLuint pathParameterTemplate;
+    GLfloat emScale;
+};
+
+struct glPathGlyphsNV_params
+{
+    GLuint firstPathName;
+    GLenum fontTarget;
+    const void *fontName;
+    GLbitfield fontStyle;
+    GLsizei numGlyphs;
+    GLenum type;
+    const void *charcodes;
+    GLenum handleMissingGlyphs;
+    GLuint pathParameterTemplate;
+    GLfloat emScale;
+};
+
+struct glPathMemoryGlyphIndexArrayNV_params
+{
+    GLuint firstPathName;
+    GLenum fontTarget;
+    GLsizeiptr fontSize;
+    const void *fontData;
+    GLsizei faceIndex;
+    GLuint firstGlyphIndex;
+    GLsizei numGlyphs;
+    GLuint pathParameterTemplate;
+    GLfloat emScale;
+    GLenum ret;
+};
+
+struct glPathParameterfNV_params
+{
+    GLuint path;
+    GLenum pname;
+    GLfloat value;
+};
+
+struct glPathParameterfvNV_params
+{
+    GLuint path;
+    GLenum pname;
+    const GLfloat *value;
+};
+
+struct glPathParameteriNV_params
+{
+    GLuint path;
+    GLenum pname;
+    GLint value;
+};
+
+struct glPathParameterivNV_params
+{
+    GLuint path;
+    GLenum pname;
+    const GLint *value;
+};
+
+struct glPathStencilDepthOffsetNV_params
+{
+    GLfloat factor;
+    GLfloat units;
+};
+
+struct glPathStencilFuncNV_params
+{
+    GLenum func;
+    GLint ref;
+    GLuint mask;
+};
+
+struct glPathStringNV_params
+{
+    GLuint path;
+    GLenum format;
+    GLsizei length;
+    const void *pathString;
+};
+
+struct glPathSubCommandsNV_params
+{
+    GLuint path;
+    GLsizei commandStart;
+    GLsizei commandsToDelete;
+    GLsizei numCommands;
+    const GLubyte *commands;
+    GLsizei numCoords;
+    GLenum coordType;
+    const void *coords;
+};
+
+struct glPathSubCoordsNV_params
+{
+    GLuint path;
+    GLsizei coordStart;
+    GLsizei numCoords;
+    GLenum coordType;
+    const void *coords;
+};
+
+struct glPathTexGenNV_params
+{
+    GLenum texCoordSet;
+    GLenum genMode;
+    GLint components;
+    const GLfloat *coeffs;
+};
+
+struct glPauseTransformFeedback_params
+{
+};
+
+struct glPauseTransformFeedbackNV_params
+{
+};
+
+struct glPixelDataRangeNV_params
+{
+    GLenum target;
+    GLsizei length;
+    const void *pointer;
+};
+
+struct glPixelMapx_params
+{
+    GLenum map;
+    GLint size;
+    const GLfixed *values;
+};
+
+struct glPixelStorex_params
+{
+    GLenum pname;
+    GLfixed param;
+};
+
+struct glPixelTexGenParameterfSGIS_params
+{
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glPixelTexGenParameterfvSGIS_params
+{
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glPixelTexGenParameteriSGIS_params
+{
+    GLenum pname;
+    GLint param;
+};
+
+struct glPixelTexGenParameterivSGIS_params
+{
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glPixelTexGenSGIX_params
+{
+    GLenum mode;
+};
+
+struct glPixelTransferxOES_params
+{
+    GLenum pname;
+    GLfixed param;
+};
+
+struct glPixelTransformParameterfEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glPixelTransformParameterfvEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glPixelTransformParameteriEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    GLint param;
+};
+
+struct glPixelTransformParameterivEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glPixelZoomxOES_params
+{
+    GLfixed xfactor;
+    GLfixed yfactor;
+};
+
+struct glPointAlongPathNV_params
+{
+    GLuint path;
+    GLsizei startSegment;
+    GLsizei numSegments;
+    GLfloat distance;
+    GLfloat *x;
+    GLfloat *y;
+    GLfloat *tangentX;
+    GLfloat *tangentY;
+    GLboolean ret;
+};
+
+struct glPointParameterf_params
+{
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glPointParameterfARB_params
+{
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glPointParameterfEXT_params
+{
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glPointParameterfSGIS_params
+{
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glPointParameterfv_params
+{
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glPointParameterfvARB_params
+{
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glPointParameterfvEXT_params
+{
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glPointParameterfvSGIS_params
+{
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glPointParameteri_params
+{
+    GLenum pname;
+    GLint param;
+};
+
+struct glPointParameteriNV_params
+{
+    GLenum pname;
+    GLint param;
+};
+
+struct glPointParameteriv_params
+{
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glPointParameterivNV_params
+{
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glPointParameterxvOES_params
+{
+    GLenum pname;
+    const GLfixed *params;
+};
+
+struct glPointSizexOES_params
+{
+    GLfixed size;
+};
+
+struct glPollAsyncSGIX_params
+{
+    GLuint *markerp;
+    GLint ret;
+};
+
+struct glPollInstrumentsSGIX_params
+{
+    GLint *marker_p;
+    GLint ret;
+};
+
+struct glPolygonOffsetClamp_params
+{
+    GLfloat factor;
+    GLfloat units;
+    GLfloat clamp;
+};
+
+struct glPolygonOffsetClampEXT_params
+{
+    GLfloat factor;
+    GLfloat units;
+    GLfloat clamp;
+};
+
+struct glPolygonOffsetEXT_params
+{
+    GLfloat factor;
+    GLfloat bias;
+};
+
+struct glPolygonOffsetxOES_params
+{
+    GLfixed factor;
+    GLfixed units;
+};
+
+struct glPopDebugGroup_params
+{
+};
+
+struct glPopGroupMarkerEXT_params
+{
+};
+
+struct glPresentFrameDualFillNV_params
+{
+    GLuint video_slot;
+    GLuint64EXT minPresentTime;
+    GLuint beginPresentTimeId;
+    GLuint presentDurationId;
+    GLenum type;
+    GLenum target0;
+    GLuint fill0;
+    GLenum target1;
+    GLuint fill1;
+    GLenum target2;
+    GLuint fill2;
+    GLenum target3;
+    GLuint fill3;
+};
+
+struct glPresentFrameKeyedNV_params
+{
+    GLuint video_slot;
+    GLuint64EXT minPresentTime;
+    GLuint beginPresentTimeId;
+    GLuint presentDurationId;
+    GLenum type;
+    GLenum target0;
+    GLuint fill0;
+    GLuint key0;
+    GLenum target1;
+    GLuint fill1;
+    GLuint key1;
+};
+
+struct glPrimitiveBoundingBoxARB_params
+{
+    GLfloat minX;
+    GLfloat minY;
+    GLfloat minZ;
+    GLfloat minW;
+    GLfloat maxX;
+    GLfloat maxY;
+    GLfloat maxZ;
+    GLfloat maxW;
+};
+
+struct glPrimitiveRestartIndex_params
+{
+    GLuint index;
+};
+
+struct glPrimitiveRestartIndexNV_params
+{
+    GLuint index;
+};
+
+struct glPrimitiveRestartNV_params
+{
+};
+
+struct glPrioritizeTexturesEXT_params
+{
+    GLsizei n;
+    const GLuint *textures;
+    const GLclampf *priorities;
+};
+
+struct glPrioritizeTexturesxOES_params
+{
+    GLsizei n;
+    const GLuint *textures;
+    const GLfixed *priorities;
+};
+
+struct glProgramBinary_params
+{
+    GLuint program;
+    GLenum binaryFormat;
+    const void *binary;
+    GLsizei length;
+};
+
+struct glProgramBufferParametersIivNV_params
+{
+    GLenum target;
+    GLuint bindingIndex;
+    GLuint wordIndex;
+    GLsizei count;
+    const GLint *params;
+};
+
+struct glProgramBufferParametersIuivNV_params
+{
+    GLenum target;
+    GLuint bindingIndex;
+    GLuint wordIndex;
+    GLsizei count;
+    const GLuint *params;
+};
+
+struct glProgramBufferParametersfvNV_params
+{
+    GLenum target;
+    GLuint bindingIndex;
+    GLuint wordIndex;
+    GLsizei count;
+    const GLfloat *params;
+};
+
+struct glProgramEnvParameter4dARB_params
+{
+    GLenum target;
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glProgramEnvParameter4dvARB_params
+{
+    GLenum target;
+    GLuint index;
+    const GLdouble *params;
+};
+
+struct glProgramEnvParameter4fARB_params
+{
+    GLenum target;
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+    GLfloat w;
+};
+
+struct glProgramEnvParameter4fvARB_params
+{
+    GLenum target;
+    GLuint index;
+    const GLfloat *params;
+};
+
+struct glProgramEnvParameterI4iNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLint x;
+    GLint y;
+    GLint z;
+    GLint w;
+};
+
+struct glProgramEnvParameterI4ivNV_params
+{
+    GLenum target;
+    GLuint index;
+    const GLint *params;
+};
+
+struct glProgramEnvParameterI4uiNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint x;
+    GLuint y;
+    GLuint z;
+    GLuint w;
+};
+
+struct glProgramEnvParameterI4uivNV_params
+{
+    GLenum target;
+    GLuint index;
+    const GLuint *params;
+};
+
+struct glProgramEnvParameters4fvEXT_params
+{
+    GLenum target;
+    GLuint index;
+    GLsizei count;
+    const GLfloat *params;
+};
+
+struct glProgramEnvParametersI4ivNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLsizei count;
+    const GLint *params;
+};
+
+struct glProgramEnvParametersI4uivNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLsizei count;
+    const GLuint *params;
+};
+
+struct glProgramLocalParameter4dARB_params
+{
+    GLenum target;
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glProgramLocalParameter4dvARB_params
+{
+    GLenum target;
+    GLuint index;
+    const GLdouble *params;
+};
+
+struct glProgramLocalParameter4fARB_params
+{
+    GLenum target;
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+    GLfloat w;
+};
+
+struct glProgramLocalParameter4fvARB_params
+{
+    GLenum target;
+    GLuint index;
+    const GLfloat *params;
+};
+
+struct glProgramLocalParameterI4iNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLint x;
+    GLint y;
+    GLint z;
+    GLint w;
+};
+
+struct glProgramLocalParameterI4ivNV_params
+{
+    GLenum target;
+    GLuint index;
+    const GLint *params;
+};
+
+struct glProgramLocalParameterI4uiNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLuint x;
+    GLuint y;
+    GLuint z;
+    GLuint w;
+};
+
+struct glProgramLocalParameterI4uivNV_params
+{
+    GLenum target;
+    GLuint index;
+    const GLuint *params;
+};
+
+struct glProgramLocalParameters4fvEXT_params
+{
+    GLenum target;
+    GLuint index;
+    GLsizei count;
+    const GLfloat *params;
+};
+
+struct glProgramLocalParametersI4ivNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLsizei count;
+    const GLint *params;
+};
+
+struct glProgramLocalParametersI4uivNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLsizei count;
+    const GLuint *params;
+};
+
+struct glProgramNamedParameter4dNV_params
+{
+    GLuint id;
+    GLsizei len;
+    const GLubyte *name;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glProgramNamedParameter4dvNV_params
+{
+    GLuint id;
+    GLsizei len;
+    const GLubyte *name;
+    const GLdouble *v;
+};
+
+struct glProgramNamedParameter4fNV_params
+{
+    GLuint id;
+    GLsizei len;
+    const GLubyte *name;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+    GLfloat w;
+};
+
+struct glProgramNamedParameter4fvNV_params
+{
+    GLuint id;
+    GLsizei len;
+    const GLubyte *name;
+    const GLfloat *v;
+};
+
+struct glProgramParameter4dNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glProgramParameter4dvNV_params
+{
+    GLenum target;
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glProgramParameter4fNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+    GLfloat w;
+};
+
+struct glProgramParameter4fvNV_params
+{
+    GLenum target;
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glProgramParameteri_params
+{
+    GLuint program;
+    GLenum pname;
+    GLint value;
+};
+
+struct glProgramParameteriARB_params
+{
+    GLuint program;
+    GLenum pname;
+    GLint value;
+};
+
+struct glProgramParameteriEXT_params
+{
+    GLuint program;
+    GLenum pname;
+    GLint value;
+};
+
+struct glProgramParameters4dvNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLsizei count;
+    const GLdouble *v;
+};
+
+struct glProgramParameters4fvNV_params
+{
+    GLenum target;
+    GLuint index;
+    GLsizei count;
+    const GLfloat *v;
+};
+
+struct glProgramPathFragmentInputGenNV_params
+{
+    GLuint program;
+    GLint location;
+    GLenum genMode;
+    GLint components;
+    const GLfloat *coeffs;
+};
+
+struct glProgramStringARB_params
+{
+    GLenum target;
+    GLenum format;
+    GLsizei len;
+    const void *string;
+};
+
+struct glProgramSubroutineParametersuivNV_params
+{
+    GLenum target;
+    GLsizei count;
+    const GLuint *params;
+};
+
+struct glProgramUniform1d_params
+{
+    GLuint program;
+    GLint location;
+    GLdouble v0;
+};
+
+struct glProgramUniform1dEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLdouble x;
+};
+
+struct glProgramUniform1dv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLdouble *value;
+};
+
+struct glProgramUniform1dvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLdouble *value;
+};
+
+struct glProgramUniform1f_params
+{
+    GLuint program;
+    GLint location;
+    GLfloat v0;
+};
+
+struct glProgramUniform1fEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLfloat v0;
+};
+
+struct glProgramUniform1fv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glProgramUniform1fvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glProgramUniform1i_params
+{
+    GLuint program;
+    GLint location;
+    GLint v0;
+};
+
+struct glProgramUniform1i64ARB_params
+{
+    GLuint program;
+    GLint location;
+    GLint64 x;
+};
+
+struct glProgramUniform1i64NV_params
+{
+    GLuint program;
+    GLint location;
+    GLint64EXT x;
+};
+
+struct glProgramUniform1i64vARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint64 *value;
+};
+
+struct glProgramUniform1i64vNV_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint64EXT *value;
+};
+
+struct glProgramUniform1iEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLint v0;
+};
+
+struct glProgramUniform1iv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glProgramUniform1ivEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glProgramUniform1ui_params
+{
+    GLuint program;
+    GLint location;
+    GLuint v0;
+};
+
+struct glProgramUniform1ui64ARB_params
+{
+    GLuint program;
+    GLint location;
+    GLuint64 x;
+};
+
+struct glProgramUniform1ui64NV_params
+{
+    GLuint program;
+    GLint location;
+    GLuint64EXT x;
+};
+
+struct glProgramUniform1ui64vARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint64 *value;
+};
+
+struct glProgramUniform1ui64vNV_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint64EXT *value;
+};
+
+struct glProgramUniform1uiEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLuint v0;
+};
+
+struct glProgramUniform1uiv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glProgramUniform1uivEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glProgramUniform2d_params
+{
+    GLuint program;
+    GLint location;
+    GLdouble v0;
+    GLdouble v1;
+};
+
+struct glProgramUniform2dEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLdouble x;
+    GLdouble y;
+};
+
+struct glProgramUniform2dv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLdouble *value;
+};
+
+struct glProgramUniform2dvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLdouble *value;
+};
+
+struct glProgramUniform2f_params
+{
+    GLuint program;
+    GLint location;
+    GLfloat v0;
+    GLfloat v1;
+};
+
+struct glProgramUniform2fEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLfloat v0;
+    GLfloat v1;
+};
+
+struct glProgramUniform2fv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glProgramUniform2fvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glProgramUniform2i_params
+{
+    GLuint program;
+    GLint location;
+    GLint v0;
+    GLint v1;
+};
+
+struct glProgramUniform2i64ARB_params
+{
+    GLuint program;
+    GLint location;
+    GLint64 x;
+    GLint64 y;
+};
+
+struct glProgramUniform2i64NV_params
+{
+    GLuint program;
+    GLint location;
+    GLint64EXT x;
+    GLint64EXT y;
+};
+
+struct glProgramUniform2i64vARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint64 *value;
+};
+
+struct glProgramUniform2i64vNV_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint64EXT *value;
+};
+
+struct glProgramUniform2iEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLint v0;
+    GLint v1;
+};
+
+struct glProgramUniform2iv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glProgramUniform2ivEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glProgramUniform2ui_params
+{
+    GLuint program;
+    GLint location;
+    GLuint v0;
+    GLuint v1;
+};
+
+struct glProgramUniform2ui64ARB_params
+{
+    GLuint program;
+    GLint location;
+    GLuint64 x;
+    GLuint64 y;
+};
+
+struct glProgramUniform2ui64NV_params
+{
+    GLuint program;
+    GLint location;
+    GLuint64EXT x;
+    GLuint64EXT y;
+};
+
+struct glProgramUniform2ui64vARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint64 *value;
+};
+
+struct glProgramUniform2ui64vNV_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint64EXT *value;
+};
+
+struct glProgramUniform2uiEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLuint v0;
+    GLuint v1;
+};
+
+struct glProgramUniform2uiv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glProgramUniform2uivEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glProgramUniform3d_params
+{
+    GLuint program;
+    GLint location;
+    GLdouble v0;
+    GLdouble v1;
+    GLdouble v2;
+};
+
+struct glProgramUniform3dEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glProgramUniform3dv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLdouble *value;
+};
+
+struct glProgramUniform3dvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLdouble *value;
+};
+
+struct glProgramUniform3f_params
+{
+    GLuint program;
+    GLint location;
+    GLfloat v0;
+    GLfloat v1;
+    GLfloat v2;
+};
+
+struct glProgramUniform3fEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLfloat v0;
+    GLfloat v1;
+    GLfloat v2;
+};
+
+struct glProgramUniform3fv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glProgramUniform3fvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glProgramUniform3i_params
+{
+    GLuint program;
+    GLint location;
+    GLint v0;
+    GLint v1;
+    GLint v2;
+};
+
+struct glProgramUniform3i64ARB_params
+{
+    GLuint program;
+    GLint location;
+    GLint64 x;
+    GLint64 y;
+    GLint64 z;
+};
+
+struct glProgramUniform3i64NV_params
+{
+    GLuint program;
+    GLint location;
+    GLint64EXT x;
+    GLint64EXT y;
+    GLint64EXT z;
+};
+
+struct glProgramUniform3i64vARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint64 *value;
+};
+
+struct glProgramUniform3i64vNV_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint64EXT *value;
+};
+
+struct glProgramUniform3iEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLint v0;
+    GLint v1;
+    GLint v2;
+};
+
+struct glProgramUniform3iv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glProgramUniform3ivEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glProgramUniform3ui_params
+{
+    GLuint program;
+    GLint location;
+    GLuint v0;
+    GLuint v1;
+    GLuint v2;
+};
+
+struct glProgramUniform3ui64ARB_params
+{
+    GLuint program;
+    GLint location;
+    GLuint64 x;
+    GLuint64 y;
+    GLuint64 z;
+};
+
+struct glProgramUniform3ui64NV_params
+{
+    GLuint program;
+    GLint location;
+    GLuint64EXT x;
+    GLuint64EXT y;
+    GLuint64EXT z;
+};
+
+struct glProgramUniform3ui64vARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint64 *value;
+};
+
+struct glProgramUniform3ui64vNV_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint64EXT *value;
+};
+
+struct glProgramUniform3uiEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLuint v0;
+    GLuint v1;
+    GLuint v2;
+};
+
+struct glProgramUniform3uiv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glProgramUniform3uivEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glProgramUniform4d_params
+{
+    GLuint program;
+    GLint location;
+    GLdouble v0;
+    GLdouble v1;
+    GLdouble v2;
+    GLdouble v3;
+};
+
+struct glProgramUniform4dEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glProgramUniform4dv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLdouble *value;
+};
+
+struct glProgramUniform4dvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLdouble *value;
+};
+
+struct glProgramUniform4f_params
+{
+    GLuint program;
+    GLint location;
+    GLfloat v0;
+    GLfloat v1;
+    GLfloat v2;
+    GLfloat v3;
+};
+
+struct glProgramUniform4fEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLfloat v0;
+    GLfloat v1;
+    GLfloat v2;
+    GLfloat v3;
+};
+
+struct glProgramUniform4fv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glProgramUniform4fvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glProgramUniform4i_params
+{
+    GLuint program;
+    GLint location;
+    GLint v0;
+    GLint v1;
+    GLint v2;
+    GLint v3;
+};
+
+struct glProgramUniform4i64ARB_params
+{
+    GLuint program;
+    GLint location;
+    GLint64 x;
+    GLint64 y;
+    GLint64 z;
+    GLint64 w;
+};
+
+struct glProgramUniform4i64NV_params
+{
+    GLuint program;
+    GLint location;
+    GLint64EXT x;
+    GLint64EXT y;
+    GLint64EXT z;
+    GLint64EXT w;
+};
+
+struct glProgramUniform4i64vARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint64 *value;
+};
+
+struct glProgramUniform4i64vNV_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint64EXT *value;
+};
+
+struct glProgramUniform4iEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLint v0;
+    GLint v1;
+    GLint v2;
+    GLint v3;
+};
+
+struct glProgramUniform4iv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glProgramUniform4ivEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glProgramUniform4ui_params
+{
+    GLuint program;
+    GLint location;
+    GLuint v0;
+    GLuint v1;
+    GLuint v2;
+    GLuint v3;
+};
+
+struct glProgramUniform4ui64ARB_params
+{
+    GLuint program;
+    GLint location;
+    GLuint64 x;
+    GLuint64 y;
+    GLuint64 z;
+    GLuint64 w;
+};
+
+struct glProgramUniform4ui64NV_params
+{
+    GLuint program;
+    GLint location;
+    GLuint64EXT x;
+    GLuint64EXT y;
+    GLuint64EXT z;
+    GLuint64EXT w;
+};
+
+struct glProgramUniform4ui64vARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint64 *value;
+};
+
+struct glProgramUniform4ui64vNV_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint64EXT *value;
+};
+
+struct glProgramUniform4uiEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLuint v0;
+    GLuint v1;
+    GLuint v2;
+    GLuint v3;
+};
+
+struct glProgramUniform4uiv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glProgramUniform4uivEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glProgramUniformHandleui64ARB_params
+{
+    GLuint program;
+    GLint location;
+    GLuint64 value;
+};
+
+struct glProgramUniformHandleui64NV_params
+{
+    GLuint program;
+    GLint location;
+    GLuint64 value;
+};
+
+struct glProgramUniformHandleui64vARB_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint64 *values;
+};
+
+struct glProgramUniformHandleui64vNV_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint64 *values;
+};
+
+struct glProgramUniformMatrix2dv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix2dvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix2fv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix2fvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix2x3dv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix2x3dvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix2x3fv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix2x3fvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix2x4dv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix2x4dvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix2x4fv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix2x4fvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix3dv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix3dvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix3fv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix3fvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix3x2dv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix3x2dvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix3x2fv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix3x2fvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix3x4dv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix3x4dvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix3x4fv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix3x4fvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix4dv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix4dvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix4fv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix4fvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix4x2dv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix4x2dvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix4x2fv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix4x2fvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix4x3dv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix4x3dvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glProgramUniformMatrix4x3fv_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformMatrix4x3fvEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glProgramUniformui64NV_params
+{
+    GLuint program;
+    GLint location;
+    GLuint64EXT value;
+};
+
+struct glProgramUniformui64vNV_params
+{
+    GLuint program;
+    GLint location;
+    GLsizei count;
+    const GLuint64EXT *value;
+};
+
+struct glProgramVertexLimitNV_params
+{
+    GLenum target;
+    GLint limit;
+};
+
+struct glProvokingVertex_params
+{
+    GLenum mode;
+};
+
+struct glProvokingVertexEXT_params
+{
+    GLenum mode;
+};
+
+struct glPushClientAttribDefaultEXT_params
+{
+    GLbitfield mask;
+};
+
+struct glPushDebugGroup_params
+{
+    GLenum source;
+    GLuint id;
+    GLsizei length;
+    const GLchar *message;
+};
+
+struct glPushGroupMarkerEXT_params
+{
+    GLsizei length;
+    const GLchar *marker;
+};
+
+struct glQueryCounter_params
+{
+    GLuint id;
+    GLenum target;
+};
+
+struct glQueryMatrixxOES_params
+{
+    GLfixed *mantissa;
+    GLint *exponent;
+    GLbitfield ret;
+};
+
+struct glQueryObjectParameteruiAMD_params
+{
+    GLenum target;
+    GLuint id;
+    GLenum pname;
+    GLuint param;
+};
+
+struct glQueryResourceNV_params
+{
+    GLenum queryType;
+    GLint tagId;
+    GLuint count;
+    GLint *buffer;
+    GLint ret;
+};
+
+struct glQueryResourceTagNV_params
+{
+    GLint tagId;
+    const GLchar *tagString;
+};
+
+struct glRasterPos2xOES_params
+{
+    GLfixed x;
+    GLfixed y;
+};
+
+struct glRasterPos2xvOES_params
+{
+    const GLfixed *coords;
+};
+
+struct glRasterPos3xOES_params
+{
+    GLfixed x;
+    GLfixed y;
+    GLfixed z;
+};
+
+struct glRasterPos3xvOES_params
+{
+    const GLfixed *coords;
+};
+
+struct glRasterPos4xOES_params
+{
+    GLfixed x;
+    GLfixed y;
+    GLfixed z;
+    GLfixed w;
+};
+
+struct glRasterPos4xvOES_params
+{
+    const GLfixed *coords;
+};
+
+struct glRasterSamplesEXT_params
+{
+    GLuint samples;
+    GLboolean fixedsamplelocations;
+};
+
+struct glReadBufferRegion_params
+{
+    GLenum region;
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glReadInstrumentsSGIX_params
+{
+    GLint marker;
+};
+
+struct glReadnPixels_params
+{
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *data;
+};
+
+struct glReadnPixelsARB_params
+{
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLenum type;
+    GLsizei bufSize;
+    void *data;
+};
+
+struct glRectxOES_params
+{
+    GLfixed x1;
+    GLfixed y1;
+    GLfixed x2;
+    GLfixed y2;
+};
+
+struct glRectxvOES_params
+{
+    const GLfixed *v1;
+    const GLfixed *v2;
+};
+
+struct glReferencePlaneSGIX_params
+{
+    const GLdouble *equation;
+};
+
+struct glReleaseKeyedMutexWin32EXT_params
+{
+    GLuint memory;
+    GLuint64 key;
+    GLboolean ret;
+};
+
+struct glReleaseShaderCompiler_params
+{
+};
+
+struct glRenderGpuMaskNV_params
+{
+    GLbitfield mask;
+};
+
+struct glRenderbufferStorage_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glRenderbufferStorageEXT_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glRenderbufferStorageMultisample_params
+{
+    GLenum target;
+    GLsizei samples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glRenderbufferStorageMultisampleAdvancedAMD_params
+{
+    GLenum target;
+    GLsizei samples;
+    GLsizei storageSamples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glRenderbufferStorageMultisampleCoverageNV_params
+{
+    GLenum target;
+    GLsizei coverageSamples;
+    GLsizei colorSamples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glRenderbufferStorageMultisampleEXT_params
+{
+    GLenum target;
+    GLsizei samples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glReplacementCodePointerSUN_params
+{
+    GLenum type;
+    GLsizei stride;
+    const void **pointer;
+};
+
+struct glReplacementCodeubSUN_params
+{
+    GLubyte code;
+};
+
+struct glReplacementCodeubvSUN_params
+{
+    const GLubyte *code;
+};
+
+struct glReplacementCodeuiColor3fVertex3fSUN_params
+{
+    GLuint rc;
+    GLfloat r;
+    GLfloat g;
+    GLfloat b;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glReplacementCodeuiColor3fVertex3fvSUN_params
+{
+    const GLuint *rc;
+    const GLfloat *c;
+    const GLfloat *v;
+};
+
+struct glReplacementCodeuiColor4fNormal3fVertex3fSUN_params
+{
+    GLuint rc;
+    GLfloat r;
+    GLfloat g;
+    GLfloat b;
+    GLfloat a;
+    GLfloat nx;
+    GLfloat ny;
+    GLfloat nz;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glReplacementCodeuiColor4fNormal3fVertex3fvSUN_params
+{
+    const GLuint *rc;
+    const GLfloat *c;
+    const GLfloat *n;
+    const GLfloat *v;
+};
+
+struct glReplacementCodeuiColor4ubVertex3fSUN_params
+{
+    GLuint rc;
+    GLubyte r;
+    GLubyte g;
+    GLubyte b;
+    GLubyte a;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glReplacementCodeuiColor4ubVertex3fvSUN_params
+{
+    const GLuint *rc;
+    const GLubyte *c;
+    const GLfloat *v;
+};
+
+struct glReplacementCodeuiNormal3fVertex3fSUN_params
+{
+    GLuint rc;
+    GLfloat nx;
+    GLfloat ny;
+    GLfloat nz;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glReplacementCodeuiNormal3fVertex3fvSUN_params
+{
+    const GLuint *rc;
+    const GLfloat *n;
+    const GLfloat *v;
+};
+
+struct glReplacementCodeuiSUN_params
+{
+    GLuint code;
+};
+
+struct glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN_params
+{
+    GLuint rc;
+    GLfloat s;
+    GLfloat t;
+    GLfloat r;
+    GLfloat g;
+    GLfloat b;
+    GLfloat a;
+    GLfloat nx;
+    GLfloat ny;
+    GLfloat nz;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN_params
+{
+    const GLuint *rc;
+    const GLfloat *tc;
+    const GLfloat *c;
+    const GLfloat *n;
+    const GLfloat *v;
+};
+
+struct glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN_params
+{
+    GLuint rc;
+    GLfloat s;
+    GLfloat t;
+    GLfloat nx;
+    GLfloat ny;
+    GLfloat nz;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN_params
+{
+    const GLuint *rc;
+    const GLfloat *tc;
+    const GLfloat *n;
+    const GLfloat *v;
+};
+
+struct glReplacementCodeuiTexCoord2fVertex3fSUN_params
+{
+    GLuint rc;
+    GLfloat s;
+    GLfloat t;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glReplacementCodeuiTexCoord2fVertex3fvSUN_params
+{
+    const GLuint *rc;
+    const GLfloat *tc;
+    const GLfloat *v;
+};
+
+struct glReplacementCodeuiVertex3fSUN_params
+{
+    GLuint rc;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glReplacementCodeuiVertex3fvSUN_params
+{
+    const GLuint *rc;
+    const GLfloat *v;
+};
+
+struct glReplacementCodeuivSUN_params
+{
+    const GLuint *code;
+};
+
+struct glReplacementCodeusSUN_params
+{
+    GLushort code;
+};
+
+struct glReplacementCodeusvSUN_params
+{
+    const GLushort *code;
+};
+
+struct glRequestResidentProgramsNV_params
+{
+    GLsizei n;
+    const GLuint *programs;
+};
+
+struct glResetHistogram_params
+{
+    GLenum target;
+};
+
+struct glResetHistogramEXT_params
+{
+    GLenum target;
+};
+
+struct glResetMemoryObjectParameterNV_params
+{
+    GLuint memory;
+    GLenum pname;
+};
+
+struct glResetMinmax_params
+{
+    GLenum target;
+};
+
+struct glResetMinmaxEXT_params
+{
+    GLenum target;
+};
+
+struct glResizeBuffersMESA_params
+{
+};
+
+struct glResolveDepthValuesNV_params
+{
+};
+
+struct glResumeTransformFeedback_params
+{
+};
+
+struct glResumeTransformFeedbackNV_params
+{
+};
+
+struct glRotatexOES_params
+{
+    GLfixed angle;
+    GLfixed x;
+    GLfixed y;
+    GLfixed z;
+};
+
+struct glSampleCoverage_params
+{
+    GLfloat value;
+    GLboolean invert;
+};
+
+struct glSampleCoverageARB_params
+{
+    GLfloat value;
+    GLboolean invert;
+};
+
+struct glSampleMapATI_params
+{
+    GLuint dst;
+    GLuint interp;
+    GLenum swizzle;
+};
+
+struct glSampleMaskEXT_params
+{
+    GLclampf value;
+    GLboolean invert;
+};
+
+struct glSampleMaskIndexedNV_params
+{
+    GLuint index;
+    GLbitfield mask;
+};
+
+struct glSampleMaskSGIS_params
+{
+    GLclampf value;
+    GLboolean invert;
+};
+
+struct glSampleMaski_params
+{
+    GLuint maskNumber;
+    GLbitfield mask;
+};
+
+struct glSamplePatternEXT_params
+{
+    GLenum pattern;
+};
+
+struct glSamplePatternSGIS_params
+{
+    GLenum pattern;
+};
+
+struct glSamplerParameterIiv_params
+{
+    GLuint sampler;
+    GLenum pname;
+    const GLint *param;
+};
+
+struct glSamplerParameterIuiv_params
+{
+    GLuint sampler;
+    GLenum pname;
+    const GLuint *param;
+};
+
+struct glSamplerParameterf_params
+{
+    GLuint sampler;
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glSamplerParameterfv_params
+{
+    GLuint sampler;
+    GLenum pname;
+    const GLfloat *param;
+};
+
+struct glSamplerParameteri_params
+{
+    GLuint sampler;
+    GLenum pname;
+    GLint param;
+};
+
+struct glSamplerParameteriv_params
+{
+    GLuint sampler;
+    GLenum pname;
+    const GLint *param;
+};
+
+struct glScalexOES_params
+{
+    GLfixed x;
+    GLfixed y;
+    GLfixed z;
+};
+
+struct glScissorArrayv_params
+{
+    GLuint first;
+    GLsizei count;
+    const GLint *v;
+};
+
+struct glScissorExclusiveArrayvNV_params
+{
+    GLuint first;
+    GLsizei count;
+    const GLint *v;
+};
+
+struct glScissorExclusiveNV_params
+{
+    GLint x;
+    GLint y;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glScissorIndexed_params
+{
+    GLuint index;
+    GLint left;
+    GLint bottom;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glScissorIndexedv_params
+{
+    GLuint index;
+    const GLint *v;
+};
+
+struct glSecondaryColor3b_params
+{
+    GLbyte red;
+    GLbyte green;
+    GLbyte blue;
+};
+
+struct glSecondaryColor3bEXT_params
+{
+    GLbyte red;
+    GLbyte green;
+    GLbyte blue;
+};
+
+struct glSecondaryColor3bv_params
+{
+    const GLbyte *v;
+};
+
+struct glSecondaryColor3bvEXT_params
+{
+    const GLbyte *v;
+};
+
+struct glSecondaryColor3d_params
+{
+    GLdouble red;
+    GLdouble green;
+    GLdouble blue;
+};
+
+struct glSecondaryColor3dEXT_params
+{
+    GLdouble red;
+    GLdouble green;
+    GLdouble blue;
+};
+
+struct glSecondaryColor3dv_params
+{
+    const GLdouble *v;
+};
+
+struct glSecondaryColor3dvEXT_params
+{
+    const GLdouble *v;
+};
+
+struct glSecondaryColor3f_params
+{
+    GLfloat red;
+    GLfloat green;
+    GLfloat blue;
+};
+
+struct glSecondaryColor3fEXT_params
+{
+    GLfloat red;
+    GLfloat green;
+    GLfloat blue;
+};
+
+struct glSecondaryColor3fv_params
+{
+    const GLfloat *v;
+};
+
+struct glSecondaryColor3fvEXT_params
+{
+    const GLfloat *v;
+};
+
+struct glSecondaryColor3hNV_params
+{
+    GLhalfNV red;
+    GLhalfNV green;
+    GLhalfNV blue;
+};
+
+struct glSecondaryColor3hvNV_params
+{
+    const GLhalfNV *v;
+};
+
+struct glSecondaryColor3i_params
+{
+    GLint red;
+    GLint green;
+    GLint blue;
+};
+
+struct glSecondaryColor3iEXT_params
+{
+    GLint red;
+    GLint green;
+    GLint blue;
+};
+
+struct glSecondaryColor3iv_params
+{
+    const GLint *v;
+};
+
+struct glSecondaryColor3ivEXT_params
+{
+    const GLint *v;
+};
+
+struct glSecondaryColor3s_params
+{
+    GLshort red;
+    GLshort green;
+    GLshort blue;
+};
+
+struct glSecondaryColor3sEXT_params
+{
+    GLshort red;
+    GLshort green;
+    GLshort blue;
+};
+
+struct glSecondaryColor3sv_params
+{
+    const GLshort *v;
+};
+
+struct glSecondaryColor3svEXT_params
+{
+    const GLshort *v;
+};
+
+struct glSecondaryColor3ub_params
+{
+    GLubyte red;
+    GLubyte green;
+    GLubyte blue;
+};
+
+struct glSecondaryColor3ubEXT_params
+{
+    GLubyte red;
+    GLubyte green;
+    GLubyte blue;
+};
+
+struct glSecondaryColor3ubv_params
+{
+    const GLubyte *v;
+};
+
+struct glSecondaryColor3ubvEXT_params
+{
+    const GLubyte *v;
+};
+
+struct glSecondaryColor3ui_params
+{
+    GLuint red;
+    GLuint green;
+    GLuint blue;
+};
+
+struct glSecondaryColor3uiEXT_params
+{
+    GLuint red;
+    GLuint green;
+    GLuint blue;
+};
+
+struct glSecondaryColor3uiv_params
+{
+    const GLuint *v;
+};
+
+struct glSecondaryColor3uivEXT_params
+{
+    const GLuint *v;
+};
+
+struct glSecondaryColor3us_params
+{
+    GLushort red;
+    GLushort green;
+    GLushort blue;
+};
+
+struct glSecondaryColor3usEXT_params
+{
+    GLushort red;
+    GLushort green;
+    GLushort blue;
+};
+
+struct glSecondaryColor3usv_params
+{
+    const GLushort *v;
+};
+
+struct glSecondaryColor3usvEXT_params
+{
+    const GLushort *v;
+};
+
+struct glSecondaryColorFormatNV_params
+{
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+};
+
+struct glSecondaryColorP3ui_params
+{
+    GLenum type;
+    GLuint color;
+};
+
+struct glSecondaryColorP3uiv_params
+{
+    GLenum type;
+    const GLuint *color;
+};
+
+struct glSecondaryColorPointer_params
+{
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glSecondaryColorPointerEXT_params
+{
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glSecondaryColorPointerListIBM_params
+{
+    GLint size;
+    GLenum type;
+    GLint stride;
+    const void **pointer;
+    GLint ptrstride;
+};
+
+struct glSelectPerfMonitorCountersAMD_params
+{
+    GLuint monitor;
+    GLboolean enable;
+    GLuint group;
+    GLint numCounters;
+    GLuint *counterList;
+};
+
+struct glSelectTextureCoordSetSGIS_params
+{
+    GLenum target;
+};
+
+struct glSelectTextureSGIS_params
+{
+    GLenum target;
+};
+
+struct glSemaphoreParameterui64vEXT_params
+{
+    GLuint semaphore;
+    GLenum pname;
+    const GLuint64 *params;
+};
+
+struct glSeparableFilter2D_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLenum type;
+    const void *row;
+    const void *column;
+};
+
+struct glSeparableFilter2DEXT_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLenum type;
+    const void *row;
+    const void *column;
+};
+
+struct glSetFenceAPPLE_params
+{
+    GLuint fence;
+};
+
+struct glSetFenceNV_params
+{
+    GLuint fence;
+    GLenum condition;
+};
+
+struct glSetFragmentShaderConstantATI_params
+{
+    GLuint dst;
+    const GLfloat *value;
+};
+
+struct glSetInvariantEXT_params
+{
+    GLuint id;
+    GLenum type;
+    const void *addr;
+};
+
+struct glSetLocalConstantEXT_params
+{
+    GLuint id;
+    GLenum type;
+    const void *addr;
+};
+
+struct glSetMultisamplefvAMD_params
+{
+    GLenum pname;
+    GLuint index;
+    const GLfloat *val;
+};
+
+struct glShaderBinary_params
+{
+    GLsizei count;
+    const GLuint *shaders;
+    GLenum binaryformat;
+    const void *binary;
+    GLsizei length;
+};
+
+struct glShaderOp1EXT_params
+{
+    GLenum op;
+    GLuint res;
+    GLuint arg1;
+};
+
+struct glShaderOp2EXT_params
+{
+    GLenum op;
+    GLuint res;
+    GLuint arg1;
+    GLuint arg2;
+};
+
+struct glShaderOp3EXT_params
+{
+    GLenum op;
+    GLuint res;
+    GLuint arg1;
+    GLuint arg2;
+    GLuint arg3;
+};
+
+struct glShaderSource_params
+{
+    GLuint shader;
+    GLsizei count;
+    const GLchar *const*string;
+    const GLint *length;
+};
+
+struct glShaderSourceARB_params
+{
+    GLhandleARB shaderObj;
+    GLsizei count;
+    const GLcharARB **string;
+    const GLint *length;
+};
+
+struct glShaderStorageBlockBinding_params
+{
+    GLuint program;
+    GLuint storageBlockIndex;
+    GLuint storageBlockBinding;
+};
+
+struct glShadingRateImageBarrierNV_params
+{
+    GLboolean synchronize;
+};
+
+struct glShadingRateImagePaletteNV_params
+{
+    GLuint viewport;
+    GLuint first;
+    GLsizei count;
+    const GLenum *rates;
+};
+
+struct glShadingRateSampleOrderCustomNV_params
+{
+    GLenum rate;
+    GLuint samples;
+    const GLint *locations;
+};
+
+struct glShadingRateSampleOrderNV_params
+{
+    GLenum order;
+};
+
+struct glSharpenTexFuncSGIS_params
+{
+    GLenum target;
+    GLsizei n;
+    const GLfloat *points;
+};
+
+struct glSignalSemaphoreEXT_params
+{
+    GLuint semaphore;
+    GLuint numBufferBarriers;
+    const GLuint *buffers;
+    GLuint numTextureBarriers;
+    const GLuint *textures;
+    const GLenum *dstLayouts;
+};
+
+struct glSignalSemaphoreui64NVX_params
+{
+    GLuint signalGpu;
+    GLsizei fenceObjectCount;
+    const GLuint *semaphoreArray;
+    const GLuint64 *fenceValueArray;
+};
+
+struct glSignalVkFenceNV_params
+{
+    GLuint64 vkFence;
+};
+
+struct glSignalVkSemaphoreNV_params
+{
+    GLuint64 vkSemaphore;
+};
+
+struct glSpecializeShader_params
+{
+    GLuint shader;
+    const GLchar *pEntryPoint;
+    GLuint numSpecializationConstants;
+    const GLuint *pConstantIndex;
+    const GLuint *pConstantValue;
+};
+
+struct glSpecializeShaderARB_params
+{
+    GLuint shader;
+    const GLchar *pEntryPoint;
+    GLuint numSpecializationConstants;
+    const GLuint *pConstantIndex;
+    const GLuint *pConstantValue;
+};
+
+struct glSpriteParameterfSGIX_params
+{
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glSpriteParameterfvSGIX_params
+{
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glSpriteParameteriSGIX_params
+{
+    GLenum pname;
+    GLint param;
+};
+
+struct glSpriteParameterivSGIX_params
+{
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glStartInstrumentsSGIX_params
+{
+};
+
+struct glStateCaptureNV_params
+{
+    GLuint state;
+    GLenum mode;
+};
+
+struct glStencilClearTagEXT_params
+{
+    GLsizei stencilTagBits;
+    GLuint stencilClearTag;
+};
+
+struct glStencilFillPathInstancedNV_params
+{
+    GLsizei numPaths;
+    GLenum pathNameType;
+    const void *paths;
+    GLuint pathBase;
+    GLenum fillMode;
+    GLuint mask;
+    GLenum transformType;
+    const GLfloat *transformValues;
+};
+
+struct glStencilFillPathNV_params
+{
+    GLuint path;
+    GLenum fillMode;
+    GLuint mask;
+};
+
+struct glStencilFuncSeparate_params
+{
+    GLenum face;
+    GLenum func;
+    GLint ref;
+    GLuint mask;
+};
+
+struct glStencilFuncSeparateATI_params
+{
+    GLenum frontfunc;
+    GLenum backfunc;
+    GLint ref;
+    GLuint mask;
+};
+
+struct glStencilMaskSeparate_params
+{
+    GLenum face;
+    GLuint mask;
+};
+
+struct glStencilOpSeparate_params
+{
+    GLenum face;
+    GLenum sfail;
+    GLenum dpfail;
+    GLenum dppass;
+};
+
+struct glStencilOpSeparateATI_params
+{
+    GLenum face;
+    GLenum sfail;
+    GLenum dpfail;
+    GLenum dppass;
+};
+
+struct glStencilOpValueAMD_params
+{
+    GLenum face;
+    GLuint value;
+};
+
+struct glStencilStrokePathInstancedNV_params
+{
+    GLsizei numPaths;
+    GLenum pathNameType;
+    const void *paths;
+    GLuint pathBase;
+    GLint reference;
+    GLuint mask;
+    GLenum transformType;
+    const GLfloat *transformValues;
+};
+
+struct glStencilStrokePathNV_params
+{
+    GLuint path;
+    GLint reference;
+    GLuint mask;
+};
+
+struct glStencilThenCoverFillPathInstancedNV_params
+{
+    GLsizei numPaths;
+    GLenum pathNameType;
+    const void *paths;
+    GLuint pathBase;
+    GLenum fillMode;
+    GLuint mask;
+    GLenum coverMode;
+    GLenum transformType;
+    const GLfloat *transformValues;
+};
+
+struct glStencilThenCoverFillPathNV_params
+{
+    GLuint path;
+    GLenum fillMode;
+    GLuint mask;
+    GLenum coverMode;
+};
+
+struct glStencilThenCoverStrokePathInstancedNV_params
+{
+    GLsizei numPaths;
+    GLenum pathNameType;
+    const void *paths;
+    GLuint pathBase;
+    GLint reference;
+    GLuint mask;
+    GLenum coverMode;
+    GLenum transformType;
+    const GLfloat *transformValues;
+};
+
+struct glStencilThenCoverStrokePathNV_params
+{
+    GLuint path;
+    GLint reference;
+    GLuint mask;
+    GLenum coverMode;
+};
+
+struct glStopInstrumentsSGIX_params
+{
+    GLint marker;
+};
+
+struct glStringMarkerGREMEDY_params
+{
+    GLsizei len;
+    const void *string;
+};
+
+struct glSubpixelPrecisionBiasNV_params
+{
+    GLuint xbits;
+    GLuint ybits;
+};
+
+struct glSwizzleEXT_params
+{
+    GLuint res;
+    GLuint in;
+    GLenum outX;
+    GLenum outY;
+    GLenum outZ;
+    GLenum outW;
+};
+
+struct glSyncTextureINTEL_params
+{
+    GLuint texture;
+};
+
+struct glTagSampleBufferSGIX_params
+{
+};
+
+struct glTangent3bEXT_params
+{
+    GLbyte tx;
+    GLbyte ty;
+    GLbyte tz;
+};
+
+struct glTangent3bvEXT_params
+{
+    const GLbyte *v;
+};
+
+struct glTangent3dEXT_params
+{
+    GLdouble tx;
+    GLdouble ty;
+    GLdouble tz;
+};
+
+struct glTangent3dvEXT_params
+{
+    const GLdouble *v;
+};
+
+struct glTangent3fEXT_params
+{
+    GLfloat tx;
+    GLfloat ty;
+    GLfloat tz;
+};
+
+struct glTangent3fvEXT_params
+{
+    const GLfloat *v;
+};
+
+struct glTangent3iEXT_params
+{
+    GLint tx;
+    GLint ty;
+    GLint tz;
+};
+
+struct glTangent3ivEXT_params
+{
+    const GLint *v;
+};
+
+struct glTangent3sEXT_params
+{
+    GLshort tx;
+    GLshort ty;
+    GLshort tz;
+};
+
+struct glTangent3svEXT_params
+{
+    const GLshort *v;
+};
+
+struct glTangentPointerEXT_params
+{
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glTbufferMask3DFX_params
+{
+    GLuint mask;
+};
+
+struct glTessellationFactorAMD_params
+{
+    GLfloat factor;
+};
+
+struct glTessellationModeAMD_params
+{
+    GLenum mode;
+};
+
+struct glTestFenceAPPLE_params
+{
+    GLuint fence;
+    GLboolean ret;
+};
+
+struct glTestFenceNV_params
+{
+    GLuint fence;
+    GLboolean ret;
+};
+
+struct glTestObjectAPPLE_params
+{
+    GLenum object;
+    GLuint name;
+    GLboolean ret;
+};
+
+struct glTexAttachMemoryNV_params
+{
+    GLenum target;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glTexBuffer_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLuint buffer;
+};
+
+struct glTexBufferARB_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLuint buffer;
+};
+
+struct glTexBufferEXT_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLuint buffer;
+};
+
+struct glTexBufferRange_params
+{
+    GLenum target;
+    GLenum internalformat;
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+};
+
+struct glTexBumpParameterfvATI_params
+{
+    GLenum pname;
+    const GLfloat *param;
+};
+
+struct glTexBumpParameterivATI_params
+{
+    GLenum pname;
+    const GLint *param;
+};
+
+struct glTexCoord1bOES_params
+{
+    GLbyte s;
+};
+
+struct glTexCoord1bvOES_params
+{
+    const GLbyte *coords;
+};
+
+struct glTexCoord1hNV_params
+{
+    GLhalfNV s;
+};
+
+struct glTexCoord1hvNV_params
+{
+    const GLhalfNV *v;
+};
+
+struct glTexCoord1xOES_params
+{
+    GLfixed s;
+};
+
+struct glTexCoord1xvOES_params
+{
+    const GLfixed *coords;
+};
+
+struct glTexCoord2bOES_params
+{
+    GLbyte s;
+    GLbyte t;
+};
+
+struct glTexCoord2bvOES_params
+{
+    const GLbyte *coords;
+};
+
+struct glTexCoord2fColor3fVertex3fSUN_params
+{
+    GLfloat s;
+    GLfloat t;
+    GLfloat r;
+    GLfloat g;
+    GLfloat b;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glTexCoord2fColor3fVertex3fvSUN_params
+{
+    const GLfloat *tc;
+    const GLfloat *c;
+    const GLfloat *v;
+};
+
+struct glTexCoord2fColor4fNormal3fVertex3fSUN_params
+{
+    GLfloat s;
+    GLfloat t;
+    GLfloat r;
+    GLfloat g;
+    GLfloat b;
+    GLfloat a;
+    GLfloat nx;
+    GLfloat ny;
+    GLfloat nz;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glTexCoord2fColor4fNormal3fVertex3fvSUN_params
+{
+    const GLfloat *tc;
+    const GLfloat *c;
+    const GLfloat *n;
+    const GLfloat *v;
+};
+
+struct glTexCoord2fColor4ubVertex3fSUN_params
+{
+    GLfloat s;
+    GLfloat t;
+    GLubyte r;
+    GLubyte g;
+    GLubyte b;
+    GLubyte a;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glTexCoord2fColor4ubVertex3fvSUN_params
+{
+    const GLfloat *tc;
+    const GLubyte *c;
+    const GLfloat *v;
+};
+
+struct glTexCoord2fNormal3fVertex3fSUN_params
+{
+    GLfloat s;
+    GLfloat t;
+    GLfloat nx;
+    GLfloat ny;
+    GLfloat nz;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glTexCoord2fNormal3fVertex3fvSUN_params
+{
+    const GLfloat *tc;
+    const GLfloat *n;
+    const GLfloat *v;
+};
+
+struct glTexCoord2fVertex3fSUN_params
+{
+    GLfloat s;
+    GLfloat t;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glTexCoord2fVertex3fvSUN_params
+{
+    const GLfloat *tc;
+    const GLfloat *v;
+};
+
+struct glTexCoord2hNV_params
+{
+    GLhalfNV s;
+    GLhalfNV t;
+};
+
+struct glTexCoord2hvNV_params
+{
+    const GLhalfNV *v;
+};
+
+struct glTexCoord2xOES_params
+{
+    GLfixed s;
+    GLfixed t;
+};
+
+struct glTexCoord2xvOES_params
+{
+    const GLfixed *coords;
+};
+
+struct glTexCoord3bOES_params
+{
+    GLbyte s;
+    GLbyte t;
+    GLbyte r;
+};
+
+struct glTexCoord3bvOES_params
+{
+    const GLbyte *coords;
+};
+
+struct glTexCoord3hNV_params
+{
+    GLhalfNV s;
+    GLhalfNV t;
+    GLhalfNV r;
+};
+
+struct glTexCoord3hvNV_params
+{
+    const GLhalfNV *v;
+};
+
+struct glTexCoord3xOES_params
+{
+    GLfixed s;
+    GLfixed t;
+    GLfixed r;
+};
+
+struct glTexCoord3xvOES_params
+{
+    const GLfixed *coords;
+};
+
+struct glTexCoord4bOES_params
+{
+    GLbyte s;
+    GLbyte t;
+    GLbyte r;
+    GLbyte q;
+};
+
+struct glTexCoord4bvOES_params
+{
+    const GLbyte *coords;
+};
+
+struct glTexCoord4fColor4fNormal3fVertex4fSUN_params
+{
+    GLfloat s;
+    GLfloat t;
+    GLfloat p;
+    GLfloat q;
+    GLfloat r;
+    GLfloat g;
+    GLfloat b;
+    GLfloat a;
+    GLfloat nx;
+    GLfloat ny;
+    GLfloat nz;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+    GLfloat w;
+};
+
+struct glTexCoord4fColor4fNormal3fVertex4fvSUN_params
+{
+    const GLfloat *tc;
+    const GLfloat *c;
+    const GLfloat *n;
+    const GLfloat *v;
+};
+
+struct glTexCoord4fVertex4fSUN_params
+{
+    GLfloat s;
+    GLfloat t;
+    GLfloat p;
+    GLfloat q;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+    GLfloat w;
+};
+
+struct glTexCoord4fVertex4fvSUN_params
+{
+    const GLfloat *tc;
+    const GLfloat *v;
+};
+
+struct glTexCoord4hNV_params
+{
+    GLhalfNV s;
+    GLhalfNV t;
+    GLhalfNV r;
+    GLhalfNV q;
+};
+
+struct glTexCoord4hvNV_params
+{
+    const GLhalfNV *v;
+};
+
+struct glTexCoord4xOES_params
+{
+    GLfixed s;
+    GLfixed t;
+    GLfixed r;
+    GLfixed q;
+};
+
+struct glTexCoord4xvOES_params
+{
+    const GLfixed *coords;
+};
+
+struct glTexCoordFormatNV_params
+{
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+};
+
+struct glTexCoordP1ui_params
+{
+    GLenum type;
+    GLuint coords;
+};
+
+struct glTexCoordP1uiv_params
+{
+    GLenum type;
+    const GLuint *coords;
+};
+
+struct glTexCoordP2ui_params
+{
+    GLenum type;
+    GLuint coords;
+};
+
+struct glTexCoordP2uiv_params
+{
+    GLenum type;
+    const GLuint *coords;
+};
+
+struct glTexCoordP3ui_params
+{
+    GLenum type;
+    GLuint coords;
+};
+
+struct glTexCoordP3uiv_params
+{
+    GLenum type;
+    const GLuint *coords;
+};
+
+struct glTexCoordP4ui_params
+{
+    GLenum type;
+    GLuint coords;
+};
+
+struct glTexCoordP4uiv_params
+{
+    GLenum type;
+    const GLuint *coords;
+};
+
+struct glTexCoordPointerEXT_params
+{
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    GLsizei count;
+    const void *pointer;
+};
+
+struct glTexCoordPointerListIBM_params
+{
+    GLint size;
+    GLenum type;
+    GLint stride;
+    const void **pointer;
+    GLint ptrstride;
+};
+
+struct glTexCoordPointervINTEL_params
+{
+    GLint size;
+    GLenum type;
+    const void **pointer;
+};
+
+struct glTexEnvxOES_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfixed param;
+};
+
+struct glTexEnvxvOES_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLfixed *params;
+};
+
+struct glTexFilterFuncSGIS_params
+{
+    GLenum target;
+    GLenum filter;
+    GLsizei n;
+    const GLfloat *weights;
+};
+
+struct glTexGenxOES_params
+{
+    GLenum coord;
+    GLenum pname;
+    GLfixed param;
+};
+
+struct glTexGenxvOES_params
+{
+    GLenum coord;
+    GLenum pname;
+    const GLfixed *params;
+};
+
+struct glTexImage2DMultisample_params
+{
+    GLenum target;
+    GLsizei samples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLboolean fixedsamplelocations;
+};
+
+struct glTexImage2DMultisampleCoverageNV_params
+{
+    GLenum target;
+    GLsizei coverageSamples;
+    GLsizei colorSamples;
+    GLint internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLboolean fixedSampleLocations;
+};
+
+struct glTexImage3D_params
+{
+    GLenum target;
+    GLint level;
+    GLint internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLint border;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTexImage3DEXT_params
+{
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLint border;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTexImage3DMultisample_params
+{
+    GLenum target;
+    GLsizei samples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLboolean fixedsamplelocations;
+};
+
+struct glTexImage3DMultisampleCoverageNV_params
+{
+    GLenum target;
+    GLsizei coverageSamples;
+    GLsizei colorSamples;
+    GLint internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLboolean fixedSampleLocations;
+};
+
+struct glTexImage4DSGIS_params
+{
+    GLenum target;
+    GLint level;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLsizei size4d;
+    GLint border;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTexPageCommitmentARB_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLboolean commit;
+};
+
+struct glTexParameterIiv_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glTexParameterIivEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glTexParameterIuiv_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLuint *params;
+};
+
+struct glTexParameterIuivEXT_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLuint *params;
+};
+
+struct glTexParameterxOES_params
+{
+    GLenum target;
+    GLenum pname;
+    GLfixed param;
+};
+
+struct glTexParameterxvOES_params
+{
+    GLenum target;
+    GLenum pname;
+    const GLfixed *params;
+};
+
+struct glTexRenderbufferNV_params
+{
+    GLenum target;
+    GLuint renderbuffer;
+};
+
+struct glTexStorage1D_params
+{
+    GLenum target;
+    GLsizei levels;
+    GLenum internalformat;
+    GLsizei width;
+};
+
+struct glTexStorage2D_params
+{
+    GLenum target;
+    GLsizei levels;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glTexStorage2DMultisample_params
+{
+    GLenum target;
+    GLsizei samples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLboolean fixedsamplelocations;
+};
+
+struct glTexStorage3D_params
+{
+    GLenum target;
+    GLsizei levels;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+};
+
+struct glTexStorage3DMultisample_params
+{
+    GLenum target;
+    GLsizei samples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLboolean fixedsamplelocations;
+};
+
+struct glTexStorageMem1DEXT_params
+{
+    GLenum target;
+    GLsizei levels;
+    GLenum internalFormat;
+    GLsizei width;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glTexStorageMem2DEXT_params
+{
+    GLenum target;
+    GLsizei levels;
+    GLenum internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glTexStorageMem2DMultisampleEXT_params
+{
+    GLenum target;
+    GLsizei samples;
+    GLenum internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLboolean fixedSampleLocations;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glTexStorageMem3DEXT_params
+{
+    GLenum target;
+    GLsizei levels;
+    GLenum internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glTexStorageMem3DMultisampleEXT_params
+{
+    GLenum target;
+    GLsizei samples;
+    GLenum internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLboolean fixedSampleLocations;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glTexStorageSparseAMD_params
+{
+    GLenum target;
+    GLenum internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLsizei layers;
+    GLbitfield flags;
+};
+
+struct glTexSubImage1DEXT_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLsizei width;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTexSubImage2DEXT_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTexSubImage3D_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTexSubImage3DEXT_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTexSubImage4DSGIS_params
+{
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLint woffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLsizei size4d;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTextureAttachMemoryNV_params
+{
+    GLuint texture;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glTextureBarrier_params
+{
+};
+
+struct glTextureBarrierNV_params
+{
+};
+
+struct glTextureBuffer_params
+{
+    GLuint texture;
+    GLenum internalformat;
+    GLuint buffer;
+};
+
+struct glTextureBufferEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLenum internalformat;
+    GLuint buffer;
+};
+
+struct glTextureBufferRange_params
+{
+    GLuint texture;
+    GLenum internalformat;
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+};
+
+struct glTextureBufferRangeEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLenum internalformat;
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+};
+
+struct glTextureColorMaskSGIS_params
+{
+    GLboolean red;
+    GLboolean green;
+    GLboolean blue;
+    GLboolean alpha;
+};
+
+struct glTextureImage1DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLint internalformat;
+    GLsizei width;
+    GLint border;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTextureImage2DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLint internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLint border;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTextureImage2DMultisampleCoverageNV_params
+{
+    GLuint texture;
+    GLenum target;
+    GLsizei coverageSamples;
+    GLsizei colorSamples;
+    GLint internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLboolean fixedSampleLocations;
+};
+
+struct glTextureImage2DMultisampleNV_params
+{
+    GLuint texture;
+    GLenum target;
+    GLsizei samples;
+    GLint internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLboolean fixedSampleLocations;
+};
+
+struct glTextureImage3DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLint internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLint border;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTextureImage3DMultisampleCoverageNV_params
+{
+    GLuint texture;
+    GLenum target;
+    GLsizei coverageSamples;
+    GLsizei colorSamples;
+    GLint internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLboolean fixedSampleLocations;
+};
+
+struct glTextureImage3DMultisampleNV_params
+{
+    GLuint texture;
+    GLenum target;
+    GLsizei samples;
+    GLint internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLboolean fixedSampleLocations;
+};
+
+struct glTextureLightEXT_params
+{
+    GLenum pname;
+};
+
+struct glTextureMaterialEXT_params
+{
+    GLenum face;
+    GLenum mode;
+};
+
+struct glTextureNormalEXT_params
+{
+    GLenum mode;
+};
+
+struct glTexturePageCommitmentEXT_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLboolean commit;
+};
+
+struct glTextureParameterIiv_params
+{
+    GLuint texture;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glTextureParameterIivEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glTextureParameterIuiv_params
+{
+    GLuint texture;
+    GLenum pname;
+    const GLuint *params;
+};
+
+struct glTextureParameterIuivEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLenum pname;
+    const GLuint *params;
+};
+
+struct glTextureParameterf_params
+{
+    GLuint texture;
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glTextureParameterfEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glTextureParameterfv_params
+{
+    GLuint texture;
+    GLenum pname;
+    const GLfloat *param;
+};
+
+struct glTextureParameterfvEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glTextureParameteri_params
+{
+    GLuint texture;
+    GLenum pname;
+    GLint param;
+};
+
+struct glTextureParameteriEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLenum pname;
+    GLint param;
+};
+
+struct glTextureParameteriv_params
+{
+    GLuint texture;
+    GLenum pname;
+    const GLint *param;
+};
+
+struct glTextureParameterivEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glTextureRangeAPPLE_params
+{
+    GLenum target;
+    GLsizei length;
+    const void *pointer;
+};
+
+struct glTextureRenderbufferEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLuint renderbuffer;
+};
+
+struct glTextureStorage1D_params
+{
+    GLuint texture;
+    GLsizei levels;
+    GLenum internalformat;
+    GLsizei width;
+};
+
+struct glTextureStorage1DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLsizei levels;
+    GLenum internalformat;
+    GLsizei width;
+};
+
+struct glTextureStorage2D_params
+{
+    GLuint texture;
+    GLsizei levels;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glTextureStorage2DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLsizei levels;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+};
+
+struct glTextureStorage2DMultisample_params
+{
+    GLuint texture;
+    GLsizei samples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLboolean fixedsamplelocations;
+};
+
+struct glTextureStorage2DMultisampleEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLsizei samples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLboolean fixedsamplelocations;
+};
+
+struct glTextureStorage3D_params
+{
+    GLuint texture;
+    GLsizei levels;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+};
+
+struct glTextureStorage3DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLsizei levels;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+};
+
+struct glTextureStorage3DMultisample_params
+{
+    GLuint texture;
+    GLsizei samples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLboolean fixedsamplelocations;
+};
+
+struct glTextureStorage3DMultisampleEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLsizei samples;
+    GLenum internalformat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLboolean fixedsamplelocations;
+};
+
+struct glTextureStorageMem1DEXT_params
+{
+    GLuint texture;
+    GLsizei levels;
+    GLenum internalFormat;
+    GLsizei width;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glTextureStorageMem2DEXT_params
+{
+    GLuint texture;
+    GLsizei levels;
+    GLenum internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glTextureStorageMem2DMultisampleEXT_params
+{
+    GLuint texture;
+    GLsizei samples;
+    GLenum internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLboolean fixedSampleLocations;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glTextureStorageMem3DEXT_params
+{
+    GLuint texture;
+    GLsizei levels;
+    GLenum internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glTextureStorageMem3DMultisampleEXT_params
+{
+    GLuint texture;
+    GLsizei samples;
+    GLenum internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLboolean fixedSampleLocations;
+    GLuint memory;
+    GLuint64 offset;
+};
+
+struct glTextureStorageSparseAMD_params
+{
+    GLuint texture;
+    GLenum target;
+    GLenum internalFormat;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLsizei layers;
+    GLbitfield flags;
+};
+
+struct glTextureSubImage1D_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLsizei width;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTextureSubImage1DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLsizei width;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTextureSubImage2D_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTextureSubImage2DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLsizei width;
+    GLsizei height;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTextureSubImage3D_params
+{
+    GLuint texture;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTextureSubImage3DEXT_params
+{
+    GLuint texture;
+    GLenum target;
+    GLint level;
+    GLint xoffset;
+    GLint yoffset;
+    GLint zoffset;
+    GLsizei width;
+    GLsizei height;
+    GLsizei depth;
+    GLenum format;
+    GLenum type;
+    const void *pixels;
+};
+
+struct glTextureView_params
+{
+    GLuint texture;
+    GLenum target;
+    GLuint origtexture;
+    GLenum internalformat;
+    GLuint minlevel;
+    GLuint numlevels;
+    GLuint minlayer;
+    GLuint numlayers;
+};
+
+struct glTrackMatrixNV_params
+{
+    GLenum target;
+    GLuint address;
+    GLenum matrix;
+    GLenum transform;
+};
+
+struct glTransformFeedbackAttribsNV_params
+{
+    GLsizei count;
+    const GLint *attribs;
+    GLenum bufferMode;
+};
+
+struct glTransformFeedbackBufferBase_params
+{
+    GLuint xfb;
+    GLuint index;
+    GLuint buffer;
+};
+
+struct glTransformFeedbackBufferRange_params
+{
+    GLuint xfb;
+    GLuint index;
+    GLuint buffer;
+    GLintptr offset;
+    GLsizeiptr size;
+};
+
+struct glTransformFeedbackStreamAttribsNV_params
+{
+    GLsizei count;
+    const GLint *attribs;
+    GLsizei nbuffers;
+    const GLint *bufstreams;
+    GLenum bufferMode;
+};
+
+struct glTransformFeedbackVaryings_params
+{
+    GLuint program;
+    GLsizei count;
+    const GLchar *const*varyings;
+    GLenum bufferMode;
+};
+
+struct glTransformFeedbackVaryingsEXT_params
+{
+    GLuint program;
+    GLsizei count;
+    const GLchar *const*varyings;
+    GLenum bufferMode;
+};
+
+struct glTransformFeedbackVaryingsNV_params
+{
+    GLuint program;
+    GLsizei count;
+    const GLint *locations;
+    GLenum bufferMode;
+};
+
+struct glTransformPathNV_params
+{
+    GLuint resultPath;
+    GLuint srcPath;
+    GLenum transformType;
+    const GLfloat *transformValues;
+};
+
+struct glTranslatexOES_params
+{
+    GLfixed x;
+    GLfixed y;
+    GLfixed z;
+};
+
+struct glUniform1d_params
+{
+    GLint location;
+    GLdouble x;
+};
+
+struct glUniform1dv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLdouble *value;
+};
+
+struct glUniform1f_params
+{
+    GLint location;
+    GLfloat v0;
+};
+
+struct glUniform1fARB_params
+{
+    GLint location;
+    GLfloat v0;
+};
+
+struct glUniform1fv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glUniform1fvARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glUniform1i_params
+{
+    GLint location;
+    GLint v0;
+};
+
+struct glUniform1i64ARB_params
+{
+    GLint location;
+    GLint64 x;
+};
+
+struct glUniform1i64NV_params
+{
+    GLint location;
+    GLint64EXT x;
+};
+
+struct glUniform1i64vARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint64 *value;
+};
+
+struct glUniform1i64vNV_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint64EXT *value;
+};
+
+struct glUniform1iARB_params
+{
+    GLint location;
+    GLint v0;
+};
+
+struct glUniform1iv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glUniform1ivARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glUniform1ui_params
+{
+    GLint location;
+    GLuint v0;
+};
+
+struct glUniform1ui64ARB_params
+{
+    GLint location;
+    GLuint64 x;
+};
+
+struct glUniform1ui64NV_params
+{
+    GLint location;
+    GLuint64EXT x;
+};
+
+struct glUniform1ui64vARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint64 *value;
+};
+
+struct glUniform1ui64vNV_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint64EXT *value;
+};
+
+struct glUniform1uiEXT_params
+{
+    GLint location;
+    GLuint v0;
+};
+
+struct glUniform1uiv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glUniform1uivEXT_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glUniform2d_params
+{
+    GLint location;
+    GLdouble x;
+    GLdouble y;
+};
+
+struct glUniform2dv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLdouble *value;
+};
+
+struct glUniform2f_params
+{
+    GLint location;
+    GLfloat v0;
+    GLfloat v1;
+};
+
+struct glUniform2fARB_params
+{
+    GLint location;
+    GLfloat v0;
+    GLfloat v1;
+};
+
+struct glUniform2fv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glUniform2fvARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glUniform2i_params
+{
+    GLint location;
+    GLint v0;
+    GLint v1;
+};
+
+struct glUniform2i64ARB_params
+{
+    GLint location;
+    GLint64 x;
+    GLint64 y;
+};
+
+struct glUniform2i64NV_params
+{
+    GLint location;
+    GLint64EXT x;
+    GLint64EXT y;
+};
+
+struct glUniform2i64vARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint64 *value;
+};
+
+struct glUniform2i64vNV_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint64EXT *value;
+};
+
+struct glUniform2iARB_params
+{
+    GLint location;
+    GLint v0;
+    GLint v1;
+};
+
+struct glUniform2iv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glUniform2ivARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glUniform2ui_params
+{
+    GLint location;
+    GLuint v0;
+    GLuint v1;
+};
+
+struct glUniform2ui64ARB_params
+{
+    GLint location;
+    GLuint64 x;
+    GLuint64 y;
+};
+
+struct glUniform2ui64NV_params
+{
+    GLint location;
+    GLuint64EXT x;
+    GLuint64EXT y;
+};
+
+struct glUniform2ui64vARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint64 *value;
+};
+
+struct glUniform2ui64vNV_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint64EXT *value;
+};
+
+struct glUniform2uiEXT_params
+{
+    GLint location;
+    GLuint v0;
+    GLuint v1;
+};
+
+struct glUniform2uiv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glUniform2uivEXT_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glUniform3d_params
+{
+    GLint location;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glUniform3dv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLdouble *value;
+};
+
+struct glUniform3f_params
+{
+    GLint location;
+    GLfloat v0;
+    GLfloat v1;
+    GLfloat v2;
+};
+
+struct glUniform3fARB_params
+{
+    GLint location;
+    GLfloat v0;
+    GLfloat v1;
+    GLfloat v2;
+};
+
+struct glUniform3fv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glUniform3fvARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glUniform3i_params
+{
+    GLint location;
+    GLint v0;
+    GLint v1;
+    GLint v2;
+};
+
+struct glUniform3i64ARB_params
+{
+    GLint location;
+    GLint64 x;
+    GLint64 y;
+    GLint64 z;
+};
+
+struct glUniform3i64NV_params
+{
+    GLint location;
+    GLint64EXT x;
+    GLint64EXT y;
+    GLint64EXT z;
+};
+
+struct glUniform3i64vARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint64 *value;
+};
+
+struct glUniform3i64vNV_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint64EXT *value;
+};
+
+struct glUniform3iARB_params
+{
+    GLint location;
+    GLint v0;
+    GLint v1;
+    GLint v2;
+};
+
+struct glUniform3iv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glUniform3ivARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glUniform3ui_params
+{
+    GLint location;
+    GLuint v0;
+    GLuint v1;
+    GLuint v2;
+};
+
+struct glUniform3ui64ARB_params
+{
+    GLint location;
+    GLuint64 x;
+    GLuint64 y;
+    GLuint64 z;
+};
+
+struct glUniform3ui64NV_params
+{
+    GLint location;
+    GLuint64EXT x;
+    GLuint64EXT y;
+    GLuint64EXT z;
+};
+
+struct glUniform3ui64vARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint64 *value;
+};
+
+struct glUniform3ui64vNV_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint64EXT *value;
+};
+
+struct glUniform3uiEXT_params
+{
+    GLint location;
+    GLuint v0;
+    GLuint v1;
+    GLuint v2;
+};
+
+struct glUniform3uiv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glUniform3uivEXT_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glUniform4d_params
+{
+    GLint location;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glUniform4dv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLdouble *value;
+};
+
+struct glUniform4f_params
+{
+    GLint location;
+    GLfloat v0;
+    GLfloat v1;
+    GLfloat v2;
+    GLfloat v3;
+};
+
+struct glUniform4fARB_params
+{
+    GLint location;
+    GLfloat v0;
+    GLfloat v1;
+    GLfloat v2;
+    GLfloat v3;
+};
+
+struct glUniform4fv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glUniform4fvARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLfloat *value;
+};
+
+struct glUniform4i_params
+{
+    GLint location;
+    GLint v0;
+    GLint v1;
+    GLint v2;
+    GLint v3;
+};
+
+struct glUniform4i64ARB_params
+{
+    GLint location;
+    GLint64 x;
+    GLint64 y;
+    GLint64 z;
+    GLint64 w;
+};
+
+struct glUniform4i64NV_params
+{
+    GLint location;
+    GLint64EXT x;
+    GLint64EXT y;
+    GLint64EXT z;
+    GLint64EXT w;
+};
+
+struct glUniform4i64vARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint64 *value;
+};
+
+struct glUniform4i64vNV_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint64EXT *value;
+};
+
+struct glUniform4iARB_params
+{
+    GLint location;
+    GLint v0;
+    GLint v1;
+    GLint v2;
+    GLint v3;
+};
+
+struct glUniform4iv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glUniform4ivARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLint *value;
+};
+
+struct glUniform4ui_params
+{
+    GLint location;
+    GLuint v0;
+    GLuint v1;
+    GLuint v2;
+    GLuint v3;
+};
+
+struct glUniform4ui64ARB_params
+{
+    GLint location;
+    GLuint64 x;
+    GLuint64 y;
+    GLuint64 z;
+    GLuint64 w;
+};
+
+struct glUniform4ui64NV_params
+{
+    GLint location;
+    GLuint64EXT x;
+    GLuint64EXT y;
+    GLuint64EXT z;
+    GLuint64EXT w;
+};
+
+struct glUniform4ui64vARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint64 *value;
+};
+
+struct glUniform4ui64vNV_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint64EXT *value;
+};
+
+struct glUniform4uiEXT_params
+{
+    GLint location;
+    GLuint v0;
+    GLuint v1;
+    GLuint v2;
+    GLuint v3;
+};
+
+struct glUniform4uiv_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glUniform4uivEXT_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint *value;
+};
+
+struct glUniformBlockBinding_params
+{
+    GLuint program;
+    GLuint uniformBlockIndex;
+    GLuint uniformBlockBinding;
+};
+
+struct glUniformBufferEXT_params
+{
+    GLuint program;
+    GLint location;
+    GLuint buffer;
+};
+
+struct glUniformHandleui64ARB_params
+{
+    GLint location;
+    GLuint64 value;
+};
+
+struct glUniformHandleui64NV_params
+{
+    GLint location;
+    GLuint64 value;
+};
+
+struct glUniformHandleui64vARB_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint64 *value;
+};
+
+struct glUniformHandleui64vNV_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint64 *value;
+};
+
+struct glUniformMatrix2dv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glUniformMatrix2fv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glUniformMatrix2fvARB_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glUniformMatrix2x3dv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glUniformMatrix2x3fv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glUniformMatrix2x4dv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glUniformMatrix2x4fv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glUniformMatrix3dv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glUniformMatrix3fv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glUniformMatrix3fvARB_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glUniformMatrix3x2dv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glUniformMatrix3x2fv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glUniformMatrix3x4dv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glUniformMatrix3x4fv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glUniformMatrix4dv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glUniformMatrix4fv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glUniformMatrix4fvARB_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glUniformMatrix4x2dv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glUniformMatrix4x2fv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glUniformMatrix4x3dv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLdouble *value;
+};
+
+struct glUniformMatrix4x3fv_params
+{
+    GLint location;
+    GLsizei count;
+    GLboolean transpose;
+    const GLfloat *value;
+};
+
+struct glUniformSubroutinesuiv_params
+{
+    GLenum shadertype;
+    GLsizei count;
+    const GLuint *indices;
+};
+
+struct glUniformui64NV_params
+{
+    GLint location;
+    GLuint64EXT value;
+};
+
+struct glUniformui64vNV_params
+{
+    GLint location;
+    GLsizei count;
+    const GLuint64EXT *value;
+};
+
+struct glUnlockArraysEXT_params
+{
+};
+
+struct glUnmapBuffer_params
+{
+    GLenum target;
+    GLboolean ret;
+};
+
+struct glUnmapBufferARB_params
+{
+    GLenum target;
+    GLboolean ret;
+};
+
+struct glUnmapNamedBuffer_params
+{
+    GLuint buffer;
+    GLboolean ret;
+};
+
+struct glUnmapNamedBufferEXT_params
+{
+    GLuint buffer;
+    GLboolean ret;
+};
+
+struct glUnmapObjectBufferATI_params
+{
+    GLuint buffer;
+};
+
+struct glUnmapTexture2DINTEL_params
+{
+    GLuint texture;
+    GLint level;
+};
+
+struct glUpdateObjectBufferATI_params
+{
+    GLuint buffer;
+    GLuint offset;
+    GLsizei size;
+    const void *pointer;
+    GLenum preserve;
+};
+
+struct glUploadGpuMaskNVX_params
+{
+    GLbitfield mask;
+};
+
+struct glUseProgram_params
+{
+    GLuint program;
+};
+
+struct glUseProgramObjectARB_params
+{
+    GLhandleARB programObj;
+};
+
+struct glUseProgramStages_params
+{
+    GLuint pipeline;
+    GLbitfield stages;
+    GLuint program;
+};
+
+struct glUseShaderProgramEXT_params
+{
+    GLenum type;
+    GLuint program;
+};
+
+struct glVDPAUFiniNV_params
+{
+};
+
+struct glVDPAUGetSurfaceivNV_params
+{
+    GLvdpauSurfaceNV surface;
+    GLenum pname;
+    GLsizei count;
+    GLsizei *length;
+    GLint *values;
+};
+
+struct glVDPAUInitNV_params
+{
+    const void *vdpDevice;
+    const void *getProcAddress;
+};
+
+struct glVDPAUIsSurfaceNV_params
+{
+    GLvdpauSurfaceNV surface;
+    GLboolean ret;
+};
+
+struct glVDPAUMapSurfacesNV_params
+{
+    GLsizei numSurfaces;
+    const GLvdpauSurfaceNV *surfaces;
+};
+
+struct glVDPAURegisterOutputSurfaceNV_params
+{
+    const void *vdpSurface;
+    GLenum target;
+    GLsizei numTextureNames;
+    const GLuint *textureNames;
+    GLvdpauSurfaceNV ret;
+};
+
+struct glVDPAURegisterVideoSurfaceNV_params
+{
+    const void *vdpSurface;
+    GLenum target;
+    GLsizei numTextureNames;
+    const GLuint *textureNames;
+    GLvdpauSurfaceNV ret;
+};
+
+struct glVDPAURegisterVideoSurfaceWithPictureStructureNV_params
+{
+    const void *vdpSurface;
+    GLenum target;
+    GLsizei numTextureNames;
+    const GLuint *textureNames;
+    GLboolean isFrameStructure;
+    GLvdpauSurfaceNV ret;
+};
+
+struct glVDPAUSurfaceAccessNV_params
+{
+    GLvdpauSurfaceNV surface;
+    GLenum access;
+};
+
+struct glVDPAUUnmapSurfacesNV_params
+{
+    GLsizei numSurface;
+    const GLvdpauSurfaceNV *surfaces;
+};
+
+struct glVDPAUUnregisterSurfaceNV_params
+{
+    GLvdpauSurfaceNV surface;
+};
+
+struct glValidateProgram_params
+{
+    GLuint program;
+};
+
+struct glValidateProgramARB_params
+{
+    GLhandleARB programObj;
+};
+
+struct glValidateProgramPipeline_params
+{
+    GLuint pipeline;
+};
+
+struct glVariantArrayObjectATI_params
+{
+    GLuint id;
+    GLenum type;
+    GLsizei stride;
+    GLuint buffer;
+    GLuint offset;
+};
+
+struct glVariantPointerEXT_params
+{
+    GLuint id;
+    GLenum type;
+    GLuint stride;
+    const void *addr;
+};
+
+struct glVariantbvEXT_params
+{
+    GLuint id;
+    const GLbyte *addr;
+};
+
+struct glVariantdvEXT_params
+{
+    GLuint id;
+    const GLdouble *addr;
+};
+
+struct glVariantfvEXT_params
+{
+    GLuint id;
+    const GLfloat *addr;
+};
+
+struct glVariantivEXT_params
+{
+    GLuint id;
+    const GLint *addr;
+};
+
+struct glVariantsvEXT_params
+{
+    GLuint id;
+    const GLshort *addr;
+};
+
+struct glVariantubvEXT_params
+{
+    GLuint id;
+    const GLubyte *addr;
+};
+
+struct glVariantuivEXT_params
+{
+    GLuint id;
+    const GLuint *addr;
+};
+
+struct glVariantusvEXT_params
+{
+    GLuint id;
+    const GLushort *addr;
+};
+
+struct glVertex2bOES_params
+{
+    GLbyte x;
+    GLbyte y;
+};
+
+struct glVertex2bvOES_params
+{
+    const GLbyte *coords;
+};
+
+struct glVertex2hNV_params
+{
+    GLhalfNV x;
+    GLhalfNV y;
+};
+
+struct glVertex2hvNV_params
+{
+    const GLhalfNV *v;
+};
+
+struct glVertex2xOES_params
+{
+    GLfixed x;
+};
+
+struct glVertex2xvOES_params
+{
+    const GLfixed *coords;
+};
+
+struct glVertex3bOES_params
+{
+    GLbyte x;
+    GLbyte y;
+    GLbyte z;
+};
+
+struct glVertex3bvOES_params
+{
+    const GLbyte *coords;
+};
+
+struct glVertex3hNV_params
+{
+    GLhalfNV x;
+    GLhalfNV y;
+    GLhalfNV z;
+};
+
+struct glVertex3hvNV_params
+{
+    const GLhalfNV *v;
+};
+
+struct glVertex3xOES_params
+{
+    GLfixed x;
+    GLfixed y;
+};
+
+struct glVertex3xvOES_params
+{
+    const GLfixed *coords;
+};
+
+struct glVertex4bOES_params
+{
+    GLbyte x;
+    GLbyte y;
+    GLbyte z;
+    GLbyte w;
+};
+
+struct glVertex4bvOES_params
+{
+    const GLbyte *coords;
+};
+
+struct glVertex4hNV_params
+{
+    GLhalfNV x;
+    GLhalfNV y;
+    GLhalfNV z;
+    GLhalfNV w;
+};
+
+struct glVertex4hvNV_params
+{
+    const GLhalfNV *v;
+};
+
+struct glVertex4xOES_params
+{
+    GLfixed x;
+    GLfixed y;
+    GLfixed z;
+};
+
+struct glVertex4xvOES_params
+{
+    const GLfixed *coords;
+};
+
+struct glVertexArrayAttribBinding_params
+{
+    GLuint vaobj;
+    GLuint attribindex;
+    GLuint bindingindex;
+};
+
+struct glVertexArrayAttribFormat_params
+{
+    GLuint vaobj;
+    GLuint attribindex;
+    GLint size;
+    GLenum type;
+    GLboolean normalized;
+    GLuint relativeoffset;
+};
+
+struct glVertexArrayAttribIFormat_params
+{
+    GLuint vaobj;
+    GLuint attribindex;
+    GLint size;
+    GLenum type;
+    GLuint relativeoffset;
+};
+
+struct glVertexArrayAttribLFormat_params
+{
+    GLuint vaobj;
+    GLuint attribindex;
+    GLint size;
+    GLenum type;
+    GLuint relativeoffset;
+};
+
+struct glVertexArrayBindVertexBufferEXT_params
+{
+    GLuint vaobj;
+    GLuint bindingindex;
+    GLuint buffer;
+    GLintptr offset;
+    GLsizei stride;
+};
+
+struct glVertexArrayBindingDivisor_params
+{
+    GLuint vaobj;
+    GLuint bindingindex;
+    GLuint divisor;
+};
+
+struct glVertexArrayColorOffsetEXT_params
+{
+    GLuint vaobj;
+    GLuint buffer;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    GLintptr offset;
+};
+
+struct glVertexArrayEdgeFlagOffsetEXT_params
+{
+    GLuint vaobj;
+    GLuint buffer;
+    GLsizei stride;
+    GLintptr offset;
+};
+
+struct glVertexArrayElementBuffer_params
+{
+    GLuint vaobj;
+    GLuint buffer;
+};
+
+struct glVertexArrayFogCoordOffsetEXT_params
+{
+    GLuint vaobj;
+    GLuint buffer;
+    GLenum type;
+    GLsizei stride;
+    GLintptr offset;
+};
+
+struct glVertexArrayIndexOffsetEXT_params
+{
+    GLuint vaobj;
+    GLuint buffer;
+    GLenum type;
+    GLsizei stride;
+    GLintptr offset;
+};
+
+struct glVertexArrayMultiTexCoordOffsetEXT_params
+{
+    GLuint vaobj;
+    GLuint buffer;
+    GLenum texunit;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    GLintptr offset;
+};
+
+struct glVertexArrayNormalOffsetEXT_params
+{
+    GLuint vaobj;
+    GLuint buffer;
+    GLenum type;
+    GLsizei stride;
+    GLintptr offset;
+};
+
+struct glVertexArrayParameteriAPPLE_params
+{
+    GLenum pname;
+    GLint param;
+};
+
+struct glVertexArrayRangeAPPLE_params
+{
+    GLsizei length;
+    void *pointer;
+};
+
+struct glVertexArrayRangeNV_params
+{
+    GLsizei length;
+    const void *pointer;
+};
+
+struct glVertexArraySecondaryColorOffsetEXT_params
+{
+    GLuint vaobj;
+    GLuint buffer;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    GLintptr offset;
+};
+
+struct glVertexArrayTexCoordOffsetEXT_params
+{
+    GLuint vaobj;
+    GLuint buffer;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    GLintptr offset;
+};
+
+struct glVertexArrayVertexAttribBindingEXT_params
+{
+    GLuint vaobj;
+    GLuint attribindex;
+    GLuint bindingindex;
+};
+
+struct glVertexArrayVertexAttribDivisorEXT_params
+{
+    GLuint vaobj;
+    GLuint index;
+    GLuint divisor;
+};
+
+struct glVertexArrayVertexAttribFormatEXT_params
+{
+    GLuint vaobj;
+    GLuint attribindex;
+    GLint size;
+    GLenum type;
+    GLboolean normalized;
+    GLuint relativeoffset;
+};
+
+struct glVertexArrayVertexAttribIFormatEXT_params
+{
+    GLuint vaobj;
+    GLuint attribindex;
+    GLint size;
+    GLenum type;
+    GLuint relativeoffset;
+};
+
+struct glVertexArrayVertexAttribIOffsetEXT_params
+{
+    GLuint vaobj;
+    GLuint buffer;
+    GLuint index;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    GLintptr offset;
+};
+
+struct glVertexArrayVertexAttribLFormatEXT_params
+{
+    GLuint vaobj;
+    GLuint attribindex;
+    GLint size;
+    GLenum type;
+    GLuint relativeoffset;
+};
+
+struct glVertexArrayVertexAttribLOffsetEXT_params
+{
+    GLuint vaobj;
+    GLuint buffer;
+    GLuint index;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    GLintptr offset;
+};
+
+struct glVertexArrayVertexAttribOffsetEXT_params
+{
+    GLuint vaobj;
+    GLuint buffer;
+    GLuint index;
+    GLint size;
+    GLenum type;
+    GLboolean normalized;
+    GLsizei stride;
+    GLintptr offset;
+};
+
+struct glVertexArrayVertexBindingDivisorEXT_params
+{
+    GLuint vaobj;
+    GLuint bindingindex;
+    GLuint divisor;
+};
+
+struct glVertexArrayVertexBuffer_params
+{
+    GLuint vaobj;
+    GLuint bindingindex;
+    GLuint buffer;
+    GLintptr offset;
+    GLsizei stride;
+};
+
+struct glVertexArrayVertexBuffers_params
+{
+    GLuint vaobj;
+    GLuint first;
+    GLsizei count;
+    const GLuint *buffers;
+    const GLintptr *offsets;
+    const GLsizei *strides;
+};
+
+struct glVertexArrayVertexOffsetEXT_params
+{
+    GLuint vaobj;
+    GLuint buffer;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    GLintptr offset;
+};
+
+struct glVertexAttrib1d_params
+{
+    GLuint index;
+    GLdouble x;
+};
+
+struct glVertexAttrib1dARB_params
+{
+    GLuint index;
+    GLdouble x;
+};
+
+struct glVertexAttrib1dNV_params
+{
+    GLuint index;
+    GLdouble x;
+};
+
+struct glVertexAttrib1dv_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttrib1dvARB_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttrib1dvNV_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttrib1f_params
+{
+    GLuint index;
+    GLfloat x;
+};
+
+struct glVertexAttrib1fARB_params
+{
+    GLuint index;
+    GLfloat x;
+};
+
+struct glVertexAttrib1fNV_params
+{
+    GLuint index;
+    GLfloat x;
+};
+
+struct glVertexAttrib1fv_params
+{
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glVertexAttrib1fvARB_params
+{
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glVertexAttrib1fvNV_params
+{
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glVertexAttrib1hNV_params
+{
+    GLuint index;
+    GLhalfNV x;
+};
+
+struct glVertexAttrib1hvNV_params
+{
+    GLuint index;
+    const GLhalfNV *v;
+};
+
+struct glVertexAttrib1s_params
+{
+    GLuint index;
+    GLshort x;
+};
+
+struct glVertexAttrib1sARB_params
+{
+    GLuint index;
+    GLshort x;
+};
+
+struct glVertexAttrib1sNV_params
+{
+    GLuint index;
+    GLshort x;
+};
+
+struct glVertexAttrib1sv_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib1svARB_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib1svNV_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib2d_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+};
+
+struct glVertexAttrib2dARB_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+};
+
+struct glVertexAttrib2dNV_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+};
+
+struct glVertexAttrib2dv_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttrib2dvARB_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttrib2dvNV_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttrib2f_params
+{
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+};
+
+struct glVertexAttrib2fARB_params
+{
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+};
+
+struct glVertexAttrib2fNV_params
+{
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+};
+
+struct glVertexAttrib2fv_params
+{
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glVertexAttrib2fvARB_params
+{
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glVertexAttrib2fvNV_params
+{
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glVertexAttrib2hNV_params
+{
+    GLuint index;
+    GLhalfNV x;
+    GLhalfNV y;
+};
+
+struct glVertexAttrib2hvNV_params
+{
+    GLuint index;
+    const GLhalfNV *v;
+};
+
+struct glVertexAttrib2s_params
+{
+    GLuint index;
+    GLshort x;
+    GLshort y;
+};
+
+struct glVertexAttrib2sARB_params
+{
+    GLuint index;
+    GLshort x;
+    GLshort y;
+};
+
+struct glVertexAttrib2sNV_params
+{
+    GLuint index;
+    GLshort x;
+    GLshort y;
+};
+
+struct glVertexAttrib2sv_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib2svARB_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib2svNV_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib3d_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glVertexAttrib3dARB_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glVertexAttrib3dNV_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glVertexAttrib3dv_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttrib3dvARB_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttrib3dvNV_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttrib3f_params
+{
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glVertexAttrib3fARB_params
+{
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glVertexAttrib3fNV_params
+{
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glVertexAttrib3fv_params
+{
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glVertexAttrib3fvARB_params
+{
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glVertexAttrib3fvNV_params
+{
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glVertexAttrib3hNV_params
+{
+    GLuint index;
+    GLhalfNV x;
+    GLhalfNV y;
+    GLhalfNV z;
+};
+
+struct glVertexAttrib3hvNV_params
+{
+    GLuint index;
+    const GLhalfNV *v;
+};
+
+struct glVertexAttrib3s_params
+{
+    GLuint index;
+    GLshort x;
+    GLshort y;
+    GLshort z;
+};
+
+struct glVertexAttrib3sARB_params
+{
+    GLuint index;
+    GLshort x;
+    GLshort y;
+    GLshort z;
+};
+
+struct glVertexAttrib3sNV_params
+{
+    GLuint index;
+    GLshort x;
+    GLshort y;
+    GLshort z;
+};
+
+struct glVertexAttrib3sv_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib3svARB_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib3svNV_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib4Nbv_params
+{
+    GLuint index;
+    const GLbyte *v;
+};
+
+struct glVertexAttrib4NbvARB_params
+{
+    GLuint index;
+    const GLbyte *v;
+};
+
+struct glVertexAttrib4Niv_params
+{
+    GLuint index;
+    const GLint *v;
+};
+
+struct glVertexAttrib4NivARB_params
+{
+    GLuint index;
+    const GLint *v;
+};
+
+struct glVertexAttrib4Nsv_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib4NsvARB_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib4Nub_params
+{
+    GLuint index;
+    GLubyte x;
+    GLubyte y;
+    GLubyte z;
+    GLubyte w;
+};
+
+struct glVertexAttrib4NubARB_params
+{
+    GLuint index;
+    GLubyte x;
+    GLubyte y;
+    GLubyte z;
+    GLubyte w;
+};
+
+struct glVertexAttrib4Nubv_params
+{
+    GLuint index;
+    const GLubyte *v;
+};
+
+struct glVertexAttrib4NubvARB_params
+{
+    GLuint index;
+    const GLubyte *v;
+};
+
+struct glVertexAttrib4Nuiv_params
+{
+    GLuint index;
+    const GLuint *v;
+};
+
+struct glVertexAttrib4NuivARB_params
+{
+    GLuint index;
+    const GLuint *v;
+};
+
+struct glVertexAttrib4Nusv_params
+{
+    GLuint index;
+    const GLushort *v;
+};
+
+struct glVertexAttrib4NusvARB_params
+{
+    GLuint index;
+    const GLushort *v;
+};
+
+struct glVertexAttrib4bv_params
+{
+    GLuint index;
+    const GLbyte *v;
+};
+
+struct glVertexAttrib4bvARB_params
+{
+    GLuint index;
+    const GLbyte *v;
+};
+
+struct glVertexAttrib4d_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glVertexAttrib4dARB_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glVertexAttrib4dNV_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glVertexAttrib4dv_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttrib4dvARB_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttrib4dvNV_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttrib4f_params
+{
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+    GLfloat w;
+};
+
+struct glVertexAttrib4fARB_params
+{
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+    GLfloat w;
+};
+
+struct glVertexAttrib4fNV_params
+{
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+    GLfloat w;
+};
+
+struct glVertexAttrib4fv_params
+{
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glVertexAttrib4fvARB_params
+{
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glVertexAttrib4fvNV_params
+{
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glVertexAttrib4hNV_params
+{
+    GLuint index;
+    GLhalfNV x;
+    GLhalfNV y;
+    GLhalfNV z;
+    GLhalfNV w;
+};
+
+struct glVertexAttrib4hvNV_params
+{
+    GLuint index;
+    const GLhalfNV *v;
+};
+
+struct glVertexAttrib4iv_params
+{
+    GLuint index;
+    const GLint *v;
+};
+
+struct glVertexAttrib4ivARB_params
+{
+    GLuint index;
+    const GLint *v;
+};
+
+struct glVertexAttrib4s_params
+{
+    GLuint index;
+    GLshort x;
+    GLshort y;
+    GLshort z;
+    GLshort w;
+};
+
+struct glVertexAttrib4sARB_params
+{
+    GLuint index;
+    GLshort x;
+    GLshort y;
+    GLshort z;
+    GLshort w;
+};
+
+struct glVertexAttrib4sNV_params
+{
+    GLuint index;
+    GLshort x;
+    GLshort y;
+    GLshort z;
+    GLshort w;
+};
+
+struct glVertexAttrib4sv_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib4svARB_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib4svNV_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttrib4ubNV_params
+{
+    GLuint index;
+    GLubyte x;
+    GLubyte y;
+    GLubyte z;
+    GLubyte w;
+};
+
+struct glVertexAttrib4ubv_params
+{
+    GLuint index;
+    const GLubyte *v;
+};
+
+struct glVertexAttrib4ubvARB_params
+{
+    GLuint index;
+    const GLubyte *v;
+};
+
+struct glVertexAttrib4ubvNV_params
+{
+    GLuint index;
+    const GLubyte *v;
+};
+
+struct glVertexAttrib4uiv_params
+{
+    GLuint index;
+    const GLuint *v;
+};
+
+struct glVertexAttrib4uivARB_params
+{
+    GLuint index;
+    const GLuint *v;
+};
+
+struct glVertexAttrib4usv_params
+{
+    GLuint index;
+    const GLushort *v;
+};
+
+struct glVertexAttrib4usvARB_params
+{
+    GLuint index;
+    const GLushort *v;
+};
+
+struct glVertexAttribArrayObjectATI_params
+{
+    GLuint index;
+    GLint size;
+    GLenum type;
+    GLboolean normalized;
+    GLsizei stride;
+    GLuint buffer;
+    GLuint offset;
+};
+
+struct glVertexAttribBinding_params
+{
+    GLuint attribindex;
+    GLuint bindingindex;
+};
+
+struct glVertexAttribDivisor_params
+{
+    GLuint index;
+    GLuint divisor;
+};
+
+struct glVertexAttribDivisorARB_params
+{
+    GLuint index;
+    GLuint divisor;
+};
+
+struct glVertexAttribFormat_params
+{
+    GLuint attribindex;
+    GLint size;
+    GLenum type;
+    GLboolean normalized;
+    GLuint relativeoffset;
+};
+
+struct glVertexAttribFormatNV_params
+{
+    GLuint index;
+    GLint size;
+    GLenum type;
+    GLboolean normalized;
+    GLsizei stride;
+};
+
+struct glVertexAttribI1i_params
+{
+    GLuint index;
+    GLint x;
+};
+
+struct glVertexAttribI1iEXT_params
+{
+    GLuint index;
+    GLint x;
+};
+
+struct glVertexAttribI1iv_params
+{
+    GLuint index;
+    const GLint *v;
+};
+
+struct glVertexAttribI1ivEXT_params
+{
+    GLuint index;
+    const GLint *v;
+};
+
+struct glVertexAttribI1ui_params
+{
+    GLuint index;
+    GLuint x;
+};
+
+struct glVertexAttribI1uiEXT_params
+{
+    GLuint index;
+    GLuint x;
+};
+
+struct glVertexAttribI1uiv_params
+{
+    GLuint index;
+    const GLuint *v;
+};
+
+struct glVertexAttribI1uivEXT_params
+{
+    GLuint index;
+    const GLuint *v;
+};
+
+struct glVertexAttribI2i_params
+{
+    GLuint index;
+    GLint x;
+    GLint y;
+};
+
+struct glVertexAttribI2iEXT_params
+{
+    GLuint index;
+    GLint x;
+    GLint y;
+};
+
+struct glVertexAttribI2iv_params
+{
+    GLuint index;
+    const GLint *v;
+};
+
+struct glVertexAttribI2ivEXT_params
+{
+    GLuint index;
+    const GLint *v;
+};
+
+struct glVertexAttribI2ui_params
+{
+    GLuint index;
+    GLuint x;
+    GLuint y;
+};
+
+struct glVertexAttribI2uiEXT_params
+{
+    GLuint index;
+    GLuint x;
+    GLuint y;
+};
+
+struct glVertexAttribI2uiv_params
+{
+    GLuint index;
+    const GLuint *v;
+};
+
+struct glVertexAttribI2uivEXT_params
+{
+    GLuint index;
+    const GLuint *v;
+};
+
+struct glVertexAttribI3i_params
+{
+    GLuint index;
+    GLint x;
+    GLint y;
+    GLint z;
+};
+
+struct glVertexAttribI3iEXT_params
+{
+    GLuint index;
+    GLint x;
+    GLint y;
+    GLint z;
+};
+
+struct glVertexAttribI3iv_params
+{
+    GLuint index;
+    const GLint *v;
+};
+
+struct glVertexAttribI3ivEXT_params
+{
+    GLuint index;
+    const GLint *v;
+};
+
+struct glVertexAttribI3ui_params
+{
+    GLuint index;
+    GLuint x;
+    GLuint y;
+    GLuint z;
+};
+
+struct glVertexAttribI3uiEXT_params
+{
+    GLuint index;
+    GLuint x;
+    GLuint y;
+    GLuint z;
+};
+
+struct glVertexAttribI3uiv_params
+{
+    GLuint index;
+    const GLuint *v;
+};
+
+struct glVertexAttribI3uivEXT_params
+{
+    GLuint index;
+    const GLuint *v;
+};
+
+struct glVertexAttribI4bv_params
+{
+    GLuint index;
+    const GLbyte *v;
+};
+
+struct glVertexAttribI4bvEXT_params
+{
+    GLuint index;
+    const GLbyte *v;
+};
+
+struct glVertexAttribI4i_params
+{
+    GLuint index;
+    GLint x;
+    GLint y;
+    GLint z;
+    GLint w;
+};
+
+struct glVertexAttribI4iEXT_params
+{
+    GLuint index;
+    GLint x;
+    GLint y;
+    GLint z;
+    GLint w;
+};
+
+struct glVertexAttribI4iv_params
+{
+    GLuint index;
+    const GLint *v;
+};
+
+struct glVertexAttribI4ivEXT_params
+{
+    GLuint index;
+    const GLint *v;
+};
+
+struct glVertexAttribI4sv_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttribI4svEXT_params
+{
+    GLuint index;
+    const GLshort *v;
+};
+
+struct glVertexAttribI4ubv_params
+{
+    GLuint index;
+    const GLubyte *v;
+};
+
+struct glVertexAttribI4ubvEXT_params
+{
+    GLuint index;
+    const GLubyte *v;
+};
+
+struct glVertexAttribI4ui_params
+{
+    GLuint index;
+    GLuint x;
+    GLuint y;
+    GLuint z;
+    GLuint w;
+};
+
+struct glVertexAttribI4uiEXT_params
+{
+    GLuint index;
+    GLuint x;
+    GLuint y;
+    GLuint z;
+    GLuint w;
+};
+
+struct glVertexAttribI4uiv_params
+{
+    GLuint index;
+    const GLuint *v;
+};
+
+struct glVertexAttribI4uivEXT_params
+{
+    GLuint index;
+    const GLuint *v;
+};
+
+struct glVertexAttribI4usv_params
+{
+    GLuint index;
+    const GLushort *v;
+};
+
+struct glVertexAttribI4usvEXT_params
+{
+    GLuint index;
+    const GLushort *v;
+};
+
+struct glVertexAttribIFormat_params
+{
+    GLuint attribindex;
+    GLint size;
+    GLenum type;
+    GLuint relativeoffset;
+};
+
+struct glVertexAttribIFormatNV_params
+{
+    GLuint index;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+};
+
+struct glVertexAttribIPointer_params
+{
+    GLuint index;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glVertexAttribIPointerEXT_params
+{
+    GLuint index;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glVertexAttribL1d_params
+{
+    GLuint index;
+    GLdouble x;
+};
+
+struct glVertexAttribL1dEXT_params
+{
+    GLuint index;
+    GLdouble x;
+};
+
+struct glVertexAttribL1dv_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttribL1dvEXT_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttribL1i64NV_params
+{
+    GLuint index;
+    GLint64EXT x;
+};
+
+struct glVertexAttribL1i64vNV_params
+{
+    GLuint index;
+    const GLint64EXT *v;
+};
+
+struct glVertexAttribL1ui64ARB_params
+{
+    GLuint index;
+    GLuint64EXT x;
+};
+
+struct glVertexAttribL1ui64NV_params
+{
+    GLuint index;
+    GLuint64EXT x;
+};
+
+struct glVertexAttribL1ui64vARB_params
+{
+    GLuint index;
+    const GLuint64EXT *v;
+};
+
+struct glVertexAttribL1ui64vNV_params
+{
+    GLuint index;
+    const GLuint64EXT *v;
+};
+
+struct glVertexAttribL2d_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+};
+
+struct glVertexAttribL2dEXT_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+};
+
+struct glVertexAttribL2dv_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttribL2dvEXT_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttribL2i64NV_params
+{
+    GLuint index;
+    GLint64EXT x;
+    GLint64EXT y;
+};
+
+struct glVertexAttribL2i64vNV_params
+{
+    GLuint index;
+    const GLint64EXT *v;
+};
+
+struct glVertexAttribL2ui64NV_params
+{
+    GLuint index;
+    GLuint64EXT x;
+    GLuint64EXT y;
+};
+
+struct glVertexAttribL2ui64vNV_params
+{
+    GLuint index;
+    const GLuint64EXT *v;
+};
+
+struct glVertexAttribL3d_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glVertexAttribL3dEXT_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glVertexAttribL3dv_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttribL3dvEXT_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttribL3i64NV_params
+{
+    GLuint index;
+    GLint64EXT x;
+    GLint64EXT y;
+    GLint64EXT z;
+};
+
+struct glVertexAttribL3i64vNV_params
+{
+    GLuint index;
+    const GLint64EXT *v;
+};
+
+struct glVertexAttribL3ui64NV_params
+{
+    GLuint index;
+    GLuint64EXT x;
+    GLuint64EXT y;
+    GLuint64EXT z;
+};
+
+struct glVertexAttribL3ui64vNV_params
+{
+    GLuint index;
+    const GLuint64EXT *v;
+};
+
+struct glVertexAttribL4d_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glVertexAttribL4dEXT_params
+{
+    GLuint index;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glVertexAttribL4dv_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttribL4dvEXT_params
+{
+    GLuint index;
+    const GLdouble *v;
+};
+
+struct glVertexAttribL4i64NV_params
+{
+    GLuint index;
+    GLint64EXT x;
+    GLint64EXT y;
+    GLint64EXT z;
+    GLint64EXT w;
+};
+
+struct glVertexAttribL4i64vNV_params
+{
+    GLuint index;
+    const GLint64EXT *v;
+};
+
+struct glVertexAttribL4ui64NV_params
+{
+    GLuint index;
+    GLuint64EXT x;
+    GLuint64EXT y;
+    GLuint64EXT z;
+    GLuint64EXT w;
+};
+
+struct glVertexAttribL4ui64vNV_params
+{
+    GLuint index;
+    const GLuint64EXT *v;
+};
+
+struct glVertexAttribLFormat_params
+{
+    GLuint attribindex;
+    GLint size;
+    GLenum type;
+    GLuint relativeoffset;
+};
+
+struct glVertexAttribLFormatNV_params
+{
+    GLuint index;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+};
+
+struct glVertexAttribLPointer_params
+{
+    GLuint index;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glVertexAttribLPointerEXT_params
+{
+    GLuint index;
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glVertexAttribP1ui_params
+{
+    GLuint index;
+    GLenum type;
+    GLboolean normalized;
+    GLuint value;
+};
+
+struct glVertexAttribP1uiv_params
+{
+    GLuint index;
+    GLenum type;
+    GLboolean normalized;
+    const GLuint *value;
+};
+
+struct glVertexAttribP2ui_params
+{
+    GLuint index;
+    GLenum type;
+    GLboolean normalized;
+    GLuint value;
+};
+
+struct glVertexAttribP2uiv_params
+{
+    GLuint index;
+    GLenum type;
+    GLboolean normalized;
+    const GLuint *value;
+};
+
+struct glVertexAttribP3ui_params
+{
+    GLuint index;
+    GLenum type;
+    GLboolean normalized;
+    GLuint value;
+};
+
+struct glVertexAttribP3uiv_params
+{
+    GLuint index;
+    GLenum type;
+    GLboolean normalized;
+    const GLuint *value;
+};
+
+struct glVertexAttribP4ui_params
+{
+    GLuint index;
+    GLenum type;
+    GLboolean normalized;
+    GLuint value;
+};
+
+struct glVertexAttribP4uiv_params
+{
+    GLuint index;
+    GLenum type;
+    GLboolean normalized;
+    const GLuint *value;
+};
+
+struct glVertexAttribParameteriAMD_params
+{
+    GLuint index;
+    GLenum pname;
+    GLint param;
+};
+
+struct glVertexAttribPointer_params
+{
+    GLuint index;
+    GLint size;
+    GLenum type;
+    GLboolean normalized;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glVertexAttribPointerARB_params
+{
+    GLuint index;
+    GLint size;
+    GLenum type;
+    GLboolean normalized;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glVertexAttribPointerNV_params
+{
+    GLuint index;
+    GLint fsize;
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glVertexAttribs1dvNV_params
+{
+    GLuint index;
+    GLsizei count;
+    const GLdouble *v;
+};
+
+struct glVertexAttribs1fvNV_params
+{
+    GLuint index;
+    GLsizei count;
+    const GLfloat *v;
+};
+
+struct glVertexAttribs1hvNV_params
+{
+    GLuint index;
+    GLsizei n;
+    const GLhalfNV *v;
+};
+
+struct glVertexAttribs1svNV_params
+{
+    GLuint index;
+    GLsizei count;
+    const GLshort *v;
+};
+
+struct glVertexAttribs2dvNV_params
+{
+    GLuint index;
+    GLsizei count;
+    const GLdouble *v;
+};
+
+struct glVertexAttribs2fvNV_params
+{
+    GLuint index;
+    GLsizei count;
+    const GLfloat *v;
+};
+
+struct glVertexAttribs2hvNV_params
+{
+    GLuint index;
+    GLsizei n;
+    const GLhalfNV *v;
+};
+
+struct glVertexAttribs2svNV_params
+{
+    GLuint index;
+    GLsizei count;
+    const GLshort *v;
+};
+
+struct glVertexAttribs3dvNV_params
+{
+    GLuint index;
+    GLsizei count;
+    const GLdouble *v;
+};
+
+struct glVertexAttribs3fvNV_params
+{
+    GLuint index;
+    GLsizei count;
+    const GLfloat *v;
+};
+
+struct glVertexAttribs3hvNV_params
+{
+    GLuint index;
+    GLsizei n;
+    const GLhalfNV *v;
+};
+
+struct glVertexAttribs3svNV_params
+{
+    GLuint index;
+    GLsizei count;
+    const GLshort *v;
+};
+
+struct glVertexAttribs4dvNV_params
+{
+    GLuint index;
+    GLsizei count;
+    const GLdouble *v;
+};
+
+struct glVertexAttribs4fvNV_params
+{
+    GLuint index;
+    GLsizei count;
+    const GLfloat *v;
+};
+
+struct glVertexAttribs4hvNV_params
+{
+    GLuint index;
+    GLsizei n;
+    const GLhalfNV *v;
+};
+
+struct glVertexAttribs4svNV_params
+{
+    GLuint index;
+    GLsizei count;
+    const GLshort *v;
+};
+
+struct glVertexAttribs4ubvNV_params
+{
+    GLuint index;
+    GLsizei count;
+    const GLubyte *v;
+};
+
+struct glVertexBindingDivisor_params
+{
+    GLuint bindingindex;
+    GLuint divisor;
+};
+
+struct glVertexBlendARB_params
+{
+    GLint count;
+};
+
+struct glVertexBlendEnvfATI_params
+{
+    GLenum pname;
+    GLfloat param;
+};
+
+struct glVertexBlendEnviATI_params
+{
+    GLenum pname;
+    GLint param;
+};
+
+struct glVertexFormatNV_params
+{
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+};
+
+struct glVertexP2ui_params
+{
+    GLenum type;
+    GLuint value;
+};
+
+struct glVertexP2uiv_params
+{
+    GLenum type;
+    const GLuint *value;
+};
+
+struct glVertexP3ui_params
+{
+    GLenum type;
+    GLuint value;
+};
+
+struct glVertexP3uiv_params
+{
+    GLenum type;
+    const GLuint *value;
+};
+
+struct glVertexP4ui_params
+{
+    GLenum type;
+    GLuint value;
+};
+
+struct glVertexP4uiv_params
+{
+    GLenum type;
+    const GLuint *value;
+};
+
+struct glVertexPointerEXT_params
+{
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    GLsizei count;
+    const void *pointer;
+};
+
+struct glVertexPointerListIBM_params
+{
+    GLint size;
+    GLenum type;
+    GLint stride;
+    const void **pointer;
+    GLint ptrstride;
+};
+
+struct glVertexPointervINTEL_params
+{
+    GLint size;
+    GLenum type;
+    const void **pointer;
+};
+
+struct glVertexStream1dATI_params
+{
+    GLenum stream;
+    GLdouble x;
+};
+
+struct glVertexStream1dvATI_params
+{
+    GLenum stream;
+    const GLdouble *coords;
+};
+
+struct glVertexStream1fATI_params
+{
+    GLenum stream;
+    GLfloat x;
+};
+
+struct glVertexStream1fvATI_params
+{
+    GLenum stream;
+    const GLfloat *coords;
+};
+
+struct glVertexStream1iATI_params
+{
+    GLenum stream;
+    GLint x;
+};
+
+struct glVertexStream1ivATI_params
+{
+    GLenum stream;
+    const GLint *coords;
+};
+
+struct glVertexStream1sATI_params
+{
+    GLenum stream;
+    GLshort x;
+};
+
+struct glVertexStream1svATI_params
+{
+    GLenum stream;
+    const GLshort *coords;
+};
+
+struct glVertexStream2dATI_params
+{
+    GLenum stream;
+    GLdouble x;
+    GLdouble y;
+};
+
+struct glVertexStream2dvATI_params
+{
+    GLenum stream;
+    const GLdouble *coords;
+};
+
+struct glVertexStream2fATI_params
+{
+    GLenum stream;
+    GLfloat x;
+    GLfloat y;
+};
+
+struct glVertexStream2fvATI_params
+{
+    GLenum stream;
+    const GLfloat *coords;
+};
+
+struct glVertexStream2iATI_params
+{
+    GLenum stream;
+    GLint x;
+    GLint y;
+};
+
+struct glVertexStream2ivATI_params
+{
+    GLenum stream;
+    const GLint *coords;
+};
+
+struct glVertexStream2sATI_params
+{
+    GLenum stream;
+    GLshort x;
+    GLshort y;
+};
+
+struct glVertexStream2svATI_params
+{
+    GLenum stream;
+    const GLshort *coords;
+};
+
+struct glVertexStream3dATI_params
+{
+    GLenum stream;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glVertexStream3dvATI_params
+{
+    GLenum stream;
+    const GLdouble *coords;
+};
+
+struct glVertexStream3fATI_params
+{
+    GLenum stream;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glVertexStream3fvATI_params
+{
+    GLenum stream;
+    const GLfloat *coords;
+};
+
+struct glVertexStream3iATI_params
+{
+    GLenum stream;
+    GLint x;
+    GLint y;
+    GLint z;
+};
+
+struct glVertexStream3ivATI_params
+{
+    GLenum stream;
+    const GLint *coords;
+};
+
+struct glVertexStream3sATI_params
+{
+    GLenum stream;
+    GLshort x;
+    GLshort y;
+    GLshort z;
+};
+
+struct glVertexStream3svATI_params
+{
+    GLenum stream;
+    const GLshort *coords;
+};
+
+struct glVertexStream4dATI_params
+{
+    GLenum stream;
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glVertexStream4dvATI_params
+{
+    GLenum stream;
+    const GLdouble *coords;
+};
+
+struct glVertexStream4fATI_params
+{
+    GLenum stream;
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+    GLfloat w;
+};
+
+struct glVertexStream4fvATI_params
+{
+    GLenum stream;
+    const GLfloat *coords;
+};
+
+struct glVertexStream4iATI_params
+{
+    GLenum stream;
+    GLint x;
+    GLint y;
+    GLint z;
+    GLint w;
+};
+
+struct glVertexStream4ivATI_params
+{
+    GLenum stream;
+    const GLint *coords;
+};
+
+struct glVertexStream4sATI_params
+{
+    GLenum stream;
+    GLshort x;
+    GLshort y;
+    GLshort z;
+    GLshort w;
+};
+
+struct glVertexStream4svATI_params
+{
+    GLenum stream;
+    const GLshort *coords;
+};
+
+struct glVertexWeightPointerEXT_params
+{
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glVertexWeightfEXT_params
+{
+    GLfloat weight;
+};
+
+struct glVertexWeightfvEXT_params
+{
+    const GLfloat *weight;
+};
+
+struct glVertexWeighthNV_params
+{
+    GLhalfNV weight;
+};
+
+struct glVertexWeighthvNV_params
+{
+    const GLhalfNV *weight;
+};
+
+struct glVideoCaptureNV_params
+{
+    GLuint video_capture_slot;
+    GLuint *sequence_num;
+    GLuint64EXT *capture_time;
+    GLenum ret;
+};
+
+struct glVideoCaptureStreamParameterdvNV_params
+{
+    GLuint video_capture_slot;
+    GLuint stream;
+    GLenum pname;
+    const GLdouble *params;
+};
+
+struct glVideoCaptureStreamParameterfvNV_params
+{
+    GLuint video_capture_slot;
+    GLuint stream;
+    GLenum pname;
+    const GLfloat *params;
+};
+
+struct glVideoCaptureStreamParameterivNV_params
+{
+    GLuint video_capture_slot;
+    GLuint stream;
+    GLenum pname;
+    const GLint *params;
+};
+
+struct glViewportArrayv_params
+{
+    GLuint first;
+    GLsizei count;
+    const GLfloat *v;
+};
+
+struct glViewportIndexedf_params
+{
+    GLuint index;
+    GLfloat x;
+    GLfloat y;
+    GLfloat w;
+    GLfloat h;
+};
+
+struct glViewportIndexedfv_params
+{
+    GLuint index;
+    const GLfloat *v;
+};
+
+struct glViewportPositionWScaleNV_params
+{
+    GLuint index;
+    GLfloat xcoeff;
+    GLfloat ycoeff;
+};
+
+struct glViewportSwizzleNV_params
+{
+    GLuint index;
+    GLenum swizzlex;
+    GLenum swizzley;
+    GLenum swizzlez;
+    GLenum swizzlew;
+};
+
+struct glWaitSemaphoreEXT_params
+{
+    GLuint semaphore;
+    GLuint numBufferBarriers;
+    const GLuint *buffers;
+    GLuint numTextureBarriers;
+    const GLuint *textures;
+    const GLenum *srcLayouts;
+};
+
+struct glWaitSemaphoreui64NVX_params
+{
+    GLuint waitGpu;
+    GLsizei fenceObjectCount;
+    const GLuint *semaphoreArray;
+    const GLuint64 *fenceValueArray;
+};
+
+struct glWaitSync_params
+{
+    GLsync sync;
+    GLbitfield flags;
+    GLuint64 timeout;
+};
+
+struct glWaitVkSemaphoreNV_params
+{
+    GLuint64 vkSemaphore;
+};
+
+struct glWeightPathsNV_params
+{
+    GLuint resultPath;
+    GLsizei numPaths;
+    const GLuint *paths;
+    const GLfloat *weights;
+};
+
+struct glWeightPointerARB_params
+{
+    GLint size;
+    GLenum type;
+    GLsizei stride;
+    const void *pointer;
+};
+
+struct glWeightbvARB_params
+{
+    GLint size;
+    const GLbyte *weights;
+};
+
+struct glWeightdvARB_params
+{
+    GLint size;
+    const GLdouble *weights;
+};
+
+struct glWeightfvARB_params
+{
+    GLint size;
+    const GLfloat *weights;
+};
+
+struct glWeightivARB_params
+{
+    GLint size;
+    const GLint *weights;
+};
+
+struct glWeightsvARB_params
+{
+    GLint size;
+    const GLshort *weights;
+};
+
+struct glWeightubvARB_params
+{
+    GLint size;
+    const GLubyte *weights;
+};
+
+struct glWeightuivARB_params
+{
+    GLint size;
+    const GLuint *weights;
+};
+
+struct glWeightusvARB_params
+{
+    GLint size;
+    const GLushort *weights;
+};
+
+struct glWindowPos2d_params
+{
+    GLdouble x;
+    GLdouble y;
+};
+
+struct glWindowPos2dARB_params
+{
+    GLdouble x;
+    GLdouble y;
+};
+
+struct glWindowPos2dMESA_params
+{
+    GLdouble x;
+    GLdouble y;
+};
+
+struct glWindowPos2dv_params
+{
+    const GLdouble *v;
+};
+
+struct glWindowPos2dvARB_params
+{
+    const GLdouble *v;
+};
+
+struct glWindowPos2dvMESA_params
+{
+    const GLdouble *v;
+};
+
+struct glWindowPos2f_params
+{
+    GLfloat x;
+    GLfloat y;
+};
+
+struct glWindowPos2fARB_params
+{
+    GLfloat x;
+    GLfloat y;
+};
+
+struct glWindowPos2fMESA_params
+{
+    GLfloat x;
+    GLfloat y;
+};
+
+struct glWindowPos2fv_params
+{
+    const GLfloat *v;
+};
+
+struct glWindowPos2fvARB_params
+{
+    const GLfloat *v;
+};
+
+struct glWindowPos2fvMESA_params
+{
+    const GLfloat *v;
+};
+
+struct glWindowPos2i_params
+{
+    GLint x;
+    GLint y;
+};
+
+struct glWindowPos2iARB_params
+{
+    GLint x;
+    GLint y;
+};
+
+struct glWindowPos2iMESA_params
+{
+    GLint x;
+    GLint y;
+};
+
+struct glWindowPos2iv_params
+{
+    const GLint *v;
+};
+
+struct glWindowPos2ivARB_params
+{
+    const GLint *v;
+};
+
+struct glWindowPos2ivMESA_params
+{
+    const GLint *v;
+};
+
+struct glWindowPos2s_params
+{
+    GLshort x;
+    GLshort y;
+};
+
+struct glWindowPos2sARB_params
+{
+    GLshort x;
+    GLshort y;
+};
+
+struct glWindowPos2sMESA_params
+{
+    GLshort x;
+    GLshort y;
+};
+
+struct glWindowPos2sv_params
+{
+    const GLshort *v;
+};
+
+struct glWindowPos2svARB_params
+{
+    const GLshort *v;
+};
+
+struct glWindowPos2svMESA_params
+{
+    const GLshort *v;
+};
+
+struct glWindowPos3d_params
+{
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glWindowPos3dARB_params
+{
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glWindowPos3dMESA_params
+{
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+};
+
+struct glWindowPos3dv_params
+{
+    const GLdouble *v;
+};
+
+struct glWindowPos3dvARB_params
+{
+    const GLdouble *v;
+};
+
+struct glWindowPos3dvMESA_params
+{
+    const GLdouble *v;
+};
+
+struct glWindowPos3f_params
+{
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glWindowPos3fARB_params
+{
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glWindowPos3fMESA_params
+{
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+};
+
+struct glWindowPos3fv_params
+{
+    const GLfloat *v;
+};
+
+struct glWindowPos3fvARB_params
+{
+    const GLfloat *v;
+};
+
+struct glWindowPos3fvMESA_params
+{
+    const GLfloat *v;
+};
+
+struct glWindowPos3i_params
+{
+    GLint x;
+    GLint y;
+    GLint z;
+};
+
+struct glWindowPos3iARB_params
+{
+    GLint x;
+    GLint y;
+    GLint z;
+};
+
+struct glWindowPos3iMESA_params
+{
+    GLint x;
+    GLint y;
+    GLint z;
+};
+
+struct glWindowPos3iv_params
+{
+    const GLint *v;
+};
+
+struct glWindowPos3ivARB_params
+{
+    const GLint *v;
+};
+
+struct glWindowPos3ivMESA_params
+{
+    const GLint *v;
+};
+
+struct glWindowPos3s_params
+{
+    GLshort x;
+    GLshort y;
+    GLshort z;
+};
+
+struct glWindowPos3sARB_params
+{
+    GLshort x;
+    GLshort y;
+    GLshort z;
+};
+
+struct glWindowPos3sMESA_params
+{
+    GLshort x;
+    GLshort y;
+    GLshort z;
+};
+
+struct glWindowPos3sv_params
+{
+    const GLshort *v;
+};
+
+struct glWindowPos3svARB_params
+{
+    const GLshort *v;
+};
+
+struct glWindowPos3svMESA_params
+{
+    const GLshort *v;
+};
+
+struct glWindowPos4dMESA_params
+{
+    GLdouble x;
+    GLdouble y;
+    GLdouble z;
+    GLdouble w;
+};
+
+struct glWindowPos4dvMESA_params
+{
+    const GLdouble *v;
+};
+
+struct glWindowPos4fMESA_params
+{
+    GLfloat x;
+    GLfloat y;
+    GLfloat z;
+    GLfloat w;
+};
+
+struct glWindowPos4fvMESA_params
+{
+    const GLfloat *v;
+};
+
+struct glWindowPos4iMESA_params
+{
+    GLint x;
+    GLint y;
+    GLint z;
+    GLint w;
+};
+
+struct glWindowPos4ivMESA_params
+{
+    const GLint *v;
+};
+
+struct glWindowPos4sMESA_params
+{
+    GLshort x;
+    GLshort y;
+    GLshort z;
+    GLshort w;
+};
+
+struct glWindowPos4svMESA_params
+{
+    const GLshort *v;
+};
+
+struct glWindowRectanglesEXT_params
+{
+    GLenum mode;
+    GLsizei count;
+    const GLint *box;
+};
+
+struct glWriteMaskEXT_params
+{
+    GLuint res;
+    GLuint in;
+    GLenum outX;
+    GLenum outY;
+    GLenum outZ;
+    GLenum outW;
+};
+
+struct wglAllocateMemoryNV_params
+{
+    GLsizei size;
+    GLfloat readfreq;
+    GLfloat writefreq;
+    GLfloat priority;
+    void *ret;
+};
+
+struct wglBindTexImageARB_params
+{
+    HPBUFFERARB hPbuffer;
+    int iBuffer;
+    BOOL ret;
+};
+
+struct wglChoosePixelFormatARB_params
+{
+    HDC hdc;
+    const int *piAttribIList;
+    const FLOAT *pfAttribFList;
+    UINT nMaxFormats;
+    int *piFormats;
+    UINT *nNumFormats;
+    BOOL ret;
+};
+
+struct wglCreateContextAttribsARB_params
+{
+    HDC hDC;
+    HGLRC hShareContext;
+    const int *attribList;
+    HGLRC ret;
+};
+
+struct wglCreatePbufferARB_params
+{
+    HDC hDC;
+    int iPixelFormat;
+    int iWidth;
+    int iHeight;
+    const int *piAttribList;
+    HPBUFFERARB ret;
+};
+
+struct wglDestroyPbufferARB_params
+{
+    HPBUFFERARB hPbuffer;
+    BOOL ret;
+};
+
+struct wglFreeMemoryNV_params
+{
+    void *pointer;
+};
+
+struct wglGetCurrentReadDCARB_params
+{
+    HDC ret;
+};
+
+struct wglGetExtensionsStringARB_params
+{
+    HDC hdc;
+    const char *ret;
+};
+
+struct wglGetExtensionsStringEXT_params
+{
+    const char *ret;
+};
+
+struct wglGetPbufferDCARB_params
+{
+    HPBUFFERARB hPbuffer;
+    HDC ret;
+};
+
+struct wglGetPixelFormatAttribfvARB_params
+{
+    HDC hdc;
+    int iPixelFormat;
+    int iLayerPlane;
+    UINT nAttributes;
+    const int *piAttributes;
+    FLOAT *pfValues;
+    BOOL ret;
+};
+
+struct wglGetPixelFormatAttribivARB_params
+{
+    HDC hdc;
+    int iPixelFormat;
+    int iLayerPlane;
+    UINT nAttributes;
+    const int *piAttributes;
+    int *piValues;
+    BOOL ret;
+};
+
+struct wglGetSwapIntervalEXT_params
+{
+    int ret;
+};
+
+struct wglMakeContextCurrentARB_params
+{
+    HDC hDrawDC;
+    HDC hReadDC;
+    HGLRC hglrc;
+    BOOL ret;
+};
+
+struct wglQueryCurrentRendererIntegerWINE_params
+{
+    GLenum attribute;
+    GLuint *value;
+    BOOL ret;
+};
+
+struct wglQueryCurrentRendererStringWINE_params
+{
+    GLenum attribute;
+    const GLchar *ret;
+};
+
+struct wglQueryPbufferARB_params
+{
+    HPBUFFERARB hPbuffer;
+    int iAttribute;
+    int *piValue;
+    BOOL ret;
+};
+
+struct wglQueryRendererIntegerWINE_params
+{
+    HDC dc;
+    GLint renderer;
+    GLenum attribute;
+    GLuint *value;
+    BOOL ret;
+};
+
+struct wglQueryRendererStringWINE_params
+{
+    HDC dc;
+    GLint renderer;
+    GLenum attribute;
+    const GLchar *ret;
+};
+
+struct wglReleasePbufferDCARB_params
+{
+    HPBUFFERARB hPbuffer;
+    HDC hDC;
+    int ret;
+};
+
+struct wglReleaseTexImageARB_params
+{
+    HPBUFFERARB hPbuffer;
+    int iBuffer;
+    BOOL ret;
+};
+
+struct wglSetPbufferAttribARB_params
+{
+    HPBUFFERARB hPbuffer;
+    const int *piAttribList;
+    BOOL ret;
+};
+
+struct wglSetPixelFormatWINE_params
+{
+    HDC hdc;
+    int format;
+    BOOL ret;
+};
+
+struct wglSwapIntervalEXT_params
+{
+    int interval;
+    BOOL ret;
+};
+
 enum unix_funcs
 {
     unix_glAccum,
@@ -2491,6 +22560,2700 @@ enum unix_funcs
     unix_glVertex4sv,
     unix_glVertexPointer,
     unix_glViewport,
+    unix_glAccumxOES,
+    unix_glAcquireKeyedMutexWin32EXT,
+    unix_glActiveProgramEXT,
+    unix_glActiveShaderProgram,
+    unix_glActiveStencilFaceEXT,
+    unix_glActiveTexture,
+    unix_glActiveTextureARB,
+    unix_glActiveVaryingNV,
+    unix_glAlphaFragmentOp1ATI,
+    unix_glAlphaFragmentOp2ATI,
+    unix_glAlphaFragmentOp3ATI,
+    unix_glAlphaFuncxOES,
+    unix_glAlphaToCoverageDitherControlNV,
+    unix_glApplyFramebufferAttachmentCMAAINTEL,
+    unix_glApplyTextureEXT,
+    unix_glAreProgramsResidentNV,
+    unix_glAreTexturesResidentEXT,
+    unix_glArrayElementEXT,
+    unix_glArrayObjectATI,
+    unix_glAsyncCopyBufferSubDataNVX,
+    unix_glAsyncCopyImageSubDataNVX,
+    unix_glAsyncMarkerSGIX,
+    unix_glAttachObjectARB,
+    unix_glAttachShader,
+    unix_glBeginConditionalRender,
+    unix_glBeginConditionalRenderNV,
+    unix_glBeginConditionalRenderNVX,
+    unix_glBeginFragmentShaderATI,
+    unix_glBeginOcclusionQueryNV,
+    unix_glBeginPerfMonitorAMD,
+    unix_glBeginPerfQueryINTEL,
+    unix_glBeginQuery,
+    unix_glBeginQueryARB,
+    unix_glBeginQueryIndexed,
+    unix_glBeginTransformFeedback,
+    unix_glBeginTransformFeedbackEXT,
+    unix_glBeginTransformFeedbackNV,
+    unix_glBeginVertexShaderEXT,
+    unix_glBeginVideoCaptureNV,
+    unix_glBindAttribLocation,
+    unix_glBindAttribLocationARB,
+    unix_glBindBuffer,
+    unix_glBindBufferARB,
+    unix_glBindBufferBase,
+    unix_glBindBufferBaseEXT,
+    unix_glBindBufferBaseNV,
+    unix_glBindBufferOffsetEXT,
+    unix_glBindBufferOffsetNV,
+    unix_glBindBufferRange,
+    unix_glBindBufferRangeEXT,
+    unix_glBindBufferRangeNV,
+    unix_glBindBuffersBase,
+    unix_glBindBuffersRange,
+    unix_glBindFragDataLocation,
+    unix_glBindFragDataLocationEXT,
+    unix_glBindFragDataLocationIndexed,
+    unix_glBindFragmentShaderATI,
+    unix_glBindFramebuffer,
+    unix_glBindFramebufferEXT,
+    unix_glBindImageTexture,
+    unix_glBindImageTextureEXT,
+    unix_glBindImageTextures,
+    unix_glBindLightParameterEXT,
+    unix_glBindMaterialParameterEXT,
+    unix_glBindMultiTextureEXT,
+    unix_glBindParameterEXT,
+    unix_glBindProgramARB,
+    unix_glBindProgramNV,
+    unix_glBindProgramPipeline,
+    unix_glBindRenderbuffer,
+    unix_glBindRenderbufferEXT,
+    unix_glBindSampler,
+    unix_glBindSamplers,
+    unix_glBindShadingRateImageNV,
+    unix_glBindTexGenParameterEXT,
+    unix_glBindTextureEXT,
+    unix_glBindTextureUnit,
+    unix_glBindTextureUnitParameterEXT,
+    unix_glBindTextures,
+    unix_glBindTransformFeedback,
+    unix_glBindTransformFeedbackNV,
+    unix_glBindVertexArray,
+    unix_glBindVertexArrayAPPLE,
+    unix_glBindVertexBuffer,
+    unix_glBindVertexBuffers,
+    unix_glBindVertexShaderEXT,
+    unix_glBindVideoCaptureStreamBufferNV,
+    unix_glBindVideoCaptureStreamTextureNV,
+    unix_glBinormal3bEXT,
+    unix_glBinormal3bvEXT,
+    unix_glBinormal3dEXT,
+    unix_glBinormal3dvEXT,
+    unix_glBinormal3fEXT,
+    unix_glBinormal3fvEXT,
+    unix_glBinormal3iEXT,
+    unix_glBinormal3ivEXT,
+    unix_glBinormal3sEXT,
+    unix_glBinormal3svEXT,
+    unix_glBinormalPointerEXT,
+    unix_glBitmapxOES,
+    unix_glBlendBarrierKHR,
+    unix_glBlendBarrierNV,
+    unix_glBlendColor,
+    unix_glBlendColorEXT,
+    unix_glBlendColorxOES,
+    unix_glBlendEquation,
+    unix_glBlendEquationEXT,
+    unix_glBlendEquationIndexedAMD,
+    unix_glBlendEquationSeparate,
+    unix_glBlendEquationSeparateEXT,
+    unix_glBlendEquationSeparateIndexedAMD,
+    unix_glBlendEquationSeparatei,
+    unix_glBlendEquationSeparateiARB,
+    unix_glBlendEquationi,
+    unix_glBlendEquationiARB,
+    unix_glBlendFuncIndexedAMD,
+    unix_glBlendFuncSeparate,
+    unix_glBlendFuncSeparateEXT,
+    unix_glBlendFuncSeparateINGR,
+    unix_glBlendFuncSeparateIndexedAMD,
+    unix_glBlendFuncSeparatei,
+    unix_glBlendFuncSeparateiARB,
+    unix_glBlendFunci,
+    unix_glBlendFunciARB,
+    unix_glBlendParameteriNV,
+    unix_glBlitFramebuffer,
+    unix_glBlitFramebufferEXT,
+    unix_glBlitNamedFramebuffer,
+    unix_glBufferAddressRangeNV,
+    unix_glBufferAttachMemoryNV,
+    unix_glBufferData,
+    unix_glBufferDataARB,
+    unix_glBufferPageCommitmentARB,
+    unix_glBufferParameteriAPPLE,
+    unix_glBufferRegionEnabled,
+    unix_glBufferStorage,
+    unix_glBufferStorageExternalEXT,
+    unix_glBufferStorageMemEXT,
+    unix_glBufferSubData,
+    unix_glBufferSubDataARB,
+    unix_glCallCommandListNV,
+    unix_glCheckFramebufferStatus,
+    unix_glCheckFramebufferStatusEXT,
+    unix_glCheckNamedFramebufferStatus,
+    unix_glCheckNamedFramebufferStatusEXT,
+    unix_glClampColor,
+    unix_glClampColorARB,
+    unix_glClearAccumxOES,
+    unix_glClearBufferData,
+    unix_glClearBufferSubData,
+    unix_glClearBufferfi,
+    unix_glClearBufferfv,
+    unix_glClearBufferiv,
+    unix_glClearBufferuiv,
+    unix_glClearColorIiEXT,
+    unix_glClearColorIuiEXT,
+    unix_glClearColorxOES,
+    unix_glClearDepthdNV,
+    unix_glClearDepthf,
+    unix_glClearDepthfOES,
+    unix_glClearDepthxOES,
+    unix_glClearNamedBufferData,
+    unix_glClearNamedBufferDataEXT,
+    unix_glClearNamedBufferSubData,
+    unix_glClearNamedBufferSubDataEXT,
+    unix_glClearNamedFramebufferfi,
+    unix_glClearNamedFramebufferfv,
+    unix_glClearNamedFramebufferiv,
+    unix_glClearNamedFramebufferuiv,
+    unix_glClearTexImage,
+    unix_glClearTexSubImage,
+    unix_glClientActiveTexture,
+    unix_glClientActiveTextureARB,
+    unix_glClientActiveVertexStreamATI,
+    unix_glClientAttribDefaultEXT,
+    unix_glClientWaitSemaphoreui64NVX,
+    unix_glClientWaitSync,
+    unix_glClipControl,
+    unix_glClipPlanefOES,
+    unix_glClipPlanexOES,
+    unix_glColor3fVertex3fSUN,
+    unix_glColor3fVertex3fvSUN,
+    unix_glColor3hNV,
+    unix_glColor3hvNV,
+    unix_glColor3xOES,
+    unix_glColor3xvOES,
+    unix_glColor4fNormal3fVertex3fSUN,
+    unix_glColor4fNormal3fVertex3fvSUN,
+    unix_glColor4hNV,
+    unix_glColor4hvNV,
+    unix_glColor4ubVertex2fSUN,
+    unix_glColor4ubVertex2fvSUN,
+    unix_glColor4ubVertex3fSUN,
+    unix_glColor4ubVertex3fvSUN,
+    unix_glColor4xOES,
+    unix_glColor4xvOES,
+    unix_glColorFormatNV,
+    unix_glColorFragmentOp1ATI,
+    unix_glColorFragmentOp2ATI,
+    unix_glColorFragmentOp3ATI,
+    unix_glColorMaskIndexedEXT,
+    unix_glColorMaski,
+    unix_glColorP3ui,
+    unix_glColorP3uiv,
+    unix_glColorP4ui,
+    unix_glColorP4uiv,
+    unix_glColorPointerEXT,
+    unix_glColorPointerListIBM,
+    unix_glColorPointervINTEL,
+    unix_glColorSubTable,
+    unix_glColorSubTableEXT,
+    unix_glColorTable,
+    unix_glColorTableEXT,
+    unix_glColorTableParameterfv,
+    unix_glColorTableParameterfvSGI,
+    unix_glColorTableParameteriv,
+    unix_glColorTableParameterivSGI,
+    unix_glColorTableSGI,
+    unix_glCombinerInputNV,
+    unix_glCombinerOutputNV,
+    unix_glCombinerParameterfNV,
+    unix_glCombinerParameterfvNV,
+    unix_glCombinerParameteriNV,
+    unix_glCombinerParameterivNV,
+    unix_glCombinerStageParameterfvNV,
+    unix_glCommandListSegmentsNV,
+    unix_glCompileCommandListNV,
+    unix_glCompileShader,
+    unix_glCompileShaderARB,
+    unix_glCompileShaderIncludeARB,
+    unix_glCompressedMultiTexImage1DEXT,
+    unix_glCompressedMultiTexImage2DEXT,
+    unix_glCompressedMultiTexImage3DEXT,
+    unix_glCompressedMultiTexSubImage1DEXT,
+    unix_glCompressedMultiTexSubImage2DEXT,
+    unix_glCompressedMultiTexSubImage3DEXT,
+    unix_glCompressedTexImage1D,
+    unix_glCompressedTexImage1DARB,
+    unix_glCompressedTexImage2D,
+    unix_glCompressedTexImage2DARB,
+    unix_glCompressedTexImage3D,
+    unix_glCompressedTexImage3DARB,
+    unix_glCompressedTexSubImage1D,
+    unix_glCompressedTexSubImage1DARB,
+    unix_glCompressedTexSubImage2D,
+    unix_glCompressedTexSubImage2DARB,
+    unix_glCompressedTexSubImage3D,
+    unix_glCompressedTexSubImage3DARB,
+    unix_glCompressedTextureImage1DEXT,
+    unix_glCompressedTextureImage2DEXT,
+    unix_glCompressedTextureImage3DEXT,
+    unix_glCompressedTextureSubImage1D,
+    unix_glCompressedTextureSubImage1DEXT,
+    unix_glCompressedTextureSubImage2D,
+    unix_glCompressedTextureSubImage2DEXT,
+    unix_glCompressedTextureSubImage3D,
+    unix_glCompressedTextureSubImage3DEXT,
+    unix_glConservativeRasterParameterfNV,
+    unix_glConservativeRasterParameteriNV,
+    unix_glConvolutionFilter1D,
+    unix_glConvolutionFilter1DEXT,
+    unix_glConvolutionFilter2D,
+    unix_glConvolutionFilter2DEXT,
+    unix_glConvolutionParameterf,
+    unix_glConvolutionParameterfEXT,
+    unix_glConvolutionParameterfv,
+    unix_glConvolutionParameterfvEXT,
+    unix_glConvolutionParameteri,
+    unix_glConvolutionParameteriEXT,
+    unix_glConvolutionParameteriv,
+    unix_glConvolutionParameterivEXT,
+    unix_glConvolutionParameterxOES,
+    unix_glConvolutionParameterxvOES,
+    unix_glCopyBufferSubData,
+    unix_glCopyColorSubTable,
+    unix_glCopyColorSubTableEXT,
+    unix_glCopyColorTable,
+    unix_glCopyColorTableSGI,
+    unix_glCopyConvolutionFilter1D,
+    unix_glCopyConvolutionFilter1DEXT,
+    unix_glCopyConvolutionFilter2D,
+    unix_glCopyConvolutionFilter2DEXT,
+    unix_glCopyImageSubData,
+    unix_glCopyImageSubDataNV,
+    unix_glCopyMultiTexImage1DEXT,
+    unix_glCopyMultiTexImage2DEXT,
+    unix_glCopyMultiTexSubImage1DEXT,
+    unix_glCopyMultiTexSubImage2DEXT,
+    unix_glCopyMultiTexSubImage3DEXT,
+    unix_glCopyNamedBufferSubData,
+    unix_glCopyPathNV,
+    unix_glCopyTexImage1DEXT,
+    unix_glCopyTexImage2DEXT,
+    unix_glCopyTexSubImage1DEXT,
+    unix_glCopyTexSubImage2DEXT,
+    unix_glCopyTexSubImage3D,
+    unix_glCopyTexSubImage3DEXT,
+    unix_glCopyTextureImage1DEXT,
+    unix_glCopyTextureImage2DEXT,
+    unix_glCopyTextureSubImage1D,
+    unix_glCopyTextureSubImage1DEXT,
+    unix_glCopyTextureSubImage2D,
+    unix_glCopyTextureSubImage2DEXT,
+    unix_glCopyTextureSubImage3D,
+    unix_glCopyTextureSubImage3DEXT,
+    unix_glCoverFillPathInstancedNV,
+    unix_glCoverFillPathNV,
+    unix_glCoverStrokePathInstancedNV,
+    unix_glCoverStrokePathNV,
+    unix_glCoverageModulationNV,
+    unix_glCoverageModulationTableNV,
+    unix_glCreateBuffers,
+    unix_glCreateCommandListsNV,
+    unix_glCreateFramebuffers,
+    unix_glCreateMemoryObjectsEXT,
+    unix_glCreatePerfQueryINTEL,
+    unix_glCreateProgram,
+    unix_glCreateProgramObjectARB,
+    unix_glCreateProgramPipelines,
+    unix_glCreateProgressFenceNVX,
+    unix_glCreateQueries,
+    unix_glCreateRenderbuffers,
+    unix_glCreateSamplers,
+    unix_glCreateShader,
+    unix_glCreateShaderObjectARB,
+    unix_glCreateShaderProgramEXT,
+    unix_glCreateShaderProgramv,
+    unix_glCreateStatesNV,
+    unix_glCreateSyncFromCLeventARB,
+    unix_glCreateTextures,
+    unix_glCreateTransformFeedbacks,
+    unix_glCreateVertexArrays,
+    unix_glCullParameterdvEXT,
+    unix_glCullParameterfvEXT,
+    unix_glCurrentPaletteMatrixARB,
+    unix_glDebugMessageCallback,
+    unix_glDebugMessageCallbackAMD,
+    unix_glDebugMessageCallbackARB,
+    unix_glDebugMessageControl,
+    unix_glDebugMessageControlARB,
+    unix_glDebugMessageEnableAMD,
+    unix_glDebugMessageInsert,
+    unix_glDebugMessageInsertAMD,
+    unix_glDebugMessageInsertARB,
+    unix_glDeformSGIX,
+    unix_glDeformationMap3dSGIX,
+    unix_glDeformationMap3fSGIX,
+    unix_glDeleteAsyncMarkersSGIX,
+    unix_glDeleteBufferRegion,
+    unix_glDeleteBuffers,
+    unix_glDeleteBuffersARB,
+    unix_glDeleteCommandListsNV,
+    unix_glDeleteFencesAPPLE,
+    unix_glDeleteFencesNV,
+    unix_glDeleteFragmentShaderATI,
+    unix_glDeleteFramebuffers,
+    unix_glDeleteFramebuffersEXT,
+    unix_glDeleteMemoryObjectsEXT,
+    unix_glDeleteNamedStringARB,
+    unix_glDeleteNamesAMD,
+    unix_glDeleteObjectARB,
+    unix_glDeleteObjectBufferATI,
+    unix_glDeleteOcclusionQueriesNV,
+    unix_glDeletePathsNV,
+    unix_glDeletePerfMonitorsAMD,
+    unix_glDeletePerfQueryINTEL,
+    unix_glDeleteProgram,
+    unix_glDeleteProgramPipelines,
+    unix_glDeleteProgramsARB,
+    unix_glDeleteProgramsNV,
+    unix_glDeleteQueries,
+    unix_glDeleteQueriesARB,
+    unix_glDeleteQueryResourceTagNV,
+    unix_glDeleteRenderbuffers,
+    unix_glDeleteRenderbuffersEXT,
+    unix_glDeleteSamplers,
+    unix_glDeleteSemaphoresEXT,
+    unix_glDeleteShader,
+    unix_glDeleteStatesNV,
+    unix_glDeleteSync,
+    unix_glDeleteTexturesEXT,
+    unix_glDeleteTransformFeedbacks,
+    unix_glDeleteTransformFeedbacksNV,
+    unix_glDeleteVertexArrays,
+    unix_glDeleteVertexArraysAPPLE,
+    unix_glDeleteVertexShaderEXT,
+    unix_glDepthBoundsEXT,
+    unix_glDepthBoundsdNV,
+    unix_glDepthRangeArraydvNV,
+    unix_glDepthRangeArrayv,
+    unix_glDepthRangeIndexed,
+    unix_glDepthRangeIndexeddNV,
+    unix_glDepthRangedNV,
+    unix_glDepthRangef,
+    unix_glDepthRangefOES,
+    unix_glDepthRangexOES,
+    unix_glDetachObjectARB,
+    unix_glDetachShader,
+    unix_glDetailTexFuncSGIS,
+    unix_glDisableClientStateIndexedEXT,
+    unix_glDisableClientStateiEXT,
+    unix_glDisableIndexedEXT,
+    unix_glDisableVariantClientStateEXT,
+    unix_glDisableVertexArrayAttrib,
+    unix_glDisableVertexArrayAttribEXT,
+    unix_glDisableVertexArrayEXT,
+    unix_glDisableVertexAttribAPPLE,
+    unix_glDisableVertexAttribArray,
+    unix_glDisableVertexAttribArrayARB,
+    unix_glDisablei,
+    unix_glDispatchCompute,
+    unix_glDispatchComputeGroupSizeARB,
+    unix_glDispatchComputeIndirect,
+    unix_glDrawArraysEXT,
+    unix_glDrawArraysIndirect,
+    unix_glDrawArraysInstanced,
+    unix_glDrawArraysInstancedARB,
+    unix_glDrawArraysInstancedBaseInstance,
+    unix_glDrawArraysInstancedEXT,
+    unix_glDrawBufferRegion,
+    unix_glDrawBuffers,
+    unix_glDrawBuffersARB,
+    unix_glDrawBuffersATI,
+    unix_glDrawCommandsAddressNV,
+    unix_glDrawCommandsNV,
+    unix_glDrawCommandsStatesAddressNV,
+    unix_glDrawCommandsStatesNV,
+    unix_glDrawElementArrayAPPLE,
+    unix_glDrawElementArrayATI,
+    unix_glDrawElementsBaseVertex,
+    unix_glDrawElementsIndirect,
+    unix_glDrawElementsInstanced,
+    unix_glDrawElementsInstancedARB,
+    unix_glDrawElementsInstancedBaseInstance,
+    unix_glDrawElementsInstancedBaseVertex,
+    unix_glDrawElementsInstancedBaseVertexBaseInstance,
+    unix_glDrawElementsInstancedEXT,
+    unix_glDrawMeshArraysSUN,
+    unix_glDrawMeshTasksIndirectNV,
+    unix_glDrawMeshTasksNV,
+    unix_glDrawRangeElementArrayAPPLE,
+    unix_glDrawRangeElementArrayATI,
+    unix_glDrawRangeElements,
+    unix_glDrawRangeElementsBaseVertex,
+    unix_glDrawRangeElementsEXT,
+    unix_glDrawTextureNV,
+    unix_glDrawTransformFeedback,
+    unix_glDrawTransformFeedbackInstanced,
+    unix_glDrawTransformFeedbackNV,
+    unix_glDrawTransformFeedbackStream,
+    unix_glDrawTransformFeedbackStreamInstanced,
+    unix_glDrawVkImageNV,
+    unix_glEGLImageTargetTexStorageEXT,
+    unix_glEGLImageTargetTextureStorageEXT,
+    unix_glEdgeFlagFormatNV,
+    unix_glEdgeFlagPointerEXT,
+    unix_glEdgeFlagPointerListIBM,
+    unix_glElementPointerAPPLE,
+    unix_glElementPointerATI,
+    unix_glEnableClientStateIndexedEXT,
+    unix_glEnableClientStateiEXT,
+    unix_glEnableIndexedEXT,
+    unix_glEnableVariantClientStateEXT,
+    unix_glEnableVertexArrayAttrib,
+    unix_glEnableVertexArrayAttribEXT,
+    unix_glEnableVertexArrayEXT,
+    unix_glEnableVertexAttribAPPLE,
+    unix_glEnableVertexAttribArray,
+    unix_glEnableVertexAttribArrayARB,
+    unix_glEnablei,
+    unix_glEndConditionalRender,
+    unix_glEndConditionalRenderNV,
+    unix_glEndConditionalRenderNVX,
+    unix_glEndFragmentShaderATI,
+    unix_glEndOcclusionQueryNV,
+    unix_glEndPerfMonitorAMD,
+    unix_glEndPerfQueryINTEL,
+    unix_glEndQuery,
+    unix_glEndQueryARB,
+    unix_glEndQueryIndexed,
+    unix_glEndTransformFeedback,
+    unix_glEndTransformFeedbackEXT,
+    unix_glEndTransformFeedbackNV,
+    unix_glEndVertexShaderEXT,
+    unix_glEndVideoCaptureNV,
+    unix_glEvalCoord1xOES,
+    unix_glEvalCoord1xvOES,
+    unix_glEvalCoord2xOES,
+    unix_glEvalCoord2xvOES,
+    unix_glEvalMapsNV,
+    unix_glEvaluateDepthValuesARB,
+    unix_glExecuteProgramNV,
+    unix_glExtractComponentEXT,
+    unix_glFeedbackBufferxOES,
+    unix_glFenceSync,
+    unix_glFinalCombinerInputNV,
+    unix_glFinishAsyncSGIX,
+    unix_glFinishFenceAPPLE,
+    unix_glFinishFenceNV,
+    unix_glFinishObjectAPPLE,
+    unix_glFinishTextureSUNX,
+    unix_glFlushMappedBufferRange,
+    unix_glFlushMappedBufferRangeAPPLE,
+    unix_glFlushMappedNamedBufferRange,
+    unix_glFlushMappedNamedBufferRangeEXT,
+    unix_glFlushPixelDataRangeNV,
+    unix_glFlushRasterSGIX,
+    unix_glFlushStaticDataIBM,
+    unix_glFlushVertexArrayRangeAPPLE,
+    unix_glFlushVertexArrayRangeNV,
+    unix_glFogCoordFormatNV,
+    unix_glFogCoordPointer,
+    unix_glFogCoordPointerEXT,
+    unix_glFogCoordPointerListIBM,
+    unix_glFogCoordd,
+    unix_glFogCoorddEXT,
+    unix_glFogCoorddv,
+    unix_glFogCoorddvEXT,
+    unix_glFogCoordf,
+    unix_glFogCoordfEXT,
+    unix_glFogCoordfv,
+    unix_glFogCoordfvEXT,
+    unix_glFogCoordhNV,
+    unix_glFogCoordhvNV,
+    unix_glFogFuncSGIS,
+    unix_glFogxOES,
+    unix_glFogxvOES,
+    unix_glFragmentColorMaterialSGIX,
+    unix_glFragmentCoverageColorNV,
+    unix_glFragmentLightModelfSGIX,
+    unix_glFragmentLightModelfvSGIX,
+    unix_glFragmentLightModeliSGIX,
+    unix_glFragmentLightModelivSGIX,
+    unix_glFragmentLightfSGIX,
+    unix_glFragmentLightfvSGIX,
+    unix_glFragmentLightiSGIX,
+    unix_glFragmentLightivSGIX,
+    unix_glFragmentMaterialfSGIX,
+    unix_glFragmentMaterialfvSGIX,
+    unix_glFragmentMaterialiSGIX,
+    unix_glFragmentMaterialivSGIX,
+    unix_glFrameTerminatorGREMEDY,
+    unix_glFrameZoomSGIX,
+    unix_glFramebufferDrawBufferEXT,
+    unix_glFramebufferDrawBuffersEXT,
+    unix_glFramebufferFetchBarrierEXT,
+    unix_glFramebufferParameteri,
+    unix_glFramebufferParameteriMESA,
+    unix_glFramebufferReadBufferEXT,
+    unix_glFramebufferRenderbuffer,
+    unix_glFramebufferRenderbufferEXT,
+    unix_glFramebufferSampleLocationsfvARB,
+    unix_glFramebufferSampleLocationsfvNV,
+    unix_glFramebufferSamplePositionsfvAMD,
+    unix_glFramebufferTexture,
+    unix_glFramebufferTexture1D,
+    unix_glFramebufferTexture1DEXT,
+    unix_glFramebufferTexture2D,
+    unix_glFramebufferTexture2DEXT,
+    unix_glFramebufferTexture3D,
+    unix_glFramebufferTexture3DEXT,
+    unix_glFramebufferTextureARB,
+    unix_glFramebufferTextureEXT,
+    unix_glFramebufferTextureFaceARB,
+    unix_glFramebufferTextureFaceEXT,
+    unix_glFramebufferTextureLayer,
+    unix_glFramebufferTextureLayerARB,
+    unix_glFramebufferTextureLayerEXT,
+    unix_glFramebufferTextureMultiviewOVR,
+    unix_glFreeObjectBufferATI,
+    unix_glFrustumfOES,
+    unix_glFrustumxOES,
+    unix_glGenAsyncMarkersSGIX,
+    unix_glGenBuffers,
+    unix_glGenBuffersARB,
+    unix_glGenFencesAPPLE,
+    unix_glGenFencesNV,
+    unix_glGenFragmentShadersATI,
+    unix_glGenFramebuffers,
+    unix_glGenFramebuffersEXT,
+    unix_glGenNamesAMD,
+    unix_glGenOcclusionQueriesNV,
+    unix_glGenPathsNV,
+    unix_glGenPerfMonitorsAMD,
+    unix_glGenProgramPipelines,
+    unix_glGenProgramsARB,
+    unix_glGenProgramsNV,
+    unix_glGenQueries,
+    unix_glGenQueriesARB,
+    unix_glGenQueryResourceTagNV,
+    unix_glGenRenderbuffers,
+    unix_glGenRenderbuffersEXT,
+    unix_glGenSamplers,
+    unix_glGenSemaphoresEXT,
+    unix_glGenSymbolsEXT,
+    unix_glGenTexturesEXT,
+    unix_glGenTransformFeedbacks,
+    unix_glGenTransformFeedbacksNV,
+    unix_glGenVertexArrays,
+    unix_glGenVertexArraysAPPLE,
+    unix_glGenVertexShadersEXT,
+    unix_glGenerateMipmap,
+    unix_glGenerateMipmapEXT,
+    unix_glGenerateMultiTexMipmapEXT,
+    unix_glGenerateTextureMipmap,
+    unix_glGenerateTextureMipmapEXT,
+    unix_glGetActiveAtomicCounterBufferiv,
+    unix_glGetActiveAttrib,
+    unix_glGetActiveAttribARB,
+    unix_glGetActiveSubroutineName,
+    unix_glGetActiveSubroutineUniformName,
+    unix_glGetActiveSubroutineUniformiv,
+    unix_glGetActiveUniform,
+    unix_glGetActiveUniformARB,
+    unix_glGetActiveUniformBlockName,
+    unix_glGetActiveUniformBlockiv,
+    unix_glGetActiveUniformName,
+    unix_glGetActiveUniformsiv,
+    unix_glGetActiveVaryingNV,
+    unix_glGetArrayObjectfvATI,
+    unix_glGetArrayObjectivATI,
+    unix_glGetAttachedObjectsARB,
+    unix_glGetAttachedShaders,
+    unix_glGetAttribLocation,
+    unix_glGetAttribLocationARB,
+    unix_glGetBooleanIndexedvEXT,
+    unix_glGetBooleani_v,
+    unix_glGetBufferParameteri64v,
+    unix_glGetBufferParameteriv,
+    unix_glGetBufferParameterivARB,
+    unix_glGetBufferParameterui64vNV,
+    unix_glGetBufferPointerv,
+    unix_glGetBufferPointervARB,
+    unix_glGetBufferSubData,
+    unix_glGetBufferSubDataARB,
+    unix_glGetClipPlanefOES,
+    unix_glGetClipPlanexOES,
+    unix_glGetColorTable,
+    unix_glGetColorTableEXT,
+    unix_glGetColorTableParameterfv,
+    unix_glGetColorTableParameterfvEXT,
+    unix_glGetColorTableParameterfvSGI,
+    unix_glGetColorTableParameteriv,
+    unix_glGetColorTableParameterivEXT,
+    unix_glGetColorTableParameterivSGI,
+    unix_glGetColorTableSGI,
+    unix_glGetCombinerInputParameterfvNV,
+    unix_glGetCombinerInputParameterivNV,
+    unix_glGetCombinerOutputParameterfvNV,
+    unix_glGetCombinerOutputParameterivNV,
+    unix_glGetCombinerStageParameterfvNV,
+    unix_glGetCommandHeaderNV,
+    unix_glGetCompressedMultiTexImageEXT,
+    unix_glGetCompressedTexImage,
+    unix_glGetCompressedTexImageARB,
+    unix_glGetCompressedTextureImage,
+    unix_glGetCompressedTextureImageEXT,
+    unix_glGetCompressedTextureSubImage,
+    unix_glGetConvolutionFilter,
+    unix_glGetConvolutionFilterEXT,
+    unix_glGetConvolutionParameterfv,
+    unix_glGetConvolutionParameterfvEXT,
+    unix_glGetConvolutionParameteriv,
+    unix_glGetConvolutionParameterivEXT,
+    unix_glGetConvolutionParameterxvOES,
+    unix_glGetCoverageModulationTableNV,
+    unix_glGetDebugMessageLog,
+    unix_glGetDebugMessageLogAMD,
+    unix_glGetDebugMessageLogARB,
+    unix_glGetDetailTexFuncSGIS,
+    unix_glGetDoubleIndexedvEXT,
+    unix_glGetDoublei_v,
+    unix_glGetDoublei_vEXT,
+    unix_glGetFenceivNV,
+    unix_glGetFinalCombinerInputParameterfvNV,
+    unix_glGetFinalCombinerInputParameterivNV,
+    unix_glGetFirstPerfQueryIdINTEL,
+    unix_glGetFixedvOES,
+    unix_glGetFloatIndexedvEXT,
+    unix_glGetFloati_v,
+    unix_glGetFloati_vEXT,
+    unix_glGetFogFuncSGIS,
+    unix_glGetFragDataIndex,
+    unix_glGetFragDataLocation,
+    unix_glGetFragDataLocationEXT,
+    unix_glGetFragmentLightfvSGIX,
+    unix_glGetFragmentLightivSGIX,
+    unix_glGetFragmentMaterialfvSGIX,
+    unix_glGetFragmentMaterialivSGIX,
+    unix_glGetFramebufferAttachmentParameteriv,
+    unix_glGetFramebufferAttachmentParameterivEXT,
+    unix_glGetFramebufferParameterfvAMD,
+    unix_glGetFramebufferParameteriv,
+    unix_glGetFramebufferParameterivEXT,
+    unix_glGetFramebufferParameterivMESA,
+    unix_glGetGraphicsResetStatus,
+    unix_glGetGraphicsResetStatusARB,
+    unix_glGetHandleARB,
+    unix_glGetHistogram,
+    unix_glGetHistogramEXT,
+    unix_glGetHistogramParameterfv,
+    unix_glGetHistogramParameterfvEXT,
+    unix_glGetHistogramParameteriv,
+    unix_glGetHistogramParameterivEXT,
+    unix_glGetHistogramParameterxvOES,
+    unix_glGetImageHandleARB,
+    unix_glGetImageHandleNV,
+    unix_glGetImageTransformParameterfvHP,
+    unix_glGetImageTransformParameterivHP,
+    unix_glGetInfoLogARB,
+    unix_glGetInstrumentsSGIX,
+    unix_glGetInteger64i_v,
+    unix_glGetInteger64v,
+    unix_glGetIntegerIndexedvEXT,
+    unix_glGetIntegeri_v,
+    unix_glGetIntegerui64i_vNV,
+    unix_glGetIntegerui64vNV,
+    unix_glGetInternalformatSampleivNV,
+    unix_glGetInternalformati64v,
+    unix_glGetInternalformativ,
+    unix_glGetInvariantBooleanvEXT,
+    unix_glGetInvariantFloatvEXT,
+    unix_glGetInvariantIntegervEXT,
+    unix_glGetLightxOES,
+    unix_glGetListParameterfvSGIX,
+    unix_glGetListParameterivSGIX,
+    unix_glGetLocalConstantBooleanvEXT,
+    unix_glGetLocalConstantFloatvEXT,
+    unix_glGetLocalConstantIntegervEXT,
+    unix_glGetMapAttribParameterfvNV,
+    unix_glGetMapAttribParameterivNV,
+    unix_glGetMapControlPointsNV,
+    unix_glGetMapParameterfvNV,
+    unix_glGetMapParameterivNV,
+    unix_glGetMapxvOES,
+    unix_glGetMaterialxOES,
+    unix_glGetMemoryObjectDetachedResourcesuivNV,
+    unix_glGetMemoryObjectParameterivEXT,
+    unix_glGetMinmax,
+    unix_glGetMinmaxEXT,
+    unix_glGetMinmaxParameterfv,
+    unix_glGetMinmaxParameterfvEXT,
+    unix_glGetMinmaxParameteriv,
+    unix_glGetMinmaxParameterivEXT,
+    unix_glGetMultiTexEnvfvEXT,
+    unix_glGetMultiTexEnvivEXT,
+    unix_glGetMultiTexGendvEXT,
+    unix_glGetMultiTexGenfvEXT,
+    unix_glGetMultiTexGenivEXT,
+    unix_glGetMultiTexImageEXT,
+    unix_glGetMultiTexLevelParameterfvEXT,
+    unix_glGetMultiTexLevelParameterivEXT,
+    unix_glGetMultiTexParameterIivEXT,
+    unix_glGetMultiTexParameterIuivEXT,
+    unix_glGetMultiTexParameterfvEXT,
+    unix_glGetMultiTexParameterivEXT,
+    unix_glGetMultisamplefv,
+    unix_glGetMultisamplefvNV,
+    unix_glGetNamedBufferParameteri64v,
+    unix_glGetNamedBufferParameteriv,
+    unix_glGetNamedBufferParameterivEXT,
+    unix_glGetNamedBufferParameterui64vNV,
+    unix_glGetNamedBufferPointerv,
+    unix_glGetNamedBufferPointervEXT,
+    unix_glGetNamedBufferSubData,
+    unix_glGetNamedBufferSubDataEXT,
+    unix_glGetNamedFramebufferAttachmentParameteriv,
+    unix_glGetNamedFramebufferAttachmentParameterivEXT,
+    unix_glGetNamedFramebufferParameterfvAMD,
+    unix_glGetNamedFramebufferParameteriv,
+    unix_glGetNamedFramebufferParameterivEXT,
+    unix_glGetNamedProgramLocalParameterIivEXT,
+    unix_glGetNamedProgramLocalParameterIuivEXT,
+    unix_glGetNamedProgramLocalParameterdvEXT,
+    unix_glGetNamedProgramLocalParameterfvEXT,
+    unix_glGetNamedProgramStringEXT,
+    unix_glGetNamedProgramivEXT,
+    unix_glGetNamedRenderbufferParameteriv,
+    unix_glGetNamedRenderbufferParameterivEXT,
+    unix_glGetNamedStringARB,
+    unix_glGetNamedStringivARB,
+    unix_glGetNextPerfQueryIdINTEL,
+    unix_glGetObjectBufferfvATI,
+    unix_glGetObjectBufferivATI,
+    unix_glGetObjectLabel,
+    unix_glGetObjectLabelEXT,
+    unix_glGetObjectParameterfvARB,
+    unix_glGetObjectParameterivAPPLE,
+    unix_glGetObjectParameterivARB,
+    unix_glGetObjectPtrLabel,
+    unix_glGetOcclusionQueryivNV,
+    unix_glGetOcclusionQueryuivNV,
+    unix_glGetPathColorGenfvNV,
+    unix_glGetPathColorGenivNV,
+    unix_glGetPathCommandsNV,
+    unix_glGetPathCoordsNV,
+    unix_glGetPathDashArrayNV,
+    unix_glGetPathLengthNV,
+    unix_glGetPathMetricRangeNV,
+    unix_glGetPathMetricsNV,
+    unix_glGetPathParameterfvNV,
+    unix_glGetPathParameterivNV,
+    unix_glGetPathSpacingNV,
+    unix_glGetPathTexGenfvNV,
+    unix_glGetPathTexGenivNV,
+    unix_glGetPerfCounterInfoINTEL,
+    unix_glGetPerfMonitorCounterDataAMD,
+    unix_glGetPerfMonitorCounterInfoAMD,
+    unix_glGetPerfMonitorCounterStringAMD,
+    unix_glGetPerfMonitorCountersAMD,
+    unix_glGetPerfMonitorGroupStringAMD,
+    unix_glGetPerfMonitorGroupsAMD,
+    unix_glGetPerfQueryDataINTEL,
+    unix_glGetPerfQueryIdByNameINTEL,
+    unix_glGetPerfQueryInfoINTEL,
+    unix_glGetPixelMapxv,
+    unix_glGetPixelTexGenParameterfvSGIS,
+    unix_glGetPixelTexGenParameterivSGIS,
+    unix_glGetPixelTransformParameterfvEXT,
+    unix_glGetPixelTransformParameterivEXT,
+    unix_glGetPointerIndexedvEXT,
+    unix_glGetPointeri_vEXT,
+    unix_glGetPointervEXT,
+    unix_glGetProgramBinary,
+    unix_glGetProgramEnvParameterIivNV,
+    unix_glGetProgramEnvParameterIuivNV,
+    unix_glGetProgramEnvParameterdvARB,
+    unix_glGetProgramEnvParameterfvARB,
+    unix_glGetProgramInfoLog,
+    unix_glGetProgramInterfaceiv,
+    unix_glGetProgramLocalParameterIivNV,
+    unix_glGetProgramLocalParameterIuivNV,
+    unix_glGetProgramLocalParameterdvARB,
+    unix_glGetProgramLocalParameterfvARB,
+    unix_glGetProgramNamedParameterdvNV,
+    unix_glGetProgramNamedParameterfvNV,
+    unix_glGetProgramParameterdvNV,
+    unix_glGetProgramParameterfvNV,
+    unix_glGetProgramPipelineInfoLog,
+    unix_glGetProgramPipelineiv,
+    unix_glGetProgramResourceIndex,
+    unix_glGetProgramResourceLocation,
+    unix_glGetProgramResourceLocationIndex,
+    unix_glGetProgramResourceName,
+    unix_glGetProgramResourcefvNV,
+    unix_glGetProgramResourceiv,
+    unix_glGetProgramStageiv,
+    unix_glGetProgramStringARB,
+    unix_glGetProgramStringNV,
+    unix_glGetProgramSubroutineParameteruivNV,
+    unix_glGetProgramiv,
+    unix_glGetProgramivARB,
+    unix_glGetProgramivNV,
+    unix_glGetQueryBufferObjecti64v,
+    unix_glGetQueryBufferObjectiv,
+    unix_glGetQueryBufferObjectui64v,
+    unix_glGetQueryBufferObjectuiv,
+    unix_glGetQueryIndexediv,
+    unix_glGetQueryObjecti64v,
+    unix_glGetQueryObjecti64vEXT,
+    unix_glGetQueryObjectiv,
+    unix_glGetQueryObjectivARB,
+    unix_glGetQueryObjectui64v,
+    unix_glGetQueryObjectui64vEXT,
+    unix_glGetQueryObjectuiv,
+    unix_glGetQueryObjectuivARB,
+    unix_glGetQueryiv,
+    unix_glGetQueryivARB,
+    unix_glGetRenderbufferParameteriv,
+    unix_glGetRenderbufferParameterivEXT,
+    unix_glGetSamplerParameterIiv,
+    unix_glGetSamplerParameterIuiv,
+    unix_glGetSamplerParameterfv,
+    unix_glGetSamplerParameteriv,
+    unix_glGetSemaphoreParameterui64vEXT,
+    unix_glGetSeparableFilter,
+    unix_glGetSeparableFilterEXT,
+    unix_glGetShaderInfoLog,
+    unix_glGetShaderPrecisionFormat,
+    unix_glGetShaderSource,
+    unix_glGetShaderSourceARB,
+    unix_glGetShaderiv,
+    unix_glGetShadingRateImagePaletteNV,
+    unix_glGetShadingRateSampleLocationivNV,
+    unix_glGetSharpenTexFuncSGIS,
+    unix_glGetStageIndexNV,
+    unix_glGetStringi,
+    unix_glGetSubroutineIndex,
+    unix_glGetSubroutineUniformLocation,
+    unix_glGetSynciv,
+    unix_glGetTexBumpParameterfvATI,
+    unix_glGetTexBumpParameterivATI,
+    unix_glGetTexEnvxvOES,
+    unix_glGetTexFilterFuncSGIS,
+    unix_glGetTexGenxvOES,
+    unix_glGetTexLevelParameterxvOES,
+    unix_glGetTexParameterIiv,
+    unix_glGetTexParameterIivEXT,
+    unix_glGetTexParameterIuiv,
+    unix_glGetTexParameterIuivEXT,
+    unix_glGetTexParameterPointervAPPLE,
+    unix_glGetTexParameterxvOES,
+    unix_glGetTextureHandleARB,
+    unix_glGetTextureHandleNV,
+    unix_glGetTextureImage,
+    unix_glGetTextureImageEXT,
+    unix_glGetTextureLevelParameterfv,
+    unix_glGetTextureLevelParameterfvEXT,
+    unix_glGetTextureLevelParameteriv,
+    unix_glGetTextureLevelParameterivEXT,
+    unix_glGetTextureParameterIiv,
+    unix_glGetTextureParameterIivEXT,
+    unix_glGetTextureParameterIuiv,
+    unix_glGetTextureParameterIuivEXT,
+    unix_glGetTextureParameterfv,
+    unix_glGetTextureParameterfvEXT,
+    unix_glGetTextureParameteriv,
+    unix_glGetTextureParameterivEXT,
+    unix_glGetTextureSamplerHandleARB,
+    unix_glGetTextureSamplerHandleNV,
+    unix_glGetTextureSubImage,
+    unix_glGetTrackMatrixivNV,
+    unix_glGetTransformFeedbackVarying,
+    unix_glGetTransformFeedbackVaryingEXT,
+    unix_glGetTransformFeedbackVaryingNV,
+    unix_glGetTransformFeedbacki64_v,
+    unix_glGetTransformFeedbacki_v,
+    unix_glGetTransformFeedbackiv,
+    unix_glGetUniformBlockIndex,
+    unix_glGetUniformBufferSizeEXT,
+    unix_glGetUniformIndices,
+    unix_glGetUniformLocation,
+    unix_glGetUniformLocationARB,
+    unix_glGetUniformOffsetEXT,
+    unix_glGetUniformSubroutineuiv,
+    unix_glGetUniformdv,
+    unix_glGetUniformfv,
+    unix_glGetUniformfvARB,
+    unix_glGetUniformi64vARB,
+    unix_glGetUniformi64vNV,
+    unix_glGetUniformiv,
+    unix_glGetUniformivARB,
+    unix_glGetUniformui64vARB,
+    unix_glGetUniformui64vNV,
+    unix_glGetUniformuiv,
+    unix_glGetUniformuivEXT,
+    unix_glGetUnsignedBytei_vEXT,
+    unix_glGetUnsignedBytevEXT,
+    unix_glGetVariantArrayObjectfvATI,
+    unix_glGetVariantArrayObjectivATI,
+    unix_glGetVariantBooleanvEXT,
+    unix_glGetVariantFloatvEXT,
+    unix_glGetVariantIntegervEXT,
+    unix_glGetVariantPointervEXT,
+    unix_glGetVaryingLocationNV,
+    unix_glGetVertexArrayIndexed64iv,
+    unix_glGetVertexArrayIndexediv,
+    unix_glGetVertexArrayIntegeri_vEXT,
+    unix_glGetVertexArrayIntegervEXT,
+    unix_glGetVertexArrayPointeri_vEXT,
+    unix_glGetVertexArrayPointervEXT,
+    unix_glGetVertexArrayiv,
+    unix_glGetVertexAttribArrayObjectfvATI,
+    unix_glGetVertexAttribArrayObjectivATI,
+    unix_glGetVertexAttribIiv,
+    unix_glGetVertexAttribIivEXT,
+    unix_glGetVertexAttribIuiv,
+    unix_glGetVertexAttribIuivEXT,
+    unix_glGetVertexAttribLdv,
+    unix_glGetVertexAttribLdvEXT,
+    unix_glGetVertexAttribLi64vNV,
+    unix_glGetVertexAttribLui64vARB,
+    unix_glGetVertexAttribLui64vNV,
+    unix_glGetVertexAttribPointerv,
+    unix_glGetVertexAttribPointervARB,
+    unix_glGetVertexAttribPointervNV,
+    unix_glGetVertexAttribdv,
+    unix_glGetVertexAttribdvARB,
+    unix_glGetVertexAttribdvNV,
+    unix_glGetVertexAttribfv,
+    unix_glGetVertexAttribfvARB,
+    unix_glGetVertexAttribfvNV,
+    unix_glGetVertexAttribiv,
+    unix_glGetVertexAttribivARB,
+    unix_glGetVertexAttribivNV,
+    unix_glGetVideoCaptureStreamdvNV,
+    unix_glGetVideoCaptureStreamfvNV,
+    unix_glGetVideoCaptureStreamivNV,
+    unix_glGetVideoCaptureivNV,
+    unix_glGetVideoi64vNV,
+    unix_glGetVideoivNV,
+    unix_glGetVideoui64vNV,
+    unix_glGetVideouivNV,
+    unix_glGetVkProcAddrNV,
+    unix_glGetnColorTable,
+    unix_glGetnColorTableARB,
+    unix_glGetnCompressedTexImage,
+    unix_glGetnCompressedTexImageARB,
+    unix_glGetnConvolutionFilter,
+    unix_glGetnConvolutionFilterARB,
+    unix_glGetnHistogram,
+    unix_glGetnHistogramARB,
+    unix_glGetnMapdv,
+    unix_glGetnMapdvARB,
+    unix_glGetnMapfv,
+    unix_glGetnMapfvARB,
+    unix_glGetnMapiv,
+    unix_glGetnMapivARB,
+    unix_glGetnMinmax,
+    unix_glGetnMinmaxARB,
+    unix_glGetnPixelMapfv,
+    unix_glGetnPixelMapfvARB,
+    unix_glGetnPixelMapuiv,
+    unix_glGetnPixelMapuivARB,
+    unix_glGetnPixelMapusv,
+    unix_glGetnPixelMapusvARB,
+    unix_glGetnPolygonStipple,
+    unix_glGetnPolygonStippleARB,
+    unix_glGetnSeparableFilter,
+    unix_glGetnSeparableFilterARB,
+    unix_glGetnTexImage,
+    unix_glGetnTexImageARB,
+    unix_glGetnUniformdv,
+    unix_glGetnUniformdvARB,
+    unix_glGetnUniformfv,
+    unix_glGetnUniformfvARB,
+    unix_glGetnUniformi64vARB,
+    unix_glGetnUniformiv,
+    unix_glGetnUniformivARB,
+    unix_glGetnUniformui64vARB,
+    unix_glGetnUniformuiv,
+    unix_glGetnUniformuivARB,
+    unix_glGlobalAlphaFactorbSUN,
+    unix_glGlobalAlphaFactordSUN,
+    unix_glGlobalAlphaFactorfSUN,
+    unix_glGlobalAlphaFactoriSUN,
+    unix_glGlobalAlphaFactorsSUN,
+    unix_glGlobalAlphaFactorubSUN,
+    unix_glGlobalAlphaFactoruiSUN,
+    unix_glGlobalAlphaFactorusSUN,
+    unix_glHintPGI,
+    unix_glHistogram,
+    unix_glHistogramEXT,
+    unix_glIglooInterfaceSGIX,
+    unix_glImageTransformParameterfHP,
+    unix_glImageTransformParameterfvHP,
+    unix_glImageTransformParameteriHP,
+    unix_glImageTransformParameterivHP,
+    unix_glImportMemoryFdEXT,
+    unix_glImportMemoryWin32HandleEXT,
+    unix_glImportMemoryWin32NameEXT,
+    unix_glImportSemaphoreFdEXT,
+    unix_glImportSemaphoreWin32HandleEXT,
+    unix_glImportSemaphoreWin32NameEXT,
+    unix_glImportSyncEXT,
+    unix_glIndexFormatNV,
+    unix_glIndexFuncEXT,
+    unix_glIndexMaterialEXT,
+    unix_glIndexPointerEXT,
+    unix_glIndexPointerListIBM,
+    unix_glIndexxOES,
+    unix_glIndexxvOES,
+    unix_glInsertComponentEXT,
+    unix_glInsertEventMarkerEXT,
+    unix_glInstrumentsBufferSGIX,
+    unix_glInterpolatePathsNV,
+    unix_glInvalidateBufferData,
+    unix_glInvalidateBufferSubData,
+    unix_glInvalidateFramebuffer,
+    unix_glInvalidateNamedFramebufferData,
+    unix_glInvalidateNamedFramebufferSubData,
+    unix_glInvalidateSubFramebuffer,
+    unix_glInvalidateTexImage,
+    unix_glInvalidateTexSubImage,
+    unix_glIsAsyncMarkerSGIX,
+    unix_glIsBuffer,
+    unix_glIsBufferARB,
+    unix_glIsBufferResidentNV,
+    unix_glIsCommandListNV,
+    unix_glIsEnabledIndexedEXT,
+    unix_glIsEnabledi,
+    unix_glIsFenceAPPLE,
+    unix_glIsFenceNV,
+    unix_glIsFramebuffer,
+    unix_glIsFramebufferEXT,
+    unix_glIsImageHandleResidentARB,
+    unix_glIsImageHandleResidentNV,
+    unix_glIsMemoryObjectEXT,
+    unix_glIsNameAMD,
+    unix_glIsNamedBufferResidentNV,
+    unix_glIsNamedStringARB,
+    unix_glIsObjectBufferATI,
+    unix_glIsOcclusionQueryNV,
+    unix_glIsPathNV,
+    unix_glIsPointInFillPathNV,
+    unix_glIsPointInStrokePathNV,
+    unix_glIsProgram,
+    unix_glIsProgramARB,
+    unix_glIsProgramNV,
+    unix_glIsProgramPipeline,
+    unix_glIsQuery,
+    unix_glIsQueryARB,
+    unix_glIsRenderbuffer,
+    unix_glIsRenderbufferEXT,
+    unix_glIsSampler,
+    unix_glIsSemaphoreEXT,
+    unix_glIsShader,
+    unix_glIsStateNV,
+    unix_glIsSync,
+    unix_glIsTextureEXT,
+    unix_glIsTextureHandleResidentARB,
+    unix_glIsTextureHandleResidentNV,
+    unix_glIsTransformFeedback,
+    unix_glIsTransformFeedbackNV,
+    unix_glIsVariantEnabledEXT,
+    unix_glIsVertexArray,
+    unix_glIsVertexArrayAPPLE,
+    unix_glIsVertexAttribEnabledAPPLE,
+    unix_glLGPUCopyImageSubDataNVX,
+    unix_glLGPUInterlockNVX,
+    unix_glLGPUNamedBufferSubDataNVX,
+    unix_glLabelObjectEXT,
+    unix_glLightEnviSGIX,
+    unix_glLightModelxOES,
+    unix_glLightModelxvOES,
+    unix_glLightxOES,
+    unix_glLightxvOES,
+    unix_glLineWidthxOES,
+    unix_glLinkProgram,
+    unix_glLinkProgramARB,
+    unix_glListDrawCommandsStatesClientNV,
+    unix_glListParameterfSGIX,
+    unix_glListParameterfvSGIX,
+    unix_glListParameteriSGIX,
+    unix_glListParameterivSGIX,
+    unix_glLoadIdentityDeformationMapSGIX,
+    unix_glLoadMatrixxOES,
+    unix_glLoadProgramNV,
+    unix_glLoadTransposeMatrixd,
+    unix_glLoadTransposeMatrixdARB,
+    unix_glLoadTransposeMatrixf,
+    unix_glLoadTransposeMatrixfARB,
+    unix_glLoadTransposeMatrixxOES,
+    unix_glLockArraysEXT,
+    unix_glMTexCoord2fSGIS,
+    unix_glMTexCoord2fvSGIS,
+    unix_glMakeBufferNonResidentNV,
+    unix_glMakeBufferResidentNV,
+    unix_glMakeImageHandleNonResidentARB,
+    unix_glMakeImageHandleNonResidentNV,
+    unix_glMakeImageHandleResidentARB,
+    unix_glMakeImageHandleResidentNV,
+    unix_glMakeNamedBufferNonResidentNV,
+    unix_glMakeNamedBufferResidentNV,
+    unix_glMakeTextureHandleNonResidentARB,
+    unix_glMakeTextureHandleNonResidentNV,
+    unix_glMakeTextureHandleResidentARB,
+    unix_glMakeTextureHandleResidentNV,
+    unix_glMap1xOES,
+    unix_glMap2xOES,
+    unix_glMapBuffer,
+    unix_glMapBufferARB,
+    unix_glMapBufferRange,
+    unix_glMapControlPointsNV,
+    unix_glMapGrid1xOES,
+    unix_glMapGrid2xOES,
+    unix_glMapNamedBuffer,
+    unix_glMapNamedBufferEXT,
+    unix_glMapNamedBufferRange,
+    unix_glMapNamedBufferRangeEXT,
+    unix_glMapObjectBufferATI,
+    unix_glMapParameterfvNV,
+    unix_glMapParameterivNV,
+    unix_glMapTexture2DINTEL,
+    unix_glMapVertexAttrib1dAPPLE,
+    unix_glMapVertexAttrib1fAPPLE,
+    unix_glMapVertexAttrib2dAPPLE,
+    unix_glMapVertexAttrib2fAPPLE,
+    unix_glMaterialxOES,
+    unix_glMaterialxvOES,
+    unix_glMatrixFrustumEXT,
+    unix_glMatrixIndexPointerARB,
+    unix_glMatrixIndexubvARB,
+    unix_glMatrixIndexuivARB,
+    unix_glMatrixIndexusvARB,
+    unix_glMatrixLoad3x2fNV,
+    unix_glMatrixLoad3x3fNV,
+    unix_glMatrixLoadIdentityEXT,
+    unix_glMatrixLoadTranspose3x3fNV,
+    unix_glMatrixLoadTransposedEXT,
+    unix_glMatrixLoadTransposefEXT,
+    unix_glMatrixLoaddEXT,
+    unix_glMatrixLoadfEXT,
+    unix_glMatrixMult3x2fNV,
+    unix_glMatrixMult3x3fNV,
+    unix_glMatrixMultTranspose3x3fNV,
+    unix_glMatrixMultTransposedEXT,
+    unix_glMatrixMultTransposefEXT,
+    unix_glMatrixMultdEXT,
+    unix_glMatrixMultfEXT,
+    unix_glMatrixOrthoEXT,
+    unix_glMatrixPopEXT,
+    unix_glMatrixPushEXT,
+    unix_glMatrixRotatedEXT,
+    unix_glMatrixRotatefEXT,
+    unix_glMatrixScaledEXT,
+    unix_glMatrixScalefEXT,
+    unix_glMatrixTranslatedEXT,
+    unix_glMatrixTranslatefEXT,
+    unix_glMaxShaderCompilerThreadsARB,
+    unix_glMaxShaderCompilerThreadsKHR,
+    unix_glMemoryBarrier,
+    unix_glMemoryBarrierByRegion,
+    unix_glMemoryBarrierEXT,
+    unix_glMemoryObjectParameterivEXT,
+    unix_glMinSampleShading,
+    unix_glMinSampleShadingARB,
+    unix_glMinmax,
+    unix_glMinmaxEXT,
+    unix_glMultMatrixxOES,
+    unix_glMultTransposeMatrixd,
+    unix_glMultTransposeMatrixdARB,
+    unix_glMultTransposeMatrixf,
+    unix_glMultTransposeMatrixfARB,
+    unix_glMultTransposeMatrixxOES,
+    unix_glMultiDrawArrays,
+    unix_glMultiDrawArraysEXT,
+    unix_glMultiDrawArraysIndirect,
+    unix_glMultiDrawArraysIndirectAMD,
+    unix_glMultiDrawArraysIndirectBindlessCountNV,
+    unix_glMultiDrawArraysIndirectBindlessNV,
+    unix_glMultiDrawArraysIndirectCount,
+    unix_glMultiDrawArraysIndirectCountARB,
+    unix_glMultiDrawElementArrayAPPLE,
+    unix_glMultiDrawElements,
+    unix_glMultiDrawElementsBaseVertex,
+    unix_glMultiDrawElementsEXT,
+    unix_glMultiDrawElementsIndirect,
+    unix_glMultiDrawElementsIndirectAMD,
+    unix_glMultiDrawElementsIndirectBindlessCountNV,
+    unix_glMultiDrawElementsIndirectBindlessNV,
+    unix_glMultiDrawElementsIndirectCount,
+    unix_glMultiDrawElementsIndirectCountARB,
+    unix_glMultiDrawMeshTasksIndirectCountNV,
+    unix_glMultiDrawMeshTasksIndirectNV,
+    unix_glMultiDrawRangeElementArrayAPPLE,
+    unix_glMultiModeDrawArraysIBM,
+    unix_glMultiModeDrawElementsIBM,
+    unix_glMultiTexBufferEXT,
+    unix_glMultiTexCoord1bOES,
+    unix_glMultiTexCoord1bvOES,
+    unix_glMultiTexCoord1d,
+    unix_glMultiTexCoord1dARB,
+    unix_glMultiTexCoord1dSGIS,
+    unix_glMultiTexCoord1dv,
+    unix_glMultiTexCoord1dvARB,
+    unix_glMultiTexCoord1dvSGIS,
+    unix_glMultiTexCoord1f,
+    unix_glMultiTexCoord1fARB,
+    unix_glMultiTexCoord1fSGIS,
+    unix_glMultiTexCoord1fv,
+    unix_glMultiTexCoord1fvARB,
+    unix_glMultiTexCoord1fvSGIS,
+    unix_glMultiTexCoord1hNV,
+    unix_glMultiTexCoord1hvNV,
+    unix_glMultiTexCoord1i,
+    unix_glMultiTexCoord1iARB,
+    unix_glMultiTexCoord1iSGIS,
+    unix_glMultiTexCoord1iv,
+    unix_glMultiTexCoord1ivARB,
+    unix_glMultiTexCoord1ivSGIS,
+    unix_glMultiTexCoord1s,
+    unix_glMultiTexCoord1sARB,
+    unix_glMultiTexCoord1sSGIS,
+    unix_glMultiTexCoord1sv,
+    unix_glMultiTexCoord1svARB,
+    unix_glMultiTexCoord1svSGIS,
+    unix_glMultiTexCoord1xOES,
+    unix_glMultiTexCoord1xvOES,
+    unix_glMultiTexCoord2bOES,
+    unix_glMultiTexCoord2bvOES,
+    unix_glMultiTexCoord2d,
+    unix_glMultiTexCoord2dARB,
+    unix_glMultiTexCoord2dSGIS,
+    unix_glMultiTexCoord2dv,
+    unix_glMultiTexCoord2dvARB,
+    unix_glMultiTexCoord2dvSGIS,
+    unix_glMultiTexCoord2f,
+    unix_glMultiTexCoord2fARB,
+    unix_glMultiTexCoord2fSGIS,
+    unix_glMultiTexCoord2fv,
+    unix_glMultiTexCoord2fvARB,
+    unix_glMultiTexCoord2fvSGIS,
+    unix_glMultiTexCoord2hNV,
+    unix_glMultiTexCoord2hvNV,
+    unix_glMultiTexCoord2i,
+    unix_glMultiTexCoord2iARB,
+    unix_glMultiTexCoord2iSGIS,
+    unix_glMultiTexCoord2iv,
+    unix_glMultiTexCoord2ivARB,
+    unix_glMultiTexCoord2ivSGIS,
+    unix_glMultiTexCoord2s,
+    unix_glMultiTexCoord2sARB,
+    unix_glMultiTexCoord2sSGIS,
+    unix_glMultiTexCoord2sv,
+    unix_glMultiTexCoord2svARB,
+    unix_glMultiTexCoord2svSGIS,
+    unix_glMultiTexCoord2xOES,
+    unix_glMultiTexCoord2xvOES,
+    unix_glMultiTexCoord3bOES,
+    unix_glMultiTexCoord3bvOES,
+    unix_glMultiTexCoord3d,
+    unix_glMultiTexCoord3dARB,
+    unix_glMultiTexCoord3dSGIS,
+    unix_glMultiTexCoord3dv,
+    unix_glMultiTexCoord3dvARB,
+    unix_glMultiTexCoord3dvSGIS,
+    unix_glMultiTexCoord3f,
+    unix_glMultiTexCoord3fARB,
+    unix_glMultiTexCoord3fSGIS,
+    unix_glMultiTexCoord3fv,
+    unix_glMultiTexCoord3fvARB,
+    unix_glMultiTexCoord3fvSGIS,
+    unix_glMultiTexCoord3hNV,
+    unix_glMultiTexCoord3hvNV,
+    unix_glMultiTexCoord3i,
+    unix_glMultiTexCoord3iARB,
+    unix_glMultiTexCoord3iSGIS,
+    unix_glMultiTexCoord3iv,
+    unix_glMultiTexCoord3ivARB,
+    unix_glMultiTexCoord3ivSGIS,
+    unix_glMultiTexCoord3s,
+    unix_glMultiTexCoord3sARB,
+    unix_glMultiTexCoord3sSGIS,
+    unix_glMultiTexCoord3sv,
+    unix_glMultiTexCoord3svARB,
+    unix_glMultiTexCoord3svSGIS,
+    unix_glMultiTexCoord3xOES,
+    unix_glMultiTexCoord3xvOES,
+    unix_glMultiTexCoord4bOES,
+    unix_glMultiTexCoord4bvOES,
+    unix_glMultiTexCoord4d,
+    unix_glMultiTexCoord4dARB,
+    unix_glMultiTexCoord4dSGIS,
+    unix_glMultiTexCoord4dv,
+    unix_glMultiTexCoord4dvARB,
+    unix_glMultiTexCoord4dvSGIS,
+    unix_glMultiTexCoord4f,
+    unix_glMultiTexCoord4fARB,
+    unix_glMultiTexCoord4fSGIS,
+    unix_glMultiTexCoord4fv,
+    unix_glMultiTexCoord4fvARB,
+    unix_glMultiTexCoord4fvSGIS,
+    unix_glMultiTexCoord4hNV,
+    unix_glMultiTexCoord4hvNV,
+    unix_glMultiTexCoord4i,
+    unix_glMultiTexCoord4iARB,
+    unix_glMultiTexCoord4iSGIS,
+    unix_glMultiTexCoord4iv,
+    unix_glMultiTexCoord4ivARB,
+    unix_glMultiTexCoord4ivSGIS,
+    unix_glMultiTexCoord4s,
+    unix_glMultiTexCoord4sARB,
+    unix_glMultiTexCoord4sSGIS,
+    unix_glMultiTexCoord4sv,
+    unix_glMultiTexCoord4svARB,
+    unix_glMultiTexCoord4svSGIS,
+    unix_glMultiTexCoord4xOES,
+    unix_glMultiTexCoord4xvOES,
+    unix_glMultiTexCoordP1ui,
+    unix_glMultiTexCoordP1uiv,
+    unix_glMultiTexCoordP2ui,
+    unix_glMultiTexCoordP2uiv,
+    unix_glMultiTexCoordP3ui,
+    unix_glMultiTexCoordP3uiv,
+    unix_glMultiTexCoordP4ui,
+    unix_glMultiTexCoordP4uiv,
+    unix_glMultiTexCoordPointerEXT,
+    unix_glMultiTexCoordPointerSGIS,
+    unix_glMultiTexEnvfEXT,
+    unix_glMultiTexEnvfvEXT,
+    unix_glMultiTexEnviEXT,
+    unix_glMultiTexEnvivEXT,
+    unix_glMultiTexGendEXT,
+    unix_glMultiTexGendvEXT,
+    unix_glMultiTexGenfEXT,
+    unix_glMultiTexGenfvEXT,
+    unix_glMultiTexGeniEXT,
+    unix_glMultiTexGenivEXT,
+    unix_glMultiTexImage1DEXT,
+    unix_glMultiTexImage2DEXT,
+    unix_glMultiTexImage3DEXT,
+    unix_glMultiTexParameterIivEXT,
+    unix_glMultiTexParameterIuivEXT,
+    unix_glMultiTexParameterfEXT,
+    unix_glMultiTexParameterfvEXT,
+    unix_glMultiTexParameteriEXT,
+    unix_glMultiTexParameterivEXT,
+    unix_glMultiTexRenderbufferEXT,
+    unix_glMultiTexSubImage1DEXT,
+    unix_glMultiTexSubImage2DEXT,
+    unix_glMultiTexSubImage3DEXT,
+    unix_glMulticastBarrierNV,
+    unix_glMulticastBlitFramebufferNV,
+    unix_glMulticastBufferSubDataNV,
+    unix_glMulticastCopyBufferSubDataNV,
+    unix_glMulticastCopyImageSubDataNV,
+    unix_glMulticastFramebufferSampleLocationsfvNV,
+    unix_glMulticastGetQueryObjecti64vNV,
+    unix_glMulticastGetQueryObjectivNV,
+    unix_glMulticastGetQueryObjectui64vNV,
+    unix_glMulticastGetQueryObjectuivNV,
+    unix_glMulticastScissorArrayvNVX,
+    unix_glMulticastViewportArrayvNVX,
+    unix_glMulticastViewportPositionWScaleNVX,
+    unix_glMulticastWaitSyncNV,
+    unix_glNamedBufferAttachMemoryNV,
+    unix_glNamedBufferData,
+    unix_glNamedBufferDataEXT,
+    unix_glNamedBufferPageCommitmentARB,
+    unix_glNamedBufferPageCommitmentEXT,
+    unix_glNamedBufferStorage,
+    unix_glNamedBufferStorageEXT,
+    unix_glNamedBufferStorageExternalEXT,
+    unix_glNamedBufferStorageMemEXT,
+    unix_glNamedBufferSubData,
+    unix_glNamedBufferSubDataEXT,
+    unix_glNamedCopyBufferSubDataEXT,
+    unix_glNamedFramebufferDrawBuffer,
+    unix_glNamedFramebufferDrawBuffers,
+    unix_glNamedFramebufferParameteri,
+    unix_glNamedFramebufferParameteriEXT,
+    unix_glNamedFramebufferReadBuffer,
+    unix_glNamedFramebufferRenderbuffer,
+    unix_glNamedFramebufferRenderbufferEXT,
+    unix_glNamedFramebufferSampleLocationsfvARB,
+    unix_glNamedFramebufferSampleLocationsfvNV,
+    unix_glNamedFramebufferSamplePositionsfvAMD,
+    unix_glNamedFramebufferTexture,
+    unix_glNamedFramebufferTexture1DEXT,
+    unix_glNamedFramebufferTexture2DEXT,
+    unix_glNamedFramebufferTexture3DEXT,
+    unix_glNamedFramebufferTextureEXT,
+    unix_glNamedFramebufferTextureFaceEXT,
+    unix_glNamedFramebufferTextureLayer,
+    unix_glNamedFramebufferTextureLayerEXT,
+    unix_glNamedProgramLocalParameter4dEXT,
+    unix_glNamedProgramLocalParameter4dvEXT,
+    unix_glNamedProgramLocalParameter4fEXT,
+    unix_glNamedProgramLocalParameter4fvEXT,
+    unix_glNamedProgramLocalParameterI4iEXT,
+    unix_glNamedProgramLocalParameterI4ivEXT,
+    unix_glNamedProgramLocalParameterI4uiEXT,
+    unix_glNamedProgramLocalParameterI4uivEXT,
+    unix_glNamedProgramLocalParameters4fvEXT,
+    unix_glNamedProgramLocalParametersI4ivEXT,
+    unix_glNamedProgramLocalParametersI4uivEXT,
+    unix_glNamedProgramStringEXT,
+    unix_glNamedRenderbufferStorage,
+    unix_glNamedRenderbufferStorageEXT,
+    unix_glNamedRenderbufferStorageMultisample,
+    unix_glNamedRenderbufferStorageMultisampleAdvancedAMD,
+    unix_glNamedRenderbufferStorageMultisampleCoverageEXT,
+    unix_glNamedRenderbufferStorageMultisampleEXT,
+    unix_glNamedStringARB,
+    unix_glNewBufferRegion,
+    unix_glNewObjectBufferATI,
+    unix_glNormal3fVertex3fSUN,
+    unix_glNormal3fVertex3fvSUN,
+    unix_glNormal3hNV,
+    unix_glNormal3hvNV,
+    unix_glNormal3xOES,
+    unix_glNormal3xvOES,
+    unix_glNormalFormatNV,
+    unix_glNormalP3ui,
+    unix_glNormalP3uiv,
+    unix_glNormalPointerEXT,
+    unix_glNormalPointerListIBM,
+    unix_glNormalPointervINTEL,
+    unix_glNormalStream3bATI,
+    unix_glNormalStream3bvATI,
+    unix_glNormalStream3dATI,
+    unix_glNormalStream3dvATI,
+    unix_glNormalStream3fATI,
+    unix_glNormalStream3fvATI,
+    unix_glNormalStream3iATI,
+    unix_glNormalStream3ivATI,
+    unix_glNormalStream3sATI,
+    unix_glNormalStream3svATI,
+    unix_glObjectLabel,
+    unix_glObjectPtrLabel,
+    unix_glObjectPurgeableAPPLE,
+    unix_glObjectUnpurgeableAPPLE,
+    unix_glOrthofOES,
+    unix_glOrthoxOES,
+    unix_glPNTrianglesfATI,
+    unix_glPNTrianglesiATI,
+    unix_glPassTexCoordATI,
+    unix_glPassThroughxOES,
+    unix_glPatchParameterfv,
+    unix_glPatchParameteri,
+    unix_glPathColorGenNV,
+    unix_glPathCommandsNV,
+    unix_glPathCoordsNV,
+    unix_glPathCoverDepthFuncNV,
+    unix_glPathDashArrayNV,
+    unix_glPathFogGenNV,
+    unix_glPathGlyphIndexArrayNV,
+    unix_glPathGlyphIndexRangeNV,
+    unix_glPathGlyphRangeNV,
+    unix_glPathGlyphsNV,
+    unix_glPathMemoryGlyphIndexArrayNV,
+    unix_glPathParameterfNV,
+    unix_glPathParameterfvNV,
+    unix_glPathParameteriNV,
+    unix_glPathParameterivNV,
+    unix_glPathStencilDepthOffsetNV,
+    unix_glPathStencilFuncNV,
+    unix_glPathStringNV,
+    unix_glPathSubCommandsNV,
+    unix_glPathSubCoordsNV,
+    unix_glPathTexGenNV,
+    unix_glPauseTransformFeedback,
+    unix_glPauseTransformFeedbackNV,
+    unix_glPixelDataRangeNV,
+    unix_glPixelMapx,
+    unix_glPixelStorex,
+    unix_glPixelTexGenParameterfSGIS,
+    unix_glPixelTexGenParameterfvSGIS,
+    unix_glPixelTexGenParameteriSGIS,
+    unix_glPixelTexGenParameterivSGIS,
+    unix_glPixelTexGenSGIX,
+    unix_glPixelTransferxOES,
+    unix_glPixelTransformParameterfEXT,
+    unix_glPixelTransformParameterfvEXT,
+    unix_glPixelTransformParameteriEXT,
+    unix_glPixelTransformParameterivEXT,
+    unix_glPixelZoomxOES,
+    unix_glPointAlongPathNV,
+    unix_glPointParameterf,
+    unix_glPointParameterfARB,
+    unix_glPointParameterfEXT,
+    unix_glPointParameterfSGIS,
+    unix_glPointParameterfv,
+    unix_glPointParameterfvARB,
+    unix_glPointParameterfvEXT,
+    unix_glPointParameterfvSGIS,
+    unix_glPointParameteri,
+    unix_glPointParameteriNV,
+    unix_glPointParameteriv,
+    unix_glPointParameterivNV,
+    unix_glPointParameterxvOES,
+    unix_glPointSizexOES,
+    unix_glPollAsyncSGIX,
+    unix_glPollInstrumentsSGIX,
+    unix_glPolygonOffsetClamp,
+    unix_glPolygonOffsetClampEXT,
+    unix_glPolygonOffsetEXT,
+    unix_glPolygonOffsetxOES,
+    unix_glPopDebugGroup,
+    unix_glPopGroupMarkerEXT,
+    unix_glPresentFrameDualFillNV,
+    unix_glPresentFrameKeyedNV,
+    unix_glPrimitiveBoundingBoxARB,
+    unix_glPrimitiveRestartIndex,
+    unix_glPrimitiveRestartIndexNV,
+    unix_glPrimitiveRestartNV,
+    unix_glPrioritizeTexturesEXT,
+    unix_glPrioritizeTexturesxOES,
+    unix_glProgramBinary,
+    unix_glProgramBufferParametersIivNV,
+    unix_glProgramBufferParametersIuivNV,
+    unix_glProgramBufferParametersfvNV,
+    unix_glProgramEnvParameter4dARB,
+    unix_glProgramEnvParameter4dvARB,
+    unix_glProgramEnvParameter4fARB,
+    unix_glProgramEnvParameter4fvARB,
+    unix_glProgramEnvParameterI4iNV,
+    unix_glProgramEnvParameterI4ivNV,
+    unix_glProgramEnvParameterI4uiNV,
+    unix_glProgramEnvParameterI4uivNV,
+    unix_glProgramEnvParameters4fvEXT,
+    unix_glProgramEnvParametersI4ivNV,
+    unix_glProgramEnvParametersI4uivNV,
+    unix_glProgramLocalParameter4dARB,
+    unix_glProgramLocalParameter4dvARB,
+    unix_glProgramLocalParameter4fARB,
+    unix_glProgramLocalParameter4fvARB,
+    unix_glProgramLocalParameterI4iNV,
+    unix_glProgramLocalParameterI4ivNV,
+    unix_glProgramLocalParameterI4uiNV,
+    unix_glProgramLocalParameterI4uivNV,
+    unix_glProgramLocalParameters4fvEXT,
+    unix_glProgramLocalParametersI4ivNV,
+    unix_glProgramLocalParametersI4uivNV,
+    unix_glProgramNamedParameter4dNV,
+    unix_glProgramNamedParameter4dvNV,
+    unix_glProgramNamedParameter4fNV,
+    unix_glProgramNamedParameter4fvNV,
+    unix_glProgramParameter4dNV,
+    unix_glProgramParameter4dvNV,
+    unix_glProgramParameter4fNV,
+    unix_glProgramParameter4fvNV,
+    unix_glProgramParameteri,
+    unix_glProgramParameteriARB,
+    unix_glProgramParameteriEXT,
+    unix_glProgramParameters4dvNV,
+    unix_glProgramParameters4fvNV,
+    unix_glProgramPathFragmentInputGenNV,
+    unix_glProgramStringARB,
+    unix_glProgramSubroutineParametersuivNV,
+    unix_glProgramUniform1d,
+    unix_glProgramUniform1dEXT,
+    unix_glProgramUniform1dv,
+    unix_glProgramUniform1dvEXT,
+    unix_glProgramUniform1f,
+    unix_glProgramUniform1fEXT,
+    unix_glProgramUniform1fv,
+    unix_glProgramUniform1fvEXT,
+    unix_glProgramUniform1i,
+    unix_glProgramUniform1i64ARB,
+    unix_glProgramUniform1i64NV,
+    unix_glProgramUniform1i64vARB,
+    unix_glProgramUniform1i64vNV,
+    unix_glProgramUniform1iEXT,
+    unix_glProgramUniform1iv,
+    unix_glProgramUniform1ivEXT,
+    unix_glProgramUniform1ui,
+    unix_glProgramUniform1ui64ARB,
+    unix_glProgramUniform1ui64NV,
+    unix_glProgramUniform1ui64vARB,
+    unix_glProgramUniform1ui64vNV,
+    unix_glProgramUniform1uiEXT,
+    unix_glProgramUniform1uiv,
+    unix_glProgramUniform1uivEXT,
+    unix_glProgramUniform2d,
+    unix_glProgramUniform2dEXT,
+    unix_glProgramUniform2dv,
+    unix_glProgramUniform2dvEXT,
+    unix_glProgramUniform2f,
+    unix_glProgramUniform2fEXT,
+    unix_glProgramUniform2fv,
+    unix_glProgramUniform2fvEXT,
+    unix_glProgramUniform2i,
+    unix_glProgramUniform2i64ARB,
+    unix_glProgramUniform2i64NV,
+    unix_glProgramUniform2i64vARB,
+    unix_glProgramUniform2i64vNV,
+    unix_glProgramUniform2iEXT,
+    unix_glProgramUniform2iv,
+    unix_glProgramUniform2ivEXT,
+    unix_glProgramUniform2ui,
+    unix_glProgramUniform2ui64ARB,
+    unix_glProgramUniform2ui64NV,
+    unix_glProgramUniform2ui64vARB,
+    unix_glProgramUniform2ui64vNV,
+    unix_glProgramUniform2uiEXT,
+    unix_glProgramUniform2uiv,
+    unix_glProgramUniform2uivEXT,
+    unix_glProgramUniform3d,
+    unix_glProgramUniform3dEXT,
+    unix_glProgramUniform3dv,
+    unix_glProgramUniform3dvEXT,
+    unix_glProgramUniform3f,
+    unix_glProgramUniform3fEXT,
+    unix_glProgramUniform3fv,
+    unix_glProgramUniform3fvEXT,
+    unix_glProgramUniform3i,
+    unix_glProgramUniform3i64ARB,
+    unix_glProgramUniform3i64NV,
+    unix_glProgramUniform3i64vARB,
+    unix_glProgramUniform3i64vNV,
+    unix_glProgramUniform3iEXT,
+    unix_glProgramUniform3iv,
+    unix_glProgramUniform3ivEXT,
+    unix_glProgramUniform3ui,
+    unix_glProgramUniform3ui64ARB,
+    unix_glProgramUniform3ui64NV,
+    unix_glProgramUniform3ui64vARB,
+    unix_glProgramUniform3ui64vNV,
+    unix_glProgramUniform3uiEXT,
+    unix_glProgramUniform3uiv,
+    unix_glProgramUniform3uivEXT,
+    unix_glProgramUniform4d,
+    unix_glProgramUniform4dEXT,
+    unix_glProgramUniform4dv,
+    unix_glProgramUniform4dvEXT,
+    unix_glProgramUniform4f,
+    unix_glProgramUniform4fEXT,
+    unix_glProgramUniform4fv,
+    unix_glProgramUniform4fvEXT,
+    unix_glProgramUniform4i,
+    unix_glProgramUniform4i64ARB,
+    unix_glProgramUniform4i64NV,
+    unix_glProgramUniform4i64vARB,
+    unix_glProgramUniform4i64vNV,
+    unix_glProgramUniform4iEXT,
+    unix_glProgramUniform4iv,
+    unix_glProgramUniform4ivEXT,
+    unix_glProgramUniform4ui,
+    unix_glProgramUniform4ui64ARB,
+    unix_glProgramUniform4ui64NV,
+    unix_glProgramUniform4ui64vARB,
+    unix_glProgramUniform4ui64vNV,
+    unix_glProgramUniform4uiEXT,
+    unix_glProgramUniform4uiv,
+    unix_glProgramUniform4uivEXT,
+    unix_glProgramUniformHandleui64ARB,
+    unix_glProgramUniformHandleui64NV,
+    unix_glProgramUniformHandleui64vARB,
+    unix_glProgramUniformHandleui64vNV,
+    unix_glProgramUniformMatrix2dv,
+    unix_glProgramUniformMatrix2dvEXT,
+    unix_glProgramUniformMatrix2fv,
+    unix_glProgramUniformMatrix2fvEXT,
+    unix_glProgramUniformMatrix2x3dv,
+    unix_glProgramUniformMatrix2x3dvEXT,
+    unix_glProgramUniformMatrix2x3fv,
+    unix_glProgramUniformMatrix2x3fvEXT,
+    unix_glProgramUniformMatrix2x4dv,
+    unix_glProgramUniformMatrix2x4dvEXT,
+    unix_glProgramUniformMatrix2x4fv,
+    unix_glProgramUniformMatrix2x4fvEXT,
+    unix_glProgramUniformMatrix3dv,
+    unix_glProgramUniformMatrix3dvEXT,
+    unix_glProgramUniformMatrix3fv,
+    unix_glProgramUniformMatrix3fvEXT,
+    unix_glProgramUniformMatrix3x2dv,
+    unix_glProgramUniformMatrix3x2dvEXT,
+    unix_glProgramUniformMatrix3x2fv,
+    unix_glProgramUniformMatrix3x2fvEXT,
+    unix_glProgramUniformMatrix3x4dv,
+    unix_glProgramUniformMatrix3x4dvEXT,
+    unix_glProgramUniformMatrix3x4fv,
+    unix_glProgramUniformMatrix3x4fvEXT,
+    unix_glProgramUniformMatrix4dv,
+    unix_glProgramUniformMatrix4dvEXT,
+    unix_glProgramUniformMatrix4fv,
+    unix_glProgramUniformMatrix4fvEXT,
+    unix_glProgramUniformMatrix4x2dv,
+    unix_glProgramUniformMatrix4x2dvEXT,
+    unix_glProgramUniformMatrix4x2fv,
+    unix_glProgramUniformMatrix4x2fvEXT,
+    unix_glProgramUniformMatrix4x3dv,
+    unix_glProgramUniformMatrix4x3dvEXT,
+    unix_glProgramUniformMatrix4x3fv,
+    unix_glProgramUniformMatrix4x3fvEXT,
+    unix_glProgramUniformui64NV,
+    unix_glProgramUniformui64vNV,
+    unix_glProgramVertexLimitNV,
+    unix_glProvokingVertex,
+    unix_glProvokingVertexEXT,
+    unix_glPushClientAttribDefaultEXT,
+    unix_glPushDebugGroup,
+    unix_glPushGroupMarkerEXT,
+    unix_glQueryCounter,
+    unix_glQueryMatrixxOES,
+    unix_glQueryObjectParameteruiAMD,
+    unix_glQueryResourceNV,
+    unix_glQueryResourceTagNV,
+    unix_glRasterPos2xOES,
+    unix_glRasterPos2xvOES,
+    unix_glRasterPos3xOES,
+    unix_glRasterPos3xvOES,
+    unix_glRasterPos4xOES,
+    unix_glRasterPos4xvOES,
+    unix_glRasterSamplesEXT,
+    unix_glReadBufferRegion,
+    unix_glReadInstrumentsSGIX,
+    unix_glReadnPixels,
+    unix_glReadnPixelsARB,
+    unix_glRectxOES,
+    unix_glRectxvOES,
+    unix_glReferencePlaneSGIX,
+    unix_glReleaseKeyedMutexWin32EXT,
+    unix_glReleaseShaderCompiler,
+    unix_glRenderGpuMaskNV,
+    unix_glRenderbufferStorage,
+    unix_glRenderbufferStorageEXT,
+    unix_glRenderbufferStorageMultisample,
+    unix_glRenderbufferStorageMultisampleAdvancedAMD,
+    unix_glRenderbufferStorageMultisampleCoverageNV,
+    unix_glRenderbufferStorageMultisampleEXT,
+    unix_glReplacementCodePointerSUN,
+    unix_glReplacementCodeubSUN,
+    unix_glReplacementCodeubvSUN,
+    unix_glReplacementCodeuiColor3fVertex3fSUN,
+    unix_glReplacementCodeuiColor3fVertex3fvSUN,
+    unix_glReplacementCodeuiColor4fNormal3fVertex3fSUN,
+    unix_glReplacementCodeuiColor4fNormal3fVertex3fvSUN,
+    unix_glReplacementCodeuiColor4ubVertex3fSUN,
+    unix_glReplacementCodeuiColor4ubVertex3fvSUN,
+    unix_glReplacementCodeuiNormal3fVertex3fSUN,
+    unix_glReplacementCodeuiNormal3fVertex3fvSUN,
+    unix_glReplacementCodeuiSUN,
+    unix_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN,
+    unix_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN,
+    unix_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN,
+    unix_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN,
+    unix_glReplacementCodeuiTexCoord2fVertex3fSUN,
+    unix_glReplacementCodeuiTexCoord2fVertex3fvSUN,
+    unix_glReplacementCodeuiVertex3fSUN,
+    unix_glReplacementCodeuiVertex3fvSUN,
+    unix_glReplacementCodeuivSUN,
+    unix_glReplacementCodeusSUN,
+    unix_glReplacementCodeusvSUN,
+    unix_glRequestResidentProgramsNV,
+    unix_glResetHistogram,
+    unix_glResetHistogramEXT,
+    unix_glResetMemoryObjectParameterNV,
+    unix_glResetMinmax,
+    unix_glResetMinmaxEXT,
+    unix_glResizeBuffersMESA,
+    unix_glResolveDepthValuesNV,
+    unix_glResumeTransformFeedback,
+    unix_glResumeTransformFeedbackNV,
+    unix_glRotatexOES,
+    unix_glSampleCoverage,
+    unix_glSampleCoverageARB,
+    unix_glSampleMapATI,
+    unix_glSampleMaskEXT,
+    unix_glSampleMaskIndexedNV,
+    unix_glSampleMaskSGIS,
+    unix_glSampleMaski,
+    unix_glSamplePatternEXT,
+    unix_glSamplePatternSGIS,
+    unix_glSamplerParameterIiv,
+    unix_glSamplerParameterIuiv,
+    unix_glSamplerParameterf,
+    unix_glSamplerParameterfv,
+    unix_glSamplerParameteri,
+    unix_glSamplerParameteriv,
+    unix_glScalexOES,
+    unix_glScissorArrayv,
+    unix_glScissorExclusiveArrayvNV,
+    unix_glScissorExclusiveNV,
+    unix_glScissorIndexed,
+    unix_glScissorIndexedv,
+    unix_glSecondaryColor3b,
+    unix_glSecondaryColor3bEXT,
+    unix_glSecondaryColor3bv,
+    unix_glSecondaryColor3bvEXT,
+    unix_glSecondaryColor3d,
+    unix_glSecondaryColor3dEXT,
+    unix_glSecondaryColor3dv,
+    unix_glSecondaryColor3dvEXT,
+    unix_glSecondaryColor3f,
+    unix_glSecondaryColor3fEXT,
+    unix_glSecondaryColor3fv,
+    unix_glSecondaryColor3fvEXT,
+    unix_glSecondaryColor3hNV,
+    unix_glSecondaryColor3hvNV,
+    unix_glSecondaryColor3i,
+    unix_glSecondaryColor3iEXT,
+    unix_glSecondaryColor3iv,
+    unix_glSecondaryColor3ivEXT,
+    unix_glSecondaryColor3s,
+    unix_glSecondaryColor3sEXT,
+    unix_glSecondaryColor3sv,
+    unix_glSecondaryColor3svEXT,
+    unix_glSecondaryColor3ub,
+    unix_glSecondaryColor3ubEXT,
+    unix_glSecondaryColor3ubv,
+    unix_glSecondaryColor3ubvEXT,
+    unix_glSecondaryColor3ui,
+    unix_glSecondaryColor3uiEXT,
+    unix_glSecondaryColor3uiv,
+    unix_glSecondaryColor3uivEXT,
+    unix_glSecondaryColor3us,
+    unix_glSecondaryColor3usEXT,
+    unix_glSecondaryColor3usv,
+    unix_glSecondaryColor3usvEXT,
+    unix_glSecondaryColorFormatNV,
+    unix_glSecondaryColorP3ui,
+    unix_glSecondaryColorP3uiv,
+    unix_glSecondaryColorPointer,
+    unix_glSecondaryColorPointerEXT,
+    unix_glSecondaryColorPointerListIBM,
+    unix_glSelectPerfMonitorCountersAMD,
+    unix_glSelectTextureCoordSetSGIS,
+    unix_glSelectTextureSGIS,
+    unix_glSemaphoreParameterui64vEXT,
+    unix_glSeparableFilter2D,
+    unix_glSeparableFilter2DEXT,
+    unix_glSetFenceAPPLE,
+    unix_glSetFenceNV,
+    unix_glSetFragmentShaderConstantATI,
+    unix_glSetInvariantEXT,
+    unix_glSetLocalConstantEXT,
+    unix_glSetMultisamplefvAMD,
+    unix_glShaderBinary,
+    unix_glShaderOp1EXT,
+    unix_glShaderOp2EXT,
+    unix_glShaderOp3EXT,
+    unix_glShaderSource,
+    unix_glShaderSourceARB,
+    unix_glShaderStorageBlockBinding,
+    unix_glShadingRateImageBarrierNV,
+    unix_glShadingRateImagePaletteNV,
+    unix_glShadingRateSampleOrderCustomNV,
+    unix_glShadingRateSampleOrderNV,
+    unix_glSharpenTexFuncSGIS,
+    unix_glSignalSemaphoreEXT,
+    unix_glSignalSemaphoreui64NVX,
+    unix_glSignalVkFenceNV,
+    unix_glSignalVkSemaphoreNV,
+    unix_glSpecializeShader,
+    unix_glSpecializeShaderARB,
+    unix_glSpriteParameterfSGIX,
+    unix_glSpriteParameterfvSGIX,
+    unix_glSpriteParameteriSGIX,
+    unix_glSpriteParameterivSGIX,
+    unix_glStartInstrumentsSGIX,
+    unix_glStateCaptureNV,
+    unix_glStencilClearTagEXT,
+    unix_glStencilFillPathInstancedNV,
+    unix_glStencilFillPathNV,
+    unix_glStencilFuncSeparate,
+    unix_glStencilFuncSeparateATI,
+    unix_glStencilMaskSeparate,
+    unix_glStencilOpSeparate,
+    unix_glStencilOpSeparateATI,
+    unix_glStencilOpValueAMD,
+    unix_glStencilStrokePathInstancedNV,
+    unix_glStencilStrokePathNV,
+    unix_glStencilThenCoverFillPathInstancedNV,
+    unix_glStencilThenCoverFillPathNV,
+    unix_glStencilThenCoverStrokePathInstancedNV,
+    unix_glStencilThenCoverStrokePathNV,
+    unix_glStopInstrumentsSGIX,
+    unix_glStringMarkerGREMEDY,
+    unix_glSubpixelPrecisionBiasNV,
+    unix_glSwizzleEXT,
+    unix_glSyncTextureINTEL,
+    unix_glTagSampleBufferSGIX,
+    unix_glTangent3bEXT,
+    unix_glTangent3bvEXT,
+    unix_glTangent3dEXT,
+    unix_glTangent3dvEXT,
+    unix_glTangent3fEXT,
+    unix_glTangent3fvEXT,
+    unix_glTangent3iEXT,
+    unix_glTangent3ivEXT,
+    unix_glTangent3sEXT,
+    unix_glTangent3svEXT,
+    unix_glTangentPointerEXT,
+    unix_glTbufferMask3DFX,
+    unix_glTessellationFactorAMD,
+    unix_glTessellationModeAMD,
+    unix_glTestFenceAPPLE,
+    unix_glTestFenceNV,
+    unix_glTestObjectAPPLE,
+    unix_glTexAttachMemoryNV,
+    unix_glTexBuffer,
+    unix_glTexBufferARB,
+    unix_glTexBufferEXT,
+    unix_glTexBufferRange,
+    unix_glTexBumpParameterfvATI,
+    unix_glTexBumpParameterivATI,
+    unix_glTexCoord1bOES,
+    unix_glTexCoord1bvOES,
+    unix_glTexCoord1hNV,
+    unix_glTexCoord1hvNV,
+    unix_glTexCoord1xOES,
+    unix_glTexCoord1xvOES,
+    unix_glTexCoord2bOES,
+    unix_glTexCoord2bvOES,
+    unix_glTexCoord2fColor3fVertex3fSUN,
+    unix_glTexCoord2fColor3fVertex3fvSUN,
+    unix_glTexCoord2fColor4fNormal3fVertex3fSUN,
+    unix_glTexCoord2fColor4fNormal3fVertex3fvSUN,
+    unix_glTexCoord2fColor4ubVertex3fSUN,
+    unix_glTexCoord2fColor4ubVertex3fvSUN,
+    unix_glTexCoord2fNormal3fVertex3fSUN,
+    unix_glTexCoord2fNormal3fVertex3fvSUN,
+    unix_glTexCoord2fVertex3fSUN,
+    unix_glTexCoord2fVertex3fvSUN,
+    unix_glTexCoord2hNV,
+    unix_glTexCoord2hvNV,
+    unix_glTexCoord2xOES,
+    unix_glTexCoord2xvOES,
+    unix_glTexCoord3bOES,
+    unix_glTexCoord3bvOES,
+    unix_glTexCoord3hNV,
+    unix_glTexCoord3hvNV,
+    unix_glTexCoord3xOES,
+    unix_glTexCoord3xvOES,
+    unix_glTexCoord4bOES,
+    unix_glTexCoord4bvOES,
+    unix_glTexCoord4fColor4fNormal3fVertex4fSUN,
+    unix_glTexCoord4fColor4fNormal3fVertex4fvSUN,
+    unix_glTexCoord4fVertex4fSUN,
+    unix_glTexCoord4fVertex4fvSUN,
+    unix_glTexCoord4hNV,
+    unix_glTexCoord4hvNV,
+    unix_glTexCoord4xOES,
+    unix_glTexCoord4xvOES,
+    unix_glTexCoordFormatNV,
+    unix_glTexCoordP1ui,
+    unix_glTexCoordP1uiv,
+    unix_glTexCoordP2ui,
+    unix_glTexCoordP2uiv,
+    unix_glTexCoordP3ui,
+    unix_glTexCoordP3uiv,
+    unix_glTexCoordP4ui,
+    unix_glTexCoordP4uiv,
+    unix_glTexCoordPointerEXT,
+    unix_glTexCoordPointerListIBM,
+    unix_glTexCoordPointervINTEL,
+    unix_glTexEnvxOES,
+    unix_glTexEnvxvOES,
+    unix_glTexFilterFuncSGIS,
+    unix_glTexGenxOES,
+    unix_glTexGenxvOES,
+    unix_glTexImage2DMultisample,
+    unix_glTexImage2DMultisampleCoverageNV,
+    unix_glTexImage3D,
+    unix_glTexImage3DEXT,
+    unix_glTexImage3DMultisample,
+    unix_glTexImage3DMultisampleCoverageNV,
+    unix_glTexImage4DSGIS,
+    unix_glTexPageCommitmentARB,
+    unix_glTexParameterIiv,
+    unix_glTexParameterIivEXT,
+    unix_glTexParameterIuiv,
+    unix_glTexParameterIuivEXT,
+    unix_glTexParameterxOES,
+    unix_glTexParameterxvOES,
+    unix_glTexRenderbufferNV,
+    unix_glTexStorage1D,
+    unix_glTexStorage2D,
+    unix_glTexStorage2DMultisample,
+    unix_glTexStorage3D,
+    unix_glTexStorage3DMultisample,
+    unix_glTexStorageMem1DEXT,
+    unix_glTexStorageMem2DEXT,
+    unix_glTexStorageMem2DMultisampleEXT,
+    unix_glTexStorageMem3DEXT,
+    unix_glTexStorageMem3DMultisampleEXT,
+    unix_glTexStorageSparseAMD,
+    unix_glTexSubImage1DEXT,
+    unix_glTexSubImage2DEXT,
+    unix_glTexSubImage3D,
+    unix_glTexSubImage3DEXT,
+    unix_glTexSubImage4DSGIS,
+    unix_glTextureAttachMemoryNV,
+    unix_glTextureBarrier,
+    unix_glTextureBarrierNV,
+    unix_glTextureBuffer,
+    unix_glTextureBufferEXT,
+    unix_glTextureBufferRange,
+    unix_glTextureBufferRangeEXT,
+    unix_glTextureColorMaskSGIS,
+    unix_glTextureImage1DEXT,
+    unix_glTextureImage2DEXT,
+    unix_glTextureImage2DMultisampleCoverageNV,
+    unix_glTextureImage2DMultisampleNV,
+    unix_glTextureImage3DEXT,
+    unix_glTextureImage3DMultisampleCoverageNV,
+    unix_glTextureImage3DMultisampleNV,
+    unix_glTextureLightEXT,
+    unix_glTextureMaterialEXT,
+    unix_glTextureNormalEXT,
+    unix_glTexturePageCommitmentEXT,
+    unix_glTextureParameterIiv,
+    unix_glTextureParameterIivEXT,
+    unix_glTextureParameterIuiv,
+    unix_glTextureParameterIuivEXT,
+    unix_glTextureParameterf,
+    unix_glTextureParameterfEXT,
+    unix_glTextureParameterfv,
+    unix_glTextureParameterfvEXT,
+    unix_glTextureParameteri,
+    unix_glTextureParameteriEXT,
+    unix_glTextureParameteriv,
+    unix_glTextureParameterivEXT,
+    unix_glTextureRangeAPPLE,
+    unix_glTextureRenderbufferEXT,
+    unix_glTextureStorage1D,
+    unix_glTextureStorage1DEXT,
+    unix_glTextureStorage2D,
+    unix_glTextureStorage2DEXT,
+    unix_glTextureStorage2DMultisample,
+    unix_glTextureStorage2DMultisampleEXT,
+    unix_glTextureStorage3D,
+    unix_glTextureStorage3DEXT,
+    unix_glTextureStorage3DMultisample,
+    unix_glTextureStorage3DMultisampleEXT,
+    unix_glTextureStorageMem1DEXT,
+    unix_glTextureStorageMem2DEXT,
+    unix_glTextureStorageMem2DMultisampleEXT,
+    unix_glTextureStorageMem3DEXT,
+    unix_glTextureStorageMem3DMultisampleEXT,
+    unix_glTextureStorageSparseAMD,
+    unix_glTextureSubImage1D,
+    unix_glTextureSubImage1DEXT,
+    unix_glTextureSubImage2D,
+    unix_glTextureSubImage2DEXT,
+    unix_glTextureSubImage3D,
+    unix_glTextureSubImage3DEXT,
+    unix_glTextureView,
+    unix_glTrackMatrixNV,
+    unix_glTransformFeedbackAttribsNV,
+    unix_glTransformFeedbackBufferBase,
+    unix_glTransformFeedbackBufferRange,
+    unix_glTransformFeedbackStreamAttribsNV,
+    unix_glTransformFeedbackVaryings,
+    unix_glTransformFeedbackVaryingsEXT,
+    unix_glTransformFeedbackVaryingsNV,
+    unix_glTransformPathNV,
+    unix_glTranslatexOES,
+    unix_glUniform1d,
+    unix_glUniform1dv,
+    unix_glUniform1f,
+    unix_glUniform1fARB,
+    unix_glUniform1fv,
+    unix_glUniform1fvARB,
+    unix_glUniform1i,
+    unix_glUniform1i64ARB,
+    unix_glUniform1i64NV,
+    unix_glUniform1i64vARB,
+    unix_glUniform1i64vNV,
+    unix_glUniform1iARB,
+    unix_glUniform1iv,
+    unix_glUniform1ivARB,
+    unix_glUniform1ui,
+    unix_glUniform1ui64ARB,
+    unix_glUniform1ui64NV,
+    unix_glUniform1ui64vARB,
+    unix_glUniform1ui64vNV,
+    unix_glUniform1uiEXT,
+    unix_glUniform1uiv,
+    unix_glUniform1uivEXT,
+    unix_glUniform2d,
+    unix_glUniform2dv,
+    unix_glUniform2f,
+    unix_glUniform2fARB,
+    unix_glUniform2fv,
+    unix_glUniform2fvARB,
+    unix_glUniform2i,
+    unix_glUniform2i64ARB,
+    unix_glUniform2i64NV,
+    unix_glUniform2i64vARB,
+    unix_glUniform2i64vNV,
+    unix_glUniform2iARB,
+    unix_glUniform2iv,
+    unix_glUniform2ivARB,
+    unix_glUniform2ui,
+    unix_glUniform2ui64ARB,
+    unix_glUniform2ui64NV,
+    unix_glUniform2ui64vARB,
+    unix_glUniform2ui64vNV,
+    unix_glUniform2uiEXT,
+    unix_glUniform2uiv,
+    unix_glUniform2uivEXT,
+    unix_glUniform3d,
+    unix_glUniform3dv,
+    unix_glUniform3f,
+    unix_glUniform3fARB,
+    unix_glUniform3fv,
+    unix_glUniform3fvARB,
+    unix_glUniform3i,
+    unix_glUniform3i64ARB,
+    unix_glUniform3i64NV,
+    unix_glUniform3i64vARB,
+    unix_glUniform3i64vNV,
+    unix_glUniform3iARB,
+    unix_glUniform3iv,
+    unix_glUniform3ivARB,
+    unix_glUniform3ui,
+    unix_glUniform3ui64ARB,
+    unix_glUniform3ui64NV,
+    unix_glUniform3ui64vARB,
+    unix_glUniform3ui64vNV,
+    unix_glUniform3uiEXT,
+    unix_glUniform3uiv,
+    unix_glUniform3uivEXT,
+    unix_glUniform4d,
+    unix_glUniform4dv,
+    unix_glUniform4f,
+    unix_glUniform4fARB,
+    unix_glUniform4fv,
+    unix_glUniform4fvARB,
+    unix_glUniform4i,
+    unix_glUniform4i64ARB,
+    unix_glUniform4i64NV,
+    unix_glUniform4i64vARB,
+    unix_glUniform4i64vNV,
+    unix_glUniform4iARB,
+    unix_glUniform4iv,
+    unix_glUniform4ivARB,
+    unix_glUniform4ui,
+    unix_glUniform4ui64ARB,
+    unix_glUniform4ui64NV,
+    unix_glUniform4ui64vARB,
+    unix_glUniform4ui64vNV,
+    unix_glUniform4uiEXT,
+    unix_glUniform4uiv,
+    unix_glUniform4uivEXT,
+    unix_glUniformBlockBinding,
+    unix_glUniformBufferEXT,
+    unix_glUniformHandleui64ARB,
+    unix_glUniformHandleui64NV,
+    unix_glUniformHandleui64vARB,
+    unix_glUniformHandleui64vNV,
+    unix_glUniformMatrix2dv,
+    unix_glUniformMatrix2fv,
+    unix_glUniformMatrix2fvARB,
+    unix_glUniformMatrix2x3dv,
+    unix_glUniformMatrix2x3fv,
+    unix_glUniformMatrix2x4dv,
+    unix_glUniformMatrix2x4fv,
+    unix_glUniformMatrix3dv,
+    unix_glUniformMatrix3fv,
+    unix_glUniformMatrix3fvARB,
+    unix_glUniformMatrix3x2dv,
+    unix_glUniformMatrix3x2fv,
+    unix_glUniformMatrix3x4dv,
+    unix_glUniformMatrix3x4fv,
+    unix_glUniformMatrix4dv,
+    unix_glUniformMatrix4fv,
+    unix_glUniformMatrix4fvARB,
+    unix_glUniformMatrix4x2dv,
+    unix_glUniformMatrix4x2fv,
+    unix_glUniformMatrix4x3dv,
+    unix_glUniformMatrix4x3fv,
+    unix_glUniformSubroutinesuiv,
+    unix_glUniformui64NV,
+    unix_glUniformui64vNV,
+    unix_glUnlockArraysEXT,
+    unix_glUnmapBuffer,
+    unix_glUnmapBufferARB,
+    unix_glUnmapNamedBuffer,
+    unix_glUnmapNamedBufferEXT,
+    unix_glUnmapObjectBufferATI,
+    unix_glUnmapTexture2DINTEL,
+    unix_glUpdateObjectBufferATI,
+    unix_glUploadGpuMaskNVX,
+    unix_glUseProgram,
+    unix_glUseProgramObjectARB,
+    unix_glUseProgramStages,
+    unix_glUseShaderProgramEXT,
+    unix_glVDPAUFiniNV,
+    unix_glVDPAUGetSurfaceivNV,
+    unix_glVDPAUInitNV,
+    unix_glVDPAUIsSurfaceNV,
+    unix_glVDPAUMapSurfacesNV,
+    unix_glVDPAURegisterOutputSurfaceNV,
+    unix_glVDPAURegisterVideoSurfaceNV,
+    unix_glVDPAURegisterVideoSurfaceWithPictureStructureNV,
+    unix_glVDPAUSurfaceAccessNV,
+    unix_glVDPAUUnmapSurfacesNV,
+    unix_glVDPAUUnregisterSurfaceNV,
+    unix_glValidateProgram,
+    unix_glValidateProgramARB,
+    unix_glValidateProgramPipeline,
+    unix_glVariantArrayObjectATI,
+    unix_glVariantPointerEXT,
+    unix_glVariantbvEXT,
+    unix_glVariantdvEXT,
+    unix_glVariantfvEXT,
+    unix_glVariantivEXT,
+    unix_glVariantsvEXT,
+    unix_glVariantubvEXT,
+    unix_glVariantuivEXT,
+    unix_glVariantusvEXT,
+    unix_glVertex2bOES,
+    unix_glVertex2bvOES,
+    unix_glVertex2hNV,
+    unix_glVertex2hvNV,
+    unix_glVertex2xOES,
+    unix_glVertex2xvOES,
+    unix_glVertex3bOES,
+    unix_glVertex3bvOES,
+    unix_glVertex3hNV,
+    unix_glVertex3hvNV,
+    unix_glVertex3xOES,
+    unix_glVertex3xvOES,
+    unix_glVertex4bOES,
+    unix_glVertex4bvOES,
+    unix_glVertex4hNV,
+    unix_glVertex4hvNV,
+    unix_glVertex4xOES,
+    unix_glVertex4xvOES,
+    unix_glVertexArrayAttribBinding,
+    unix_glVertexArrayAttribFormat,
+    unix_glVertexArrayAttribIFormat,
+    unix_glVertexArrayAttribLFormat,
+    unix_glVertexArrayBindVertexBufferEXT,
+    unix_glVertexArrayBindingDivisor,
+    unix_glVertexArrayColorOffsetEXT,
+    unix_glVertexArrayEdgeFlagOffsetEXT,
+    unix_glVertexArrayElementBuffer,
+    unix_glVertexArrayFogCoordOffsetEXT,
+    unix_glVertexArrayIndexOffsetEXT,
+    unix_glVertexArrayMultiTexCoordOffsetEXT,
+    unix_glVertexArrayNormalOffsetEXT,
+    unix_glVertexArrayParameteriAPPLE,
+    unix_glVertexArrayRangeAPPLE,
+    unix_glVertexArrayRangeNV,
+    unix_glVertexArraySecondaryColorOffsetEXT,
+    unix_glVertexArrayTexCoordOffsetEXT,
+    unix_glVertexArrayVertexAttribBindingEXT,
+    unix_glVertexArrayVertexAttribDivisorEXT,
+    unix_glVertexArrayVertexAttribFormatEXT,
+    unix_glVertexArrayVertexAttribIFormatEXT,
+    unix_glVertexArrayVertexAttribIOffsetEXT,
+    unix_glVertexArrayVertexAttribLFormatEXT,
+    unix_glVertexArrayVertexAttribLOffsetEXT,
+    unix_glVertexArrayVertexAttribOffsetEXT,
+    unix_glVertexArrayVertexBindingDivisorEXT,
+    unix_glVertexArrayVertexBuffer,
+    unix_glVertexArrayVertexBuffers,
+    unix_glVertexArrayVertexOffsetEXT,
+    unix_glVertexAttrib1d,
+    unix_glVertexAttrib1dARB,
+    unix_glVertexAttrib1dNV,
+    unix_glVertexAttrib1dv,
+    unix_glVertexAttrib1dvARB,
+    unix_glVertexAttrib1dvNV,
+    unix_glVertexAttrib1f,
+    unix_glVertexAttrib1fARB,
+    unix_glVertexAttrib1fNV,
+    unix_glVertexAttrib1fv,
+    unix_glVertexAttrib1fvARB,
+    unix_glVertexAttrib1fvNV,
+    unix_glVertexAttrib1hNV,
+    unix_glVertexAttrib1hvNV,
+    unix_glVertexAttrib1s,
+    unix_glVertexAttrib1sARB,
+    unix_glVertexAttrib1sNV,
+    unix_glVertexAttrib1sv,
+    unix_glVertexAttrib1svARB,
+    unix_glVertexAttrib1svNV,
+    unix_glVertexAttrib2d,
+    unix_glVertexAttrib2dARB,
+    unix_glVertexAttrib2dNV,
+    unix_glVertexAttrib2dv,
+    unix_glVertexAttrib2dvARB,
+    unix_glVertexAttrib2dvNV,
+    unix_glVertexAttrib2f,
+    unix_glVertexAttrib2fARB,
+    unix_glVertexAttrib2fNV,
+    unix_glVertexAttrib2fv,
+    unix_glVertexAttrib2fvARB,
+    unix_glVertexAttrib2fvNV,
+    unix_glVertexAttrib2hNV,
+    unix_glVertexAttrib2hvNV,
+    unix_glVertexAttrib2s,
+    unix_glVertexAttrib2sARB,
+    unix_glVertexAttrib2sNV,
+    unix_glVertexAttrib2sv,
+    unix_glVertexAttrib2svARB,
+    unix_glVertexAttrib2svNV,
+    unix_glVertexAttrib3d,
+    unix_glVertexAttrib3dARB,
+    unix_glVertexAttrib3dNV,
+    unix_glVertexAttrib3dv,
+    unix_glVertexAttrib3dvARB,
+    unix_glVertexAttrib3dvNV,
+    unix_glVertexAttrib3f,
+    unix_glVertexAttrib3fARB,
+    unix_glVertexAttrib3fNV,
+    unix_glVertexAttrib3fv,
+    unix_glVertexAttrib3fvARB,
+    unix_glVertexAttrib3fvNV,
+    unix_glVertexAttrib3hNV,
+    unix_glVertexAttrib3hvNV,
+    unix_glVertexAttrib3s,
+    unix_glVertexAttrib3sARB,
+    unix_glVertexAttrib3sNV,
+    unix_glVertexAttrib3sv,
+    unix_glVertexAttrib3svARB,
+    unix_glVertexAttrib3svNV,
+    unix_glVertexAttrib4Nbv,
+    unix_glVertexAttrib4NbvARB,
+    unix_glVertexAttrib4Niv,
+    unix_glVertexAttrib4NivARB,
+    unix_glVertexAttrib4Nsv,
+    unix_glVertexAttrib4NsvARB,
+    unix_glVertexAttrib4Nub,
+    unix_glVertexAttrib4NubARB,
+    unix_glVertexAttrib4Nubv,
+    unix_glVertexAttrib4NubvARB,
+    unix_glVertexAttrib4Nuiv,
+    unix_glVertexAttrib4NuivARB,
+    unix_glVertexAttrib4Nusv,
+    unix_glVertexAttrib4NusvARB,
+    unix_glVertexAttrib4bv,
+    unix_glVertexAttrib4bvARB,
+    unix_glVertexAttrib4d,
+    unix_glVertexAttrib4dARB,
+    unix_glVertexAttrib4dNV,
+    unix_glVertexAttrib4dv,
+    unix_glVertexAttrib4dvARB,
+    unix_glVertexAttrib4dvNV,
+    unix_glVertexAttrib4f,
+    unix_glVertexAttrib4fARB,
+    unix_glVertexAttrib4fNV,
+    unix_glVertexAttrib4fv,
+    unix_glVertexAttrib4fvARB,
+    unix_glVertexAttrib4fvNV,
+    unix_glVertexAttrib4hNV,
+    unix_glVertexAttrib4hvNV,
+    unix_glVertexAttrib4iv,
+    unix_glVertexAttrib4ivARB,
+    unix_glVertexAttrib4s,
+    unix_glVertexAttrib4sARB,
+    unix_glVertexAttrib4sNV,
+    unix_glVertexAttrib4sv,
+    unix_glVertexAttrib4svARB,
+    unix_glVertexAttrib4svNV,
+    unix_glVertexAttrib4ubNV,
+    unix_glVertexAttrib4ubv,
+    unix_glVertexAttrib4ubvARB,
+    unix_glVertexAttrib4ubvNV,
+    unix_glVertexAttrib4uiv,
+    unix_glVertexAttrib4uivARB,
+    unix_glVertexAttrib4usv,
+    unix_glVertexAttrib4usvARB,
+    unix_glVertexAttribArrayObjectATI,
+    unix_glVertexAttribBinding,
+    unix_glVertexAttribDivisor,
+    unix_glVertexAttribDivisorARB,
+    unix_glVertexAttribFormat,
+    unix_glVertexAttribFormatNV,
+    unix_glVertexAttribI1i,
+    unix_glVertexAttribI1iEXT,
+    unix_glVertexAttribI1iv,
+    unix_glVertexAttribI1ivEXT,
+    unix_glVertexAttribI1ui,
+    unix_glVertexAttribI1uiEXT,
+    unix_glVertexAttribI1uiv,
+    unix_glVertexAttribI1uivEXT,
+    unix_glVertexAttribI2i,
+    unix_glVertexAttribI2iEXT,
+    unix_glVertexAttribI2iv,
+    unix_glVertexAttribI2ivEXT,
+    unix_glVertexAttribI2ui,
+    unix_glVertexAttribI2uiEXT,
+    unix_glVertexAttribI2uiv,
+    unix_glVertexAttribI2uivEXT,
+    unix_glVertexAttribI3i,
+    unix_glVertexAttribI3iEXT,
+    unix_glVertexAttribI3iv,
+    unix_glVertexAttribI3ivEXT,
+    unix_glVertexAttribI3ui,
+    unix_glVertexAttribI3uiEXT,
+    unix_glVertexAttribI3uiv,
+    unix_glVertexAttribI3uivEXT,
+    unix_glVertexAttribI4bv,
+    unix_glVertexAttribI4bvEXT,
+    unix_glVertexAttribI4i,
+    unix_glVertexAttribI4iEXT,
+    unix_glVertexAttribI4iv,
+    unix_glVertexAttribI4ivEXT,
+    unix_glVertexAttribI4sv,
+    unix_glVertexAttribI4svEXT,
+    unix_glVertexAttribI4ubv,
+    unix_glVertexAttribI4ubvEXT,
+    unix_glVertexAttribI4ui,
+    unix_glVertexAttribI4uiEXT,
+    unix_glVertexAttribI4uiv,
+    unix_glVertexAttribI4uivEXT,
+    unix_glVertexAttribI4usv,
+    unix_glVertexAttribI4usvEXT,
+    unix_glVertexAttribIFormat,
+    unix_glVertexAttribIFormatNV,
+    unix_glVertexAttribIPointer,
+    unix_glVertexAttribIPointerEXT,
+    unix_glVertexAttribL1d,
+    unix_glVertexAttribL1dEXT,
+    unix_glVertexAttribL1dv,
+    unix_glVertexAttribL1dvEXT,
+    unix_glVertexAttribL1i64NV,
+    unix_glVertexAttribL1i64vNV,
+    unix_glVertexAttribL1ui64ARB,
+    unix_glVertexAttribL1ui64NV,
+    unix_glVertexAttribL1ui64vARB,
+    unix_glVertexAttribL1ui64vNV,
+    unix_glVertexAttribL2d,
+    unix_glVertexAttribL2dEXT,
+    unix_glVertexAttribL2dv,
+    unix_glVertexAttribL2dvEXT,
+    unix_glVertexAttribL2i64NV,
+    unix_glVertexAttribL2i64vNV,
+    unix_glVertexAttribL2ui64NV,
+    unix_glVertexAttribL2ui64vNV,
+    unix_glVertexAttribL3d,
+    unix_glVertexAttribL3dEXT,
+    unix_glVertexAttribL3dv,
+    unix_glVertexAttribL3dvEXT,
+    unix_glVertexAttribL3i64NV,
+    unix_glVertexAttribL3i64vNV,
+    unix_glVertexAttribL3ui64NV,
+    unix_glVertexAttribL3ui64vNV,
+    unix_glVertexAttribL4d,
+    unix_glVertexAttribL4dEXT,
+    unix_glVertexAttribL4dv,
+    unix_glVertexAttribL4dvEXT,
+    unix_glVertexAttribL4i64NV,
+    unix_glVertexAttribL4i64vNV,
+    unix_glVertexAttribL4ui64NV,
+    unix_glVertexAttribL4ui64vNV,
+    unix_glVertexAttribLFormat,
+    unix_glVertexAttribLFormatNV,
+    unix_glVertexAttribLPointer,
+    unix_glVertexAttribLPointerEXT,
+    unix_glVertexAttribP1ui,
+    unix_glVertexAttribP1uiv,
+    unix_glVertexAttribP2ui,
+    unix_glVertexAttribP2uiv,
+    unix_glVertexAttribP3ui,
+    unix_glVertexAttribP3uiv,
+    unix_glVertexAttribP4ui,
+    unix_glVertexAttribP4uiv,
+    unix_glVertexAttribParameteriAMD,
+    unix_glVertexAttribPointer,
+    unix_glVertexAttribPointerARB,
+    unix_glVertexAttribPointerNV,
+    unix_glVertexAttribs1dvNV,
+    unix_glVertexAttribs1fvNV,
+    unix_glVertexAttribs1hvNV,
+    unix_glVertexAttribs1svNV,
+    unix_glVertexAttribs2dvNV,
+    unix_glVertexAttribs2fvNV,
+    unix_glVertexAttribs2hvNV,
+    unix_glVertexAttribs2svNV,
+    unix_glVertexAttribs3dvNV,
+    unix_glVertexAttribs3fvNV,
+    unix_glVertexAttribs3hvNV,
+    unix_glVertexAttribs3svNV,
+    unix_glVertexAttribs4dvNV,
+    unix_glVertexAttribs4fvNV,
+    unix_glVertexAttribs4hvNV,
+    unix_glVertexAttribs4svNV,
+    unix_glVertexAttribs4ubvNV,
+    unix_glVertexBindingDivisor,
+    unix_glVertexBlendARB,
+    unix_glVertexBlendEnvfATI,
+    unix_glVertexBlendEnviATI,
+    unix_glVertexFormatNV,
+    unix_glVertexP2ui,
+    unix_glVertexP2uiv,
+    unix_glVertexP3ui,
+    unix_glVertexP3uiv,
+    unix_glVertexP4ui,
+    unix_glVertexP4uiv,
+    unix_glVertexPointerEXT,
+    unix_glVertexPointerListIBM,
+    unix_glVertexPointervINTEL,
+    unix_glVertexStream1dATI,
+    unix_glVertexStream1dvATI,
+    unix_glVertexStream1fATI,
+    unix_glVertexStream1fvATI,
+    unix_glVertexStream1iATI,
+    unix_glVertexStream1ivATI,
+    unix_glVertexStream1sATI,
+    unix_glVertexStream1svATI,
+    unix_glVertexStream2dATI,
+    unix_glVertexStream2dvATI,
+    unix_glVertexStream2fATI,
+    unix_glVertexStream2fvATI,
+    unix_glVertexStream2iATI,
+    unix_glVertexStream2ivATI,
+    unix_glVertexStream2sATI,
+    unix_glVertexStream2svATI,
+    unix_glVertexStream3dATI,
+    unix_glVertexStream3dvATI,
+    unix_glVertexStream3fATI,
+    unix_glVertexStream3fvATI,
+    unix_glVertexStream3iATI,
+    unix_glVertexStream3ivATI,
+    unix_glVertexStream3sATI,
+    unix_glVertexStream3svATI,
+    unix_glVertexStream4dATI,
+    unix_glVertexStream4dvATI,
+    unix_glVertexStream4fATI,
+    unix_glVertexStream4fvATI,
+    unix_glVertexStream4iATI,
+    unix_glVertexStream4ivATI,
+    unix_glVertexStream4sATI,
+    unix_glVertexStream4svATI,
+    unix_glVertexWeightPointerEXT,
+    unix_glVertexWeightfEXT,
+    unix_glVertexWeightfvEXT,
+    unix_glVertexWeighthNV,
+    unix_glVertexWeighthvNV,
+    unix_glVideoCaptureNV,
+    unix_glVideoCaptureStreamParameterdvNV,
+    unix_glVideoCaptureStreamParameterfvNV,
+    unix_glVideoCaptureStreamParameterivNV,
+    unix_glViewportArrayv,
+    unix_glViewportIndexedf,
+    unix_glViewportIndexedfv,
+    unix_glViewportPositionWScaleNV,
+    unix_glViewportSwizzleNV,
+    unix_glWaitSemaphoreEXT,
+    unix_glWaitSemaphoreui64NVX,
+    unix_glWaitSync,
+    unix_glWaitVkSemaphoreNV,
+    unix_glWeightPathsNV,
+    unix_glWeightPointerARB,
+    unix_glWeightbvARB,
+    unix_glWeightdvARB,
+    unix_glWeightfvARB,
+    unix_glWeightivARB,
+    unix_glWeightsvARB,
+    unix_glWeightubvARB,
+    unix_glWeightuivARB,
+    unix_glWeightusvARB,
+    unix_glWindowPos2d,
+    unix_glWindowPos2dARB,
+    unix_glWindowPos2dMESA,
+    unix_glWindowPos2dv,
+    unix_glWindowPos2dvARB,
+    unix_glWindowPos2dvMESA,
+    unix_glWindowPos2f,
+    unix_glWindowPos2fARB,
+    unix_glWindowPos2fMESA,
+    unix_glWindowPos2fv,
+    unix_glWindowPos2fvARB,
+    unix_glWindowPos2fvMESA,
+    unix_glWindowPos2i,
+    unix_glWindowPos2iARB,
+    unix_glWindowPos2iMESA,
+    unix_glWindowPos2iv,
+    unix_glWindowPos2ivARB,
+    unix_glWindowPos2ivMESA,
+    unix_glWindowPos2s,
+    unix_glWindowPos2sARB,
+    unix_glWindowPos2sMESA,
+    unix_glWindowPos2sv,
+    unix_glWindowPos2svARB,
+    unix_glWindowPos2svMESA,
+    unix_glWindowPos3d,
+    unix_glWindowPos3dARB,
+    unix_glWindowPos3dMESA,
+    unix_glWindowPos3dv,
+    unix_glWindowPos3dvARB,
+    unix_glWindowPos3dvMESA,
+    unix_glWindowPos3f,
+    unix_glWindowPos3fARB,
+    unix_glWindowPos3fMESA,
+    unix_glWindowPos3fv,
+    unix_glWindowPos3fvARB,
+    unix_glWindowPos3fvMESA,
+    unix_glWindowPos3i,
+    unix_glWindowPos3iARB,
+    unix_glWindowPos3iMESA,
+    unix_glWindowPos3iv,
+    unix_glWindowPos3ivARB,
+    unix_glWindowPos3ivMESA,
+    unix_glWindowPos3s,
+    unix_glWindowPos3sARB,
+    unix_glWindowPos3sMESA,
+    unix_glWindowPos3sv,
+    unix_glWindowPos3svARB,
+    unix_glWindowPos3svMESA,
+    unix_glWindowPos4dMESA,
+    unix_glWindowPos4dvMESA,
+    unix_glWindowPos4fMESA,
+    unix_glWindowPos4fvMESA,
+    unix_glWindowPos4iMESA,
+    unix_glWindowPos4ivMESA,
+    unix_glWindowPos4sMESA,
+    unix_glWindowPos4svMESA,
+    unix_glWindowRectanglesEXT,
+    unix_glWriteMaskEXT,
+    unix_wglAllocateMemoryNV,
+    unix_wglBindTexImageARB,
+    unix_wglChoosePixelFormatARB,
+    unix_wglCreateContextAttribsARB,
+    unix_wglCreatePbufferARB,
+    unix_wglDestroyPbufferARB,
+    unix_wglFreeMemoryNV,
+    unix_wglGetCurrentReadDCARB,
+    unix_wglGetExtensionsStringARB,
+    unix_wglGetExtensionsStringEXT,
+    unix_wglGetPbufferDCARB,
+    unix_wglGetPixelFormatAttribfvARB,
+    unix_wglGetPixelFormatAttribivARB,
+    unix_wglGetSwapIntervalEXT,
+    unix_wglMakeContextCurrentARB,
+    unix_wglQueryCurrentRendererIntegerWINE,
+    unix_wglQueryCurrentRendererStringWINE,
+    unix_wglQueryPbufferARB,
+    unix_wglQueryRendererIntegerWINE,
+    unix_wglQueryRendererStringWINE,
+    unix_wglReleasePbufferDCARB,
+    unix_wglReleaseTexImageARB,
+    unix_wglSetPbufferAttribARB,
+    unix_wglSetPixelFormatWINE,
+    unix_wglSwapIntervalEXT,
 };
 
 typedef NTSTATUS (*unixlib_function_t)( void *args );
-- 
GitLab