From: Rémi Bernon rbernon@codeweavers.com
--- dlls/opengl32/make_opengl | 167 +- dlls/opengl32/unix_thunks.c | 36554 ++++++++++++++++++++++++++++++++++ 2 files changed, 36718 insertions(+), 3 deletions(-)
diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index ad9def8dcec..37dafef9635 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -90,6 +90,7 @@ my %arg_types = "GLfloat" => [ "float", "%f" ], "GLhalfNV" => [ "long", "%d" ], "GLhandleARB" => [ "long", "%d" ], + "int" => [ "long", "%d" ], "GLint" => [ "long", "%d" ], "GLint64" => [ "int64", "wine_dbgstr_longlong(%s)" ], "GLint64EXT" => [ "int64", "wine_dbgstr_longlong(%s)" ], @@ -313,6 +314,93 @@ sub generate_win_thunk($$) return $ret; }
+sub get_wow64_arg_type($) +{ + my $arg = shift; + my $ptype = get_arg_type( $arg ); + return "void" if $ptype =~ /^void$/; + return "PTR32" if $arg->textContent() =~ /(PROC|sizeiptr|intptr|*|[)/; + return $ptype unless defined $arg_types{$ptype}; + return "PTR32" if ${$arg_types{$ptype}}[0] =~ /(ptr|str)/; + return "PTR32" if ${$arg_types{$ptype}}[1] =~ /%p/; + return $ptype; +} + +sub needs_wow64_thunk($$) +{ + my ($name, $func) = @_; + foreach my $arg (@{$func->[1]}) + { + return 1 if get_wow64_arg_type( $arg ) =~ /PTR32/; + } + return get_wow64_arg_type( $func->[0] ) =~ /PTR32/; +} + +sub generate_wow64_thunk($$$) +{ + my ($name, $func, $prefix) = @_; + my $call_args = get_func_args( $func, 0, 1, "params->" ); + my $func_ret = get_func_ret( $func, 0 ); + my $need_manual_thunk = 0; + my $ret = ""; + + $ret .= "static NTSTATUS wow64_$prefix_$name( void *args )\n"; + $ret .= "{\n"; + $ret .= " struct\n {\n"; + foreach my $arg (@{$func->[1]}) + { + my $ptype = get_wow64_arg_type( $arg ); + my $pname = get_arg_name( $arg ); + $ret .= " $ptype $pname;\n"; + $need_manual_thunk = 1 if $arg->textContent() =~ /*.**/ || $arg->textContent() =~ /(sizei|int)ptr.**/; + } + if (!is_void_func($func)) + { + my $ptype = get_wow64_arg_type( $func->[0] ); + $ret .= " $ptype ret;\n"; + } + $ret .= " } *params32 = args;\n"; + + if ($need_manual_thunk || get_wow64_arg_type( $func->[0] ) =~ /PTR32/ || $name =~ /glPathGlyphIndexRangeNV/) + { + $ret .= " FIXME( "params32 %p stub!\n", params32 );\n"; + $ret .= " return STATUS_NOT_IMPLEMENTED;\n"; + $ret .= "}\n\n"; + return $ret; + } + + $ret .= " struct $name_params params =\n"; + $ret .= " {\n"; + foreach my $arg (@{$func->[1]}) + { + next if $arg->textContent() =~ /*.**/ || $arg->textContent() =~ /(sizei|int)ptr.**/; + my $ptype = get_arg_type( $arg ); + my $pname = get_arg_name( $arg ); + if (get_wow64_arg_type( $arg ) =~ /PTR32/) + { + $ret .= " .$pname = ($ptype)ULongToPtr(params32->$pname),\n"; + } + else + { + $ret .= " .$pname = params32->$pname,\n"; + } + } + $ret .= " };\n"; + + $ret .= " NTSTATUS status;\n"; + $ret .= " status = $prefix_$name( ¶ms );\n"; + if (!is_void_func( $func )) + { + $ret .= " params32->ret = "; + $ret .= "(UINT_PTR)" if get_wow64_arg_type( $func->[0] ) =~ /PTR32/; + $ret .= "params.ret;\n"; + } + $ret .= " return status;\n"; + $ret .= "}\n\n"; + + return $ret; +} + sub generate_null_func($$$) { my ($name, $func, $callconv) = @_; @@ -379,9 +467,13 @@ sub is_void_func($)
sub get_arg_type($) { - my $p = shift; - my @type = $p->findnodes("./ptype"); - return @type ? $type[0]->textContent() : "GLint"; + my $p = (shift)->cloneNode(1); + my @name = $p->findnodes("./name"); + $p->removeChild(@name) if @name; + my $ret = $p->textContent(); + $ret =~ s/^ +//; + $ret =~ s/ +$//; + return $ret; }
sub get_arg_name($) @@ -932,6 +1024,11 @@ print OUT "#include "wingdi.h"\n\n";
print OUT "#include "unixlib.h"\n"; print OUT "#include "unix_private.h"\n\n"; +print OUT "#include "wine/debug.h"\n\n"; + +print OUT "#ifdef _WIN64\n"; +print OUT "WINE_DEFAULT_DEBUG_CHANNEL(wgl);\n"; +print OUT "#endif\n\n";
print OUT "extern NTSTATUS thread_attach( void *args ) DECLSPEC_HIDDEN;\n"; foreach (sort keys %wgl_functions) @@ -994,6 +1091,70 @@ foreach (sort keys %ext_functions) print OUT "};\n"; print OUT "\n";
+print OUT "#ifdef _WIN64\n\n"; +print OUT "typedef ULONG PTR32;\n\n"; +foreach (sort keys %wgl_functions) +{ + next if defined $manual_win_functions{$_}; + next if !needs_wow64_thunk($_, $wgl_functions{$_}); + print OUT generate_wow64_thunk($_, $wgl_functions{$_}, "wgl"); +} +foreach (sort keys %norm_functions) +{ + next if defined $manual_win_functions{$_}; + next if !needs_wow64_thunk($_, $norm_functions{$_}); + print OUT generate_wow64_thunk($_, $norm_functions{$_}, "gl"); +} +foreach (sort keys %ext_functions) +{ + next if defined $manual_win_functions{$_}; + next if !needs_wow64_thunk($_, $ext_functions{$_}); + print OUT generate_wow64_thunk($_, $ext_functions{$_}, "ext"); +} + +print OUT "\nconst unixlib_entry_t __wine_unix_call_wow64_funcs[] =\n"; +print OUT "{\n"; +print OUT " &thread_attach,\n"; +foreach (sort keys %wgl_functions) +{ + next if defined $manual_win_functions{$_}; + if (needs_wow64_thunk($_, $wgl_functions{$_})) + { + printf OUT " &wow64_wgl_%s,\n", $_; + } + else + { + printf OUT " &wgl_%s,\n", $_; + } +} +foreach (sort keys %norm_functions) +{ + next if defined $manual_win_functions{$_}; + if (needs_wow64_thunk($_, $norm_functions{$_})) + { + printf OUT " &wow64_gl_%s,\n", $_; + } + else + { + printf OUT " &gl_%s,\n", $_; + } +} +foreach (sort keys %ext_functions) +{ + next if defined $manual_win_functions{$_}; + if (needs_wow64_thunk($_, $ext_functions{$_})) + { + printf OUT " &wow64_ext_%s,\n", $_; + } + else + { + printf OUT " &ext_%s,\n", $_; + } +} +print OUT "};\n\n"; + +print OUT "#endif\n\n"; + foreach (sort keys %wgl_functions) { next if defined $manual_win_functions{$_}; diff --git a/dlls/opengl32/unix_thunks.c b/dlls/opengl32/unix_thunks.c index 7511621cf67..815b8c9e865 100644 --- a/dlls/opengl32/unix_thunks.c +++ b/dlls/opengl32/unix_thunks.c @@ -16,6 +16,12 @@ #include "unixlib.h" #include "unix_private.h"
+#include "wine/debug.h" + +#ifdef _WIN64 +WINE_DEFAULT_DEBUG_CHANNEL(wgl); +#endif + extern NTSTATUS thread_attach( void *args ) DECLSPEC_HIDDEN; extern NTSTATUS wgl_wglCopyContext( void *args ) DECLSPEC_HIDDEN; extern NTSTATUS wgl_wglCreateContext( void *args ) DECLSPEC_HIDDEN; @@ -27191,6 +27197,36554 @@ const unixlib_entry_t __wine_unix_call_funcs[] = &ext_wglSwapIntervalEXT, };
+#ifdef _WIN64 + +typedef ULONG PTR32; + +static NTSTATUS wow64_wgl_wglCopyContext( void *args ) +{ + struct + { + PTR32 hglrcSrc; + PTR32 hglrcDst; + UINT mask; + BOOL ret; + } *params32 = args; + struct wglCopyContext_params params = + { + .hglrcSrc = (HGLRC)ULongToPtr(params32->hglrcSrc), + .hglrcDst = (HGLRC)ULongToPtr(params32->hglrcDst), + .mask = params32->mask, + }; + NTSTATUS status; + status = wgl_wglCopyContext( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_wgl_wglCreateContext( void *args ) +{ + struct + { + PTR32 hDc; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_wgl_wglDeleteContext( void *args ) +{ + struct + { + PTR32 oldContext; + BOOL ret; + } *params32 = args; + struct wglDeleteContext_params params = + { + .oldContext = (HGLRC)ULongToPtr(params32->oldContext), + }; + NTSTATUS status; + status = wgl_wglDeleteContext( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_wgl_wglDescribePixelFormat( void *args ) +{ + struct + { + PTR32 hdc; + int ipfd; + UINT cjpfd; + PTR32 ppfd; + int ret; + } *params32 = args; + struct wglDescribePixelFormat_params params = + { + .hdc = (HDC)ULongToPtr(params32->hdc), + .ipfd = params32->ipfd, + .cjpfd = params32->cjpfd, + .ppfd = (PIXELFORMATDESCRIPTOR *)ULongToPtr(params32->ppfd), + }; + NTSTATUS status; + status = wgl_wglDescribePixelFormat( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_wgl_wglGetPixelFormat( void *args ) +{ + struct + { + PTR32 hdc; + int ret; + } *params32 = args; + struct wglGetPixelFormat_params params = + { + .hdc = (HDC)ULongToPtr(params32->hdc), + }; + NTSTATUS status; + status = wgl_wglGetPixelFormat( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_wgl_wglGetProcAddress( void *args ) +{ + struct + { + PTR32 lpszProc; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_wgl_wglMakeCurrent( void *args ) +{ + struct + { + PTR32 hDc; + PTR32 newContext; + BOOL ret; + } *params32 = args; + struct wglMakeCurrent_params params = + { + .hDc = (HDC)ULongToPtr(params32->hDc), + .newContext = (HGLRC)ULongToPtr(params32->newContext), + }; + NTSTATUS status; + status = wgl_wglMakeCurrent( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_wgl_wglSetPixelFormat( void *args ) +{ + struct + { + PTR32 hdc; + int ipfd; + PTR32 ppfd; + BOOL ret; + } *params32 = args; + struct wglSetPixelFormat_params params = + { + .hdc = (HDC)ULongToPtr(params32->hdc), + .ipfd = params32->ipfd, + .ppfd = (const PIXELFORMATDESCRIPTOR *)ULongToPtr(params32->ppfd), + }; + NTSTATUS status; + status = wgl_wglSetPixelFormat( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_wgl_wglShareLists( void *args ) +{ + struct + { + PTR32 hrcSrvShare; + PTR32 hrcSrvSource; + BOOL ret; + } *params32 = args; + struct wglShareLists_params params = + { + .hrcSrvShare = (HGLRC)ULongToPtr(params32->hrcSrvShare), + .hrcSrvSource = (HGLRC)ULongToPtr(params32->hrcSrvSource), + }; + NTSTATUS status; + status = wgl_wglShareLists( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_wgl_wglSwapBuffers( void *args ) +{ + struct + { + PTR32 hdc; + BOOL ret; + } *params32 = args; + struct wglSwapBuffers_params params = + { + .hdc = (HDC)ULongToPtr(params32->hdc), + }; + NTSTATUS status; + status = wgl_wglSwapBuffers( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_gl_glAreTexturesResident( void *args ) +{ + struct + { + GLsizei n; + PTR32 textures; + PTR32 residences; + GLboolean ret; + } *params32 = args; + struct glAreTexturesResident_params params = + { + .n = params32->n, + .textures = (const GLuint *)ULongToPtr(params32->textures), + .residences = (GLboolean *)ULongToPtr(params32->residences), + }; + NTSTATUS status; + status = gl_glAreTexturesResident( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_gl_glBitmap( void *args ) +{ + struct + { + GLsizei width; + GLsizei height; + GLfloat xorig; + GLfloat yorig; + GLfloat xmove; + GLfloat ymove; + PTR32 bitmap; + } *params32 = args; + struct glBitmap_params params = + { + .width = params32->width, + .height = params32->height, + .xorig = params32->xorig, + .yorig = params32->yorig, + .xmove = params32->xmove, + .ymove = params32->ymove, + .bitmap = (const GLubyte *)ULongToPtr(params32->bitmap), + }; + NTSTATUS status; + status = gl_glBitmap( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glCallLists( void *args ) +{ + struct + { + GLsizei n; + GLenum type; + PTR32 lists; + } *params32 = args; + struct glCallLists_params params = + { + .n = params32->n, + .type = params32->type, + .lists = (const void *)ULongToPtr(params32->lists), + }; + NTSTATUS status; + status = gl_glCallLists( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glClipPlane( void *args ) +{ + struct + { + GLenum plane; + PTR32 equation; + } *params32 = args; + struct glClipPlane_params params = + { + .plane = params32->plane, + .equation = (const GLdouble *)ULongToPtr(params32->equation), + }; + NTSTATUS status; + status = gl_glClipPlane( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor3bv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor3bv_params params = + { + .v = (const GLbyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor3bv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor3dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor3dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor3fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor3fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor3iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor3iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor3iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor3sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor3sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor3sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor3ubv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor3ubv_params params = + { + .v = (const GLubyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor3ubv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor3uiv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor3uiv_params params = + { + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor3uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor3usv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor3usv_params params = + { + .v = (const GLushort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor3usv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor4bv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor4bv_params params = + { + .v = (const GLbyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor4bv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor4dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor4dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor4fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor4fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor4iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor4iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor4iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor4sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor4sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor4sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor4ubv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor4ubv_params params = + { + .v = (const GLubyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor4ubv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor4uiv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor4uiv_params params = + { + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor4uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColor4usv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor4usv_params params = + { + .v = (const GLushort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glColor4usv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glColorPointer( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glColorPointer_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = gl_glColorPointer( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glDeleteTextures( void *args ) +{ + struct + { + GLsizei n; + PTR32 textures; + } *params32 = args; + struct glDeleteTextures_params params = + { + .n = params32->n, + .textures = (const GLuint *)ULongToPtr(params32->textures), + }; + NTSTATUS status; + status = gl_glDeleteTextures( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glDrawElements( void *args ) +{ + struct + { + GLenum mode; + GLsizei count; + GLenum type; + PTR32 indices; + } *params32 = args; + struct glDrawElements_params params = + { + .mode = params32->mode, + .count = params32->count, + .type = params32->type, + .indices = (const void *)ULongToPtr(params32->indices), + }; + NTSTATUS status; + status = gl_glDrawElements( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glDrawPixels( void *args ) +{ + struct + { + GLsizei width; + GLsizei height; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glDrawPixels_params params = + { + .width = params32->width, + .height = params32->height, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = gl_glDrawPixels( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glEdgeFlagPointer( void *args ) +{ + struct + { + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glEdgeFlagPointer_params params = + { + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = gl_glEdgeFlagPointer( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glEdgeFlagv( void *args ) +{ + struct + { + PTR32 flag; + } *params32 = args; + struct glEdgeFlagv_params params = + { + .flag = (const GLboolean *)ULongToPtr(params32->flag), + }; + NTSTATUS status; + status = gl_glEdgeFlagv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glEvalCoord1dv( void *args ) +{ + struct + { + PTR32 u; + } *params32 = args; + struct glEvalCoord1dv_params params = + { + .u = (const GLdouble *)ULongToPtr(params32->u), + }; + NTSTATUS status; + status = gl_glEvalCoord1dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glEvalCoord1fv( void *args ) +{ + struct + { + PTR32 u; + } *params32 = args; + struct glEvalCoord1fv_params params = + { + .u = (const GLfloat *)ULongToPtr(params32->u), + }; + NTSTATUS status; + status = gl_glEvalCoord1fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glEvalCoord2dv( void *args ) +{ + struct + { + PTR32 u; + } *params32 = args; + struct glEvalCoord2dv_params params = + { + .u = (const GLdouble *)ULongToPtr(params32->u), + }; + NTSTATUS status; + status = gl_glEvalCoord2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glEvalCoord2fv( void *args ) +{ + struct + { + PTR32 u; + } *params32 = args; + struct glEvalCoord2fv_params params = + { + .u = (const GLfloat *)ULongToPtr(params32->u), + }; + NTSTATUS status; + status = gl_glEvalCoord2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glFeedbackBuffer( void *args ) +{ + struct + { + GLsizei size; + GLenum type; + PTR32 buffer; + } *params32 = args; + struct glFeedbackBuffer_params params = + { + .size = params32->size, + .type = params32->type, + .buffer = (GLfloat *)ULongToPtr(params32->buffer), + }; + NTSTATUS status; + status = gl_glFeedbackBuffer( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glFogfv( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glFogfv_params params = + { + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glFogfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glFogiv( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glFogiv_params params = + { + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glFogiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGenTextures( void *args ) +{ + struct + { + GLsizei n; + PTR32 textures; + } *params32 = args; + struct glGenTextures_params params = + { + .n = params32->n, + .textures = (GLuint *)ULongToPtr(params32->textures), + }; + NTSTATUS status; + status = gl_glGenTextures( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetBooleanv( void *args ) +{ + struct + { + GLenum pname; + PTR32 data; + } *params32 = args; + struct glGetBooleanv_params params = + { + .pname = params32->pname, + .data = (GLboolean *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = gl_glGetBooleanv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetClipPlane( void *args ) +{ + struct + { + GLenum plane; + PTR32 equation; + } *params32 = args; + struct glGetClipPlane_params params = + { + .plane = params32->plane, + .equation = (GLdouble *)ULongToPtr(params32->equation), + }; + NTSTATUS status; + status = gl_glGetClipPlane( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetDoublev( void *args ) +{ + struct + { + GLenum pname; + PTR32 data; + } *params32 = args; + struct glGetDoublev_params params = + { + .pname = params32->pname, + .data = (GLdouble *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = gl_glGetDoublev( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetFloatv( void *args ) +{ + struct + { + GLenum pname; + PTR32 data; + } *params32 = args; + struct glGetFloatv_params params = + { + .pname = params32->pname, + .data = (GLfloat *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = gl_glGetFloatv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetIntegerv( void *args ) +{ + struct + { + GLenum pname; + PTR32 data; + } *params32 = args; + struct glGetIntegerv_params params = + { + .pname = params32->pname, + .data = (GLint *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = gl_glGetIntegerv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetLightfv( void *args ) +{ + struct + { + GLenum light; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetLightfv_params params = + { + .light = params32->light, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glGetLightfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetLightiv( void *args ) +{ + struct + { + GLenum light; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetLightiv_params params = + { + .light = params32->light, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glGetLightiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetMapdv( void *args ) +{ + struct + { + GLenum target; + GLenum query; + PTR32 v; + } *params32 = args; + struct glGetMapdv_params params = + { + .target = params32->target, + .query = params32->query, + .v = (GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glGetMapdv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetMapfv( void *args ) +{ + struct + { + GLenum target; + GLenum query; + PTR32 v; + } *params32 = args; + struct glGetMapfv_params params = + { + .target = params32->target, + .query = params32->query, + .v = (GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glGetMapfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetMapiv( void *args ) +{ + struct + { + GLenum target; + GLenum query; + PTR32 v; + } *params32 = args; + struct glGetMapiv_params params = + { + .target = params32->target, + .query = params32->query, + .v = (GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glGetMapiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetMaterialfv( void *args ) +{ + struct + { + GLenum face; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMaterialfv_params params = + { + .face = params32->face, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glGetMaterialfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetMaterialiv( void *args ) +{ + struct + { + GLenum face; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMaterialiv_params params = + { + .face = params32->face, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glGetMaterialiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetPixelMapfv( void *args ) +{ + struct + { + GLenum map; + PTR32 values; + } *params32 = args; + struct glGetPixelMapfv_params params = + { + .map = params32->map, + .values = (GLfloat *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = gl_glGetPixelMapfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetPixelMapuiv( void *args ) +{ + struct + { + GLenum map; + PTR32 values; + } *params32 = args; + struct glGetPixelMapuiv_params params = + { + .map = params32->map, + .values = (GLuint *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = gl_glGetPixelMapuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetPixelMapusv( void *args ) +{ + struct + { + GLenum map; + PTR32 values; + } *params32 = args; + struct glGetPixelMapusv_params params = + { + .map = params32->map, + .values = (GLushort *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = gl_glGetPixelMapusv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetPointerv( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_gl_glGetPolygonStipple( void *args ) +{ + struct + { + PTR32 mask; + } *params32 = args; + struct glGetPolygonStipple_params params = + { + .mask = (GLubyte *)ULongToPtr(params32->mask), + }; + NTSTATUS status; + status = gl_glGetPolygonStipple( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetString( void *args ) +{ + struct + { + GLenum name; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_gl_glGetTexEnvfv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexEnvfv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glGetTexEnvfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetTexEnviv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexEnviv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glGetTexEnviv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetTexGendv( void *args ) +{ + struct + { + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexGendv_params params = + { + .coord = params32->coord, + .pname = params32->pname, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glGetTexGendv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetTexGenfv( void *args ) +{ + struct + { + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexGenfv_params params = + { + .coord = params32->coord, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glGetTexGenfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetTexGeniv( void *args ) +{ + struct + { + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexGeniv_params params = + { + .coord = params32->coord, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glGetTexGeniv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetTexImage( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glGetTexImage_params params = + { + .target = params32->target, + .level = params32->level, + .format = params32->format, + .type = params32->type, + .pixels = (void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = gl_glGetTexImage( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetTexLevelParameterfv( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexLevelParameterfv_params params = + { + .target = params32->target, + .level = params32->level, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glGetTexLevelParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetTexLevelParameteriv( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexLevelParameteriv_params params = + { + .target = params32->target, + .level = params32->level, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glGetTexLevelParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetTexParameterfv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexParameterfv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glGetTexParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glGetTexParameteriv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexParameteriv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glGetTexParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glIndexPointer( void *args ) +{ + struct + { + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glIndexPointer_params params = + { + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = gl_glIndexPointer( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glIndexdv( void *args ) +{ + struct + { + PTR32 c; + } *params32 = args; + struct glIndexdv_params params = + { + .c = (const GLdouble *)ULongToPtr(params32->c), + }; + NTSTATUS status; + status = gl_glIndexdv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glIndexfv( void *args ) +{ + struct + { + PTR32 c; + } *params32 = args; + struct glIndexfv_params params = + { + .c = (const GLfloat *)ULongToPtr(params32->c), + }; + NTSTATUS status; + status = gl_glIndexfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glIndexiv( void *args ) +{ + struct + { + PTR32 c; + } *params32 = args; + struct glIndexiv_params params = + { + .c = (const GLint *)ULongToPtr(params32->c), + }; + NTSTATUS status; + status = gl_glIndexiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glIndexsv( void *args ) +{ + struct + { + PTR32 c; + } *params32 = args; + struct glIndexsv_params params = + { + .c = (const GLshort *)ULongToPtr(params32->c), + }; + NTSTATUS status; + status = gl_glIndexsv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glIndexubv( void *args ) +{ + struct + { + PTR32 c; + } *params32 = args; + struct glIndexubv_params params = + { + .c = (const GLubyte *)ULongToPtr(params32->c), + }; + NTSTATUS status; + status = gl_glIndexubv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glInterleavedArrays( void *args ) +{ + struct + { + GLenum format; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glInterleavedArrays_params params = + { + .format = params32->format, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = gl_glInterleavedArrays( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glLightModelfv( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glLightModelfv_params params = + { + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glLightModelfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glLightModeliv( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glLightModeliv_params params = + { + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glLightModeliv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glLightfv( void *args ) +{ + struct + { + GLenum light; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glLightfv_params params = + { + .light = params32->light, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glLightfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glLightiv( void *args ) +{ + struct + { + GLenum light; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glLightiv_params params = + { + .light = params32->light, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glLightiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glLoadMatrixd( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glLoadMatrixd_params params = + { + .m = (const GLdouble *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = gl_glLoadMatrixd( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glLoadMatrixf( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glLoadMatrixf_params params = + { + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = gl_glLoadMatrixf( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glMap1d( void *args ) +{ + struct + { + GLenum target; + GLdouble u1; + GLdouble u2; + GLint stride; + GLint order; + PTR32 points; + } *params32 = args; + struct glMap1d_params params = + { + .target = params32->target, + .u1 = params32->u1, + .u2 = params32->u2, + .stride = params32->stride, + .order = params32->order, + .points = (const GLdouble *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = gl_glMap1d( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glMap1f( void *args ) +{ + struct + { + GLenum target; + GLfloat u1; + GLfloat u2; + GLint stride; + GLint order; + PTR32 points; + } *params32 = args; + struct glMap1f_params params = + { + .target = params32->target, + .u1 = params32->u1, + .u2 = params32->u2, + .stride = params32->stride, + .order = params32->order, + .points = (const GLfloat *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = gl_glMap1f( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glMap2d( void *args ) +{ + struct + { + GLenum target; + GLdouble u1; + GLdouble u2; + GLint ustride; + GLint uorder; + GLdouble v1; + GLdouble v2; + GLint vstride; + GLint vorder; + PTR32 points; + } *params32 = args; + struct glMap2d_params params = + { + .target = params32->target, + .u1 = params32->u1, + .u2 = params32->u2, + .ustride = params32->ustride, + .uorder = params32->uorder, + .v1 = params32->v1, + .v2 = params32->v2, + .vstride = params32->vstride, + .vorder = params32->vorder, + .points = (const GLdouble *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = gl_glMap2d( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glMap2f( void *args ) +{ + struct + { + GLenum target; + GLfloat u1; + GLfloat u2; + GLint ustride; + GLint uorder; + GLfloat v1; + GLfloat v2; + GLint vstride; + GLint vorder; + PTR32 points; + } *params32 = args; + struct glMap2f_params params = + { + .target = params32->target, + .u1 = params32->u1, + .u2 = params32->u2, + .ustride = params32->ustride, + .uorder = params32->uorder, + .v1 = params32->v1, + .v2 = params32->v2, + .vstride = params32->vstride, + .vorder = params32->vorder, + .points = (const GLfloat *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = gl_glMap2f( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glMaterialfv( void *args ) +{ + struct + { + GLenum face; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMaterialfv_params params = + { + .face = params32->face, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glMaterialfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glMaterialiv( void *args ) +{ + struct + { + GLenum face; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMaterialiv_params params = + { + .face = params32->face, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glMaterialiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glMultMatrixd( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glMultMatrixd_params params = + { + .m = (const GLdouble *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = gl_glMultMatrixd( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glMultMatrixf( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glMultMatrixf_params params = + { + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = gl_glMultMatrixf( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glNormal3bv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glNormal3bv_params params = + { + .v = (const GLbyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glNormal3bv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glNormal3dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glNormal3dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glNormal3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glNormal3fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glNormal3fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glNormal3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glNormal3iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glNormal3iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glNormal3iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glNormal3sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glNormal3sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glNormal3sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glNormalPointer( void *args ) +{ + struct + { + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glNormalPointer_params params = + { + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = gl_glNormalPointer( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glPixelMapfv( void *args ) +{ + struct + { + GLenum map; + GLsizei mapsize; + PTR32 values; + } *params32 = args; + struct glPixelMapfv_params params = + { + .map = params32->map, + .mapsize = params32->mapsize, + .values = (const GLfloat *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = gl_glPixelMapfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glPixelMapuiv( void *args ) +{ + struct + { + GLenum map; + GLsizei mapsize; + PTR32 values; + } *params32 = args; + struct glPixelMapuiv_params params = + { + .map = params32->map, + .mapsize = params32->mapsize, + .values = (const GLuint *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = gl_glPixelMapuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glPixelMapusv( void *args ) +{ + struct + { + GLenum map; + GLsizei mapsize; + PTR32 values; + } *params32 = args; + struct glPixelMapusv_params params = + { + .map = params32->map, + .mapsize = params32->mapsize, + .values = (const GLushort *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = gl_glPixelMapusv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glPolygonStipple( void *args ) +{ + struct + { + PTR32 mask; + } *params32 = args; + struct glPolygonStipple_params params = + { + .mask = (const GLubyte *)ULongToPtr(params32->mask), + }; + NTSTATUS status; + status = gl_glPolygonStipple( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glPrioritizeTextures( void *args ) +{ + struct + { + GLsizei n; + PTR32 textures; + PTR32 priorities; + } *params32 = args; + struct glPrioritizeTextures_params params = + { + .n = params32->n, + .textures = (const GLuint *)ULongToPtr(params32->textures), + .priorities = (const GLfloat *)ULongToPtr(params32->priorities), + }; + NTSTATUS status; + status = gl_glPrioritizeTextures( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRasterPos2dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glRasterPos2dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glRasterPos2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRasterPos2fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glRasterPos2fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glRasterPos2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRasterPos2iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glRasterPos2iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glRasterPos2iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRasterPos2sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glRasterPos2sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glRasterPos2sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRasterPos3dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glRasterPos3dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glRasterPos3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRasterPos3fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glRasterPos3fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glRasterPos3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRasterPos3iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glRasterPos3iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glRasterPos3iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRasterPos3sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glRasterPos3sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glRasterPos3sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRasterPos4dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glRasterPos4dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glRasterPos4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRasterPos4fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glRasterPos4fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glRasterPos4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRasterPos4iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glRasterPos4iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glRasterPos4iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRasterPos4sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glRasterPos4sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glRasterPos4sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glReadPixels( void *args ) +{ + struct + { + GLint x; + GLint y; + GLsizei width; + GLsizei height; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glReadPixels_params params = + { + .x = params32->x, + .y = params32->y, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .type = params32->type, + .pixels = (void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = gl_glReadPixels( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRectdv( void *args ) +{ + struct + { + PTR32 v1; + PTR32 v2; + } *params32 = args; + struct glRectdv_params params = + { + .v1 = (const GLdouble *)ULongToPtr(params32->v1), + .v2 = (const GLdouble *)ULongToPtr(params32->v2), + }; + NTSTATUS status; + status = gl_glRectdv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRectfv( void *args ) +{ + struct + { + PTR32 v1; + PTR32 v2; + } *params32 = args; + struct glRectfv_params params = + { + .v1 = (const GLfloat *)ULongToPtr(params32->v1), + .v2 = (const GLfloat *)ULongToPtr(params32->v2), + }; + NTSTATUS status; + status = gl_glRectfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRectiv( void *args ) +{ + struct + { + PTR32 v1; + PTR32 v2; + } *params32 = args; + struct glRectiv_params params = + { + .v1 = (const GLint *)ULongToPtr(params32->v1), + .v2 = (const GLint *)ULongToPtr(params32->v2), + }; + NTSTATUS status; + status = gl_glRectiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glRectsv( void *args ) +{ + struct + { + PTR32 v1; + PTR32 v2; + } *params32 = args; + struct glRectsv_params params = + { + .v1 = (const GLshort *)ULongToPtr(params32->v1), + .v2 = (const GLshort *)ULongToPtr(params32->v2), + }; + NTSTATUS status; + status = gl_glRectsv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glSelectBuffer( void *args ) +{ + struct + { + GLsizei size; + PTR32 buffer; + } *params32 = args; + struct glSelectBuffer_params params = + { + .size = params32->size, + .buffer = (GLuint *)ULongToPtr(params32->buffer), + }; + NTSTATUS status; + status = gl_glSelectBuffer( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord1dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord1dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord1dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord1fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord1fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord1fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord1iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord1iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord1iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord1sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord1sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord1sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord2dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord2dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord2fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord2fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord2iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord2iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord2iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord2sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord2sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord2sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord3dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord3dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord3fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord3fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord3iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord3iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord3iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord3sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord3sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord3sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord4dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord4dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord4fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord4fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord4iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord4iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord4iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoord4sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord4sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glTexCoord4sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexCoordPointer( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glTexCoordPointer_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = gl_glTexCoordPointer( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexEnvfv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexEnvfv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glTexEnvfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexEnviv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexEnviv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glTexEnviv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexGendv( void *args ) +{ + struct + { + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexGendv_params params = + { + .coord = params32->coord, + .pname = params32->pname, + .params = (const GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glTexGendv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexGenfv( void *args ) +{ + struct + { + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexGenfv_params params = + { + .coord = params32->coord, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glTexGenfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexGeniv( void *args ) +{ + struct + { + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexGeniv_params params = + { + .coord = params32->coord, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glTexGeniv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexImage1D( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint internalformat; + GLsizei width; + GLint border; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTexImage1D_params params = + { + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .border = params32->border, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = gl_glTexImage1D( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexImage2D( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint internalformat; + GLsizei width; + GLsizei height; + GLint border; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTexImage2D_params params = + { + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .border = params32->border, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = gl_glTexImage2D( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexParameterfv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexParameterfv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glTexParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexParameteriv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexParameteriv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = gl_glTexParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexSubImage1D( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint xoffset; + GLsizei width; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTexSubImage1D_params params = + { + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .width = params32->width, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = gl_glTexSubImage1D( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glTexSubImage2D( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLsizei width; + GLsizei height; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTexSubImage2D_params params = + { + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = gl_glTexSubImage2D( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glVertex2dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex2dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glVertex2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glVertex2fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex2fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glVertex2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glVertex2iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex2iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glVertex2iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glVertex2sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex2sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glVertex2sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glVertex3dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex3dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glVertex3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glVertex3fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex3fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glVertex3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glVertex3iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex3iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glVertex3iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glVertex3sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex3sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glVertex3sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glVertex4dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex4dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glVertex4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glVertex4fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex4fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glVertex4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glVertex4iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex4iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glVertex4iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glVertex4sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex4sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = gl_glVertex4sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_gl_glVertexPointer( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glVertexPointer_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = gl_glVertexPointer( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glActiveVaryingNV( void *args ) +{ + struct + { + GLuint program; + PTR32 name; + } *params32 = args; + struct glActiveVaryingNV_params params = + { + .program = params32->program, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glActiveVaryingNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glAreProgramsResidentNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 programs; + PTR32 residences; + GLboolean ret; + } *params32 = args; + struct glAreProgramsResidentNV_params params = + { + .n = params32->n, + .programs = (const GLuint *)ULongToPtr(params32->programs), + .residences = (GLboolean *)ULongToPtr(params32->residences), + }; + NTSTATUS status; + status = ext_glAreProgramsResidentNV( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glAreTexturesResidentEXT( void *args ) +{ + struct + { + GLsizei n; + PTR32 textures; + PTR32 residences; + GLboolean ret; + } *params32 = args; + struct glAreTexturesResidentEXT_params params = + { + .n = params32->n, + .textures = (const GLuint *)ULongToPtr(params32->textures), + .residences = (GLboolean *)ULongToPtr(params32->residences), + }; + NTSTATUS status; + status = ext_glAreTexturesResidentEXT( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glAsyncCopyBufferSubDataNVX( void *args ) +{ + struct + { + GLsizei waitSemaphoreCount; + PTR32 waitSemaphoreArray; + PTR32 fenceValueArray; + GLuint readGpu; + GLbitfield writeGpuMask; + GLuint readBuffer; + GLuint writeBuffer; + PTR32 readOffset; + PTR32 writeOffset; + PTR32 size; + GLsizei signalSemaphoreCount; + PTR32 signalSemaphoreArray; + PTR32 signalValueArray; + GLuint ret; + } *params32 = args; + struct glAsyncCopyBufferSubDataNVX_params params = + { + .waitSemaphoreCount = params32->waitSemaphoreCount, + .waitSemaphoreArray = (const GLuint *)ULongToPtr(params32->waitSemaphoreArray), + .fenceValueArray = (const GLuint64 *)ULongToPtr(params32->fenceValueArray), + .readGpu = params32->readGpu, + .writeGpuMask = params32->writeGpuMask, + .readBuffer = params32->readBuffer, + .writeBuffer = params32->writeBuffer, + .readOffset = (GLintptr)ULongToPtr(params32->readOffset), + .writeOffset = (GLintptr)ULongToPtr(params32->writeOffset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .signalSemaphoreCount = params32->signalSemaphoreCount, + .signalSemaphoreArray = (const GLuint *)ULongToPtr(params32->signalSemaphoreArray), + .signalValueArray = (const GLuint64 *)ULongToPtr(params32->signalValueArray), + }; + NTSTATUS status; + status = ext_glAsyncCopyBufferSubDataNVX( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glAsyncCopyImageSubDataNVX( void *args ) +{ + struct + { + GLsizei waitSemaphoreCount; + PTR32 waitSemaphoreArray; + PTR32 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; + PTR32 signalSemaphoreArray; + PTR32 signalValueArray; + GLuint ret; + } *params32 = args; + struct glAsyncCopyImageSubDataNVX_params params = + { + .waitSemaphoreCount = params32->waitSemaphoreCount, + .waitSemaphoreArray = (const GLuint *)ULongToPtr(params32->waitSemaphoreArray), + .waitValueArray = (const GLuint64 *)ULongToPtr(params32->waitValueArray), + .srcGpu = params32->srcGpu, + .dstGpuMask = params32->dstGpuMask, + .srcName = params32->srcName, + .srcTarget = params32->srcTarget, + .srcLevel = params32->srcLevel, + .srcX = params32->srcX, + .srcY = params32->srcY, + .srcZ = params32->srcZ, + .dstName = params32->dstName, + .dstTarget = params32->dstTarget, + .dstLevel = params32->dstLevel, + .dstX = params32->dstX, + .dstY = params32->dstY, + .dstZ = params32->dstZ, + .srcWidth = params32->srcWidth, + .srcHeight = params32->srcHeight, + .srcDepth = params32->srcDepth, + .signalSemaphoreCount = params32->signalSemaphoreCount, + .signalSemaphoreArray = (const GLuint *)ULongToPtr(params32->signalSemaphoreArray), + .signalValueArray = (const GLuint64 *)ULongToPtr(params32->signalValueArray), + }; + NTSTATUS status; + status = ext_glAsyncCopyImageSubDataNVX( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glBindAttribLocation( void *args ) +{ + struct + { + GLuint program; + GLuint index; + PTR32 name; + } *params32 = args; + struct glBindAttribLocation_params params = + { + .program = params32->program, + .index = params32->index, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glBindAttribLocation( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindAttribLocationARB( void *args ) +{ + struct + { + GLhandleARB programObj; + GLuint index; + PTR32 name; + } *params32 = args; + struct glBindAttribLocationARB_params params = + { + .programObj = params32->programObj, + .index = params32->index, + .name = (const GLcharARB *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glBindAttribLocationARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindBufferOffsetEXT( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLuint buffer; + PTR32 offset; + } *params32 = args; + struct glBindBufferOffsetEXT_params params = + { + .target = params32->target, + .index = params32->index, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glBindBufferOffsetEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindBufferOffsetNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLuint buffer; + PTR32 offset; + } *params32 = args; + struct glBindBufferOffsetNV_params params = + { + .target = params32->target, + .index = params32->index, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glBindBufferOffsetNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindBufferRange( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLuint buffer; + PTR32 offset; + PTR32 size; + } *params32 = args; + struct glBindBufferRange_params params = + { + .target = params32->target, + .index = params32->index, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + }; + NTSTATUS status; + status = ext_glBindBufferRange( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindBufferRangeEXT( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLuint buffer; + PTR32 offset; + PTR32 size; + } *params32 = args; + struct glBindBufferRangeEXT_params params = + { + .target = params32->target, + .index = params32->index, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + }; + NTSTATUS status; + status = ext_glBindBufferRangeEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindBufferRangeNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLuint buffer; + PTR32 offset; + PTR32 size; + } *params32 = args; + struct glBindBufferRangeNV_params params = + { + .target = params32->target, + .index = params32->index, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + }; + NTSTATUS status; + status = ext_glBindBufferRangeNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindBuffersBase( void *args ) +{ + struct + { + GLenum target; + GLuint first; + GLsizei count; + PTR32 buffers; + } *params32 = args; + struct glBindBuffersBase_params params = + { + .target = params32->target, + .first = params32->first, + .count = params32->count, + .buffers = (const GLuint *)ULongToPtr(params32->buffers), + }; + NTSTATUS status; + status = ext_glBindBuffersBase( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindBuffersRange( void *args ) +{ + struct + { + GLenum target; + GLuint first; + GLsizei count; + PTR32 buffers; + PTR32 offsets; + PTR32 sizes; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glBindFragDataLocation( void *args ) +{ + struct + { + GLuint program; + GLuint color; + PTR32 name; + } *params32 = args; + struct glBindFragDataLocation_params params = + { + .program = params32->program, + .color = params32->color, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glBindFragDataLocation( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindFragDataLocationEXT( void *args ) +{ + struct + { + GLuint program; + GLuint color; + PTR32 name; + } *params32 = args; + struct glBindFragDataLocationEXT_params params = + { + .program = params32->program, + .color = params32->color, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glBindFragDataLocationEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindFragDataLocationIndexed( void *args ) +{ + struct + { + GLuint program; + GLuint colorNumber; + GLuint index; + PTR32 name; + } *params32 = args; + struct glBindFragDataLocationIndexed_params params = + { + .program = params32->program, + .colorNumber = params32->colorNumber, + .index = params32->index, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glBindFragDataLocationIndexed( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindImageTextures( void *args ) +{ + struct + { + GLuint first; + GLsizei count; + PTR32 textures; + } *params32 = args; + struct glBindImageTextures_params params = + { + .first = params32->first, + .count = params32->count, + .textures = (const GLuint *)ULongToPtr(params32->textures), + }; + NTSTATUS status; + status = ext_glBindImageTextures( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindSamplers( void *args ) +{ + struct + { + GLuint first; + GLsizei count; + PTR32 samplers; + } *params32 = args; + struct glBindSamplers_params params = + { + .first = params32->first, + .count = params32->count, + .samplers = (const GLuint *)ULongToPtr(params32->samplers), + }; + NTSTATUS status; + status = ext_glBindSamplers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindTextures( void *args ) +{ + struct + { + GLuint first; + GLsizei count; + PTR32 textures; + } *params32 = args; + struct glBindTextures_params params = + { + .first = params32->first, + .count = params32->count, + .textures = (const GLuint *)ULongToPtr(params32->textures), + }; + NTSTATUS status; + status = ext_glBindTextures( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindVertexBuffer( void *args ) +{ + struct + { + GLuint bindingindex; + GLuint buffer; + PTR32 offset; + GLsizei stride; + } *params32 = args; + struct glBindVertexBuffer_params params = + { + .bindingindex = params32->bindingindex, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .stride = params32->stride, + }; + NTSTATUS status; + status = ext_glBindVertexBuffer( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBindVertexBuffers( void *args ) +{ + struct + { + GLuint first; + GLsizei count; + PTR32 buffers; + PTR32 offsets; + PTR32 strides; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glBindVideoCaptureStreamBufferNV( void *args ) +{ + struct + { + GLuint video_capture_slot; + GLuint stream; + GLenum frame_region; + PTR32 offset; + } *params32 = args; + struct glBindVideoCaptureStreamBufferNV_params params = + { + .video_capture_slot = params32->video_capture_slot, + .stream = params32->stream, + .frame_region = params32->frame_region, + .offset = (GLintptrARB)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glBindVideoCaptureStreamBufferNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBinormal3bvEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glBinormal3bvEXT_params params = + { + .v = (const GLbyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glBinormal3bvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBinormal3dvEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glBinormal3dvEXT_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glBinormal3dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBinormal3fvEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glBinormal3fvEXT_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glBinormal3fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBinormal3ivEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glBinormal3ivEXT_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glBinormal3ivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBinormal3svEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glBinormal3svEXT_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glBinormal3svEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBinormalPointerEXT( void *args ) +{ + struct + { + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glBinormalPointerEXT_params params = + { + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glBinormalPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBitmapxOES( void *args ) +{ + struct + { + GLsizei width; + GLsizei height; + GLfixed xorig; + GLfixed yorig; + GLfixed xmove; + GLfixed ymove; + PTR32 bitmap; + } *params32 = args; + struct glBitmapxOES_params params = + { + .width = params32->width, + .height = params32->height, + .xorig = params32->xorig, + .yorig = params32->yorig, + .xmove = params32->xmove, + .ymove = params32->ymove, + .bitmap = (const GLubyte *)ULongToPtr(params32->bitmap), + }; + NTSTATUS status; + status = ext_glBitmapxOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBufferAddressRangeNV( void *args ) +{ + struct + { + GLenum pname; + GLuint index; + GLuint64EXT address; + PTR32 length; + } *params32 = args; + struct glBufferAddressRangeNV_params params = + { + .pname = params32->pname, + .index = params32->index, + .address = params32->address, + .length = (GLsizeiptr)ULongToPtr(params32->length), + }; + NTSTATUS status; + status = ext_glBufferAddressRangeNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBufferData( void *args ) +{ + struct + { + GLenum target; + PTR32 size; + PTR32 data; + GLenum usage; + } *params32 = args; + struct glBufferData_params params = + { + .target = params32->target, + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (const void *)ULongToPtr(params32->data), + .usage = params32->usage, + }; + NTSTATUS status; + status = ext_glBufferData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBufferDataARB( void *args ) +{ + struct + { + GLenum target; + PTR32 size; + PTR32 data; + GLenum usage; + } *params32 = args; + struct glBufferDataARB_params params = + { + .target = params32->target, + .size = (GLsizeiptrARB)ULongToPtr(params32->size), + .data = (const void *)ULongToPtr(params32->data), + .usage = params32->usage, + }; + NTSTATUS status; + status = ext_glBufferDataARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBufferPageCommitmentARB( void *args ) +{ + struct + { + GLenum target; + PTR32 offset; + PTR32 size; + GLboolean commit; + } *params32 = args; + struct glBufferPageCommitmentARB_params params = + { + .target = params32->target, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .commit = params32->commit, + }; + NTSTATUS status; + status = ext_glBufferPageCommitmentARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBufferStorage( void *args ) +{ + struct + { + GLenum target; + PTR32 size; + PTR32 data; + GLbitfield flags; + } *params32 = args; + struct glBufferStorage_params params = + { + .target = params32->target, + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (const void *)ULongToPtr(params32->data), + .flags = params32->flags, + }; + NTSTATUS status; + status = ext_glBufferStorage( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBufferStorageExternalEXT( void *args ) +{ + struct + { + GLenum target; + PTR32 offset; + PTR32 size; + PTR32 clientBuffer; + GLbitfield flags; + } *params32 = args; + struct glBufferStorageExternalEXT_params params = + { + .target = params32->target, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .clientBuffer = (GLeglClientBufferEXT)ULongToPtr(params32->clientBuffer), + .flags = params32->flags, + }; + NTSTATUS status; + status = ext_glBufferStorageExternalEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBufferStorageMemEXT( void *args ) +{ + struct + { + GLenum target; + PTR32 size; + GLuint memory; + GLuint64 offset; + } *params32 = args; + struct glBufferStorageMemEXT_params params = + { + .target = params32->target, + .size = (GLsizeiptr)ULongToPtr(params32->size), + .memory = params32->memory, + .offset = params32->offset, + }; + NTSTATUS status; + status = ext_glBufferStorageMemEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBufferSubData( void *args ) +{ + struct + { + GLenum target; + PTR32 offset; + PTR32 size; + PTR32 data; + } *params32 = args; + struct glBufferSubData_params params = + { + .target = params32->target, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glBufferSubData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glBufferSubDataARB( void *args ) +{ + struct + { + GLenum target; + PTR32 offset; + PTR32 size; + PTR32 data; + } *params32 = args; + struct glBufferSubDataARB_params params = + { + .target = params32->target, + .offset = (GLintptrARB)ULongToPtr(params32->offset), + .size = (GLsizeiptrARB)ULongToPtr(params32->size), + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glBufferSubDataARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearBufferData( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + GLenum format; + GLenum type; + PTR32 data; + } *params32 = args; + struct glClearBufferData_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .format = params32->format, + .type = params32->type, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glClearBufferData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearBufferSubData( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + PTR32 offset; + PTR32 size; + GLenum format; + GLenum type; + PTR32 data; + } *params32 = args; + struct glClearBufferSubData_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .format = params32->format, + .type = params32->type, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glClearBufferSubData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearBufferfv( void *args ) +{ + struct + { + GLenum buffer; + GLint drawbuffer; + PTR32 value; + } *params32 = args; + struct glClearBufferfv_params params = + { + .buffer = params32->buffer, + .drawbuffer = params32->drawbuffer, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glClearBufferfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearBufferiv( void *args ) +{ + struct + { + GLenum buffer; + GLint drawbuffer; + PTR32 value; + } *params32 = args; + struct glClearBufferiv_params params = + { + .buffer = params32->buffer, + .drawbuffer = params32->drawbuffer, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glClearBufferiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearBufferuiv( void *args ) +{ + struct + { + GLenum buffer; + GLint drawbuffer; + PTR32 value; + } *params32 = args; + struct glClearBufferuiv_params params = + { + .buffer = params32->buffer, + .drawbuffer = params32->drawbuffer, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glClearBufferuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearNamedBufferData( void *args ) +{ + struct + { + GLuint buffer; + GLenum internalformat; + GLenum format; + GLenum type; + PTR32 data; + } *params32 = args; + struct glClearNamedBufferData_params params = + { + .buffer = params32->buffer, + .internalformat = params32->internalformat, + .format = params32->format, + .type = params32->type, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glClearNamedBufferData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearNamedBufferDataEXT( void *args ) +{ + struct + { + GLuint buffer; + GLenum internalformat; + GLenum format; + GLenum type; + PTR32 data; + } *params32 = args; + struct glClearNamedBufferDataEXT_params params = + { + .buffer = params32->buffer, + .internalformat = params32->internalformat, + .format = params32->format, + .type = params32->type, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glClearNamedBufferDataEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearNamedBufferSubData( void *args ) +{ + struct + { + GLuint buffer; + GLenum internalformat; + PTR32 offset; + PTR32 size; + GLenum format; + GLenum type; + PTR32 data; + } *params32 = args; + struct glClearNamedBufferSubData_params params = + { + .buffer = params32->buffer, + .internalformat = params32->internalformat, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .format = params32->format, + .type = params32->type, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glClearNamedBufferSubData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearNamedBufferSubDataEXT( void *args ) +{ + struct + { + GLuint buffer; + GLenum internalformat; + PTR32 offset; + PTR32 size; + GLenum format; + GLenum type; + PTR32 data; + } *params32 = args; + struct glClearNamedBufferSubDataEXT_params params = + { + .buffer = params32->buffer, + .internalformat = params32->internalformat, + .offset = (GLsizeiptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .format = params32->format, + .type = params32->type, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glClearNamedBufferSubDataEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearNamedFramebufferfv( void *args ) +{ + struct + { + GLuint framebuffer; + GLenum buffer; + GLint drawbuffer; + PTR32 value; + } *params32 = args; + struct glClearNamedFramebufferfv_params params = + { + .framebuffer = params32->framebuffer, + .buffer = params32->buffer, + .drawbuffer = params32->drawbuffer, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glClearNamedFramebufferfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearNamedFramebufferiv( void *args ) +{ + struct + { + GLuint framebuffer; + GLenum buffer; + GLint drawbuffer; + PTR32 value; + } *params32 = args; + struct glClearNamedFramebufferiv_params params = + { + .framebuffer = params32->framebuffer, + .buffer = params32->buffer, + .drawbuffer = params32->drawbuffer, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glClearNamedFramebufferiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearNamedFramebufferuiv( void *args ) +{ + struct + { + GLuint framebuffer; + GLenum buffer; + GLint drawbuffer; + PTR32 value; + } *params32 = args; + struct glClearNamedFramebufferuiv_params params = + { + .framebuffer = params32->framebuffer, + .buffer = params32->buffer, + .drawbuffer = params32->drawbuffer, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glClearNamedFramebufferuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearTexImage( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLenum format; + GLenum type; + PTR32 data; + } *params32 = args; + struct glClearTexImage_params params = + { + .texture = params32->texture, + .level = params32->level, + .format = params32->format, + .type = params32->type, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glClearTexImage( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClearTexSubImage( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLenum format; + GLenum type; + PTR32 data; + } *params32 = args; + struct glClearTexSubImage_params params = + { + .texture = params32->texture, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .format = params32->format, + .type = params32->type, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glClearTexSubImage( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClientWaitSemaphoreui64NVX( void *args ) +{ + struct + { + GLsizei fenceObjectCount; + PTR32 semaphoreArray; + PTR32 fenceValueArray; + } *params32 = args; + struct glClientWaitSemaphoreui64NVX_params params = + { + .fenceObjectCount = params32->fenceObjectCount, + .semaphoreArray = (const GLuint *)ULongToPtr(params32->semaphoreArray), + .fenceValueArray = (const GLuint64 *)ULongToPtr(params32->fenceValueArray), + }; + NTSTATUS status; + status = ext_glClientWaitSemaphoreui64NVX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClientWaitSync( void *args ) +{ + struct + { + PTR32 sync; + GLbitfield flags; + GLuint64 timeout; + GLenum ret; + } *params32 = args; + struct glClientWaitSync_params params = + { + .sync = (GLsync)ULongToPtr(params32->sync), + .flags = params32->flags, + .timeout = params32->timeout, + }; + NTSTATUS status; + status = ext_glClientWaitSync( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glClipPlanefOES( void *args ) +{ + struct + { + GLenum plane; + PTR32 equation; + } *params32 = args; + struct glClipPlanefOES_params params = + { + .plane = params32->plane, + .equation = (const GLfloat *)ULongToPtr(params32->equation), + }; + NTSTATUS status; + status = ext_glClipPlanefOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glClipPlanexOES( void *args ) +{ + struct + { + GLenum plane; + PTR32 equation; + } *params32 = args; + struct glClipPlanexOES_params params = + { + .plane = params32->plane, + .equation = (const GLfixed *)ULongToPtr(params32->equation), + }; + NTSTATUS status; + status = ext_glClipPlanexOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColor3fVertex3fvSUN( void *args ) +{ + struct + { + PTR32 c; + PTR32 v; + } *params32 = args; + struct glColor3fVertex3fvSUN_params params = + { + .c = (const GLfloat *)ULongToPtr(params32->c), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glColor3fVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColor3hvNV( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor3hvNV_params params = + { + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glColor3hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColor3xvOES( void *args ) +{ + struct + { + PTR32 components; + } *params32 = args; + struct glColor3xvOES_params params = + { + .components = (const GLfixed *)ULongToPtr(params32->components), + }; + NTSTATUS status; + status = ext_glColor3xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColor4fNormal3fVertex3fvSUN( void *args ) +{ + struct + { + PTR32 c; + PTR32 n; + PTR32 v; + } *params32 = args; + struct glColor4fNormal3fVertex3fvSUN_params params = + { + .c = (const GLfloat *)ULongToPtr(params32->c), + .n = (const GLfloat *)ULongToPtr(params32->n), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glColor4fNormal3fVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColor4hvNV( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glColor4hvNV_params params = + { + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glColor4hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColor4ubVertex2fvSUN( void *args ) +{ + struct + { + PTR32 c; + PTR32 v; + } *params32 = args; + struct glColor4ubVertex2fvSUN_params params = + { + .c = (const GLubyte *)ULongToPtr(params32->c), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glColor4ubVertex2fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColor4ubVertex3fvSUN( void *args ) +{ + struct + { + PTR32 c; + PTR32 v; + } *params32 = args; + struct glColor4ubVertex3fvSUN_params params = + { + .c = (const GLubyte *)ULongToPtr(params32->c), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glColor4ubVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColor4xvOES( void *args ) +{ + struct + { + PTR32 components; + } *params32 = args; + struct glColor4xvOES_params params = + { + .components = (const GLfixed *)ULongToPtr(params32->components), + }; + NTSTATUS status; + status = ext_glColor4xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColorP3uiv( void *args ) +{ + struct + { + GLenum type; + PTR32 color; + } *params32 = args; + struct glColorP3uiv_params params = + { + .type = params32->type, + .color = (const GLuint *)ULongToPtr(params32->color), + }; + NTSTATUS status; + status = ext_glColorP3uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColorP4uiv( void *args ) +{ + struct + { + GLenum type; + PTR32 color; + } *params32 = args; + struct glColorP4uiv_params params = + { + .type = params32->type, + .color = (const GLuint *)ULongToPtr(params32->color), + }; + NTSTATUS status; + status = ext_glColorP4uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColorPointerEXT( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLsizei stride; + GLsizei count; + PTR32 pointer; + } *params32 = args; + struct glColorPointerEXT_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .count = params32->count, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glColorPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColorPointerListIBM( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLint stride; + PTR32 pointer; + GLint ptrstride; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glColorPointervINTEL( void *args ) +{ + struct + { + GLint size; + GLenum type; + PTR32 pointer; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glColorSubTable( void *args ) +{ + struct + { + GLenum target; + GLsizei start; + GLsizei count; + GLenum format; + GLenum type; + PTR32 data; + } *params32 = args; + struct glColorSubTable_params params = + { + .target = params32->target, + .start = params32->start, + .count = params32->count, + .format = params32->format, + .type = params32->type, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glColorSubTable( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColorSubTableEXT( void *args ) +{ + struct + { + GLenum target; + GLsizei start; + GLsizei count; + GLenum format; + GLenum type; + PTR32 data; + } *params32 = args; + struct glColorSubTableEXT_params params = + { + .target = params32->target, + .start = params32->start, + .count = params32->count, + .format = params32->format, + .type = params32->type, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glColorSubTableEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColorTable( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + GLsizei width; + GLenum format; + GLenum type; + PTR32 table; + } *params32 = args; + struct glColorTable_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .width = params32->width, + .format = params32->format, + .type = params32->type, + .table = (const void *)ULongToPtr(params32->table), + }; + NTSTATUS status; + status = ext_glColorTable( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColorTableEXT( void *args ) +{ + struct + { + GLenum target; + GLenum internalFormat; + GLsizei width; + GLenum format; + GLenum type; + PTR32 table; + } *params32 = args; + struct glColorTableEXT_params params = + { + .target = params32->target, + .internalFormat = params32->internalFormat, + .width = params32->width, + .format = params32->format, + .type = params32->type, + .table = (const void *)ULongToPtr(params32->table), + }; + NTSTATUS status; + status = ext_glColorTableEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColorTableParameterfv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glColorTableParameterfv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glColorTableParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColorTableParameterfvSGI( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glColorTableParameterfvSGI_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glColorTableParameterfvSGI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColorTableParameteriv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glColorTableParameteriv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glColorTableParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColorTableParameterivSGI( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glColorTableParameterivSGI_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glColorTableParameterivSGI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glColorTableSGI( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + GLsizei width; + GLenum format; + GLenum type; + PTR32 table; + } *params32 = args; + struct glColorTableSGI_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .width = params32->width, + .format = params32->format, + .type = params32->type, + .table = (const void *)ULongToPtr(params32->table), + }; + NTSTATUS status; + status = ext_glColorTableSGI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCombinerParameterfvNV( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glCombinerParameterfvNV_params params = + { + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glCombinerParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCombinerParameterivNV( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glCombinerParameterivNV_params params = + { + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glCombinerParameterivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCombinerStageParameterfvNV( void *args ) +{ + struct + { + GLenum stage; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glCombinerStageParameterfvNV_params params = + { + .stage = params32->stage, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glCombinerStageParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompileShaderIncludeARB( void *args ) +{ + struct + { + GLuint shader; + GLsizei count; + PTR32 path; + PTR32 length; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glCompressedMultiTexImage1DEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLint border; + GLsizei imageSize; + PTR32 bits; + } *params32 = args; + struct glCompressedMultiTexImage1DEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .border = params32->border, + .imageSize = params32->imageSize, + .bits = (const void *)ULongToPtr(params32->bits), + }; + NTSTATUS status; + status = ext_glCompressedMultiTexImage1DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedMultiTexImage2DEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLint border; + GLsizei imageSize; + PTR32 bits; + } *params32 = args; + struct glCompressedMultiTexImage2DEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .border = params32->border, + .imageSize = params32->imageSize, + .bits = (const void *)ULongToPtr(params32->bits), + }; + NTSTATUS status; + status = ext_glCompressedMultiTexImage2DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedMultiTexImage3DEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLsizei depth; + GLint border; + GLsizei imageSize; + PTR32 bits; + } *params32 = args; + struct glCompressedMultiTexImage3DEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .border = params32->border, + .imageSize = params32->imageSize, + .bits = (const void *)ULongToPtr(params32->bits), + }; + NTSTATUS status; + status = ext_glCompressedMultiTexImage3DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedMultiTexSubImage1DEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLint xoffset; + GLsizei width; + GLenum format; + GLsizei imageSize; + PTR32 bits; + } *params32 = args; + struct glCompressedMultiTexSubImage1DEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .width = params32->width, + .format = params32->format, + .imageSize = params32->imageSize, + .bits = (const void *)ULongToPtr(params32->bits), + }; + NTSTATUS status; + status = ext_glCompressedMultiTexSubImage1DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedMultiTexSubImage2DEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLsizei width; + GLsizei height; + GLenum format; + GLsizei imageSize; + PTR32 bits; + } *params32 = args; + struct glCompressedMultiTexSubImage2DEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .imageSize = params32->imageSize, + .bits = (const void *)ULongToPtr(params32->bits), + }; + NTSTATUS status; + status = ext_glCompressedMultiTexSubImage2DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedMultiTexSubImage3DEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLenum format; + GLsizei imageSize; + PTR32 bits; + } *params32 = args; + struct glCompressedMultiTexSubImage3DEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .format = params32->format, + .imageSize = params32->imageSize, + .bits = (const void *)ULongToPtr(params32->bits), + }; + NTSTATUS status; + status = ext_glCompressedMultiTexSubImage3DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTexImage1D( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLint border; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTexImage1D_params params = + { + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .border = params32->border, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTexImage1D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTexImage1DARB( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLint border; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTexImage1DARB_params params = + { + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .border = params32->border, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTexImage1DARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTexImage2D( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLint border; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTexImage2D_params params = + { + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .border = params32->border, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTexImage2D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTexImage2DARB( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLint border; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTexImage2DARB_params params = + { + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .border = params32->border, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTexImage2DARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTexImage3D( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLsizei depth; + GLint border; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTexImage3D_params params = + { + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .border = params32->border, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTexImage3D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTexImage3DARB( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLsizei depth; + GLint border; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTexImage3DARB_params params = + { + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .border = params32->border, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTexImage3DARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTexSubImage1D( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint xoffset; + GLsizei width; + GLenum format; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTexSubImage1D_params params = + { + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .width = params32->width, + .format = params32->format, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTexSubImage1D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTexSubImage1DARB( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint xoffset; + GLsizei width; + GLenum format; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTexSubImage1DARB_params params = + { + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .width = params32->width, + .format = params32->format, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTexSubImage1DARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTexSubImage2D( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLsizei width; + GLsizei height; + GLenum format; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTexSubImage2D_params params = + { + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTexSubImage2D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTexSubImage2DARB( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLsizei width; + GLsizei height; + GLenum format; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTexSubImage2DARB_params params = + { + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTexSubImage2DARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTexSubImage3D( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLenum format; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTexSubImage3D_params params = + { + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .format = params32->format, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTexSubImage3D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTexSubImage3DARB( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLenum format; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTexSubImage3DARB_params params = + { + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .format = params32->format, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTexSubImage3DARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTextureImage1DEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLint border; + GLsizei imageSize; + PTR32 bits; + } *params32 = args; + struct glCompressedTextureImage1DEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .border = params32->border, + .imageSize = params32->imageSize, + .bits = (const void *)ULongToPtr(params32->bits), + }; + NTSTATUS status; + status = ext_glCompressedTextureImage1DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTextureImage2DEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLint border; + GLsizei imageSize; + PTR32 bits; + } *params32 = args; + struct glCompressedTextureImage2DEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .border = params32->border, + .imageSize = params32->imageSize, + .bits = (const void *)ULongToPtr(params32->bits), + }; + NTSTATUS status; + status = ext_glCompressedTextureImage2DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTextureImage3DEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLsizei depth; + GLint border; + GLsizei imageSize; + PTR32 bits; + } *params32 = args; + struct glCompressedTextureImage3DEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .border = params32->border, + .imageSize = params32->imageSize, + .bits = (const void *)ULongToPtr(params32->bits), + }; + NTSTATUS status; + status = ext_glCompressedTextureImage3DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTextureSubImage1D( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLint xoffset; + GLsizei width; + GLenum format; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTextureSubImage1D_params params = + { + .texture = params32->texture, + .level = params32->level, + .xoffset = params32->xoffset, + .width = params32->width, + .format = params32->format, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTextureSubImage1D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTextureSubImage1DEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLint xoffset; + GLsizei width; + GLenum format; + GLsizei imageSize; + PTR32 bits; + } *params32 = args; + struct glCompressedTextureSubImage1DEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .width = params32->width, + .format = params32->format, + .imageSize = params32->imageSize, + .bits = (const void *)ULongToPtr(params32->bits), + }; + NTSTATUS status; + status = ext_glCompressedTextureSubImage1DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTextureSubImage2D( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLint xoffset; + GLint yoffset; + GLsizei width; + GLsizei height; + GLenum format; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTextureSubImage2D_params params = + { + .texture = params32->texture, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTextureSubImage2D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTextureSubImage2DEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLsizei width; + GLsizei height; + GLenum format; + GLsizei imageSize; + PTR32 bits; + } *params32 = args; + struct glCompressedTextureSubImage2DEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .imageSize = params32->imageSize, + .bits = (const void *)ULongToPtr(params32->bits), + }; + NTSTATUS status; + status = ext_glCompressedTextureSubImage2DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTextureSubImage3D( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLenum format; + GLsizei imageSize; + PTR32 data; + } *params32 = args; + struct glCompressedTextureSubImage3D_params params = + { + .texture = params32->texture, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .format = params32->format, + .imageSize = params32->imageSize, + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glCompressedTextureSubImage3D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCompressedTextureSubImage3DEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLenum format; + GLsizei imageSize; + PTR32 bits; + } *params32 = args; + struct glCompressedTextureSubImage3DEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .format = params32->format, + .imageSize = params32->imageSize, + .bits = (const void *)ULongToPtr(params32->bits), + }; + NTSTATUS status; + status = ext_glCompressedTextureSubImage3DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glConvolutionFilter1D( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + GLsizei width; + GLenum format; + GLenum type; + PTR32 image; + } *params32 = args; + struct glConvolutionFilter1D_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .width = params32->width, + .format = params32->format, + .type = params32->type, + .image = (const void *)ULongToPtr(params32->image), + }; + NTSTATUS status; + status = ext_glConvolutionFilter1D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glConvolutionFilter1DEXT( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + GLsizei width; + GLenum format; + GLenum type; + PTR32 image; + } *params32 = args; + struct glConvolutionFilter1DEXT_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .width = params32->width, + .format = params32->format, + .type = params32->type, + .image = (const void *)ULongToPtr(params32->image), + }; + NTSTATUS status; + status = ext_glConvolutionFilter1DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glConvolutionFilter2D( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLenum format; + GLenum type; + PTR32 image; + } *params32 = args; + struct glConvolutionFilter2D_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .type = params32->type, + .image = (const void *)ULongToPtr(params32->image), + }; + NTSTATUS status; + status = ext_glConvolutionFilter2D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glConvolutionFilter2DEXT( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLenum format; + GLenum type; + PTR32 image; + } *params32 = args; + struct glConvolutionFilter2DEXT_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .type = params32->type, + .image = (const void *)ULongToPtr(params32->image), + }; + NTSTATUS status; + status = ext_glConvolutionFilter2DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glConvolutionParameterfv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glConvolutionParameterfv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glConvolutionParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glConvolutionParameterfvEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glConvolutionParameterfvEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glConvolutionParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glConvolutionParameteriv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glConvolutionParameteriv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glConvolutionParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glConvolutionParameterivEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glConvolutionParameterivEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glConvolutionParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glConvolutionParameterxvOES( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glConvolutionParameterxvOES_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glConvolutionParameterxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCopyBufferSubData( void *args ) +{ + struct + { + GLenum readTarget; + GLenum writeTarget; + PTR32 readOffset; + PTR32 writeOffset; + PTR32 size; + } *params32 = args; + struct glCopyBufferSubData_params params = + { + .readTarget = params32->readTarget, + .writeTarget = params32->writeTarget, + .readOffset = (GLintptr)ULongToPtr(params32->readOffset), + .writeOffset = (GLintptr)ULongToPtr(params32->writeOffset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + }; + NTSTATUS status; + status = ext_glCopyBufferSubData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCopyNamedBufferSubData( void *args ) +{ + struct + { + GLuint readBuffer; + GLuint writeBuffer; + PTR32 readOffset; + PTR32 writeOffset; + PTR32 size; + } *params32 = args; + struct glCopyNamedBufferSubData_params params = + { + .readBuffer = params32->readBuffer, + .writeBuffer = params32->writeBuffer, + .readOffset = (GLintptr)ULongToPtr(params32->readOffset), + .writeOffset = (GLintptr)ULongToPtr(params32->writeOffset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + }; + NTSTATUS status; + status = ext_glCopyNamedBufferSubData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCoverFillPathInstancedNV( void *args ) +{ + struct + { + GLsizei numPaths; + GLenum pathNameType; + PTR32 paths; + GLuint pathBase; + GLenum coverMode; + GLenum transformType; + PTR32 transformValues; + } *params32 = args; + struct glCoverFillPathInstancedNV_params params = + { + .numPaths = params32->numPaths, + .pathNameType = params32->pathNameType, + .paths = (const void *)ULongToPtr(params32->paths), + .pathBase = params32->pathBase, + .coverMode = params32->coverMode, + .transformType = params32->transformType, + .transformValues = (const GLfloat *)ULongToPtr(params32->transformValues), + }; + NTSTATUS status; + status = ext_glCoverFillPathInstancedNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCoverStrokePathInstancedNV( void *args ) +{ + struct + { + GLsizei numPaths; + GLenum pathNameType; + PTR32 paths; + GLuint pathBase; + GLenum coverMode; + GLenum transformType; + PTR32 transformValues; + } *params32 = args; + struct glCoverStrokePathInstancedNV_params params = + { + .numPaths = params32->numPaths, + .pathNameType = params32->pathNameType, + .paths = (const void *)ULongToPtr(params32->paths), + .pathBase = params32->pathBase, + .coverMode = params32->coverMode, + .transformType = params32->transformType, + .transformValues = (const GLfloat *)ULongToPtr(params32->transformValues), + }; + NTSTATUS status; + status = ext_glCoverStrokePathInstancedNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCoverageModulationTableNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 v; + } *params32 = args; + struct glCoverageModulationTableNV_params params = + { + .n = params32->n, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glCoverageModulationTableNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCreateBuffers( void *args ) +{ + struct + { + GLsizei n; + PTR32 buffers; + } *params32 = args; + struct glCreateBuffers_params params = + { + .n = params32->n, + .buffers = (GLuint *)ULongToPtr(params32->buffers), + }; + NTSTATUS status; + status = ext_glCreateBuffers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCreateCommandListsNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 lists; + } *params32 = args; + struct glCreateCommandListsNV_params params = + { + .n = params32->n, + .lists = (GLuint *)ULongToPtr(params32->lists), + }; + NTSTATUS status; + status = ext_glCreateCommandListsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCreateFramebuffers( void *args ) +{ + struct + { + GLsizei n; + PTR32 framebuffers; + } *params32 = args; + struct glCreateFramebuffers_params params = + { + .n = params32->n, + .framebuffers = (GLuint *)ULongToPtr(params32->framebuffers), + }; + NTSTATUS status; + status = ext_glCreateFramebuffers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCreateMemoryObjectsEXT( void *args ) +{ + struct + { + GLsizei n; + PTR32 memoryObjects; + } *params32 = args; + struct glCreateMemoryObjectsEXT_params params = + { + .n = params32->n, + .memoryObjects = (GLuint *)ULongToPtr(params32->memoryObjects), + }; + NTSTATUS status; + status = ext_glCreateMemoryObjectsEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCreatePerfQueryINTEL( void *args ) +{ + struct + { + GLuint queryId; + PTR32 queryHandle; + } *params32 = args; + struct glCreatePerfQueryINTEL_params params = + { + .queryId = params32->queryId, + .queryHandle = (GLuint *)ULongToPtr(params32->queryHandle), + }; + NTSTATUS status; + status = ext_glCreatePerfQueryINTEL( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCreateProgramPipelines( void *args ) +{ + struct + { + GLsizei n; + PTR32 pipelines; + } *params32 = args; + struct glCreateProgramPipelines_params params = + { + .n = params32->n, + .pipelines = (GLuint *)ULongToPtr(params32->pipelines), + }; + NTSTATUS status; + status = ext_glCreateProgramPipelines( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCreateQueries( void *args ) +{ + struct + { + GLenum target; + GLsizei n; + PTR32 ids; + } *params32 = args; + struct glCreateQueries_params params = + { + .target = params32->target, + .n = params32->n, + .ids = (GLuint *)ULongToPtr(params32->ids), + }; + NTSTATUS status; + status = ext_glCreateQueries( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCreateRenderbuffers( void *args ) +{ + struct + { + GLsizei n; + PTR32 renderbuffers; + } *params32 = args; + struct glCreateRenderbuffers_params params = + { + .n = params32->n, + .renderbuffers = (GLuint *)ULongToPtr(params32->renderbuffers), + }; + NTSTATUS status; + status = ext_glCreateRenderbuffers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCreateSamplers( void *args ) +{ + struct + { + GLsizei n; + PTR32 samplers; + } *params32 = args; + struct glCreateSamplers_params params = + { + .n = params32->n, + .samplers = (GLuint *)ULongToPtr(params32->samplers), + }; + NTSTATUS status; + status = ext_glCreateSamplers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCreateShaderProgramEXT( void *args ) +{ + struct + { + GLenum type; + PTR32 string; + GLuint ret; + } *params32 = args; + struct glCreateShaderProgramEXT_params params = + { + .type = params32->type, + .string = (const GLchar *)ULongToPtr(params32->string), + }; + NTSTATUS status; + status = ext_glCreateShaderProgramEXT( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glCreateShaderProgramv( void *args ) +{ + struct + { + GLenum type; + GLsizei count; + PTR32 strings; + GLuint ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glCreateStatesNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 states; + } *params32 = args; + struct glCreateStatesNV_params params = + { + .n = params32->n, + .states = (GLuint *)ULongToPtr(params32->states), + }; + NTSTATUS status; + status = ext_glCreateStatesNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCreateSyncFromCLeventARB( void *args ) +{ + struct + { + PTR32 context; + PTR32 event; + GLbitfield flags; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glCreateTextures( void *args ) +{ + struct + { + GLenum target; + GLsizei n; + PTR32 textures; + } *params32 = args; + struct glCreateTextures_params params = + { + .target = params32->target, + .n = params32->n, + .textures = (GLuint *)ULongToPtr(params32->textures), + }; + NTSTATUS status; + status = ext_glCreateTextures( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCreateTransformFeedbacks( void *args ) +{ + struct + { + GLsizei n; + PTR32 ids; + } *params32 = args; + struct glCreateTransformFeedbacks_params params = + { + .n = params32->n, + .ids = (GLuint *)ULongToPtr(params32->ids), + }; + NTSTATUS status; + status = ext_glCreateTransformFeedbacks( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCreateVertexArrays( void *args ) +{ + struct + { + GLsizei n; + PTR32 arrays; + } *params32 = args; + struct glCreateVertexArrays_params params = + { + .n = params32->n, + .arrays = (GLuint *)ULongToPtr(params32->arrays), + }; + NTSTATUS status; + status = ext_glCreateVertexArrays( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCullParameterdvEXT( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glCullParameterdvEXT_params params = + { + .pname = params32->pname, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glCullParameterdvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glCullParameterfvEXT( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glCullParameterfvEXT_params params = + { + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glCullParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDebugMessageCallback( void *args ) +{ + struct + { + PTR32 callback; + PTR32 userParam; + } *params32 = args; + struct glDebugMessageCallback_params params = + { + .callback = (GLDEBUGPROC)ULongToPtr(params32->callback), + .userParam = (const void *)ULongToPtr(params32->userParam), + }; + NTSTATUS status; + status = ext_glDebugMessageCallback( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDebugMessageCallbackAMD( void *args ) +{ + struct + { + PTR32 callback; + PTR32 userParam; + } *params32 = args; + struct glDebugMessageCallbackAMD_params params = + { + .callback = (GLDEBUGPROCAMD)ULongToPtr(params32->callback), + .userParam = (void *)ULongToPtr(params32->userParam), + }; + NTSTATUS status; + status = ext_glDebugMessageCallbackAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDebugMessageCallbackARB( void *args ) +{ + struct + { + PTR32 callback; + PTR32 userParam; + } *params32 = args; + struct glDebugMessageCallbackARB_params params = + { + .callback = (GLDEBUGPROCARB)ULongToPtr(params32->callback), + .userParam = (const void *)ULongToPtr(params32->userParam), + }; + NTSTATUS status; + status = ext_glDebugMessageCallbackARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDebugMessageControl( void *args ) +{ + struct + { + GLenum source; + GLenum type; + GLenum severity; + GLsizei count; + PTR32 ids; + GLboolean enabled; + } *params32 = args; + struct glDebugMessageControl_params params = + { + .source = params32->source, + .type = params32->type, + .severity = params32->severity, + .count = params32->count, + .ids = (const GLuint *)ULongToPtr(params32->ids), + .enabled = params32->enabled, + }; + NTSTATUS status; + status = ext_glDebugMessageControl( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDebugMessageControlARB( void *args ) +{ + struct + { + GLenum source; + GLenum type; + GLenum severity; + GLsizei count; + PTR32 ids; + GLboolean enabled; + } *params32 = args; + struct glDebugMessageControlARB_params params = + { + .source = params32->source, + .type = params32->type, + .severity = params32->severity, + .count = params32->count, + .ids = (const GLuint *)ULongToPtr(params32->ids), + .enabled = params32->enabled, + }; + NTSTATUS status; + status = ext_glDebugMessageControlARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDebugMessageEnableAMD( void *args ) +{ + struct + { + GLenum category; + GLenum severity; + GLsizei count; + PTR32 ids; + GLboolean enabled; + } *params32 = args; + struct glDebugMessageEnableAMD_params params = + { + .category = params32->category, + .severity = params32->severity, + .count = params32->count, + .ids = (const GLuint *)ULongToPtr(params32->ids), + .enabled = params32->enabled, + }; + NTSTATUS status; + status = ext_glDebugMessageEnableAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDebugMessageInsert( void *args ) +{ + struct + { + GLenum source; + GLenum type; + GLuint id; + GLenum severity; + GLsizei length; + PTR32 buf; + } *params32 = args; + struct glDebugMessageInsert_params params = + { + .source = params32->source, + .type = params32->type, + .id = params32->id, + .severity = params32->severity, + .length = params32->length, + .buf = (const GLchar *)ULongToPtr(params32->buf), + }; + NTSTATUS status; + status = ext_glDebugMessageInsert( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDebugMessageInsertAMD( void *args ) +{ + struct + { + GLenum category; + GLenum severity; + GLuint id; + GLsizei length; + PTR32 buf; + } *params32 = args; + struct glDebugMessageInsertAMD_params params = + { + .category = params32->category, + .severity = params32->severity, + .id = params32->id, + .length = params32->length, + .buf = (const GLchar *)ULongToPtr(params32->buf), + }; + NTSTATUS status; + status = ext_glDebugMessageInsertAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDebugMessageInsertARB( void *args ) +{ + struct + { + GLenum source; + GLenum type; + GLuint id; + GLenum severity; + GLsizei length; + PTR32 buf; + } *params32 = args; + struct glDebugMessageInsertARB_params params = + { + .source = params32->source, + .type = params32->type, + .id = params32->id, + .severity = params32->severity, + .length = params32->length, + .buf = (const GLchar *)ULongToPtr(params32->buf), + }; + NTSTATUS status; + status = ext_glDebugMessageInsertARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeformationMap3dSGIX( void *args ) +{ + struct + { + 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; + PTR32 points; + } *params32 = args; + struct glDeformationMap3dSGIX_params params = + { + .target = params32->target, + .u1 = params32->u1, + .u2 = params32->u2, + .ustride = params32->ustride, + .uorder = params32->uorder, + .v1 = params32->v1, + .v2 = params32->v2, + .vstride = params32->vstride, + .vorder = params32->vorder, + .w1 = params32->w1, + .w2 = params32->w2, + .wstride = params32->wstride, + .worder = params32->worder, + .points = (const GLdouble *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glDeformationMap3dSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeformationMap3fSGIX( void *args ) +{ + struct + { + 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; + PTR32 points; + } *params32 = args; + struct glDeformationMap3fSGIX_params params = + { + .target = params32->target, + .u1 = params32->u1, + .u2 = params32->u2, + .ustride = params32->ustride, + .uorder = params32->uorder, + .v1 = params32->v1, + .v2 = params32->v2, + .vstride = params32->vstride, + .vorder = params32->vorder, + .w1 = params32->w1, + .w2 = params32->w2, + .wstride = params32->wstride, + .worder = params32->worder, + .points = (const GLfloat *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glDeformationMap3fSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteBuffers( void *args ) +{ + struct + { + GLsizei n; + PTR32 buffers; + } *params32 = args; + struct glDeleteBuffers_params params = + { + .n = params32->n, + .buffers = (const GLuint *)ULongToPtr(params32->buffers), + }; + NTSTATUS status; + status = ext_glDeleteBuffers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteBuffersARB( void *args ) +{ + struct + { + GLsizei n; + PTR32 buffers; + } *params32 = args; + struct glDeleteBuffersARB_params params = + { + .n = params32->n, + .buffers = (const GLuint *)ULongToPtr(params32->buffers), + }; + NTSTATUS status; + status = ext_glDeleteBuffersARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteCommandListsNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 lists; + } *params32 = args; + struct glDeleteCommandListsNV_params params = + { + .n = params32->n, + .lists = (const GLuint *)ULongToPtr(params32->lists), + }; + NTSTATUS status; + status = ext_glDeleteCommandListsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteFencesAPPLE( void *args ) +{ + struct + { + GLsizei n; + PTR32 fences; + } *params32 = args; + struct glDeleteFencesAPPLE_params params = + { + .n = params32->n, + .fences = (const GLuint *)ULongToPtr(params32->fences), + }; + NTSTATUS status; + status = ext_glDeleteFencesAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteFencesNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 fences; + } *params32 = args; + struct glDeleteFencesNV_params params = + { + .n = params32->n, + .fences = (const GLuint *)ULongToPtr(params32->fences), + }; + NTSTATUS status; + status = ext_glDeleteFencesNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteFramebuffers( void *args ) +{ + struct + { + GLsizei n; + PTR32 framebuffers; + } *params32 = args; + struct glDeleteFramebuffers_params params = + { + .n = params32->n, + .framebuffers = (const GLuint *)ULongToPtr(params32->framebuffers), + }; + NTSTATUS status; + status = ext_glDeleteFramebuffers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteFramebuffersEXT( void *args ) +{ + struct + { + GLsizei n; + PTR32 framebuffers; + } *params32 = args; + struct glDeleteFramebuffersEXT_params params = + { + .n = params32->n, + .framebuffers = (const GLuint *)ULongToPtr(params32->framebuffers), + }; + NTSTATUS status; + status = ext_glDeleteFramebuffersEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteMemoryObjectsEXT( void *args ) +{ + struct + { + GLsizei n; + PTR32 memoryObjects; + } *params32 = args; + struct glDeleteMemoryObjectsEXT_params params = + { + .n = params32->n, + .memoryObjects = (const GLuint *)ULongToPtr(params32->memoryObjects), + }; + NTSTATUS status; + status = ext_glDeleteMemoryObjectsEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteNamedStringARB( void *args ) +{ + struct + { + GLint namelen; + PTR32 name; + } *params32 = args; + struct glDeleteNamedStringARB_params params = + { + .namelen = params32->namelen, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glDeleteNamedStringARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteNamesAMD( void *args ) +{ + struct + { + GLenum identifier; + GLuint num; + PTR32 names; + } *params32 = args; + struct glDeleteNamesAMD_params params = + { + .identifier = params32->identifier, + .num = params32->num, + .names = (const GLuint *)ULongToPtr(params32->names), + }; + NTSTATUS status; + status = ext_glDeleteNamesAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteOcclusionQueriesNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 ids; + } *params32 = args; + struct glDeleteOcclusionQueriesNV_params params = + { + .n = params32->n, + .ids = (const GLuint *)ULongToPtr(params32->ids), + }; + NTSTATUS status; + status = ext_glDeleteOcclusionQueriesNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeletePerfMonitorsAMD( void *args ) +{ + struct + { + GLsizei n; + PTR32 monitors; + } *params32 = args; + struct glDeletePerfMonitorsAMD_params params = + { + .n = params32->n, + .monitors = (GLuint *)ULongToPtr(params32->monitors), + }; + NTSTATUS status; + status = ext_glDeletePerfMonitorsAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteProgramPipelines( void *args ) +{ + struct + { + GLsizei n; + PTR32 pipelines; + } *params32 = args; + struct glDeleteProgramPipelines_params params = + { + .n = params32->n, + .pipelines = (const GLuint *)ULongToPtr(params32->pipelines), + }; + NTSTATUS status; + status = ext_glDeleteProgramPipelines( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteProgramsARB( void *args ) +{ + struct + { + GLsizei n; + PTR32 programs; + } *params32 = args; + struct glDeleteProgramsARB_params params = + { + .n = params32->n, + .programs = (const GLuint *)ULongToPtr(params32->programs), + }; + NTSTATUS status; + status = ext_glDeleteProgramsARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteProgramsNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 programs; + } *params32 = args; + struct glDeleteProgramsNV_params params = + { + .n = params32->n, + .programs = (const GLuint *)ULongToPtr(params32->programs), + }; + NTSTATUS status; + status = ext_glDeleteProgramsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteQueries( void *args ) +{ + struct + { + GLsizei n; + PTR32 ids; + } *params32 = args; + struct glDeleteQueries_params params = + { + .n = params32->n, + .ids = (const GLuint *)ULongToPtr(params32->ids), + }; + NTSTATUS status; + status = ext_glDeleteQueries( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteQueriesARB( void *args ) +{ + struct + { + GLsizei n; + PTR32 ids; + } *params32 = args; + struct glDeleteQueriesARB_params params = + { + .n = params32->n, + .ids = (const GLuint *)ULongToPtr(params32->ids), + }; + NTSTATUS status; + status = ext_glDeleteQueriesARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteQueryResourceTagNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 tagIds; + } *params32 = args; + struct glDeleteQueryResourceTagNV_params params = + { + .n = params32->n, + .tagIds = (const GLint *)ULongToPtr(params32->tagIds), + }; + NTSTATUS status; + status = ext_glDeleteQueryResourceTagNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteRenderbuffers( void *args ) +{ + struct + { + GLsizei n; + PTR32 renderbuffers; + } *params32 = args; + struct glDeleteRenderbuffers_params params = + { + .n = params32->n, + .renderbuffers = (const GLuint *)ULongToPtr(params32->renderbuffers), + }; + NTSTATUS status; + status = ext_glDeleteRenderbuffers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteRenderbuffersEXT( void *args ) +{ + struct + { + GLsizei n; + PTR32 renderbuffers; + } *params32 = args; + struct glDeleteRenderbuffersEXT_params params = + { + .n = params32->n, + .renderbuffers = (const GLuint *)ULongToPtr(params32->renderbuffers), + }; + NTSTATUS status; + status = ext_glDeleteRenderbuffersEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteSamplers( void *args ) +{ + struct + { + GLsizei count; + PTR32 samplers; + } *params32 = args; + struct glDeleteSamplers_params params = + { + .count = params32->count, + .samplers = (const GLuint *)ULongToPtr(params32->samplers), + }; + NTSTATUS status; + status = ext_glDeleteSamplers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteSemaphoresEXT( void *args ) +{ + struct + { + GLsizei n; + PTR32 semaphores; + } *params32 = args; + struct glDeleteSemaphoresEXT_params params = + { + .n = params32->n, + .semaphores = (const GLuint *)ULongToPtr(params32->semaphores), + }; + NTSTATUS status; + status = ext_glDeleteSemaphoresEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteStatesNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 states; + } *params32 = args; + struct glDeleteStatesNV_params params = + { + .n = params32->n, + .states = (const GLuint *)ULongToPtr(params32->states), + }; + NTSTATUS status; + status = ext_glDeleteStatesNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteSync( void *args ) +{ + struct + { + PTR32 sync; + } *params32 = args; + struct glDeleteSync_params params = + { + .sync = (GLsync)ULongToPtr(params32->sync), + }; + NTSTATUS status; + status = ext_glDeleteSync( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteTexturesEXT( void *args ) +{ + struct + { + GLsizei n; + PTR32 textures; + } *params32 = args; + struct glDeleteTexturesEXT_params params = + { + .n = params32->n, + .textures = (const GLuint *)ULongToPtr(params32->textures), + }; + NTSTATUS status; + status = ext_glDeleteTexturesEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteTransformFeedbacks( void *args ) +{ + struct + { + GLsizei n; + PTR32 ids; + } *params32 = args; + struct glDeleteTransformFeedbacks_params params = + { + .n = params32->n, + .ids = (const GLuint *)ULongToPtr(params32->ids), + }; + NTSTATUS status; + status = ext_glDeleteTransformFeedbacks( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteTransformFeedbacksNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 ids; + } *params32 = args; + struct glDeleteTransformFeedbacksNV_params params = + { + .n = params32->n, + .ids = (const GLuint *)ULongToPtr(params32->ids), + }; + NTSTATUS status; + status = ext_glDeleteTransformFeedbacksNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteVertexArrays( void *args ) +{ + struct + { + GLsizei n; + PTR32 arrays; + } *params32 = args; + struct glDeleteVertexArrays_params params = + { + .n = params32->n, + .arrays = (const GLuint *)ULongToPtr(params32->arrays), + }; + NTSTATUS status; + status = ext_glDeleteVertexArrays( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDeleteVertexArraysAPPLE( void *args ) +{ + struct + { + GLsizei n; + PTR32 arrays; + } *params32 = args; + struct glDeleteVertexArraysAPPLE_params params = + { + .n = params32->n, + .arrays = (const GLuint *)ULongToPtr(params32->arrays), + }; + NTSTATUS status; + status = ext_glDeleteVertexArraysAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDepthRangeArraydvNV( void *args ) +{ + struct + { + GLuint first; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glDepthRangeArraydvNV_params params = + { + .first = params32->first, + .count = params32->count, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glDepthRangeArraydvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDepthRangeArrayv( void *args ) +{ + struct + { + GLuint first; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glDepthRangeArrayv_params params = + { + .first = params32->first, + .count = params32->count, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glDepthRangeArrayv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDetailTexFuncSGIS( void *args ) +{ + struct + { + GLenum target; + GLsizei n; + PTR32 points; + } *params32 = args; + struct glDetailTexFuncSGIS_params params = + { + .target = params32->target, + .n = params32->n, + .points = (const GLfloat *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glDetailTexFuncSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDispatchComputeIndirect( void *args ) +{ + struct + { + PTR32 indirect; + } *params32 = args; + struct glDispatchComputeIndirect_params params = + { + .indirect = (GLintptr)ULongToPtr(params32->indirect), + }; + NTSTATUS status; + status = ext_glDispatchComputeIndirect( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawArraysIndirect( void *args ) +{ + struct + { + GLenum mode; + PTR32 indirect; + } *params32 = args; + struct glDrawArraysIndirect_params params = + { + .mode = params32->mode, + .indirect = (const void *)ULongToPtr(params32->indirect), + }; + NTSTATUS status; + status = ext_glDrawArraysIndirect( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawBuffers( void *args ) +{ + struct + { + GLsizei n; + PTR32 bufs; + } *params32 = args; + struct glDrawBuffers_params params = + { + .n = params32->n, + .bufs = (const GLenum *)ULongToPtr(params32->bufs), + }; + NTSTATUS status; + status = ext_glDrawBuffers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawBuffersARB( void *args ) +{ + struct + { + GLsizei n; + PTR32 bufs; + } *params32 = args; + struct glDrawBuffersARB_params params = + { + .n = params32->n, + .bufs = (const GLenum *)ULongToPtr(params32->bufs), + }; + NTSTATUS status; + status = ext_glDrawBuffersARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawBuffersATI( void *args ) +{ + struct + { + GLsizei n; + PTR32 bufs; + } *params32 = args; + struct glDrawBuffersATI_params params = + { + .n = params32->n, + .bufs = (const GLenum *)ULongToPtr(params32->bufs), + }; + NTSTATUS status; + status = ext_glDrawBuffersATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawCommandsAddressNV( void *args ) +{ + struct + { + GLenum primitiveMode; + PTR32 indirects; + PTR32 sizes; + GLuint count; + } *params32 = args; + struct glDrawCommandsAddressNV_params params = + { + .primitiveMode = params32->primitiveMode, + .indirects = (const GLuint64 *)ULongToPtr(params32->indirects), + .sizes = (const GLsizei *)ULongToPtr(params32->sizes), + .count = params32->count, + }; + NTSTATUS status; + status = ext_glDrawCommandsAddressNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawCommandsNV( void *args ) +{ + struct + { + GLenum primitiveMode; + GLuint buffer; + PTR32 indirects; + PTR32 sizes; + GLuint count; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glDrawCommandsStatesAddressNV( void *args ) +{ + struct + { + PTR32 indirects; + PTR32 sizes; + PTR32 states; + PTR32 fbos; + GLuint count; + } *params32 = args; + struct glDrawCommandsStatesAddressNV_params params = + { + .indirects = (const GLuint64 *)ULongToPtr(params32->indirects), + .sizes = (const GLsizei *)ULongToPtr(params32->sizes), + .states = (const GLuint *)ULongToPtr(params32->states), + .fbos = (const GLuint *)ULongToPtr(params32->fbos), + .count = params32->count, + }; + NTSTATUS status; + status = ext_glDrawCommandsStatesAddressNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawCommandsStatesNV( void *args ) +{ + struct + { + GLuint buffer; + PTR32 indirects; + PTR32 sizes; + PTR32 states; + PTR32 fbos; + GLuint count; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glDrawElementsBaseVertex( void *args ) +{ + struct + { + GLenum mode; + GLsizei count; + GLenum type; + PTR32 indices; + GLint basevertex; + } *params32 = args; + struct glDrawElementsBaseVertex_params params = + { + .mode = params32->mode, + .count = params32->count, + .type = params32->type, + .indices = (const void *)ULongToPtr(params32->indices), + .basevertex = params32->basevertex, + }; + NTSTATUS status; + status = ext_glDrawElementsBaseVertex( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawElementsIndirect( void *args ) +{ + struct + { + GLenum mode; + GLenum type; + PTR32 indirect; + } *params32 = args; + struct glDrawElementsIndirect_params params = + { + .mode = params32->mode, + .type = params32->type, + .indirect = (const void *)ULongToPtr(params32->indirect), + }; + NTSTATUS status; + status = ext_glDrawElementsIndirect( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawElementsInstanced( void *args ) +{ + struct + { + GLenum mode; + GLsizei count; + GLenum type; + PTR32 indices; + GLsizei instancecount; + } *params32 = args; + struct glDrawElementsInstanced_params params = + { + .mode = params32->mode, + .count = params32->count, + .type = params32->type, + .indices = (const void *)ULongToPtr(params32->indices), + .instancecount = params32->instancecount, + }; + NTSTATUS status; + status = ext_glDrawElementsInstanced( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawElementsInstancedARB( void *args ) +{ + struct + { + GLenum mode; + GLsizei count; + GLenum type; + PTR32 indices; + GLsizei primcount; + } *params32 = args; + struct glDrawElementsInstancedARB_params params = + { + .mode = params32->mode, + .count = params32->count, + .type = params32->type, + .indices = (const void *)ULongToPtr(params32->indices), + .primcount = params32->primcount, + }; + NTSTATUS status; + status = ext_glDrawElementsInstancedARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawElementsInstancedBaseInstance( void *args ) +{ + struct + { + GLenum mode; + GLsizei count; + GLenum type; + PTR32 indices; + GLsizei instancecount; + GLuint baseinstance; + } *params32 = args; + struct glDrawElementsInstancedBaseInstance_params params = + { + .mode = params32->mode, + .count = params32->count, + .type = params32->type, + .indices = (const void *)ULongToPtr(params32->indices), + .instancecount = params32->instancecount, + .baseinstance = params32->baseinstance, + }; + NTSTATUS status; + status = ext_glDrawElementsInstancedBaseInstance( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawElementsInstancedBaseVertex( void *args ) +{ + struct + { + GLenum mode; + GLsizei count; + GLenum type; + PTR32 indices; + GLsizei instancecount; + GLint basevertex; + } *params32 = args; + struct glDrawElementsInstancedBaseVertex_params params = + { + .mode = params32->mode, + .count = params32->count, + .type = params32->type, + .indices = (const void *)ULongToPtr(params32->indices), + .instancecount = params32->instancecount, + .basevertex = params32->basevertex, + }; + NTSTATUS status; + status = ext_glDrawElementsInstancedBaseVertex( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawElementsInstancedBaseVertexBaseInstance( void *args ) +{ + struct + { + GLenum mode; + GLsizei count; + GLenum type; + PTR32 indices; + GLsizei instancecount; + GLint basevertex; + GLuint baseinstance; + } *params32 = args; + struct glDrawElementsInstancedBaseVertexBaseInstance_params params = + { + .mode = params32->mode, + .count = params32->count, + .type = params32->type, + .indices = (const void *)ULongToPtr(params32->indices), + .instancecount = params32->instancecount, + .basevertex = params32->basevertex, + .baseinstance = params32->baseinstance, + }; + NTSTATUS status; + status = ext_glDrawElementsInstancedBaseVertexBaseInstance( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawElementsInstancedEXT( void *args ) +{ + struct + { + GLenum mode; + GLsizei count; + GLenum type; + PTR32 indices; + GLsizei primcount; + } *params32 = args; + struct glDrawElementsInstancedEXT_params params = + { + .mode = params32->mode, + .count = params32->count, + .type = params32->type, + .indices = (const void *)ULongToPtr(params32->indices), + .primcount = params32->primcount, + }; + NTSTATUS status; + status = ext_glDrawElementsInstancedEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawMeshTasksIndirectNV( void *args ) +{ + struct + { + PTR32 indirect; + } *params32 = args; + struct glDrawMeshTasksIndirectNV_params params = + { + .indirect = (GLintptr)ULongToPtr(params32->indirect), + }; + NTSTATUS status; + status = ext_glDrawMeshTasksIndirectNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawRangeElements( void *args ) +{ + struct + { + GLenum mode; + GLuint start; + GLuint end; + GLsizei count; + GLenum type; + PTR32 indices; + } *params32 = args; + struct glDrawRangeElements_params params = + { + .mode = params32->mode, + .start = params32->start, + .end = params32->end, + .count = params32->count, + .type = params32->type, + .indices = (const void *)ULongToPtr(params32->indices), + }; + NTSTATUS status; + status = ext_glDrawRangeElements( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawRangeElementsBaseVertex( void *args ) +{ + struct + { + GLenum mode; + GLuint start; + GLuint end; + GLsizei count; + GLenum type; + PTR32 indices; + GLint basevertex; + } *params32 = args; + struct glDrawRangeElementsBaseVertex_params params = + { + .mode = params32->mode, + .start = params32->start, + .end = params32->end, + .count = params32->count, + .type = params32->type, + .indices = (const void *)ULongToPtr(params32->indices), + .basevertex = params32->basevertex, + }; + NTSTATUS status; + status = ext_glDrawRangeElementsBaseVertex( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glDrawRangeElementsEXT( void *args ) +{ + struct + { + GLenum mode; + GLuint start; + GLuint end; + GLsizei count; + GLenum type; + PTR32 indices; + } *params32 = args; + struct glDrawRangeElementsEXT_params params = + { + .mode = params32->mode, + .start = params32->start, + .end = params32->end, + .count = params32->count, + .type = params32->type, + .indices = (const void *)ULongToPtr(params32->indices), + }; + NTSTATUS status; + status = ext_glDrawRangeElementsEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glEGLImageTargetTexStorageEXT( void *args ) +{ + struct + { + GLenum target; + PTR32 image; + PTR32 attrib_list; + } *params32 = args; + struct glEGLImageTargetTexStorageEXT_params params = + { + .target = params32->target, + .image = (GLeglImageOES)ULongToPtr(params32->image), + .attrib_list = (const GLint*)ULongToPtr(params32->attrib_list), + }; + NTSTATUS status; + status = ext_glEGLImageTargetTexStorageEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glEGLImageTargetTextureStorageEXT( void *args ) +{ + struct + { + GLuint texture; + PTR32 image; + PTR32 attrib_list; + } *params32 = args; + struct glEGLImageTargetTextureStorageEXT_params params = + { + .texture = params32->texture, + .image = (GLeglImageOES)ULongToPtr(params32->image), + .attrib_list = (const GLint*)ULongToPtr(params32->attrib_list), + }; + NTSTATUS status; + status = ext_glEGLImageTargetTextureStorageEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glEdgeFlagPointerEXT( void *args ) +{ + struct + { + GLsizei stride; + GLsizei count; + PTR32 pointer; + } *params32 = args; + struct glEdgeFlagPointerEXT_params params = + { + .stride = params32->stride, + .count = params32->count, + .pointer = (const GLboolean *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glEdgeFlagPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glEdgeFlagPointerListIBM( void *args ) +{ + struct + { + GLint stride; + PTR32 pointer; + GLint ptrstride; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glElementPointerAPPLE( void *args ) +{ + struct + { + GLenum type; + PTR32 pointer; + } *params32 = args; + struct glElementPointerAPPLE_params params = + { + .type = params32->type, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glElementPointerAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glElementPointerATI( void *args ) +{ + struct + { + GLenum type; + PTR32 pointer; + } *params32 = args; + struct glElementPointerATI_params params = + { + .type = params32->type, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glElementPointerATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glEvalCoord1xvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glEvalCoord1xvOES_params params = + { + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glEvalCoord1xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glEvalCoord2xvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glEvalCoord2xvOES_params params = + { + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glEvalCoord2xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glExecuteProgramNV( void *args ) +{ + struct + { + GLenum target; + GLuint id; + PTR32 params; + } *params32 = args; + struct glExecuteProgramNV_params params = + { + .target = params32->target, + .id = params32->id, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glExecuteProgramNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFeedbackBufferxOES( void *args ) +{ + struct + { + GLsizei n; + GLenum type; + PTR32 buffer; + } *params32 = args; + struct glFeedbackBufferxOES_params params = + { + .n = params32->n, + .type = params32->type, + .buffer = (const GLfixed *)ULongToPtr(params32->buffer), + }; + NTSTATUS status; + status = ext_glFeedbackBufferxOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFenceSync( void *args ) +{ + struct + { + GLenum condition; + GLbitfield flags; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glFinishAsyncSGIX( void *args ) +{ + struct + { + PTR32 markerp; + GLint ret; + } *params32 = args; + struct glFinishAsyncSGIX_params params = + { + .markerp = (GLuint *)ULongToPtr(params32->markerp), + }; + NTSTATUS status; + status = ext_glFinishAsyncSGIX( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glFlushMappedBufferRange( void *args ) +{ + struct + { + GLenum target; + PTR32 offset; + PTR32 length; + } *params32 = args; + struct glFlushMappedBufferRange_params params = + { + .target = params32->target, + .offset = (GLintptr)ULongToPtr(params32->offset), + .length = (GLsizeiptr)ULongToPtr(params32->length), + }; + NTSTATUS status; + status = ext_glFlushMappedBufferRange( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFlushMappedBufferRangeAPPLE( void *args ) +{ + struct + { + GLenum target; + PTR32 offset; + PTR32 size; + } *params32 = args; + struct glFlushMappedBufferRangeAPPLE_params params = + { + .target = params32->target, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + }; + NTSTATUS status; + status = ext_glFlushMappedBufferRangeAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFlushMappedNamedBufferRange( void *args ) +{ + struct + { + GLuint buffer; + PTR32 offset; + PTR32 length; + } *params32 = args; + struct glFlushMappedNamedBufferRange_params params = + { + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .length = (GLsizeiptr)ULongToPtr(params32->length), + }; + NTSTATUS status; + status = ext_glFlushMappedNamedBufferRange( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFlushMappedNamedBufferRangeEXT( void *args ) +{ + struct + { + GLuint buffer; + PTR32 offset; + PTR32 length; + } *params32 = args; + struct glFlushMappedNamedBufferRangeEXT_params params = + { + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .length = (GLsizeiptr)ULongToPtr(params32->length), + }; + NTSTATUS status; + status = ext_glFlushMappedNamedBufferRangeEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFlushVertexArrayRangeAPPLE( void *args ) +{ + struct + { + GLsizei length; + PTR32 pointer; + } *params32 = args; + struct glFlushVertexArrayRangeAPPLE_params params = + { + .length = params32->length, + .pointer = (void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glFlushVertexArrayRangeAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFogCoordPointer( void *args ) +{ + struct + { + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glFogCoordPointer_params params = + { + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glFogCoordPointer( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFogCoordPointerEXT( void *args ) +{ + struct + { + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glFogCoordPointerEXT_params params = + { + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glFogCoordPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFogCoordPointerListIBM( void *args ) +{ + struct + { + GLenum type; + GLint stride; + PTR32 pointer; + GLint ptrstride; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glFogCoorddv( void *args ) +{ + struct + { + PTR32 coord; + } *params32 = args; + struct glFogCoorddv_params params = + { + .coord = (const GLdouble *)ULongToPtr(params32->coord), + }; + NTSTATUS status; + status = ext_glFogCoorddv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFogCoorddvEXT( void *args ) +{ + struct + { + PTR32 coord; + } *params32 = args; + struct glFogCoorddvEXT_params params = + { + .coord = (const GLdouble *)ULongToPtr(params32->coord), + }; + NTSTATUS status; + status = ext_glFogCoorddvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFogCoordfv( void *args ) +{ + struct + { + PTR32 coord; + } *params32 = args; + struct glFogCoordfv_params params = + { + .coord = (const GLfloat *)ULongToPtr(params32->coord), + }; + NTSTATUS status; + status = ext_glFogCoordfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFogCoordfvEXT( void *args ) +{ + struct + { + PTR32 coord; + } *params32 = args; + struct glFogCoordfvEXT_params params = + { + .coord = (const GLfloat *)ULongToPtr(params32->coord), + }; + NTSTATUS status; + status = ext_glFogCoordfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFogCoordhvNV( void *args ) +{ + struct + { + PTR32 fog; + } *params32 = args; + struct glFogCoordhvNV_params params = + { + .fog = (const GLhalfNV *)ULongToPtr(params32->fog), + }; + NTSTATUS status; + status = ext_glFogCoordhvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFogFuncSGIS( void *args ) +{ + struct + { + GLsizei n; + PTR32 points; + } *params32 = args; + struct glFogFuncSGIS_params params = + { + .n = params32->n, + .points = (const GLfloat *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glFogFuncSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFogxvOES( void *args ) +{ + struct + { + GLenum pname; + PTR32 param; + } *params32 = args; + struct glFogxvOES_params params = + { + .pname = params32->pname, + .param = (const GLfixed *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glFogxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFragmentLightModelfvSGIX( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glFragmentLightModelfvSGIX_params params = + { + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glFragmentLightModelfvSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFragmentLightModelivSGIX( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glFragmentLightModelivSGIX_params params = + { + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glFragmentLightModelivSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFragmentLightfvSGIX( void *args ) +{ + struct + { + GLenum light; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glFragmentLightfvSGIX_params params = + { + .light = params32->light, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glFragmentLightfvSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFragmentLightivSGIX( void *args ) +{ + struct + { + GLenum light; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glFragmentLightivSGIX_params params = + { + .light = params32->light, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glFragmentLightivSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFragmentMaterialfvSGIX( void *args ) +{ + struct + { + GLenum face; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glFragmentMaterialfvSGIX_params params = + { + .face = params32->face, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glFragmentMaterialfvSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFragmentMaterialivSGIX( void *args ) +{ + struct + { + GLenum face; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glFragmentMaterialivSGIX_params params = + { + .face = params32->face, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glFragmentMaterialivSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFramebufferDrawBuffersEXT( void *args ) +{ + struct + { + GLuint framebuffer; + GLsizei n; + PTR32 bufs; + } *params32 = args; + struct glFramebufferDrawBuffersEXT_params params = + { + .framebuffer = params32->framebuffer, + .n = params32->n, + .bufs = (const GLenum *)ULongToPtr(params32->bufs), + }; + NTSTATUS status; + status = ext_glFramebufferDrawBuffersEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFramebufferSampleLocationsfvARB( void *args ) +{ + struct + { + GLenum target; + GLuint start; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glFramebufferSampleLocationsfvARB_params params = + { + .target = params32->target, + .start = params32->start, + .count = params32->count, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glFramebufferSampleLocationsfvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFramebufferSampleLocationsfvNV( void *args ) +{ + struct + { + GLenum target; + GLuint start; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glFramebufferSampleLocationsfvNV_params params = + { + .target = params32->target, + .start = params32->start, + .count = params32->count, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glFramebufferSampleLocationsfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glFramebufferSamplePositionsfvAMD( void *args ) +{ + struct + { + GLenum target; + GLuint numsamples; + GLuint pixelindex; + PTR32 values; + } *params32 = args; + struct glFramebufferSamplePositionsfvAMD_params params = + { + .target = params32->target, + .numsamples = params32->numsamples, + .pixelindex = params32->pixelindex, + .values = (const GLfloat *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glFramebufferSamplePositionsfvAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenBuffers( void *args ) +{ + struct + { + GLsizei n; + PTR32 buffers; + } *params32 = args; + struct glGenBuffers_params params = + { + .n = params32->n, + .buffers = (GLuint *)ULongToPtr(params32->buffers), + }; + NTSTATUS status; + status = ext_glGenBuffers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenBuffersARB( void *args ) +{ + struct + { + GLsizei n; + PTR32 buffers; + } *params32 = args; + struct glGenBuffersARB_params params = + { + .n = params32->n, + .buffers = (GLuint *)ULongToPtr(params32->buffers), + }; + NTSTATUS status; + status = ext_glGenBuffersARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenFencesAPPLE( void *args ) +{ + struct + { + GLsizei n; + PTR32 fences; + } *params32 = args; + struct glGenFencesAPPLE_params params = + { + .n = params32->n, + .fences = (GLuint *)ULongToPtr(params32->fences), + }; + NTSTATUS status; + status = ext_glGenFencesAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenFencesNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 fences; + } *params32 = args; + struct glGenFencesNV_params params = + { + .n = params32->n, + .fences = (GLuint *)ULongToPtr(params32->fences), + }; + NTSTATUS status; + status = ext_glGenFencesNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenFramebuffers( void *args ) +{ + struct + { + GLsizei n; + PTR32 framebuffers; + } *params32 = args; + struct glGenFramebuffers_params params = + { + .n = params32->n, + .framebuffers = (GLuint *)ULongToPtr(params32->framebuffers), + }; + NTSTATUS status; + status = ext_glGenFramebuffers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenFramebuffersEXT( void *args ) +{ + struct + { + GLsizei n; + PTR32 framebuffers; + } *params32 = args; + struct glGenFramebuffersEXT_params params = + { + .n = params32->n, + .framebuffers = (GLuint *)ULongToPtr(params32->framebuffers), + }; + NTSTATUS status; + status = ext_glGenFramebuffersEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenNamesAMD( void *args ) +{ + struct + { + GLenum identifier; + GLuint num; + PTR32 names; + } *params32 = args; + struct glGenNamesAMD_params params = + { + .identifier = params32->identifier, + .num = params32->num, + .names = (GLuint *)ULongToPtr(params32->names), + }; + NTSTATUS status; + status = ext_glGenNamesAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenOcclusionQueriesNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 ids; + } *params32 = args; + struct glGenOcclusionQueriesNV_params params = + { + .n = params32->n, + .ids = (GLuint *)ULongToPtr(params32->ids), + }; + NTSTATUS status; + status = ext_glGenOcclusionQueriesNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenPerfMonitorsAMD( void *args ) +{ + struct + { + GLsizei n; + PTR32 monitors; + } *params32 = args; + struct glGenPerfMonitorsAMD_params params = + { + .n = params32->n, + .monitors = (GLuint *)ULongToPtr(params32->monitors), + }; + NTSTATUS status; + status = ext_glGenPerfMonitorsAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenProgramPipelines( void *args ) +{ + struct + { + GLsizei n; + PTR32 pipelines; + } *params32 = args; + struct glGenProgramPipelines_params params = + { + .n = params32->n, + .pipelines = (GLuint *)ULongToPtr(params32->pipelines), + }; + NTSTATUS status; + status = ext_glGenProgramPipelines( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenProgramsARB( void *args ) +{ + struct + { + GLsizei n; + PTR32 programs; + } *params32 = args; + struct glGenProgramsARB_params params = + { + .n = params32->n, + .programs = (GLuint *)ULongToPtr(params32->programs), + }; + NTSTATUS status; + status = ext_glGenProgramsARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenProgramsNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 programs; + } *params32 = args; + struct glGenProgramsNV_params params = + { + .n = params32->n, + .programs = (GLuint *)ULongToPtr(params32->programs), + }; + NTSTATUS status; + status = ext_glGenProgramsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenQueries( void *args ) +{ + struct + { + GLsizei n; + PTR32 ids; + } *params32 = args; + struct glGenQueries_params params = + { + .n = params32->n, + .ids = (GLuint *)ULongToPtr(params32->ids), + }; + NTSTATUS status; + status = ext_glGenQueries( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenQueriesARB( void *args ) +{ + struct + { + GLsizei n; + PTR32 ids; + } *params32 = args; + struct glGenQueriesARB_params params = + { + .n = params32->n, + .ids = (GLuint *)ULongToPtr(params32->ids), + }; + NTSTATUS status; + status = ext_glGenQueriesARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenQueryResourceTagNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 tagIds; + } *params32 = args; + struct glGenQueryResourceTagNV_params params = + { + .n = params32->n, + .tagIds = (GLint *)ULongToPtr(params32->tagIds), + }; + NTSTATUS status; + status = ext_glGenQueryResourceTagNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenRenderbuffers( void *args ) +{ + struct + { + GLsizei n; + PTR32 renderbuffers; + } *params32 = args; + struct glGenRenderbuffers_params params = + { + .n = params32->n, + .renderbuffers = (GLuint *)ULongToPtr(params32->renderbuffers), + }; + NTSTATUS status; + status = ext_glGenRenderbuffers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenRenderbuffersEXT( void *args ) +{ + struct + { + GLsizei n; + PTR32 renderbuffers; + } *params32 = args; + struct glGenRenderbuffersEXT_params params = + { + .n = params32->n, + .renderbuffers = (GLuint *)ULongToPtr(params32->renderbuffers), + }; + NTSTATUS status; + status = ext_glGenRenderbuffersEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenSamplers( void *args ) +{ + struct + { + GLsizei count; + PTR32 samplers; + } *params32 = args; + struct glGenSamplers_params params = + { + .count = params32->count, + .samplers = (GLuint *)ULongToPtr(params32->samplers), + }; + NTSTATUS status; + status = ext_glGenSamplers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenSemaphoresEXT( void *args ) +{ + struct + { + GLsizei n; + PTR32 semaphores; + } *params32 = args; + struct glGenSemaphoresEXT_params params = + { + .n = params32->n, + .semaphores = (GLuint *)ULongToPtr(params32->semaphores), + }; + NTSTATUS status; + status = ext_glGenSemaphoresEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenTexturesEXT( void *args ) +{ + struct + { + GLsizei n; + PTR32 textures; + } *params32 = args; + struct glGenTexturesEXT_params params = + { + .n = params32->n, + .textures = (GLuint *)ULongToPtr(params32->textures), + }; + NTSTATUS status; + status = ext_glGenTexturesEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenTransformFeedbacks( void *args ) +{ + struct + { + GLsizei n; + PTR32 ids; + } *params32 = args; + struct glGenTransformFeedbacks_params params = + { + .n = params32->n, + .ids = (GLuint *)ULongToPtr(params32->ids), + }; + NTSTATUS status; + status = ext_glGenTransformFeedbacks( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenTransformFeedbacksNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 ids; + } *params32 = args; + struct glGenTransformFeedbacksNV_params params = + { + .n = params32->n, + .ids = (GLuint *)ULongToPtr(params32->ids), + }; + NTSTATUS status; + status = ext_glGenTransformFeedbacksNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenVertexArrays( void *args ) +{ + struct + { + GLsizei n; + PTR32 arrays; + } *params32 = args; + struct glGenVertexArrays_params params = + { + .n = params32->n, + .arrays = (GLuint *)ULongToPtr(params32->arrays), + }; + NTSTATUS status; + status = ext_glGenVertexArrays( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGenVertexArraysAPPLE( void *args ) +{ + struct + { + GLsizei n; + PTR32 arrays; + } *params32 = args; + struct glGenVertexArraysAPPLE_params params = + { + .n = params32->n, + .arrays = (GLuint *)ULongToPtr(params32->arrays), + }; + NTSTATUS status; + status = ext_glGenVertexArraysAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetActiveAtomicCounterBufferiv( void *args ) +{ + struct + { + GLuint program; + GLuint bufferIndex; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetActiveAtomicCounterBufferiv_params params = + { + .program = params32->program, + .bufferIndex = params32->bufferIndex, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetActiveAtomicCounterBufferiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetActiveAttrib( void *args ) +{ + struct + { + GLuint program; + GLuint index; + GLsizei bufSize; + PTR32 length; + PTR32 size; + PTR32 type; + PTR32 name; + } *params32 = args; + struct glGetActiveAttrib_params params = + { + .program = params32->program, + .index = params32->index, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .size = (GLint *)ULongToPtr(params32->size), + .type = (GLenum *)ULongToPtr(params32->type), + .name = (GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetActiveAttrib( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetActiveAttribARB( void *args ) +{ + struct + { + GLhandleARB programObj; + GLuint index; + GLsizei maxLength; + PTR32 length; + PTR32 size; + PTR32 type; + PTR32 name; + } *params32 = args; + struct glGetActiveAttribARB_params params = + { + .programObj = params32->programObj, + .index = params32->index, + .maxLength = params32->maxLength, + .length = (GLsizei *)ULongToPtr(params32->length), + .size = (GLint *)ULongToPtr(params32->size), + .type = (GLenum *)ULongToPtr(params32->type), + .name = (GLcharARB *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetActiveAttribARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetActiveSubroutineName( void *args ) +{ + struct + { + GLuint program; + GLenum shadertype; + GLuint index; + GLsizei bufSize; + PTR32 length; + PTR32 name; + } *params32 = args; + struct glGetActiveSubroutineName_params params = + { + .program = params32->program, + .shadertype = params32->shadertype, + .index = params32->index, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .name = (GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetActiveSubroutineName( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetActiveSubroutineUniformName( void *args ) +{ + struct + { + GLuint program; + GLenum shadertype; + GLuint index; + GLsizei bufSize; + PTR32 length; + PTR32 name; + } *params32 = args; + struct glGetActiveSubroutineUniformName_params params = + { + .program = params32->program, + .shadertype = params32->shadertype, + .index = params32->index, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .name = (GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetActiveSubroutineUniformName( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetActiveSubroutineUniformiv( void *args ) +{ + struct + { + GLuint program; + GLenum shadertype; + GLuint index; + GLenum pname; + PTR32 values; + } *params32 = args; + struct glGetActiveSubroutineUniformiv_params params = + { + .program = params32->program, + .shadertype = params32->shadertype, + .index = params32->index, + .pname = params32->pname, + .values = (GLint *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetActiveSubroutineUniformiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetActiveUniform( void *args ) +{ + struct + { + GLuint program; + GLuint index; + GLsizei bufSize; + PTR32 length; + PTR32 size; + PTR32 type; + PTR32 name; + } *params32 = args; + struct glGetActiveUniform_params params = + { + .program = params32->program, + .index = params32->index, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .size = (GLint *)ULongToPtr(params32->size), + .type = (GLenum *)ULongToPtr(params32->type), + .name = (GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetActiveUniform( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetActiveUniformARB( void *args ) +{ + struct + { + GLhandleARB programObj; + GLuint index; + GLsizei maxLength; + PTR32 length; + PTR32 size; + PTR32 type; + PTR32 name; + } *params32 = args; + struct glGetActiveUniformARB_params params = + { + .programObj = params32->programObj, + .index = params32->index, + .maxLength = params32->maxLength, + .length = (GLsizei *)ULongToPtr(params32->length), + .size = (GLint *)ULongToPtr(params32->size), + .type = (GLenum *)ULongToPtr(params32->type), + .name = (GLcharARB *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetActiveUniformARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetActiveUniformBlockName( void *args ) +{ + struct + { + GLuint program; + GLuint uniformBlockIndex; + GLsizei bufSize; + PTR32 length; + PTR32 uniformBlockName; + } *params32 = args; + struct glGetActiveUniformBlockName_params params = + { + .program = params32->program, + .uniformBlockIndex = params32->uniformBlockIndex, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .uniformBlockName = (GLchar *)ULongToPtr(params32->uniformBlockName), + }; + NTSTATUS status; + status = ext_glGetActiveUniformBlockName( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetActiveUniformBlockiv( void *args ) +{ + struct + { + GLuint program; + GLuint uniformBlockIndex; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetActiveUniformBlockiv_params params = + { + .program = params32->program, + .uniformBlockIndex = params32->uniformBlockIndex, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetActiveUniformBlockiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetActiveUniformName( void *args ) +{ + struct + { + GLuint program; + GLuint uniformIndex; + GLsizei bufSize; + PTR32 length; + PTR32 uniformName; + } *params32 = args; + struct glGetActiveUniformName_params params = + { + .program = params32->program, + .uniformIndex = params32->uniformIndex, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .uniformName = (GLchar *)ULongToPtr(params32->uniformName), + }; + NTSTATUS status; + status = ext_glGetActiveUniformName( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetActiveUniformsiv( void *args ) +{ + struct + { + GLuint program; + GLsizei uniformCount; + PTR32 uniformIndices; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetActiveUniformsiv_params params = + { + .program = params32->program, + .uniformCount = params32->uniformCount, + .uniformIndices = (const GLuint *)ULongToPtr(params32->uniformIndices), + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetActiveUniformsiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetActiveVaryingNV( void *args ) +{ + struct + { + GLuint program; + GLuint index; + GLsizei bufSize; + PTR32 length; + PTR32 size; + PTR32 type; + PTR32 name; + } *params32 = args; + struct glGetActiveVaryingNV_params params = + { + .program = params32->program, + .index = params32->index, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .size = (GLsizei *)ULongToPtr(params32->size), + .type = (GLenum *)ULongToPtr(params32->type), + .name = (GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetActiveVaryingNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetArrayObjectfvATI( void *args ) +{ + struct + { + GLenum array; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetArrayObjectfvATI_params params = + { + .array = params32->array, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetArrayObjectfvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetArrayObjectivATI( void *args ) +{ + struct + { + GLenum array; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetArrayObjectivATI_params params = + { + .array = params32->array, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetArrayObjectivATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetAttachedObjectsARB( void *args ) +{ + struct + { + GLhandleARB containerObj; + GLsizei maxCount; + PTR32 count; + PTR32 obj; + } *params32 = args; + struct glGetAttachedObjectsARB_params params = + { + .containerObj = params32->containerObj, + .maxCount = params32->maxCount, + .count = (GLsizei *)ULongToPtr(params32->count), + .obj = (GLhandleARB *)ULongToPtr(params32->obj), + }; + NTSTATUS status; + status = ext_glGetAttachedObjectsARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetAttachedShaders( void *args ) +{ + struct + { + GLuint program; + GLsizei maxCount; + PTR32 count; + PTR32 shaders; + } *params32 = args; + struct glGetAttachedShaders_params params = + { + .program = params32->program, + .maxCount = params32->maxCount, + .count = (GLsizei *)ULongToPtr(params32->count), + .shaders = (GLuint *)ULongToPtr(params32->shaders), + }; + NTSTATUS status; + status = ext_glGetAttachedShaders( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetAttribLocation( void *args ) +{ + struct + { + GLuint program; + PTR32 name; + GLint ret; + } *params32 = args; + struct glGetAttribLocation_params params = + { + .program = params32->program, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetAttribLocation( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetAttribLocationARB( void *args ) +{ + struct + { + GLhandleARB programObj; + PTR32 name; + GLint ret; + } *params32 = args; + struct glGetAttribLocationARB_params params = + { + .programObj = params32->programObj, + .name = (const GLcharARB *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetAttribLocationARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetBooleanIndexedvEXT( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 data; + } *params32 = args; + struct glGetBooleanIndexedvEXT_params params = + { + .target = params32->target, + .index = params32->index, + .data = (GLboolean *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetBooleanIndexedvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetBooleani_v( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 data; + } *params32 = args; + struct glGetBooleani_v_params params = + { + .target = params32->target, + .index = params32->index, + .data = (GLboolean *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetBooleani_v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetBufferParameteri64v( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetBufferParameteri64v_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetBufferParameteri64v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetBufferParameteriv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetBufferParameteriv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetBufferParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetBufferParameterivARB( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetBufferParameterivARB_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetBufferParameterivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetBufferParameterui64vNV( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetBufferParameterui64vNV_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLuint64EXT *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetBufferParameterui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetBufferPointerv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetBufferPointervARB( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetBufferSubData( void *args ) +{ + struct + { + GLenum target; + PTR32 offset; + PTR32 size; + PTR32 data; + } *params32 = args; + struct glGetBufferSubData_params params = + { + .target = params32->target, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetBufferSubData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetBufferSubDataARB( void *args ) +{ + struct + { + GLenum target; + PTR32 offset; + PTR32 size; + PTR32 data; + } *params32 = args; + struct glGetBufferSubDataARB_params params = + { + .target = params32->target, + .offset = (GLintptrARB)ULongToPtr(params32->offset), + .size = (GLsizeiptrARB)ULongToPtr(params32->size), + .data = (void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetBufferSubDataARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetClipPlanefOES( void *args ) +{ + struct + { + GLenum plane; + PTR32 equation; + } *params32 = args; + struct glGetClipPlanefOES_params params = + { + .plane = params32->plane, + .equation = (GLfloat *)ULongToPtr(params32->equation), + }; + NTSTATUS status; + status = ext_glGetClipPlanefOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetClipPlanexOES( void *args ) +{ + struct + { + GLenum plane; + PTR32 equation; + } *params32 = args; + struct glGetClipPlanexOES_params params = + { + .plane = params32->plane, + .equation = (GLfixed *)ULongToPtr(params32->equation), + }; + NTSTATUS status; + status = ext_glGetClipPlanexOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetColorTable( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLenum type; + PTR32 table; + } *params32 = args; + struct glGetColorTable_params params = + { + .target = params32->target, + .format = params32->format, + .type = params32->type, + .table = (void *)ULongToPtr(params32->table), + }; + NTSTATUS status; + status = ext_glGetColorTable( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetColorTableEXT( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLenum type; + PTR32 data; + } *params32 = args; + struct glGetColorTableEXT_params params = + { + .target = params32->target, + .format = params32->format, + .type = params32->type, + .data = (void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetColorTableEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetColorTableParameterfv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetColorTableParameterfv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetColorTableParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetColorTableParameterfvEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetColorTableParameterfvEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetColorTableParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetColorTableParameterfvSGI( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetColorTableParameterfvSGI_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetColorTableParameterfvSGI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetColorTableParameteriv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetColorTableParameteriv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetColorTableParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetColorTableParameterivEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetColorTableParameterivEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetColorTableParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetColorTableParameterivSGI( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetColorTableParameterivSGI_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetColorTableParameterivSGI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetColorTableSGI( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLenum type; + PTR32 table; + } *params32 = args; + struct glGetColorTableSGI_params params = + { + .target = params32->target, + .format = params32->format, + .type = params32->type, + .table = (void *)ULongToPtr(params32->table), + }; + NTSTATUS status; + status = ext_glGetColorTableSGI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetCombinerInputParameterfvNV( void *args ) +{ + struct + { + GLenum stage; + GLenum portion; + GLenum variable; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetCombinerInputParameterfvNV_params params = + { + .stage = params32->stage, + .portion = params32->portion, + .variable = params32->variable, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetCombinerInputParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetCombinerInputParameterivNV( void *args ) +{ + struct + { + GLenum stage; + GLenum portion; + GLenum variable; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetCombinerInputParameterivNV_params params = + { + .stage = params32->stage, + .portion = params32->portion, + .variable = params32->variable, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetCombinerInputParameterivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetCombinerOutputParameterfvNV( void *args ) +{ + struct + { + GLenum stage; + GLenum portion; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetCombinerOutputParameterfvNV_params params = + { + .stage = params32->stage, + .portion = params32->portion, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetCombinerOutputParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetCombinerOutputParameterivNV( void *args ) +{ + struct + { + GLenum stage; + GLenum portion; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetCombinerOutputParameterivNV_params params = + { + .stage = params32->stage, + .portion = params32->portion, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetCombinerOutputParameterivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetCombinerStageParameterfvNV( void *args ) +{ + struct + { + GLenum stage; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetCombinerStageParameterfvNV_params params = + { + .stage = params32->stage, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetCombinerStageParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetCompressedMultiTexImageEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint lod; + PTR32 img; + } *params32 = args; + struct glGetCompressedMultiTexImageEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .lod = params32->lod, + .img = (void *)ULongToPtr(params32->img), + }; + NTSTATUS status; + status = ext_glGetCompressedMultiTexImageEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetCompressedTexImage( void *args ) +{ + struct + { + GLenum target; + GLint level; + PTR32 img; + } *params32 = args; + struct glGetCompressedTexImage_params params = + { + .target = params32->target, + .level = params32->level, + .img = (void *)ULongToPtr(params32->img), + }; + NTSTATUS status; + status = ext_glGetCompressedTexImage( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetCompressedTexImageARB( void *args ) +{ + struct + { + GLenum target; + GLint level; + PTR32 img; + } *params32 = args; + struct glGetCompressedTexImageARB_params params = + { + .target = params32->target, + .level = params32->level, + .img = (void *)ULongToPtr(params32->img), + }; + NTSTATUS status; + status = ext_glGetCompressedTexImageARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetCompressedTextureImage( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLsizei bufSize; + PTR32 pixels; + } *params32 = args; + struct glGetCompressedTextureImage_params params = + { + .texture = params32->texture, + .level = params32->level, + .bufSize = params32->bufSize, + .pixels = (void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glGetCompressedTextureImage( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetCompressedTextureImageEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint lod; + PTR32 img; + } *params32 = args; + struct glGetCompressedTextureImageEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .lod = params32->lod, + .img = (void *)ULongToPtr(params32->img), + }; + NTSTATUS status; + status = ext_glGetCompressedTextureImageEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetCompressedTextureSubImage( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLsizei bufSize; + PTR32 pixels; + } *params32 = args; + struct glGetCompressedTextureSubImage_params params = + { + .texture = params32->texture, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .bufSize = params32->bufSize, + .pixels = (void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glGetCompressedTextureSubImage( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetConvolutionFilter( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLenum type; + PTR32 image; + } *params32 = args; + struct glGetConvolutionFilter_params params = + { + .target = params32->target, + .format = params32->format, + .type = params32->type, + .image = (void *)ULongToPtr(params32->image), + }; + NTSTATUS status; + status = ext_glGetConvolutionFilter( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetConvolutionFilterEXT( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLenum type; + PTR32 image; + } *params32 = args; + struct glGetConvolutionFilterEXT_params params = + { + .target = params32->target, + .format = params32->format, + .type = params32->type, + .image = (void *)ULongToPtr(params32->image), + }; + NTSTATUS status; + status = ext_glGetConvolutionFilterEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetConvolutionParameterfv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetConvolutionParameterfv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetConvolutionParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetConvolutionParameterfvEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetConvolutionParameterfvEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetConvolutionParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetConvolutionParameteriv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetConvolutionParameteriv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetConvolutionParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetConvolutionParameterivEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetConvolutionParameterivEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetConvolutionParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetConvolutionParameterxvOES( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetConvolutionParameterxvOES_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetConvolutionParameterxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetCoverageModulationTableNV( void *args ) +{ + struct + { + GLsizei bufSize; + PTR32 v; + } *params32 = args; + struct glGetCoverageModulationTableNV_params params = + { + .bufSize = params32->bufSize, + .v = (GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glGetCoverageModulationTableNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetDebugMessageLog( void *args ) +{ + struct + { + GLuint count; + GLsizei bufSize; + PTR32 sources; + PTR32 types; + PTR32 ids; + PTR32 severities; + PTR32 lengths; + PTR32 messageLog; + GLuint ret; + } *params32 = args; + struct glGetDebugMessageLog_params params = + { + .count = params32->count, + .bufSize = params32->bufSize, + .sources = (GLenum *)ULongToPtr(params32->sources), + .types = (GLenum *)ULongToPtr(params32->types), + .ids = (GLuint *)ULongToPtr(params32->ids), + .severities = (GLenum *)ULongToPtr(params32->severities), + .lengths = (GLsizei *)ULongToPtr(params32->lengths), + .messageLog = (GLchar *)ULongToPtr(params32->messageLog), + }; + NTSTATUS status; + status = ext_glGetDebugMessageLog( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetDebugMessageLogAMD( void *args ) +{ + struct + { + GLuint count; + GLsizei bufSize; + PTR32 categories; + PTR32 severities; + PTR32 ids; + PTR32 lengths; + PTR32 message; + GLuint ret; + } *params32 = args; + struct glGetDebugMessageLogAMD_params params = + { + .count = params32->count, + .bufSize = params32->bufSize, + .categories = (GLenum *)ULongToPtr(params32->categories), + .severities = (GLuint *)ULongToPtr(params32->severities), + .ids = (GLuint *)ULongToPtr(params32->ids), + .lengths = (GLsizei *)ULongToPtr(params32->lengths), + .message = (GLchar *)ULongToPtr(params32->message), + }; + NTSTATUS status; + status = ext_glGetDebugMessageLogAMD( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetDebugMessageLogARB( void *args ) +{ + struct + { + GLuint count; + GLsizei bufSize; + PTR32 sources; + PTR32 types; + PTR32 ids; + PTR32 severities; + PTR32 lengths; + PTR32 messageLog; + GLuint ret; + } *params32 = args; + struct glGetDebugMessageLogARB_params params = + { + .count = params32->count, + .bufSize = params32->bufSize, + .sources = (GLenum *)ULongToPtr(params32->sources), + .types = (GLenum *)ULongToPtr(params32->types), + .ids = (GLuint *)ULongToPtr(params32->ids), + .severities = (GLenum *)ULongToPtr(params32->severities), + .lengths = (GLsizei *)ULongToPtr(params32->lengths), + .messageLog = (GLchar *)ULongToPtr(params32->messageLog), + }; + NTSTATUS status; + status = ext_glGetDebugMessageLogARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetDetailTexFuncSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 points; + } *params32 = args; + struct glGetDetailTexFuncSGIS_params params = + { + .target = params32->target, + .points = (GLfloat *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glGetDetailTexFuncSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetDoubleIndexedvEXT( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 data; + } *params32 = args; + struct glGetDoubleIndexedvEXT_params params = + { + .target = params32->target, + .index = params32->index, + .data = (GLdouble *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetDoubleIndexedvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetDoublei_v( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 data; + } *params32 = args; + struct glGetDoublei_v_params params = + { + .target = params32->target, + .index = params32->index, + .data = (GLdouble *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetDoublei_v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetDoublei_vEXT( void *args ) +{ + struct + { + GLenum pname; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetDoublei_vEXT_params params = + { + .pname = params32->pname, + .index = params32->index, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetDoublei_vEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFenceivNV( void *args ) +{ + struct + { + GLuint fence; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetFenceivNV_params params = + { + .fence = params32->fence, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFenceivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFinalCombinerInputParameterfvNV( void *args ) +{ + struct + { + GLenum variable; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetFinalCombinerInputParameterfvNV_params params = + { + .variable = params32->variable, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFinalCombinerInputParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFinalCombinerInputParameterivNV( void *args ) +{ + struct + { + GLenum variable; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetFinalCombinerInputParameterivNV_params params = + { + .variable = params32->variable, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFinalCombinerInputParameterivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFirstPerfQueryIdINTEL( void *args ) +{ + struct + { + PTR32 queryId; + } *params32 = args; + struct glGetFirstPerfQueryIdINTEL_params params = + { + .queryId = (GLuint *)ULongToPtr(params32->queryId), + }; + NTSTATUS status; + status = ext_glGetFirstPerfQueryIdINTEL( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFixedvOES( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetFixedvOES_params params = + { + .pname = params32->pname, + .params = (GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFixedvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFloatIndexedvEXT( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 data; + } *params32 = args; + struct glGetFloatIndexedvEXT_params params = + { + .target = params32->target, + .index = params32->index, + .data = (GLfloat *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetFloatIndexedvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFloati_v( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 data; + } *params32 = args; + struct glGetFloati_v_params params = + { + .target = params32->target, + .index = params32->index, + .data = (GLfloat *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetFloati_v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFloati_vEXT( void *args ) +{ + struct + { + GLenum pname; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetFloati_vEXT_params params = + { + .pname = params32->pname, + .index = params32->index, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFloati_vEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFogFuncSGIS( void *args ) +{ + struct + { + PTR32 points; + } *params32 = args; + struct glGetFogFuncSGIS_params params = + { + .points = (GLfloat *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glGetFogFuncSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFragDataIndex( void *args ) +{ + struct + { + GLuint program; + PTR32 name; + GLint ret; + } *params32 = args; + struct glGetFragDataIndex_params params = + { + .program = params32->program, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetFragDataIndex( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetFragDataLocation( void *args ) +{ + struct + { + GLuint program; + PTR32 name; + GLint ret; + } *params32 = args; + struct glGetFragDataLocation_params params = + { + .program = params32->program, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetFragDataLocation( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetFragDataLocationEXT( void *args ) +{ + struct + { + GLuint program; + PTR32 name; + GLint ret; + } *params32 = args; + struct glGetFragDataLocationEXT_params params = + { + .program = params32->program, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetFragDataLocationEXT( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetFragmentLightfvSGIX( void *args ) +{ + struct + { + GLenum light; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetFragmentLightfvSGIX_params params = + { + .light = params32->light, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFragmentLightfvSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFragmentLightivSGIX( void *args ) +{ + struct + { + GLenum light; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetFragmentLightivSGIX_params params = + { + .light = params32->light, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFragmentLightivSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFragmentMaterialfvSGIX( void *args ) +{ + struct + { + GLenum face; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetFragmentMaterialfvSGIX_params params = + { + .face = params32->face, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFragmentMaterialfvSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFragmentMaterialivSGIX( void *args ) +{ + struct + { + GLenum face; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetFragmentMaterialivSGIX_params params = + { + .face = params32->face, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFragmentMaterialivSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFramebufferAttachmentParameteriv( void *args ) +{ + struct + { + GLenum target; + GLenum attachment; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetFramebufferAttachmentParameteriv_params params = + { + .target = params32->target, + .attachment = params32->attachment, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFramebufferAttachmentParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFramebufferAttachmentParameterivEXT( void *args ) +{ + struct + { + GLenum target; + GLenum attachment; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetFramebufferAttachmentParameterivEXT_params params = + { + .target = params32->target, + .attachment = params32->attachment, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFramebufferAttachmentParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFramebufferParameterfvAMD( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + GLuint numsamples; + GLuint pixelindex; + GLsizei size; + PTR32 values; + } *params32 = args; + struct glGetFramebufferParameterfvAMD_params params = + { + .target = params32->target, + .pname = params32->pname, + .numsamples = params32->numsamples, + .pixelindex = params32->pixelindex, + .size = params32->size, + .values = (GLfloat *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetFramebufferParameterfvAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFramebufferParameteriv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetFramebufferParameteriv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFramebufferParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFramebufferParameterivEXT( void *args ) +{ + struct + { + GLuint framebuffer; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetFramebufferParameterivEXT_params params = + { + .framebuffer = params32->framebuffer, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFramebufferParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetFramebufferParameterivMESA( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetFramebufferParameterivMESA_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetFramebufferParameterivMESA( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetHistogram( void *args ) +{ + struct + { + GLenum target; + GLboolean reset; + GLenum format; + GLenum type; + PTR32 values; + } *params32 = args; + struct glGetHistogram_params params = + { + .target = params32->target, + .reset = params32->reset, + .format = params32->format, + .type = params32->type, + .values = (void *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetHistogram( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetHistogramEXT( void *args ) +{ + struct + { + GLenum target; + GLboolean reset; + GLenum format; + GLenum type; + PTR32 values; + } *params32 = args; + struct glGetHistogramEXT_params params = + { + .target = params32->target, + .reset = params32->reset, + .format = params32->format, + .type = params32->type, + .values = (void *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetHistogramEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetHistogramParameterfv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetHistogramParameterfv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetHistogramParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetHistogramParameterfvEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetHistogramParameterfvEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetHistogramParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetHistogramParameteriv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetHistogramParameteriv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetHistogramParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetHistogramParameterivEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetHistogramParameterivEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetHistogramParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetHistogramParameterxvOES( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetHistogramParameterxvOES_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetHistogramParameterxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetImageTransformParameterfvHP( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetImageTransformParameterfvHP_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetImageTransformParameterfvHP( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetImageTransformParameterivHP( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetImageTransformParameterivHP_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetImageTransformParameterivHP( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetInfoLogARB( void *args ) +{ + struct + { + GLhandleARB obj; + GLsizei maxLength; + PTR32 length; + PTR32 infoLog; + } *params32 = args; + struct glGetInfoLogARB_params params = + { + .obj = params32->obj, + .maxLength = params32->maxLength, + .length = (GLsizei *)ULongToPtr(params32->length), + .infoLog = (GLcharARB *)ULongToPtr(params32->infoLog), + }; + NTSTATUS status; + status = ext_glGetInfoLogARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetInteger64i_v( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 data; + } *params32 = args; + struct glGetInteger64i_v_params params = + { + .target = params32->target, + .index = params32->index, + .data = (GLint64 *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetInteger64i_v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetInteger64v( void *args ) +{ + struct + { + GLenum pname; + PTR32 data; + } *params32 = args; + struct glGetInteger64v_params params = + { + .pname = params32->pname, + .data = (GLint64 *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetInteger64v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetIntegerIndexedvEXT( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 data; + } *params32 = args; + struct glGetIntegerIndexedvEXT_params params = + { + .target = params32->target, + .index = params32->index, + .data = (GLint *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetIntegerIndexedvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetIntegeri_v( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 data; + } *params32 = args; + struct glGetIntegeri_v_params params = + { + .target = params32->target, + .index = params32->index, + .data = (GLint *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetIntegeri_v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetIntegerui64i_vNV( void *args ) +{ + struct + { + GLenum value; + GLuint index; + PTR32 result; + } *params32 = args; + struct glGetIntegerui64i_vNV_params params = + { + .value = params32->value, + .index = params32->index, + .result = (GLuint64EXT *)ULongToPtr(params32->result), + }; + NTSTATUS status; + status = ext_glGetIntegerui64i_vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetIntegerui64vNV( void *args ) +{ + struct + { + GLenum value; + PTR32 result; + } *params32 = args; + struct glGetIntegerui64vNV_params params = + { + .value = params32->value, + .result = (GLuint64EXT *)ULongToPtr(params32->result), + }; + NTSTATUS status; + status = ext_glGetIntegerui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetInternalformatSampleivNV( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + GLsizei samples; + GLenum pname; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glGetInternalformatSampleivNV_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .samples = params32->samples, + .pname = params32->pname, + .count = params32->count, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetInternalformatSampleivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetInternalformati64v( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + GLenum pname; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glGetInternalformati64v_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .pname = params32->pname, + .count = params32->count, + .params = (GLint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetInternalformati64v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetInternalformativ( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + GLenum pname; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glGetInternalformativ_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .pname = params32->pname, + .count = params32->count, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetInternalformativ( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetInvariantBooleanvEXT( void *args ) +{ + struct + { + GLuint id; + GLenum value; + PTR32 data; + } *params32 = args; + struct glGetInvariantBooleanvEXT_params params = + { + .id = params32->id, + .value = params32->value, + .data = (GLboolean *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetInvariantBooleanvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetInvariantFloatvEXT( void *args ) +{ + struct + { + GLuint id; + GLenum value; + PTR32 data; + } *params32 = args; + struct glGetInvariantFloatvEXT_params params = + { + .id = params32->id, + .value = params32->value, + .data = (GLfloat *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetInvariantFloatvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetInvariantIntegervEXT( void *args ) +{ + struct + { + GLuint id; + GLenum value; + PTR32 data; + } *params32 = args; + struct glGetInvariantIntegervEXT_params params = + { + .id = params32->id, + .value = params32->value, + .data = (GLint *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetInvariantIntegervEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetLightxOES( void *args ) +{ + struct + { + GLenum light; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetLightxOES_params params = + { + .light = params32->light, + .pname = params32->pname, + .params = (GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetLightxOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetListParameterfvSGIX( void *args ) +{ + struct + { + GLuint list; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetListParameterfvSGIX_params params = + { + .list = params32->list, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetListParameterfvSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetListParameterivSGIX( void *args ) +{ + struct + { + GLuint list; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetListParameterivSGIX_params params = + { + .list = params32->list, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetListParameterivSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetLocalConstantBooleanvEXT( void *args ) +{ + struct + { + GLuint id; + GLenum value; + PTR32 data; + } *params32 = args; + struct glGetLocalConstantBooleanvEXT_params params = + { + .id = params32->id, + .value = params32->value, + .data = (GLboolean *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetLocalConstantBooleanvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetLocalConstantFloatvEXT( void *args ) +{ + struct + { + GLuint id; + GLenum value; + PTR32 data; + } *params32 = args; + struct glGetLocalConstantFloatvEXT_params params = + { + .id = params32->id, + .value = params32->value, + .data = (GLfloat *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetLocalConstantFloatvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetLocalConstantIntegervEXT( void *args ) +{ + struct + { + GLuint id; + GLenum value; + PTR32 data; + } *params32 = args; + struct glGetLocalConstantIntegervEXT_params params = + { + .id = params32->id, + .value = params32->value, + .data = (GLint *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetLocalConstantIntegervEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMapAttribParameterfvNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMapAttribParameterfvNV_params params = + { + .target = params32->target, + .index = params32->index, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMapAttribParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMapAttribParameterivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMapAttribParameterivNV_params params = + { + .target = params32->target, + .index = params32->index, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMapAttribParameterivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMapControlPointsNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLenum type; + GLsizei ustride; + GLsizei vstride; + GLboolean packed; + PTR32 points; + } *params32 = args; + struct glGetMapControlPointsNV_params params = + { + .target = params32->target, + .index = params32->index, + .type = params32->type, + .ustride = params32->ustride, + .vstride = params32->vstride, + .packed = params32->packed, + .points = (void *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glGetMapControlPointsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMapParameterfvNV( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMapParameterfvNV_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMapParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMapParameterivNV( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMapParameterivNV_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMapParameterivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMapxvOES( void *args ) +{ + struct + { + GLenum target; + GLenum query; + PTR32 v; + } *params32 = args; + struct glGetMapxvOES_params params = + { + .target = params32->target, + .query = params32->query, + .v = (GLfixed *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glGetMapxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMemoryObjectDetachedResourcesuivNV( void *args ) +{ + struct + { + GLuint memory; + GLenum pname; + GLint first; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glGetMemoryObjectDetachedResourcesuivNV_params params = + { + .memory = params32->memory, + .pname = params32->pname, + .first = params32->first, + .count = params32->count, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMemoryObjectDetachedResourcesuivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMemoryObjectParameterivEXT( void *args ) +{ + struct + { + GLuint memoryObject; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMemoryObjectParameterivEXT_params params = + { + .memoryObject = params32->memoryObject, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMemoryObjectParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMinmax( void *args ) +{ + struct + { + GLenum target; + GLboolean reset; + GLenum format; + GLenum type; + PTR32 values; + } *params32 = args; + struct glGetMinmax_params params = + { + .target = params32->target, + .reset = params32->reset, + .format = params32->format, + .type = params32->type, + .values = (void *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetMinmax( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMinmaxEXT( void *args ) +{ + struct + { + GLenum target; + GLboolean reset; + GLenum format; + GLenum type; + PTR32 values; + } *params32 = args; + struct glGetMinmaxEXT_params params = + { + .target = params32->target, + .reset = params32->reset, + .format = params32->format, + .type = params32->type, + .values = (void *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetMinmaxEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMinmaxParameterfv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMinmaxParameterfv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMinmaxParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMinmaxParameterfvEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMinmaxParameterfvEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMinmaxParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMinmaxParameteriv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMinmaxParameteriv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMinmaxParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMinmaxParameterivEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMinmaxParameterivEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMinmaxParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultiTexEnvfvEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMultiTexEnvfvEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMultiTexEnvfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultiTexEnvivEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMultiTexEnvivEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMultiTexEnvivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultiTexGendvEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMultiTexGendvEXT_params params = + { + .texunit = params32->texunit, + .coord = params32->coord, + .pname = params32->pname, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMultiTexGendvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultiTexGenfvEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMultiTexGenfvEXT_params params = + { + .texunit = params32->texunit, + .coord = params32->coord, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMultiTexGenfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultiTexGenivEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMultiTexGenivEXT_params params = + { + .texunit = params32->texunit, + .coord = params32->coord, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMultiTexGenivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultiTexImageEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glGetMultiTexImageEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .format = params32->format, + .type = params32->type, + .pixels = (void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glGetMultiTexImageEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultiTexLevelParameterfvEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMultiTexLevelParameterfvEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMultiTexLevelParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultiTexLevelParameterivEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMultiTexLevelParameterivEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMultiTexLevelParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultiTexParameterIivEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMultiTexParameterIivEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMultiTexParameterIivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultiTexParameterIuivEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMultiTexParameterIuivEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .pname = params32->pname, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMultiTexParameterIuivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultiTexParameterfvEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMultiTexParameterfvEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMultiTexParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultiTexParameterivEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetMultiTexParameterivEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetMultiTexParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultisamplefv( void *args ) +{ + struct + { + GLenum pname; + GLuint index; + PTR32 val; + } *params32 = args; + struct glGetMultisamplefv_params params = + { + .pname = params32->pname, + .index = params32->index, + .val = (GLfloat *)ULongToPtr(params32->val), + }; + NTSTATUS status; + status = ext_glGetMultisamplefv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetMultisamplefvNV( void *args ) +{ + struct + { + GLenum pname; + GLuint index; + PTR32 val; + } *params32 = args; + struct glGetMultisamplefvNV_params params = + { + .pname = params32->pname, + .index = params32->index, + .val = (GLfloat *)ULongToPtr(params32->val), + }; + NTSTATUS status; + status = ext_glGetMultisamplefvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedBufferParameteri64v( void *args ) +{ + struct + { + GLuint buffer; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetNamedBufferParameteri64v_params params = + { + .buffer = params32->buffer, + .pname = params32->pname, + .params = (GLint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedBufferParameteri64v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedBufferParameteriv( void *args ) +{ + struct + { + GLuint buffer; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetNamedBufferParameteriv_params params = + { + .buffer = params32->buffer, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedBufferParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedBufferParameterivEXT( void *args ) +{ + struct + { + GLuint buffer; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetNamedBufferParameterivEXT_params params = + { + .buffer = params32->buffer, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedBufferParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedBufferParameterui64vNV( void *args ) +{ + struct + { + GLuint buffer; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetNamedBufferParameterui64vNV_params params = + { + .buffer = params32->buffer, + .pname = params32->pname, + .params = (GLuint64EXT *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedBufferParameterui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedBufferPointerv( void *args ) +{ + struct + { + GLuint buffer; + GLenum pname; + PTR32 params; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetNamedBufferPointervEXT( void *args ) +{ + struct + { + GLuint buffer; + GLenum pname; + PTR32 params; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetNamedBufferSubData( void *args ) +{ + struct + { + GLuint buffer; + PTR32 offset; + PTR32 size; + PTR32 data; + } *params32 = args; + struct glGetNamedBufferSubData_params params = + { + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetNamedBufferSubData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedBufferSubDataEXT( void *args ) +{ + struct + { + GLuint buffer; + PTR32 offset; + PTR32 size; + PTR32 data; + } *params32 = args; + struct glGetNamedBufferSubDataEXT_params params = + { + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetNamedBufferSubDataEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedFramebufferAttachmentParameteriv( void *args ) +{ + struct + { + GLuint framebuffer; + GLenum attachment; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetNamedFramebufferAttachmentParameteriv_params params = + { + .framebuffer = params32->framebuffer, + .attachment = params32->attachment, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedFramebufferAttachmentParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedFramebufferAttachmentParameterivEXT( void *args ) +{ + struct + { + GLuint framebuffer; + GLenum attachment; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetNamedFramebufferAttachmentParameterivEXT_params params = + { + .framebuffer = params32->framebuffer, + .attachment = params32->attachment, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedFramebufferAttachmentParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedFramebufferParameterfvAMD( void *args ) +{ + struct + { + GLuint framebuffer; + GLenum pname; + GLuint numsamples; + GLuint pixelindex; + GLsizei size; + PTR32 values; + } *params32 = args; + struct glGetNamedFramebufferParameterfvAMD_params params = + { + .framebuffer = params32->framebuffer, + .pname = params32->pname, + .numsamples = params32->numsamples, + .pixelindex = params32->pixelindex, + .size = params32->size, + .values = (GLfloat *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetNamedFramebufferParameterfvAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedFramebufferParameteriv( void *args ) +{ + struct + { + GLuint framebuffer; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glGetNamedFramebufferParameteriv_params params = + { + .framebuffer = params32->framebuffer, + .pname = params32->pname, + .param = (GLint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glGetNamedFramebufferParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedFramebufferParameterivEXT( void *args ) +{ + struct + { + GLuint framebuffer; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetNamedFramebufferParameterivEXT_params params = + { + .framebuffer = params32->framebuffer, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedFramebufferParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedProgramLocalParameterIivEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetNamedProgramLocalParameterIivEXT_params params = + { + .program = params32->program, + .target = params32->target, + .index = params32->index, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedProgramLocalParameterIivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedProgramLocalParameterIuivEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetNamedProgramLocalParameterIuivEXT_params params = + { + .program = params32->program, + .target = params32->target, + .index = params32->index, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedProgramLocalParameterIuivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedProgramLocalParameterdvEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetNamedProgramLocalParameterdvEXT_params params = + { + .program = params32->program, + .target = params32->target, + .index = params32->index, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedProgramLocalParameterdvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedProgramLocalParameterfvEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetNamedProgramLocalParameterfvEXT_params params = + { + .program = params32->program, + .target = params32->target, + .index = params32->index, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedProgramLocalParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedProgramStringEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLenum pname; + PTR32 string; + } *params32 = args; + struct glGetNamedProgramStringEXT_params params = + { + .program = params32->program, + .target = params32->target, + .pname = params32->pname, + .string = (void *)ULongToPtr(params32->string), + }; + NTSTATUS status; + status = ext_glGetNamedProgramStringEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedProgramivEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetNamedProgramivEXT_params params = + { + .program = params32->program, + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedProgramivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedRenderbufferParameteriv( void *args ) +{ + struct + { + GLuint renderbuffer; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetNamedRenderbufferParameteriv_params params = + { + .renderbuffer = params32->renderbuffer, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedRenderbufferParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedRenderbufferParameterivEXT( void *args ) +{ + struct + { + GLuint renderbuffer; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetNamedRenderbufferParameterivEXT_params params = + { + .renderbuffer = params32->renderbuffer, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedRenderbufferParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedStringARB( void *args ) +{ + struct + { + GLint namelen; + PTR32 name; + GLsizei bufSize; + PTR32 stringlen; + PTR32 string; + } *params32 = args; + struct glGetNamedStringARB_params params = + { + .namelen = params32->namelen, + .name = (const GLchar *)ULongToPtr(params32->name), + .bufSize = params32->bufSize, + .stringlen = (GLint *)ULongToPtr(params32->stringlen), + .string = (GLchar *)ULongToPtr(params32->string), + }; + NTSTATUS status; + status = ext_glGetNamedStringARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNamedStringivARB( void *args ) +{ + struct + { + GLint namelen; + PTR32 name; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetNamedStringivARB_params params = + { + .namelen = params32->namelen, + .name = (const GLchar *)ULongToPtr(params32->name), + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetNamedStringivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetNextPerfQueryIdINTEL( void *args ) +{ + struct + { + GLuint queryId; + PTR32 nextQueryId; + } *params32 = args; + struct glGetNextPerfQueryIdINTEL_params params = + { + .queryId = params32->queryId, + .nextQueryId = (GLuint *)ULongToPtr(params32->nextQueryId), + }; + NTSTATUS status; + status = ext_glGetNextPerfQueryIdINTEL( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetObjectBufferfvATI( void *args ) +{ + struct + { + GLuint buffer; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetObjectBufferfvATI_params params = + { + .buffer = params32->buffer, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetObjectBufferfvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetObjectBufferivATI( void *args ) +{ + struct + { + GLuint buffer; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetObjectBufferivATI_params params = + { + .buffer = params32->buffer, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetObjectBufferivATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetObjectLabel( void *args ) +{ + struct + { + GLenum identifier; + GLuint name; + GLsizei bufSize; + PTR32 length; + PTR32 label; + } *params32 = args; + struct glGetObjectLabel_params params = + { + .identifier = params32->identifier, + .name = params32->name, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .label = (GLchar *)ULongToPtr(params32->label), + }; + NTSTATUS status; + status = ext_glGetObjectLabel( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetObjectLabelEXT( void *args ) +{ + struct + { + GLenum type; + GLuint object; + GLsizei bufSize; + PTR32 length; + PTR32 label; + } *params32 = args; + struct glGetObjectLabelEXT_params params = + { + .type = params32->type, + .object = params32->object, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .label = (GLchar *)ULongToPtr(params32->label), + }; + NTSTATUS status; + status = ext_glGetObjectLabelEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetObjectParameterfvARB( void *args ) +{ + struct + { + GLhandleARB obj; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetObjectParameterfvARB_params params = + { + .obj = params32->obj, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetObjectParameterfvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetObjectParameterivAPPLE( void *args ) +{ + struct + { + GLenum objectType; + GLuint name; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetObjectParameterivAPPLE_params params = + { + .objectType = params32->objectType, + .name = params32->name, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetObjectParameterivAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetObjectParameterivARB( void *args ) +{ + struct + { + GLhandleARB obj; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetObjectParameterivARB_params params = + { + .obj = params32->obj, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetObjectParameterivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetObjectPtrLabel( void *args ) +{ + struct + { + PTR32 ptr; + GLsizei bufSize; + PTR32 length; + PTR32 label; + } *params32 = args; + struct glGetObjectPtrLabel_params params = + { + .ptr = (const void *)ULongToPtr(params32->ptr), + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .label = (GLchar *)ULongToPtr(params32->label), + }; + NTSTATUS status; + status = ext_glGetObjectPtrLabel( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetOcclusionQueryivNV( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetOcclusionQueryivNV_params params = + { + .id = params32->id, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetOcclusionQueryivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetOcclusionQueryuivNV( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetOcclusionQueryuivNV_params params = + { + .id = params32->id, + .pname = params32->pname, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetOcclusionQueryuivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPathColorGenfvNV( void *args ) +{ + struct + { + GLenum color; + GLenum pname; + PTR32 value; + } *params32 = args; + struct glGetPathColorGenfvNV_params params = + { + .color = params32->color, + .pname = params32->pname, + .value = (GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glGetPathColorGenfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPathColorGenivNV( void *args ) +{ + struct + { + GLenum color; + GLenum pname; + PTR32 value; + } *params32 = args; + struct glGetPathColorGenivNV_params params = + { + .color = params32->color, + .pname = params32->pname, + .value = (GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glGetPathColorGenivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPathCommandsNV( void *args ) +{ + struct + { + GLuint path; + PTR32 commands; + } *params32 = args; + struct glGetPathCommandsNV_params params = + { + .path = params32->path, + .commands = (GLubyte *)ULongToPtr(params32->commands), + }; + NTSTATUS status; + status = ext_glGetPathCommandsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPathCoordsNV( void *args ) +{ + struct + { + GLuint path; + PTR32 coords; + } *params32 = args; + struct glGetPathCoordsNV_params params = + { + .path = params32->path, + .coords = (GLfloat *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glGetPathCoordsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPathDashArrayNV( void *args ) +{ + struct + { + GLuint path; + PTR32 dashArray; + } *params32 = args; + struct glGetPathDashArrayNV_params params = + { + .path = params32->path, + .dashArray = (GLfloat *)ULongToPtr(params32->dashArray), + }; + NTSTATUS status; + status = ext_glGetPathDashArrayNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPathMetricRangeNV( void *args ) +{ + struct + { + GLbitfield metricQueryMask; + GLuint firstPathName; + GLsizei numPaths; + GLsizei stride; + PTR32 metrics; + } *params32 = args; + struct glGetPathMetricRangeNV_params params = + { + .metricQueryMask = params32->metricQueryMask, + .firstPathName = params32->firstPathName, + .numPaths = params32->numPaths, + .stride = params32->stride, + .metrics = (GLfloat *)ULongToPtr(params32->metrics), + }; + NTSTATUS status; + status = ext_glGetPathMetricRangeNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPathMetricsNV( void *args ) +{ + struct + { + GLbitfield metricQueryMask; + GLsizei numPaths; + GLenum pathNameType; + PTR32 paths; + GLuint pathBase; + GLsizei stride; + PTR32 metrics; + } *params32 = args; + struct glGetPathMetricsNV_params params = + { + .metricQueryMask = params32->metricQueryMask, + .numPaths = params32->numPaths, + .pathNameType = params32->pathNameType, + .paths = (const void *)ULongToPtr(params32->paths), + .pathBase = params32->pathBase, + .stride = params32->stride, + .metrics = (GLfloat *)ULongToPtr(params32->metrics), + }; + NTSTATUS status; + status = ext_glGetPathMetricsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPathParameterfvNV( void *args ) +{ + struct + { + GLuint path; + GLenum pname; + PTR32 value; + } *params32 = args; + struct glGetPathParameterfvNV_params params = + { + .path = params32->path, + .pname = params32->pname, + .value = (GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glGetPathParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPathParameterivNV( void *args ) +{ + struct + { + GLuint path; + GLenum pname; + PTR32 value; + } *params32 = args; + struct glGetPathParameterivNV_params params = + { + .path = params32->path, + .pname = params32->pname, + .value = (GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glGetPathParameterivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPathSpacingNV( void *args ) +{ + struct + { + GLenum pathListMode; + GLsizei numPaths; + GLenum pathNameType; + PTR32 paths; + GLuint pathBase; + GLfloat advanceScale; + GLfloat kerningScale; + GLenum transformType; + PTR32 returnedSpacing; + } *params32 = args; + struct glGetPathSpacingNV_params params = + { + .pathListMode = params32->pathListMode, + .numPaths = params32->numPaths, + .pathNameType = params32->pathNameType, + .paths = (const void *)ULongToPtr(params32->paths), + .pathBase = params32->pathBase, + .advanceScale = params32->advanceScale, + .kerningScale = params32->kerningScale, + .transformType = params32->transformType, + .returnedSpacing = (GLfloat *)ULongToPtr(params32->returnedSpacing), + }; + NTSTATUS status; + status = ext_glGetPathSpacingNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPathTexGenfvNV( void *args ) +{ + struct + { + GLenum texCoordSet; + GLenum pname; + PTR32 value; + } *params32 = args; + struct glGetPathTexGenfvNV_params params = + { + .texCoordSet = params32->texCoordSet, + .pname = params32->pname, + .value = (GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glGetPathTexGenfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPathTexGenivNV( void *args ) +{ + struct + { + GLenum texCoordSet; + GLenum pname; + PTR32 value; + } *params32 = args; + struct glGetPathTexGenivNV_params params = + { + .texCoordSet = params32->texCoordSet, + .pname = params32->pname, + .value = (GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glGetPathTexGenivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPerfCounterInfoINTEL( void *args ) +{ + struct + { + GLuint queryId; + GLuint counterId; + GLuint counterNameLength; + PTR32 counterName; + GLuint counterDescLength; + PTR32 counterDesc; + PTR32 counterOffset; + PTR32 counterDataSize; + PTR32 counterTypeEnum; + PTR32 counterDataTypeEnum; + PTR32 rawCounterMaxValue; + } *params32 = args; + struct glGetPerfCounterInfoINTEL_params params = + { + .queryId = params32->queryId, + .counterId = params32->counterId, + .counterNameLength = params32->counterNameLength, + .counterName = (GLchar *)ULongToPtr(params32->counterName), + .counterDescLength = params32->counterDescLength, + .counterDesc = (GLchar *)ULongToPtr(params32->counterDesc), + .counterOffset = (GLuint *)ULongToPtr(params32->counterOffset), + .counterDataSize = (GLuint *)ULongToPtr(params32->counterDataSize), + .counterTypeEnum = (GLuint *)ULongToPtr(params32->counterTypeEnum), + .counterDataTypeEnum = (GLuint *)ULongToPtr(params32->counterDataTypeEnum), + .rawCounterMaxValue = (GLuint64 *)ULongToPtr(params32->rawCounterMaxValue), + }; + NTSTATUS status; + status = ext_glGetPerfCounterInfoINTEL( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPerfMonitorCounterDataAMD( void *args ) +{ + struct + { + GLuint monitor; + GLenum pname; + GLsizei dataSize; + PTR32 data; + PTR32 bytesWritten; + } *params32 = args; + struct glGetPerfMonitorCounterDataAMD_params params = + { + .monitor = params32->monitor, + .pname = params32->pname, + .dataSize = params32->dataSize, + .data = (GLuint *)ULongToPtr(params32->data), + .bytesWritten = (GLint *)ULongToPtr(params32->bytesWritten), + }; + NTSTATUS status; + status = ext_glGetPerfMonitorCounterDataAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPerfMonitorCounterInfoAMD( void *args ) +{ + struct + { + GLuint group; + GLuint counter; + GLenum pname; + PTR32 data; + } *params32 = args; + struct glGetPerfMonitorCounterInfoAMD_params params = + { + .group = params32->group, + .counter = params32->counter, + .pname = params32->pname, + .data = (void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetPerfMonitorCounterInfoAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPerfMonitorCounterStringAMD( void *args ) +{ + struct + { + GLuint group; + GLuint counter; + GLsizei bufSize; + PTR32 length; + PTR32 counterString; + } *params32 = args; + struct glGetPerfMonitorCounterStringAMD_params params = + { + .group = params32->group, + .counter = params32->counter, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .counterString = (GLchar *)ULongToPtr(params32->counterString), + }; + NTSTATUS status; + status = ext_glGetPerfMonitorCounterStringAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPerfMonitorCountersAMD( void *args ) +{ + struct + { + GLuint group; + PTR32 numCounters; + PTR32 maxActiveCounters; + GLsizei counterSize; + PTR32 counters; + } *params32 = args; + struct glGetPerfMonitorCountersAMD_params params = + { + .group = params32->group, + .numCounters = (GLint *)ULongToPtr(params32->numCounters), + .maxActiveCounters = (GLint *)ULongToPtr(params32->maxActiveCounters), + .counterSize = params32->counterSize, + .counters = (GLuint *)ULongToPtr(params32->counters), + }; + NTSTATUS status; + status = ext_glGetPerfMonitorCountersAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPerfMonitorGroupStringAMD( void *args ) +{ + struct + { + GLuint group; + GLsizei bufSize; + PTR32 length; + PTR32 groupString; + } *params32 = args; + struct glGetPerfMonitorGroupStringAMD_params params = + { + .group = params32->group, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .groupString = (GLchar *)ULongToPtr(params32->groupString), + }; + NTSTATUS status; + status = ext_glGetPerfMonitorGroupStringAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPerfMonitorGroupsAMD( void *args ) +{ + struct + { + PTR32 numGroups; + GLsizei groupsSize; + PTR32 groups; + } *params32 = args; + struct glGetPerfMonitorGroupsAMD_params params = + { + .numGroups = (GLint *)ULongToPtr(params32->numGroups), + .groupsSize = params32->groupsSize, + .groups = (GLuint *)ULongToPtr(params32->groups), + }; + NTSTATUS status; + status = ext_glGetPerfMonitorGroupsAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPerfQueryDataINTEL( void *args ) +{ + struct + { + GLuint queryHandle; + GLuint flags; + GLsizei dataSize; + PTR32 data; + PTR32 bytesWritten; + } *params32 = args; + struct glGetPerfQueryDataINTEL_params params = + { + .queryHandle = params32->queryHandle, + .flags = params32->flags, + .dataSize = params32->dataSize, + .data = (void *)ULongToPtr(params32->data), + .bytesWritten = (GLuint *)ULongToPtr(params32->bytesWritten), + }; + NTSTATUS status; + status = ext_glGetPerfQueryDataINTEL( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPerfQueryIdByNameINTEL( void *args ) +{ + struct + { + PTR32 queryName; + PTR32 queryId; + } *params32 = args; + struct glGetPerfQueryIdByNameINTEL_params params = + { + .queryName = (GLchar *)ULongToPtr(params32->queryName), + .queryId = (GLuint *)ULongToPtr(params32->queryId), + }; + NTSTATUS status; + status = ext_glGetPerfQueryIdByNameINTEL( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPerfQueryInfoINTEL( void *args ) +{ + struct + { + GLuint queryId; + GLuint queryNameLength; + PTR32 queryName; + PTR32 dataSize; + PTR32 noCounters; + PTR32 noInstances; + PTR32 capsMask; + } *params32 = args; + struct glGetPerfQueryInfoINTEL_params params = + { + .queryId = params32->queryId, + .queryNameLength = params32->queryNameLength, + .queryName = (GLchar *)ULongToPtr(params32->queryName), + .dataSize = (GLuint *)ULongToPtr(params32->dataSize), + .noCounters = (GLuint *)ULongToPtr(params32->noCounters), + .noInstances = (GLuint *)ULongToPtr(params32->noInstances), + .capsMask = (GLuint *)ULongToPtr(params32->capsMask), + }; + NTSTATUS status; + status = ext_glGetPerfQueryInfoINTEL( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPixelMapxv( void *args ) +{ + struct + { + GLenum map; + GLint size; + PTR32 values; + } *params32 = args; + struct glGetPixelMapxv_params params = + { + .map = params32->map, + .size = params32->size, + .values = (GLfixed *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetPixelMapxv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPixelTexGenParameterfvSGIS( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetPixelTexGenParameterfvSGIS_params params = + { + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetPixelTexGenParameterfvSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPixelTexGenParameterivSGIS( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetPixelTexGenParameterivSGIS_params params = + { + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetPixelTexGenParameterivSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPixelTransformParameterfvEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetPixelTransformParameterfvEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetPixelTransformParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPixelTransformParameterivEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetPixelTransformParameterivEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetPixelTransformParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetPointerIndexedvEXT( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 data; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetPointeri_vEXT( void *args ) +{ + struct + { + GLenum pname; + GLuint index; + PTR32 params; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetPointervEXT( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetProgramBinary( void *args ) +{ + struct + { + GLuint program; + GLsizei bufSize; + PTR32 length; + PTR32 binaryFormat; + PTR32 binary; + } *params32 = args; + struct glGetProgramBinary_params params = + { + .program = params32->program, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .binaryFormat = (GLenum *)ULongToPtr(params32->binaryFormat), + .binary = (void *)ULongToPtr(params32->binary), + }; + NTSTATUS status; + status = ext_glGetProgramBinary( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramEnvParameterIivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetProgramEnvParameterIivNV_params params = + { + .target = params32->target, + .index = params32->index, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramEnvParameterIivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramEnvParameterIuivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetProgramEnvParameterIuivNV_params params = + { + .target = params32->target, + .index = params32->index, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramEnvParameterIuivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramEnvParameterdvARB( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetProgramEnvParameterdvARB_params params = + { + .target = params32->target, + .index = params32->index, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramEnvParameterdvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramEnvParameterfvARB( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetProgramEnvParameterfvARB_params params = + { + .target = params32->target, + .index = params32->index, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramEnvParameterfvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramInfoLog( void *args ) +{ + struct + { + GLuint program; + GLsizei bufSize; + PTR32 length; + PTR32 infoLog; + } *params32 = args; + struct glGetProgramInfoLog_params params = + { + .program = params32->program, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .infoLog = (GLchar *)ULongToPtr(params32->infoLog), + }; + NTSTATUS status; + status = ext_glGetProgramInfoLog( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramInterfaceiv( void *args ) +{ + struct + { + GLuint program; + GLenum programInterface; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetProgramInterfaceiv_params params = + { + .program = params32->program, + .programInterface = params32->programInterface, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramInterfaceiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramLocalParameterIivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetProgramLocalParameterIivNV_params params = + { + .target = params32->target, + .index = params32->index, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramLocalParameterIivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramLocalParameterIuivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetProgramLocalParameterIuivNV_params params = + { + .target = params32->target, + .index = params32->index, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramLocalParameterIuivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramLocalParameterdvARB( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetProgramLocalParameterdvARB_params params = + { + .target = params32->target, + .index = params32->index, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramLocalParameterdvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramLocalParameterfvARB( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glGetProgramLocalParameterfvARB_params params = + { + .target = params32->target, + .index = params32->index, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramLocalParameterfvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramNamedParameterdvNV( void *args ) +{ + struct + { + GLuint id; + GLsizei len; + PTR32 name; + PTR32 params; + } *params32 = args; + struct glGetProgramNamedParameterdvNV_params params = + { + .id = params32->id, + .len = params32->len, + .name = (const GLubyte *)ULongToPtr(params32->name), + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramNamedParameterdvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramNamedParameterfvNV( void *args ) +{ + struct + { + GLuint id; + GLsizei len; + PTR32 name; + PTR32 params; + } *params32 = args; + struct glGetProgramNamedParameterfvNV_params params = + { + .id = params32->id, + .len = params32->len, + .name = (const GLubyte *)ULongToPtr(params32->name), + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramNamedParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramParameterdvNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetProgramParameterdvNV_params params = + { + .target = params32->target, + .index = params32->index, + .pname = params32->pname, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramParameterdvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramParameterfvNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetProgramParameterfvNV_params params = + { + .target = params32->target, + .index = params32->index, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramPipelineInfoLog( void *args ) +{ + struct + { + GLuint pipeline; + GLsizei bufSize; + PTR32 length; + PTR32 infoLog; + } *params32 = args; + struct glGetProgramPipelineInfoLog_params params = + { + .pipeline = params32->pipeline, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .infoLog = (GLchar *)ULongToPtr(params32->infoLog), + }; + NTSTATUS status; + status = ext_glGetProgramPipelineInfoLog( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramPipelineiv( void *args ) +{ + struct + { + GLuint pipeline; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetProgramPipelineiv_params params = + { + .pipeline = params32->pipeline, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramPipelineiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramResourceIndex( void *args ) +{ + struct + { + GLuint program; + GLenum programInterface; + PTR32 name; + GLuint ret; + } *params32 = args; + struct glGetProgramResourceIndex_params params = + { + .program = params32->program, + .programInterface = params32->programInterface, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetProgramResourceIndex( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetProgramResourceLocation( void *args ) +{ + struct + { + GLuint program; + GLenum programInterface; + PTR32 name; + GLint ret; + } *params32 = args; + struct glGetProgramResourceLocation_params params = + { + .program = params32->program, + .programInterface = params32->programInterface, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetProgramResourceLocation( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetProgramResourceLocationIndex( void *args ) +{ + struct + { + GLuint program; + GLenum programInterface; + PTR32 name; + GLint ret; + } *params32 = args; + struct glGetProgramResourceLocationIndex_params params = + { + .program = params32->program, + .programInterface = params32->programInterface, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetProgramResourceLocationIndex( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetProgramResourceName( void *args ) +{ + struct + { + GLuint program; + GLenum programInterface; + GLuint index; + GLsizei bufSize; + PTR32 length; + PTR32 name; + } *params32 = args; + struct glGetProgramResourceName_params params = + { + .program = params32->program, + .programInterface = params32->programInterface, + .index = params32->index, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .name = (GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetProgramResourceName( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramResourcefvNV( void *args ) +{ + struct + { + GLuint program; + GLenum programInterface; + GLuint index; + GLsizei propCount; + PTR32 props; + GLsizei count; + PTR32 length; + PTR32 params; + } *params32 = args; + struct glGetProgramResourcefvNV_params params = + { + .program = params32->program, + .programInterface = params32->programInterface, + .index = params32->index, + .propCount = params32->propCount, + .props = (const GLenum *)ULongToPtr(params32->props), + .count = params32->count, + .length = (GLsizei *)ULongToPtr(params32->length), + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramResourcefvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramResourceiv( void *args ) +{ + struct + { + GLuint program; + GLenum programInterface; + GLuint index; + GLsizei propCount; + PTR32 props; + GLsizei count; + PTR32 length; + PTR32 params; + } *params32 = args; + struct glGetProgramResourceiv_params params = + { + .program = params32->program, + .programInterface = params32->programInterface, + .index = params32->index, + .propCount = params32->propCount, + .props = (const GLenum *)ULongToPtr(params32->props), + .count = params32->count, + .length = (GLsizei *)ULongToPtr(params32->length), + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramResourceiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramStageiv( void *args ) +{ + struct + { + GLuint program; + GLenum shadertype; + GLenum pname; + PTR32 values; + } *params32 = args; + struct glGetProgramStageiv_params params = + { + .program = params32->program, + .shadertype = params32->shadertype, + .pname = params32->pname, + .values = (GLint *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetProgramStageiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramStringARB( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 string; + } *params32 = args; + struct glGetProgramStringARB_params params = + { + .target = params32->target, + .pname = params32->pname, + .string = (void *)ULongToPtr(params32->string), + }; + NTSTATUS status; + status = ext_glGetProgramStringARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramStringNV( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 program; + } *params32 = args; + struct glGetProgramStringNV_params params = + { + .id = params32->id, + .pname = params32->pname, + .program = (GLubyte *)ULongToPtr(params32->program), + }; + NTSTATUS status; + status = ext_glGetProgramStringNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramSubroutineParameteruivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 param; + } *params32 = args; + struct glGetProgramSubroutineParameteruivNV_params params = + { + .target = params32->target, + .index = params32->index, + .param = (GLuint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glGetProgramSubroutineParameteruivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramiv( void *args ) +{ + struct + { + GLuint program; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetProgramiv_params params = + { + .program = params32->program, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramivARB( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetProgramivARB_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetProgramivNV( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetProgramivNV_params params = + { + .id = params32->id, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetProgramivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryBufferObjecti64v( void *args ) +{ + struct + { + GLuint id; + GLuint buffer; + GLenum pname; + PTR32 offset; + } *params32 = args; + struct glGetQueryBufferObjecti64v_params params = + { + .id = params32->id, + .buffer = params32->buffer, + .pname = params32->pname, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glGetQueryBufferObjecti64v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryBufferObjectiv( void *args ) +{ + struct + { + GLuint id; + GLuint buffer; + GLenum pname; + PTR32 offset; + } *params32 = args; + struct glGetQueryBufferObjectiv_params params = + { + .id = params32->id, + .buffer = params32->buffer, + .pname = params32->pname, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glGetQueryBufferObjectiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryBufferObjectui64v( void *args ) +{ + struct + { + GLuint id; + GLuint buffer; + GLenum pname; + PTR32 offset; + } *params32 = args; + struct glGetQueryBufferObjectui64v_params params = + { + .id = params32->id, + .buffer = params32->buffer, + .pname = params32->pname, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glGetQueryBufferObjectui64v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryBufferObjectuiv( void *args ) +{ + struct + { + GLuint id; + GLuint buffer; + GLenum pname; + PTR32 offset; + } *params32 = args; + struct glGetQueryBufferObjectuiv_params params = + { + .id = params32->id, + .buffer = params32->buffer, + .pname = params32->pname, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glGetQueryBufferObjectuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryIndexediv( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetQueryIndexediv_params params = + { + .target = params32->target, + .index = params32->index, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetQueryIndexediv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryObjecti64v( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetQueryObjecti64v_params params = + { + .id = params32->id, + .pname = params32->pname, + .params = (GLint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetQueryObjecti64v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryObjecti64vEXT( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetQueryObjecti64vEXT_params params = + { + .id = params32->id, + .pname = params32->pname, + .params = (GLint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetQueryObjecti64vEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryObjectiv( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetQueryObjectiv_params params = + { + .id = params32->id, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetQueryObjectiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryObjectivARB( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetQueryObjectivARB_params params = + { + .id = params32->id, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetQueryObjectivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryObjectui64v( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetQueryObjectui64v_params params = + { + .id = params32->id, + .pname = params32->pname, + .params = (GLuint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetQueryObjectui64v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryObjectui64vEXT( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetQueryObjectui64vEXT_params params = + { + .id = params32->id, + .pname = params32->pname, + .params = (GLuint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetQueryObjectui64vEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryObjectuiv( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetQueryObjectuiv_params params = + { + .id = params32->id, + .pname = params32->pname, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetQueryObjectuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryObjectuivARB( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetQueryObjectuivARB_params params = + { + .id = params32->id, + .pname = params32->pname, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetQueryObjectuivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryiv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetQueryiv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetQueryiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetQueryivARB( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetQueryivARB_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetQueryivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetRenderbufferParameteriv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetRenderbufferParameteriv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetRenderbufferParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetRenderbufferParameterivEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetRenderbufferParameterivEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetRenderbufferParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetSamplerParameterIiv( void *args ) +{ + struct + { + GLuint sampler; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetSamplerParameterIiv_params params = + { + .sampler = params32->sampler, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetSamplerParameterIiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetSamplerParameterIuiv( void *args ) +{ + struct + { + GLuint sampler; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetSamplerParameterIuiv_params params = + { + .sampler = params32->sampler, + .pname = params32->pname, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetSamplerParameterIuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetSamplerParameterfv( void *args ) +{ + struct + { + GLuint sampler; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetSamplerParameterfv_params params = + { + .sampler = params32->sampler, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetSamplerParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetSamplerParameteriv( void *args ) +{ + struct + { + GLuint sampler; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetSamplerParameteriv_params params = + { + .sampler = params32->sampler, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetSamplerParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetSemaphoreParameterui64vEXT( void *args ) +{ + struct + { + GLuint semaphore; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetSemaphoreParameterui64vEXT_params params = + { + .semaphore = params32->semaphore, + .pname = params32->pname, + .params = (GLuint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetSemaphoreParameterui64vEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetSeparableFilter( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLenum type; + PTR32 row; + PTR32 column; + PTR32 span; + } *params32 = args; + struct glGetSeparableFilter_params params = + { + .target = params32->target, + .format = params32->format, + .type = params32->type, + .row = (void *)ULongToPtr(params32->row), + .column = (void *)ULongToPtr(params32->column), + .span = (void *)ULongToPtr(params32->span), + }; + NTSTATUS status; + status = ext_glGetSeparableFilter( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetSeparableFilterEXT( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLenum type; + PTR32 row; + PTR32 column; + PTR32 span; + } *params32 = args; + struct glGetSeparableFilterEXT_params params = + { + .target = params32->target, + .format = params32->format, + .type = params32->type, + .row = (void *)ULongToPtr(params32->row), + .column = (void *)ULongToPtr(params32->column), + .span = (void *)ULongToPtr(params32->span), + }; + NTSTATUS status; + status = ext_glGetSeparableFilterEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetShaderInfoLog( void *args ) +{ + struct + { + GLuint shader; + GLsizei bufSize; + PTR32 length; + PTR32 infoLog; + } *params32 = args; + struct glGetShaderInfoLog_params params = + { + .shader = params32->shader, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .infoLog = (GLchar *)ULongToPtr(params32->infoLog), + }; + NTSTATUS status; + status = ext_glGetShaderInfoLog( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetShaderPrecisionFormat( void *args ) +{ + struct + { + GLenum shadertype; + GLenum precisiontype; + PTR32 range; + PTR32 precision; + } *params32 = args; + struct glGetShaderPrecisionFormat_params params = + { + .shadertype = params32->shadertype, + .precisiontype = params32->precisiontype, + .range = (GLint *)ULongToPtr(params32->range), + .precision = (GLint *)ULongToPtr(params32->precision), + }; + NTSTATUS status; + status = ext_glGetShaderPrecisionFormat( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetShaderSource( void *args ) +{ + struct + { + GLuint shader; + GLsizei bufSize; + PTR32 length; + PTR32 source; + } *params32 = args; + struct glGetShaderSource_params params = + { + .shader = params32->shader, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .source = (GLchar *)ULongToPtr(params32->source), + }; + NTSTATUS status; + status = ext_glGetShaderSource( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetShaderSourceARB( void *args ) +{ + struct + { + GLhandleARB obj; + GLsizei maxLength; + PTR32 length; + PTR32 source; + } *params32 = args; + struct glGetShaderSourceARB_params params = + { + .obj = params32->obj, + .maxLength = params32->maxLength, + .length = (GLsizei *)ULongToPtr(params32->length), + .source = (GLcharARB *)ULongToPtr(params32->source), + }; + NTSTATUS status; + status = ext_glGetShaderSourceARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetShaderiv( void *args ) +{ + struct + { + GLuint shader; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetShaderiv_params params = + { + .shader = params32->shader, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetShaderiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetShadingRateImagePaletteNV( void *args ) +{ + struct + { + GLuint viewport; + GLuint entry; + PTR32 rate; + } *params32 = args; + struct glGetShadingRateImagePaletteNV_params params = + { + .viewport = params32->viewport, + .entry = params32->entry, + .rate = (GLenum *)ULongToPtr(params32->rate), + }; + NTSTATUS status; + status = ext_glGetShadingRateImagePaletteNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetShadingRateSampleLocationivNV( void *args ) +{ + struct + { + GLenum rate; + GLuint samples; + GLuint index; + PTR32 location; + } *params32 = args; + struct glGetShadingRateSampleLocationivNV_params params = + { + .rate = params32->rate, + .samples = params32->samples, + .index = params32->index, + .location = (GLint *)ULongToPtr(params32->location), + }; + NTSTATUS status; + status = ext_glGetShadingRateSampleLocationivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetSharpenTexFuncSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 points; + } *params32 = args; + struct glGetSharpenTexFuncSGIS_params params = + { + .target = params32->target, + .points = (GLfloat *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glGetSharpenTexFuncSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetStringi( void *args ) +{ + struct + { + GLenum name; + GLuint index; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetSubroutineIndex( void *args ) +{ + struct + { + GLuint program; + GLenum shadertype; + PTR32 name; + GLuint ret; + } *params32 = args; + struct glGetSubroutineIndex_params params = + { + .program = params32->program, + .shadertype = params32->shadertype, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetSubroutineIndex( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetSubroutineUniformLocation( void *args ) +{ + struct + { + GLuint program; + GLenum shadertype; + PTR32 name; + GLint ret; + } *params32 = args; + struct glGetSubroutineUniformLocation_params params = + { + .program = params32->program, + .shadertype = params32->shadertype, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetSubroutineUniformLocation( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetSynciv( void *args ) +{ + struct + { + PTR32 sync; + GLenum pname; + GLsizei count; + PTR32 length; + PTR32 values; + } *params32 = args; + struct glGetSynciv_params params = + { + .sync = (GLsync)ULongToPtr(params32->sync), + .pname = params32->pname, + .count = params32->count, + .length = (GLsizei *)ULongToPtr(params32->length), + .values = (GLint *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetSynciv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTexBumpParameterfvATI( void *args ) +{ + struct + { + GLenum pname; + PTR32 param; + } *params32 = args; + struct glGetTexBumpParameterfvATI_params params = + { + .pname = params32->pname, + .param = (GLfloat *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glGetTexBumpParameterfvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTexBumpParameterivATI( void *args ) +{ + struct + { + GLenum pname; + PTR32 param; + } *params32 = args; + struct glGetTexBumpParameterivATI_params params = + { + .pname = params32->pname, + .param = (GLint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glGetTexBumpParameterivATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTexEnvxvOES( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexEnvxvOES_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTexEnvxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTexFilterFuncSGIS( void *args ) +{ + struct + { + GLenum target; + GLenum filter; + PTR32 weights; + } *params32 = args; + struct glGetTexFilterFuncSGIS_params params = + { + .target = params32->target, + .filter = params32->filter, + .weights = (GLfloat *)ULongToPtr(params32->weights), + }; + NTSTATUS status; + status = ext_glGetTexFilterFuncSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTexGenxvOES( void *args ) +{ + struct + { + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexGenxvOES_params params = + { + .coord = params32->coord, + .pname = params32->pname, + .params = (GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTexGenxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTexLevelParameterxvOES( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexLevelParameterxvOES_params params = + { + .target = params32->target, + .level = params32->level, + .pname = params32->pname, + .params = (GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTexLevelParameterxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTexParameterIiv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexParameterIiv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTexParameterIiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTexParameterIivEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexParameterIivEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTexParameterIivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTexParameterIuiv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexParameterIuiv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTexParameterIuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTexParameterIuivEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexParameterIuivEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTexParameterIuivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTexParameterPointervAPPLE( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetTexParameterxvOES( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTexParameterxvOES_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTexParameterxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureImage( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 pixels; + } *params32 = args; + struct glGetTextureImage_params params = + { + .texture = params32->texture, + .level = params32->level, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .pixels = (void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glGetTextureImage( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureImageEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glGetTextureImageEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .format = params32->format, + .type = params32->type, + .pixels = (void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glGetTextureImageEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureLevelParameterfv( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTextureLevelParameterfv_params params = + { + .texture = params32->texture, + .level = params32->level, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTextureLevelParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureLevelParameterfvEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTextureLevelParameterfvEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTextureLevelParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureLevelParameteriv( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTextureLevelParameteriv_params params = + { + .texture = params32->texture, + .level = params32->level, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTextureLevelParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureLevelParameterivEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTextureLevelParameterivEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTextureLevelParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureParameterIiv( void *args ) +{ + struct + { + GLuint texture; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTextureParameterIiv_params params = + { + .texture = params32->texture, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTextureParameterIiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureParameterIivEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTextureParameterIivEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTextureParameterIivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureParameterIuiv( void *args ) +{ + struct + { + GLuint texture; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTextureParameterIuiv_params params = + { + .texture = params32->texture, + .pname = params32->pname, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTextureParameterIuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureParameterIuivEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTextureParameterIuivEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .pname = params32->pname, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTextureParameterIuivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureParameterfv( void *args ) +{ + struct + { + GLuint texture; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTextureParameterfv_params params = + { + .texture = params32->texture, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTextureParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureParameterfvEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTextureParameterfvEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTextureParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureParameteriv( void *args ) +{ + struct + { + GLuint texture; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTextureParameteriv_params params = + { + .texture = params32->texture, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTextureParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureParameterivEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTextureParameterivEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTextureParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTextureSubImage( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 pixels; + } *params32 = args; + struct glGetTextureSubImage_params params = + { + .texture = params32->texture, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .pixels = (void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glGetTextureSubImage( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTrackMatrixivNV( void *args ) +{ + struct + { + GLenum target; + GLuint address; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetTrackMatrixivNV_params params = + { + .target = params32->target, + .address = params32->address, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetTrackMatrixivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTransformFeedbackVarying( void *args ) +{ + struct + { + GLuint program; + GLuint index; + GLsizei bufSize; + PTR32 length; + PTR32 size; + PTR32 type; + PTR32 name; + } *params32 = args; + struct glGetTransformFeedbackVarying_params params = + { + .program = params32->program, + .index = params32->index, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .size = (GLsizei *)ULongToPtr(params32->size), + .type = (GLenum *)ULongToPtr(params32->type), + .name = (GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetTransformFeedbackVarying( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTransformFeedbackVaryingEXT( void *args ) +{ + struct + { + GLuint program; + GLuint index; + GLsizei bufSize; + PTR32 length; + PTR32 size; + PTR32 type; + PTR32 name; + } *params32 = args; + struct glGetTransformFeedbackVaryingEXT_params params = + { + .program = params32->program, + .index = params32->index, + .bufSize = params32->bufSize, + .length = (GLsizei *)ULongToPtr(params32->length), + .size = (GLsizei *)ULongToPtr(params32->size), + .type = (GLenum *)ULongToPtr(params32->type), + .name = (GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetTransformFeedbackVaryingEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTransformFeedbackVaryingNV( void *args ) +{ + struct + { + GLuint program; + GLuint index; + PTR32 location; + } *params32 = args; + struct glGetTransformFeedbackVaryingNV_params params = + { + .program = params32->program, + .index = params32->index, + .location = (GLint *)ULongToPtr(params32->location), + }; + NTSTATUS status; + status = ext_glGetTransformFeedbackVaryingNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTransformFeedbacki64_v( void *args ) +{ + struct + { + GLuint xfb; + GLenum pname; + GLuint index; + PTR32 param; + } *params32 = args; + struct glGetTransformFeedbacki64_v_params params = + { + .xfb = params32->xfb, + .pname = params32->pname, + .index = params32->index, + .param = (GLint64 *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glGetTransformFeedbacki64_v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTransformFeedbacki_v( void *args ) +{ + struct + { + GLuint xfb; + GLenum pname; + GLuint index; + PTR32 param; + } *params32 = args; + struct glGetTransformFeedbacki_v_params params = + { + .xfb = params32->xfb, + .pname = params32->pname, + .index = params32->index, + .param = (GLint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glGetTransformFeedbacki_v( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetTransformFeedbackiv( void *args ) +{ + struct + { + GLuint xfb; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glGetTransformFeedbackiv_params params = + { + .xfb = params32->xfb, + .pname = params32->pname, + .param = (GLint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glGetTransformFeedbackiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUniformBlockIndex( void *args ) +{ + struct + { + GLuint program; + PTR32 uniformBlockName; + GLuint ret; + } *params32 = args; + struct glGetUniformBlockIndex_params params = + { + .program = params32->program, + .uniformBlockName = (const GLchar *)ULongToPtr(params32->uniformBlockName), + }; + NTSTATUS status; + status = ext_glGetUniformBlockIndex( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetUniformIndices( void *args ) +{ + struct + { + GLuint program; + GLsizei uniformCount; + PTR32 uniformNames; + PTR32 uniformIndices; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetUniformLocation( void *args ) +{ + struct + { + GLuint program; + PTR32 name; + GLint ret; + } *params32 = args; + struct glGetUniformLocation_params params = + { + .program = params32->program, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetUniformLocation( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetUniformLocationARB( void *args ) +{ + struct + { + GLhandleARB programObj; + PTR32 name; + GLint ret; + } *params32 = args; + struct glGetUniformLocationARB_params params = + { + .programObj = params32->programObj, + .name = (const GLcharARB *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetUniformLocationARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetUniformOffsetEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetUniformSubroutineuiv( void *args ) +{ + struct + { + GLenum shadertype; + GLint location; + PTR32 params; + } *params32 = args; + struct glGetUniformSubroutineuiv_params params = + { + .shadertype = params32->shadertype, + .location = params32->location, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetUniformSubroutineuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUniformdv( void *args ) +{ + struct + { + GLuint program; + GLint location; + PTR32 params; + } *params32 = args; + struct glGetUniformdv_params params = + { + .program = params32->program, + .location = params32->location, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetUniformdv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUniformfv( void *args ) +{ + struct + { + GLuint program; + GLint location; + PTR32 params; + } *params32 = args; + struct glGetUniformfv_params params = + { + .program = params32->program, + .location = params32->location, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetUniformfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUniformfvARB( void *args ) +{ + struct + { + GLhandleARB programObj; + GLint location; + PTR32 params; + } *params32 = args; + struct glGetUniformfvARB_params params = + { + .programObj = params32->programObj, + .location = params32->location, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetUniformfvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUniformi64vARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + PTR32 params; + } *params32 = args; + struct glGetUniformi64vARB_params params = + { + .program = params32->program, + .location = params32->location, + .params = (GLint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetUniformi64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUniformi64vNV( void *args ) +{ + struct + { + GLuint program; + GLint location; + PTR32 params; + } *params32 = args; + struct glGetUniformi64vNV_params params = + { + .program = params32->program, + .location = params32->location, + .params = (GLint64EXT *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetUniformi64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUniformiv( void *args ) +{ + struct + { + GLuint program; + GLint location; + PTR32 params; + } *params32 = args; + struct glGetUniformiv_params params = + { + .program = params32->program, + .location = params32->location, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetUniformiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUniformivARB( void *args ) +{ + struct + { + GLhandleARB programObj; + GLint location; + PTR32 params; + } *params32 = args; + struct glGetUniformivARB_params params = + { + .programObj = params32->programObj, + .location = params32->location, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetUniformivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUniformui64vARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + PTR32 params; + } *params32 = args; + struct glGetUniformui64vARB_params params = + { + .program = params32->program, + .location = params32->location, + .params = (GLuint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetUniformui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUniformui64vNV( void *args ) +{ + struct + { + GLuint program; + GLint location; + PTR32 params; + } *params32 = args; + struct glGetUniformui64vNV_params params = + { + .program = params32->program, + .location = params32->location, + .params = (GLuint64EXT *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetUniformui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUniformuiv( void *args ) +{ + struct + { + GLuint program; + GLint location; + PTR32 params; + } *params32 = args; + struct glGetUniformuiv_params params = + { + .program = params32->program, + .location = params32->location, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetUniformuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUniformuivEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + PTR32 params; + } *params32 = args; + struct glGetUniformuivEXT_params params = + { + .program = params32->program, + .location = params32->location, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetUniformuivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUnsignedBytei_vEXT( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 data; + } *params32 = args; + struct glGetUnsignedBytei_vEXT_params params = + { + .target = params32->target, + .index = params32->index, + .data = (GLubyte *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetUnsignedBytei_vEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetUnsignedBytevEXT( void *args ) +{ + struct + { + GLenum pname; + PTR32 data; + } *params32 = args; + struct glGetUnsignedBytevEXT_params params = + { + .pname = params32->pname, + .data = (GLubyte *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetUnsignedBytevEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVariantArrayObjectfvATI( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVariantArrayObjectfvATI_params params = + { + .id = params32->id, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVariantArrayObjectfvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVariantArrayObjectivATI( void *args ) +{ + struct + { + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVariantArrayObjectivATI_params params = + { + .id = params32->id, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVariantArrayObjectivATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVariantBooleanvEXT( void *args ) +{ + struct + { + GLuint id; + GLenum value; + PTR32 data; + } *params32 = args; + struct glGetVariantBooleanvEXT_params params = + { + .id = params32->id, + .value = params32->value, + .data = (GLboolean *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetVariantBooleanvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVariantFloatvEXT( void *args ) +{ + struct + { + GLuint id; + GLenum value; + PTR32 data; + } *params32 = args; + struct glGetVariantFloatvEXT_params params = + { + .id = params32->id, + .value = params32->value, + .data = (GLfloat *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetVariantFloatvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVariantIntegervEXT( void *args ) +{ + struct + { + GLuint id; + GLenum value; + PTR32 data; + } *params32 = args; + struct glGetVariantIntegervEXT_params params = + { + .id = params32->id, + .value = params32->value, + .data = (GLint *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glGetVariantIntegervEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVariantPointervEXT( void *args ) +{ + struct + { + GLuint id; + GLenum value; + PTR32 data; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetVaryingLocationNV( void *args ) +{ + struct + { + GLuint program; + PTR32 name; + GLint ret; + } *params32 = args; + struct glGetVaryingLocationNV_params params = + { + .program = params32->program, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glGetVaryingLocationNV( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glGetVertexArrayIndexed64iv( void *args ) +{ + struct + { + GLuint vaobj; + GLuint index; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glGetVertexArrayIndexed64iv_params params = + { + .vaobj = params32->vaobj, + .index = params32->index, + .pname = params32->pname, + .param = (GLint64 *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glGetVertexArrayIndexed64iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexArrayIndexediv( void *args ) +{ + struct + { + GLuint vaobj; + GLuint index; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glGetVertexArrayIndexediv_params params = + { + .vaobj = params32->vaobj, + .index = params32->index, + .pname = params32->pname, + .param = (GLint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glGetVertexArrayIndexediv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexArrayIntegeri_vEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint index; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glGetVertexArrayIntegeri_vEXT_params params = + { + .vaobj = params32->vaobj, + .index = params32->index, + .pname = params32->pname, + .param = (GLint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glGetVertexArrayIntegeri_vEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexArrayIntegervEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glGetVertexArrayIntegervEXT_params params = + { + .vaobj = params32->vaobj, + .pname = params32->pname, + .param = (GLint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glGetVertexArrayIntegervEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexArrayPointeri_vEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint index; + GLenum pname; + PTR32 param; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetVertexArrayPointervEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLenum pname; + PTR32 param; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetVertexArrayiv( void *args ) +{ + struct + { + GLuint vaobj; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glGetVertexArrayiv_params params = + { + .vaobj = params32->vaobj, + .pname = params32->pname, + .param = (GLint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glGetVertexArrayiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribArrayObjectfvATI( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribArrayObjectfvATI_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribArrayObjectfvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribArrayObjectivATI( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribArrayObjectivATI_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribArrayObjectivATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribIiv( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribIiv_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribIiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribIivEXT( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribIivEXT_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribIivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribIuiv( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribIuiv_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribIuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribIuivEXT( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribIuivEXT_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribIuivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribLdv( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribLdv_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribLdv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribLdvEXT( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribLdvEXT_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribLdvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribLi64vNV( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribLi64vNV_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLint64EXT *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribLi64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribLui64vARB( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribLui64vARB_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLuint64EXT *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribLui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribLui64vNV( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribLui64vNV_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLuint64EXT *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribLui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribPointerv( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 pointer; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetVertexAttribPointervARB( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 pointer; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetVertexAttribPointervNV( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 pointer; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetVertexAttribdv( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribdv_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribdv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribdvARB( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribdvARB_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribdvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribdvNV( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribdvNV_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribdvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribfv( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribfv_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribfvARB( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribfvARB_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribfvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribfvNV( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribfvNV_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribiv( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribiv_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribivARB( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribivARB_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVertexAttribivNV( void *args ) +{ + struct + { + GLuint index; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVertexAttribivNV_params params = + { + .index = params32->index, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVertexAttribivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVideoCaptureStreamdvNV( void *args ) +{ + struct + { + GLuint video_capture_slot; + GLuint stream; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVideoCaptureStreamdvNV_params params = + { + .video_capture_slot = params32->video_capture_slot, + .stream = params32->stream, + .pname = params32->pname, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVideoCaptureStreamdvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVideoCaptureStreamfvNV( void *args ) +{ + struct + { + GLuint video_capture_slot; + GLuint stream; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVideoCaptureStreamfvNV_params params = + { + .video_capture_slot = params32->video_capture_slot, + .stream = params32->stream, + .pname = params32->pname, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVideoCaptureStreamfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVideoCaptureStreamivNV( void *args ) +{ + struct + { + GLuint video_capture_slot; + GLuint stream; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVideoCaptureStreamivNV_params params = + { + .video_capture_slot = params32->video_capture_slot, + .stream = params32->stream, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVideoCaptureStreamivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVideoCaptureivNV( void *args ) +{ + struct + { + GLuint video_capture_slot; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVideoCaptureivNV_params params = + { + .video_capture_slot = params32->video_capture_slot, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVideoCaptureivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVideoi64vNV( void *args ) +{ + struct + { + GLuint video_slot; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVideoi64vNV_params params = + { + .video_slot = params32->video_slot, + .pname = params32->pname, + .params = (GLint64EXT *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVideoi64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVideoivNV( void *args ) +{ + struct + { + GLuint video_slot; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVideoivNV_params params = + { + .video_slot = params32->video_slot, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVideoivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVideoui64vNV( void *args ) +{ + struct + { + GLuint video_slot; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVideoui64vNV_params params = + { + .video_slot = params32->video_slot, + .pname = params32->pname, + .params = (GLuint64EXT *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVideoui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVideouivNV( void *args ) +{ + struct + { + GLuint video_slot; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glGetVideouivNV_params params = + { + .video_slot = params32->video_slot, + .pname = params32->pname, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetVideouivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetVkProcAddrNV( void *args ) +{ + struct + { + PTR32 name; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glGetnColorTable( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 table; + } *params32 = args; + struct glGetnColorTable_params params = + { + .target = params32->target, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .table = (void *)ULongToPtr(params32->table), + }; + NTSTATUS status; + status = ext_glGetnColorTable( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnColorTableARB( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 table; + } *params32 = args; + struct glGetnColorTableARB_params params = + { + .target = params32->target, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .table = (void *)ULongToPtr(params32->table), + }; + NTSTATUS status; + status = ext_glGetnColorTableARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnCompressedTexImage( void *args ) +{ + struct + { + GLenum target; + GLint lod; + GLsizei bufSize; + PTR32 pixels; + } *params32 = args; + struct glGetnCompressedTexImage_params params = + { + .target = params32->target, + .lod = params32->lod, + .bufSize = params32->bufSize, + .pixels = (void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glGetnCompressedTexImage( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnCompressedTexImageARB( void *args ) +{ + struct + { + GLenum target; + GLint lod; + GLsizei bufSize; + PTR32 img; + } *params32 = args; + struct glGetnCompressedTexImageARB_params params = + { + .target = params32->target, + .lod = params32->lod, + .bufSize = params32->bufSize, + .img = (void *)ULongToPtr(params32->img), + }; + NTSTATUS status; + status = ext_glGetnCompressedTexImageARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnConvolutionFilter( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 image; + } *params32 = args; + struct glGetnConvolutionFilter_params params = + { + .target = params32->target, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .image = (void *)ULongToPtr(params32->image), + }; + NTSTATUS status; + status = ext_glGetnConvolutionFilter( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnConvolutionFilterARB( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 image; + } *params32 = args; + struct glGetnConvolutionFilterARB_params params = + { + .target = params32->target, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .image = (void *)ULongToPtr(params32->image), + }; + NTSTATUS status; + status = ext_glGetnConvolutionFilterARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnHistogram( void *args ) +{ + struct + { + GLenum target; + GLboolean reset; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 values; + } *params32 = args; + struct glGetnHistogram_params params = + { + .target = params32->target, + .reset = params32->reset, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .values = (void *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetnHistogram( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnHistogramARB( void *args ) +{ + struct + { + GLenum target; + GLboolean reset; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 values; + } *params32 = args; + struct glGetnHistogramARB_params params = + { + .target = params32->target, + .reset = params32->reset, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .values = (void *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetnHistogramARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnMapdv( void *args ) +{ + struct + { + GLenum target; + GLenum query; + GLsizei bufSize; + PTR32 v; + } *params32 = args; + struct glGetnMapdv_params params = + { + .target = params32->target, + .query = params32->query, + .bufSize = params32->bufSize, + .v = (GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glGetnMapdv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnMapdvARB( void *args ) +{ + struct + { + GLenum target; + GLenum query; + GLsizei bufSize; + PTR32 v; + } *params32 = args; + struct glGetnMapdvARB_params params = + { + .target = params32->target, + .query = params32->query, + .bufSize = params32->bufSize, + .v = (GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glGetnMapdvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnMapfv( void *args ) +{ + struct + { + GLenum target; + GLenum query; + GLsizei bufSize; + PTR32 v; + } *params32 = args; + struct glGetnMapfv_params params = + { + .target = params32->target, + .query = params32->query, + .bufSize = params32->bufSize, + .v = (GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glGetnMapfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnMapfvARB( void *args ) +{ + struct + { + GLenum target; + GLenum query; + GLsizei bufSize; + PTR32 v; + } *params32 = args; + struct glGetnMapfvARB_params params = + { + .target = params32->target, + .query = params32->query, + .bufSize = params32->bufSize, + .v = (GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glGetnMapfvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnMapiv( void *args ) +{ + struct + { + GLenum target; + GLenum query; + GLsizei bufSize; + PTR32 v; + } *params32 = args; + struct glGetnMapiv_params params = + { + .target = params32->target, + .query = params32->query, + .bufSize = params32->bufSize, + .v = (GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glGetnMapiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnMapivARB( void *args ) +{ + struct + { + GLenum target; + GLenum query; + GLsizei bufSize; + PTR32 v; + } *params32 = args; + struct glGetnMapivARB_params params = + { + .target = params32->target, + .query = params32->query, + .bufSize = params32->bufSize, + .v = (GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glGetnMapivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnMinmax( void *args ) +{ + struct + { + GLenum target; + GLboolean reset; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 values; + } *params32 = args; + struct glGetnMinmax_params params = + { + .target = params32->target, + .reset = params32->reset, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .values = (void *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetnMinmax( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnMinmaxARB( void *args ) +{ + struct + { + GLenum target; + GLboolean reset; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 values; + } *params32 = args; + struct glGetnMinmaxARB_params params = + { + .target = params32->target, + .reset = params32->reset, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .values = (void *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetnMinmaxARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnPixelMapfv( void *args ) +{ + struct + { + GLenum map; + GLsizei bufSize; + PTR32 values; + } *params32 = args; + struct glGetnPixelMapfv_params params = + { + .map = params32->map, + .bufSize = params32->bufSize, + .values = (GLfloat *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetnPixelMapfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnPixelMapfvARB( void *args ) +{ + struct + { + GLenum map; + GLsizei bufSize; + PTR32 values; + } *params32 = args; + struct glGetnPixelMapfvARB_params params = + { + .map = params32->map, + .bufSize = params32->bufSize, + .values = (GLfloat *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetnPixelMapfvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnPixelMapuiv( void *args ) +{ + struct + { + GLenum map; + GLsizei bufSize; + PTR32 values; + } *params32 = args; + struct glGetnPixelMapuiv_params params = + { + .map = params32->map, + .bufSize = params32->bufSize, + .values = (GLuint *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetnPixelMapuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnPixelMapuivARB( void *args ) +{ + struct + { + GLenum map; + GLsizei bufSize; + PTR32 values; + } *params32 = args; + struct glGetnPixelMapuivARB_params params = + { + .map = params32->map, + .bufSize = params32->bufSize, + .values = (GLuint *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetnPixelMapuivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnPixelMapusv( void *args ) +{ + struct + { + GLenum map; + GLsizei bufSize; + PTR32 values; + } *params32 = args; + struct glGetnPixelMapusv_params params = + { + .map = params32->map, + .bufSize = params32->bufSize, + .values = (GLushort *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetnPixelMapusv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnPixelMapusvARB( void *args ) +{ + struct + { + GLenum map; + GLsizei bufSize; + PTR32 values; + } *params32 = args; + struct glGetnPixelMapusvARB_params params = + { + .map = params32->map, + .bufSize = params32->bufSize, + .values = (GLushort *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glGetnPixelMapusvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnPolygonStipple( void *args ) +{ + struct + { + GLsizei bufSize; + PTR32 pattern; + } *params32 = args; + struct glGetnPolygonStipple_params params = + { + .bufSize = params32->bufSize, + .pattern = (GLubyte *)ULongToPtr(params32->pattern), + }; + NTSTATUS status; + status = ext_glGetnPolygonStipple( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnPolygonStippleARB( void *args ) +{ + struct + { + GLsizei bufSize; + PTR32 pattern; + } *params32 = args; + struct glGetnPolygonStippleARB_params params = + { + .bufSize = params32->bufSize, + .pattern = (GLubyte *)ULongToPtr(params32->pattern), + }; + NTSTATUS status; + status = ext_glGetnPolygonStippleARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnSeparableFilter( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLenum type; + GLsizei rowBufSize; + PTR32 row; + GLsizei columnBufSize; + PTR32 column; + PTR32 span; + } *params32 = args; + struct glGetnSeparableFilter_params params = + { + .target = params32->target, + .format = params32->format, + .type = params32->type, + .rowBufSize = params32->rowBufSize, + .row = (void *)ULongToPtr(params32->row), + .columnBufSize = params32->columnBufSize, + .column = (void *)ULongToPtr(params32->column), + .span = (void *)ULongToPtr(params32->span), + }; + NTSTATUS status; + status = ext_glGetnSeparableFilter( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnSeparableFilterARB( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLenum type; + GLsizei rowBufSize; + PTR32 row; + GLsizei columnBufSize; + PTR32 column; + PTR32 span; + } *params32 = args; + struct glGetnSeparableFilterARB_params params = + { + .target = params32->target, + .format = params32->format, + .type = params32->type, + .rowBufSize = params32->rowBufSize, + .row = (void *)ULongToPtr(params32->row), + .columnBufSize = params32->columnBufSize, + .column = (void *)ULongToPtr(params32->column), + .span = (void *)ULongToPtr(params32->span), + }; + NTSTATUS status; + status = ext_glGetnSeparableFilterARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnTexImage( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 pixels; + } *params32 = args; + struct glGetnTexImage_params params = + { + .target = params32->target, + .level = params32->level, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .pixels = (void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glGetnTexImage( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnTexImageARB( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 img; + } *params32 = args; + struct glGetnTexImageARB_params params = + { + .target = params32->target, + .level = params32->level, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .img = (void *)ULongToPtr(params32->img), + }; + NTSTATUS status; + status = ext_glGetnTexImageARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnUniformdv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei bufSize; + PTR32 params; + } *params32 = args; + struct glGetnUniformdv_params params = + { + .program = params32->program, + .location = params32->location, + .bufSize = params32->bufSize, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetnUniformdv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnUniformdvARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei bufSize; + PTR32 params; + } *params32 = args; + struct glGetnUniformdvARB_params params = + { + .program = params32->program, + .location = params32->location, + .bufSize = params32->bufSize, + .params = (GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetnUniformdvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnUniformfv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei bufSize; + PTR32 params; + } *params32 = args; + struct glGetnUniformfv_params params = + { + .program = params32->program, + .location = params32->location, + .bufSize = params32->bufSize, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetnUniformfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnUniformfvARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei bufSize; + PTR32 params; + } *params32 = args; + struct glGetnUniformfvARB_params params = + { + .program = params32->program, + .location = params32->location, + .bufSize = params32->bufSize, + .params = (GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetnUniformfvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnUniformi64vARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei bufSize; + PTR32 params; + } *params32 = args; + struct glGetnUniformi64vARB_params params = + { + .program = params32->program, + .location = params32->location, + .bufSize = params32->bufSize, + .params = (GLint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetnUniformi64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnUniformiv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei bufSize; + PTR32 params; + } *params32 = args; + struct glGetnUniformiv_params params = + { + .program = params32->program, + .location = params32->location, + .bufSize = params32->bufSize, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetnUniformiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnUniformivARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei bufSize; + PTR32 params; + } *params32 = args; + struct glGetnUniformivARB_params params = + { + .program = params32->program, + .location = params32->location, + .bufSize = params32->bufSize, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetnUniformivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnUniformui64vARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei bufSize; + PTR32 params; + } *params32 = args; + struct glGetnUniformui64vARB_params params = + { + .program = params32->program, + .location = params32->location, + .bufSize = params32->bufSize, + .params = (GLuint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetnUniformui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnUniformuiv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei bufSize; + PTR32 params; + } *params32 = args; + struct glGetnUniformuiv_params params = + { + .program = params32->program, + .location = params32->location, + .bufSize = params32->bufSize, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetnUniformuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glGetnUniformuivARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei bufSize; + PTR32 params; + } *params32 = args; + struct glGetnUniformuivARB_params params = + { + .program = params32->program, + .location = params32->location, + .bufSize = params32->bufSize, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glGetnUniformuivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glIglooInterfaceSGIX( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glIglooInterfaceSGIX_params params = + { + .pname = params32->pname, + .params = (const void *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glIglooInterfaceSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glImageTransformParameterfvHP( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glImageTransformParameterfvHP_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glImageTransformParameterfvHP( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glImageTransformParameterivHP( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glImageTransformParameterivHP_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glImageTransformParameterivHP( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glImportMemoryWin32HandleEXT( void *args ) +{ + struct + { + GLuint memory; + GLuint64 size; + GLenum handleType; + PTR32 handle; + } *params32 = args; + struct glImportMemoryWin32HandleEXT_params params = + { + .memory = params32->memory, + .size = params32->size, + .handleType = params32->handleType, + .handle = (void *)ULongToPtr(params32->handle), + }; + NTSTATUS status; + status = ext_glImportMemoryWin32HandleEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glImportMemoryWin32NameEXT( void *args ) +{ + struct + { + GLuint memory; + GLuint64 size; + GLenum handleType; + PTR32 name; + } *params32 = args; + struct glImportMemoryWin32NameEXT_params params = + { + .memory = params32->memory, + .size = params32->size, + .handleType = params32->handleType, + .name = (const void *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glImportMemoryWin32NameEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glImportSemaphoreWin32HandleEXT( void *args ) +{ + struct + { + GLuint semaphore; + GLenum handleType; + PTR32 handle; + } *params32 = args; + struct glImportSemaphoreWin32HandleEXT_params params = + { + .semaphore = params32->semaphore, + .handleType = params32->handleType, + .handle = (void *)ULongToPtr(params32->handle), + }; + NTSTATUS status; + status = ext_glImportSemaphoreWin32HandleEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glImportSemaphoreWin32NameEXT( void *args ) +{ + struct + { + GLuint semaphore; + GLenum handleType; + PTR32 name; + } *params32 = args; + struct glImportSemaphoreWin32NameEXT_params params = + { + .semaphore = params32->semaphore, + .handleType = params32->handleType, + .name = (const void *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glImportSemaphoreWin32NameEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glImportSyncEXT( void *args ) +{ + struct + { + GLenum external_sync_type; + PTR32 external_sync; + GLbitfield flags; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glIndexPointerEXT( void *args ) +{ + struct + { + GLenum type; + GLsizei stride; + GLsizei count; + PTR32 pointer; + } *params32 = args; + struct glIndexPointerEXT_params params = + { + .type = params32->type, + .stride = params32->stride, + .count = params32->count, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glIndexPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glIndexPointerListIBM( void *args ) +{ + struct + { + GLenum type; + GLint stride; + PTR32 pointer; + GLint ptrstride; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glIndexxvOES( void *args ) +{ + struct + { + PTR32 component; + } *params32 = args; + struct glIndexxvOES_params params = + { + .component = (const GLfixed *)ULongToPtr(params32->component), + }; + NTSTATUS status; + status = ext_glIndexxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glInsertEventMarkerEXT( void *args ) +{ + struct + { + GLsizei length; + PTR32 marker; + } *params32 = args; + struct glInsertEventMarkerEXT_params params = + { + .length = params32->length, + .marker = (const GLchar *)ULongToPtr(params32->marker), + }; + NTSTATUS status; + status = ext_glInsertEventMarkerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glInstrumentsBufferSGIX( void *args ) +{ + struct + { + GLsizei size; + PTR32 buffer; + } *params32 = args; + struct glInstrumentsBufferSGIX_params params = + { + .size = params32->size, + .buffer = (GLint *)ULongToPtr(params32->buffer), + }; + NTSTATUS status; + status = ext_glInstrumentsBufferSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glInvalidateBufferSubData( void *args ) +{ + struct + { + GLuint buffer; + PTR32 offset; + PTR32 length; + } *params32 = args; + struct glInvalidateBufferSubData_params params = + { + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .length = (GLsizeiptr)ULongToPtr(params32->length), + }; + NTSTATUS status; + status = ext_glInvalidateBufferSubData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glInvalidateFramebuffer( void *args ) +{ + struct + { + GLenum target; + GLsizei numAttachments; + PTR32 attachments; + } *params32 = args; + struct glInvalidateFramebuffer_params params = + { + .target = params32->target, + .numAttachments = params32->numAttachments, + .attachments = (const GLenum *)ULongToPtr(params32->attachments), + }; + NTSTATUS status; + status = ext_glInvalidateFramebuffer( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glInvalidateNamedFramebufferData( void *args ) +{ + struct + { + GLuint framebuffer; + GLsizei numAttachments; + PTR32 attachments; + } *params32 = args; + struct glInvalidateNamedFramebufferData_params params = + { + .framebuffer = params32->framebuffer, + .numAttachments = params32->numAttachments, + .attachments = (const GLenum *)ULongToPtr(params32->attachments), + }; + NTSTATUS status; + status = ext_glInvalidateNamedFramebufferData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glInvalidateNamedFramebufferSubData( void *args ) +{ + struct + { + GLuint framebuffer; + GLsizei numAttachments; + PTR32 attachments; + GLint x; + GLint y; + GLsizei width; + GLsizei height; + } *params32 = args; + struct glInvalidateNamedFramebufferSubData_params params = + { + .framebuffer = params32->framebuffer, + .numAttachments = params32->numAttachments, + .attachments = (const GLenum *)ULongToPtr(params32->attachments), + .x = params32->x, + .y = params32->y, + .width = params32->width, + .height = params32->height, + }; + NTSTATUS status; + status = ext_glInvalidateNamedFramebufferSubData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glInvalidateSubFramebuffer( void *args ) +{ + struct + { + GLenum target; + GLsizei numAttachments; + PTR32 attachments; + GLint x; + GLint y; + GLsizei width; + GLsizei height; + } *params32 = args; + struct glInvalidateSubFramebuffer_params params = + { + .target = params32->target, + .numAttachments = params32->numAttachments, + .attachments = (const GLenum *)ULongToPtr(params32->attachments), + .x = params32->x, + .y = params32->y, + .width = params32->width, + .height = params32->height, + }; + NTSTATUS status; + status = ext_glInvalidateSubFramebuffer( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glIsNamedStringARB( void *args ) +{ + struct + { + GLint namelen; + PTR32 name; + GLboolean ret; + } *params32 = args; + struct glIsNamedStringARB_params params = + { + .namelen = params32->namelen, + .name = (const GLchar *)ULongToPtr(params32->name), + }; + NTSTATUS status; + status = ext_glIsNamedStringARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glIsSync( void *args ) +{ + struct + { + PTR32 sync; + GLboolean ret; + } *params32 = args; + struct glIsSync_params params = + { + .sync = (GLsync)ULongToPtr(params32->sync), + }; + NTSTATUS status; + status = ext_glIsSync( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glLGPUNamedBufferSubDataNVX( void *args ) +{ + struct + { + GLbitfield gpuMask; + GLuint buffer; + PTR32 offset; + PTR32 size; + PTR32 data; + } *params32 = args; + struct glLGPUNamedBufferSubDataNVX_params params = + { + .gpuMask = params32->gpuMask, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glLGPUNamedBufferSubDataNVX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glLabelObjectEXT( void *args ) +{ + struct + { + GLenum type; + GLuint object; + GLsizei length; + PTR32 label; + } *params32 = args; + struct glLabelObjectEXT_params params = + { + .type = params32->type, + .object = params32->object, + .length = params32->length, + .label = (const GLchar *)ULongToPtr(params32->label), + }; + NTSTATUS status; + status = ext_glLabelObjectEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glLightModelxvOES( void *args ) +{ + struct + { + GLenum pname; + PTR32 param; + } *params32 = args; + struct glLightModelxvOES_params params = + { + .pname = params32->pname, + .param = (const GLfixed *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glLightModelxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glLightxvOES( void *args ) +{ + struct + { + GLenum light; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glLightxvOES_params params = + { + .light = params32->light, + .pname = params32->pname, + .params = (const GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glLightxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glListDrawCommandsStatesClientNV( void *args ) +{ + struct + { + GLuint list; + GLuint segment; + PTR32 indirects; + PTR32 sizes; + PTR32 states; + PTR32 fbos; + GLuint count; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glListParameterfvSGIX( void *args ) +{ + struct + { + GLuint list; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glListParameterfvSGIX_params params = + { + .list = params32->list, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glListParameterfvSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glListParameterivSGIX( void *args ) +{ + struct + { + GLuint list; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glListParameterivSGIX_params params = + { + .list = params32->list, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glListParameterivSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glLoadMatrixxOES( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glLoadMatrixxOES_params params = + { + .m = (const GLfixed *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glLoadMatrixxOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glLoadProgramNV( void *args ) +{ + struct + { + GLenum target; + GLuint id; + GLsizei len; + PTR32 program; + } *params32 = args; + struct glLoadProgramNV_params params = + { + .target = params32->target, + .id = params32->id, + .len = params32->len, + .program = (const GLubyte *)ULongToPtr(params32->program), + }; + NTSTATUS status; + status = ext_glLoadProgramNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glLoadTransposeMatrixd( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glLoadTransposeMatrixd_params params = + { + .m = (const GLdouble *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glLoadTransposeMatrixd( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glLoadTransposeMatrixdARB( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glLoadTransposeMatrixdARB_params params = + { + .m = (const GLdouble *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glLoadTransposeMatrixdARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glLoadTransposeMatrixf( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glLoadTransposeMatrixf_params params = + { + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glLoadTransposeMatrixf( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glLoadTransposeMatrixfARB( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glLoadTransposeMatrixfARB_params params = + { + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glLoadTransposeMatrixfARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glLoadTransposeMatrixxOES( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glLoadTransposeMatrixxOES_params params = + { + .m = (const GLfixed *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glLoadTransposeMatrixxOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMTexCoord2fvSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMTexCoord2fvSGIS_params params = + { + .target = params32->target, + .v = (GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMTexCoord2fvSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMapBuffer( void *args ) +{ + struct + { + GLenum target; + GLenum access; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glMapBufferARB( void *args ) +{ + struct + { + GLenum target; + GLenum access; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glMapBufferRange( void *args ) +{ + struct + { + GLenum target; + PTR32 offset; + PTR32 length; + GLbitfield access; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glMapControlPointsNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLenum type; + GLsizei ustride; + GLsizei vstride; + GLint uorder; + GLint vorder; + GLboolean packed; + PTR32 points; + } *params32 = args; + struct glMapControlPointsNV_params params = + { + .target = params32->target, + .index = params32->index, + .type = params32->type, + .ustride = params32->ustride, + .vstride = params32->vstride, + .uorder = params32->uorder, + .vorder = params32->vorder, + .packed = params32->packed, + .points = (const void *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glMapControlPointsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMapNamedBuffer( void *args ) +{ + struct + { + GLuint buffer; + GLenum access; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glMapNamedBufferEXT( void *args ) +{ + struct + { + GLuint buffer; + GLenum access; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glMapNamedBufferRange( void *args ) +{ + struct + { + GLuint buffer; + PTR32 offset; + PTR32 length; + GLbitfield access; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glMapNamedBufferRangeEXT( void *args ) +{ + struct + { + GLuint buffer; + PTR32 offset; + PTR32 length; + GLbitfield access; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glMapObjectBufferATI( void *args ) +{ + struct + { + GLuint buffer; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glMapParameterfvNV( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMapParameterfvNV_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMapParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMapParameterivNV( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMapParameterivNV_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMapParameterivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMapTexture2DINTEL( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLbitfield access; + PTR32 stride; + PTR32 layout; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glMapVertexAttrib1dAPPLE( void *args ) +{ + struct + { + GLuint index; + GLuint size; + GLdouble u1; + GLdouble u2; + GLint stride; + GLint order; + PTR32 points; + } *params32 = args; + struct glMapVertexAttrib1dAPPLE_params params = + { + .index = params32->index, + .size = params32->size, + .u1 = params32->u1, + .u2 = params32->u2, + .stride = params32->stride, + .order = params32->order, + .points = (const GLdouble *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glMapVertexAttrib1dAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMapVertexAttrib1fAPPLE( void *args ) +{ + struct + { + GLuint index; + GLuint size; + GLfloat u1; + GLfloat u2; + GLint stride; + GLint order; + PTR32 points; + } *params32 = args; + struct glMapVertexAttrib1fAPPLE_params params = + { + .index = params32->index, + .size = params32->size, + .u1 = params32->u1, + .u2 = params32->u2, + .stride = params32->stride, + .order = params32->order, + .points = (const GLfloat *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glMapVertexAttrib1fAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMapVertexAttrib2dAPPLE( void *args ) +{ + struct + { + GLuint index; + GLuint size; + GLdouble u1; + GLdouble u2; + GLint ustride; + GLint uorder; + GLdouble v1; + GLdouble v2; + GLint vstride; + GLint vorder; + PTR32 points; + } *params32 = args; + struct glMapVertexAttrib2dAPPLE_params params = + { + .index = params32->index, + .size = params32->size, + .u1 = params32->u1, + .u2 = params32->u2, + .ustride = params32->ustride, + .uorder = params32->uorder, + .v1 = params32->v1, + .v2 = params32->v2, + .vstride = params32->vstride, + .vorder = params32->vorder, + .points = (const GLdouble *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glMapVertexAttrib2dAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMapVertexAttrib2fAPPLE( void *args ) +{ + struct + { + GLuint index; + GLuint size; + GLfloat u1; + GLfloat u2; + GLint ustride; + GLint uorder; + GLfloat v1; + GLfloat v2; + GLint vstride; + GLint vorder; + PTR32 points; + } *params32 = args; + struct glMapVertexAttrib2fAPPLE_params params = + { + .index = params32->index, + .size = params32->size, + .u1 = params32->u1, + .u2 = params32->u2, + .ustride = params32->ustride, + .uorder = params32->uorder, + .v1 = params32->v1, + .v2 = params32->v2, + .vstride = params32->vstride, + .vorder = params32->vorder, + .points = (const GLfloat *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glMapVertexAttrib2fAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMaterialxvOES( void *args ) +{ + struct + { + GLenum face; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glMaterialxvOES_params params = + { + .face = params32->face, + .pname = params32->pname, + .param = (const GLfixed *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glMaterialxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixIndexPointerARB( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glMatrixIndexPointerARB_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glMatrixIndexPointerARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixIndexubvARB( void *args ) +{ + struct + { + GLint size; + PTR32 indices; + } *params32 = args; + struct glMatrixIndexubvARB_params params = + { + .size = params32->size, + .indices = (const GLubyte *)ULongToPtr(params32->indices), + }; + NTSTATUS status; + status = ext_glMatrixIndexubvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixIndexuivARB( void *args ) +{ + struct + { + GLint size; + PTR32 indices; + } *params32 = args; + struct glMatrixIndexuivARB_params params = + { + .size = params32->size, + .indices = (const GLuint *)ULongToPtr(params32->indices), + }; + NTSTATUS status; + status = ext_glMatrixIndexuivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixIndexusvARB( void *args ) +{ + struct + { + GLint size; + PTR32 indices; + } *params32 = args; + struct glMatrixIndexusvARB_params params = + { + .size = params32->size, + .indices = (const GLushort *)ULongToPtr(params32->indices), + }; + NTSTATUS status; + status = ext_glMatrixIndexusvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixLoad3x2fNV( void *args ) +{ + struct + { + GLenum matrixMode; + PTR32 m; + } *params32 = args; + struct glMatrixLoad3x2fNV_params params = + { + .matrixMode = params32->matrixMode, + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixLoad3x2fNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixLoad3x3fNV( void *args ) +{ + struct + { + GLenum matrixMode; + PTR32 m; + } *params32 = args; + struct glMatrixLoad3x3fNV_params params = + { + .matrixMode = params32->matrixMode, + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixLoad3x3fNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixLoadTranspose3x3fNV( void *args ) +{ + struct + { + GLenum matrixMode; + PTR32 m; + } *params32 = args; + struct glMatrixLoadTranspose3x3fNV_params params = + { + .matrixMode = params32->matrixMode, + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixLoadTranspose3x3fNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixLoadTransposedEXT( void *args ) +{ + struct + { + GLenum mode; + PTR32 m; + } *params32 = args; + struct glMatrixLoadTransposedEXT_params params = + { + .mode = params32->mode, + .m = (const GLdouble *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixLoadTransposedEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixLoadTransposefEXT( void *args ) +{ + struct + { + GLenum mode; + PTR32 m; + } *params32 = args; + struct glMatrixLoadTransposefEXT_params params = + { + .mode = params32->mode, + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixLoadTransposefEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixLoaddEXT( void *args ) +{ + struct + { + GLenum mode; + PTR32 m; + } *params32 = args; + struct glMatrixLoaddEXT_params params = + { + .mode = params32->mode, + .m = (const GLdouble *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixLoaddEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixLoadfEXT( void *args ) +{ + struct + { + GLenum mode; + PTR32 m; + } *params32 = args; + struct glMatrixLoadfEXT_params params = + { + .mode = params32->mode, + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixLoadfEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixMult3x2fNV( void *args ) +{ + struct + { + GLenum matrixMode; + PTR32 m; + } *params32 = args; + struct glMatrixMult3x2fNV_params params = + { + .matrixMode = params32->matrixMode, + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixMult3x2fNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixMult3x3fNV( void *args ) +{ + struct + { + GLenum matrixMode; + PTR32 m; + } *params32 = args; + struct glMatrixMult3x3fNV_params params = + { + .matrixMode = params32->matrixMode, + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixMult3x3fNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixMultTranspose3x3fNV( void *args ) +{ + struct + { + GLenum matrixMode; + PTR32 m; + } *params32 = args; + struct glMatrixMultTranspose3x3fNV_params params = + { + .matrixMode = params32->matrixMode, + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixMultTranspose3x3fNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixMultTransposedEXT( void *args ) +{ + struct + { + GLenum mode; + PTR32 m; + } *params32 = args; + struct glMatrixMultTransposedEXT_params params = + { + .mode = params32->mode, + .m = (const GLdouble *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixMultTransposedEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixMultTransposefEXT( void *args ) +{ + struct + { + GLenum mode; + PTR32 m; + } *params32 = args; + struct glMatrixMultTransposefEXT_params params = + { + .mode = params32->mode, + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixMultTransposefEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixMultdEXT( void *args ) +{ + struct + { + GLenum mode; + PTR32 m; + } *params32 = args; + struct glMatrixMultdEXT_params params = + { + .mode = params32->mode, + .m = (const GLdouble *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixMultdEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMatrixMultfEXT( void *args ) +{ + struct + { + GLenum mode; + PTR32 m; + } *params32 = args; + struct glMatrixMultfEXT_params params = + { + .mode = params32->mode, + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMatrixMultfEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMemoryObjectParameterivEXT( void *args ) +{ + struct + { + GLuint memoryObject; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMemoryObjectParameterivEXT_params params = + { + .memoryObject = params32->memoryObject, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMemoryObjectParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultMatrixxOES( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glMultMatrixxOES_params params = + { + .m = (const GLfixed *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMultMatrixxOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultTransposeMatrixd( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glMultTransposeMatrixd_params params = + { + .m = (const GLdouble *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMultTransposeMatrixd( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultTransposeMatrixdARB( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glMultTransposeMatrixdARB_params params = + { + .m = (const GLdouble *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMultTransposeMatrixdARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultTransposeMatrixf( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glMultTransposeMatrixf_params params = + { + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMultTransposeMatrixf( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultTransposeMatrixfARB( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glMultTransposeMatrixfARB_params params = + { + .m = (const GLfloat *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMultTransposeMatrixfARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultTransposeMatrixxOES( void *args ) +{ + struct + { + PTR32 m; + } *params32 = args; + struct glMultTransposeMatrixxOES_params params = + { + .m = (const GLfixed *)ULongToPtr(params32->m), + }; + NTSTATUS status; + status = ext_glMultTransposeMatrixxOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawArrays( void *args ) +{ + struct + { + GLenum mode; + PTR32 first; + PTR32 count; + GLsizei drawcount; + } *params32 = args; + struct glMultiDrawArrays_params params = + { + .mode = params32->mode, + .first = (const GLint *)ULongToPtr(params32->first), + .count = (const GLsizei *)ULongToPtr(params32->count), + .drawcount = params32->drawcount, + }; + NTSTATUS status; + status = ext_glMultiDrawArrays( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawArraysEXT( void *args ) +{ + struct + { + GLenum mode; + PTR32 first; + PTR32 count; + GLsizei primcount; + } *params32 = args; + struct glMultiDrawArraysEXT_params params = + { + .mode = params32->mode, + .first = (const GLint *)ULongToPtr(params32->first), + .count = (const GLsizei *)ULongToPtr(params32->count), + .primcount = params32->primcount, + }; + NTSTATUS status; + status = ext_glMultiDrawArraysEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawArraysIndirect( void *args ) +{ + struct + { + GLenum mode; + PTR32 indirect; + GLsizei drawcount; + GLsizei stride; + } *params32 = args; + struct glMultiDrawArraysIndirect_params params = + { + .mode = params32->mode, + .indirect = (const void *)ULongToPtr(params32->indirect), + .drawcount = params32->drawcount, + .stride = params32->stride, + }; + NTSTATUS status; + status = ext_glMultiDrawArraysIndirect( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawArraysIndirectAMD( void *args ) +{ + struct + { + GLenum mode; + PTR32 indirect; + GLsizei primcount; + GLsizei stride; + } *params32 = args; + struct glMultiDrawArraysIndirectAMD_params params = + { + .mode = params32->mode, + .indirect = (const void *)ULongToPtr(params32->indirect), + .primcount = params32->primcount, + .stride = params32->stride, + }; + NTSTATUS status; + status = ext_glMultiDrawArraysIndirectAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawArraysIndirectBindlessCountNV( void *args ) +{ + struct + { + GLenum mode; + PTR32 indirect; + GLsizei drawCount; + GLsizei maxDrawCount; + GLsizei stride; + GLint vertexBufferCount; + } *params32 = args; + struct glMultiDrawArraysIndirectBindlessCountNV_params params = + { + .mode = params32->mode, + .indirect = (const void *)ULongToPtr(params32->indirect), + .drawCount = params32->drawCount, + .maxDrawCount = params32->maxDrawCount, + .stride = params32->stride, + .vertexBufferCount = params32->vertexBufferCount, + }; + NTSTATUS status; + status = ext_glMultiDrawArraysIndirectBindlessCountNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawArraysIndirectBindlessNV( void *args ) +{ + struct + { + GLenum mode; + PTR32 indirect; + GLsizei drawCount; + GLsizei stride; + GLint vertexBufferCount; + } *params32 = args; + struct glMultiDrawArraysIndirectBindlessNV_params params = + { + .mode = params32->mode, + .indirect = (const void *)ULongToPtr(params32->indirect), + .drawCount = params32->drawCount, + .stride = params32->stride, + .vertexBufferCount = params32->vertexBufferCount, + }; + NTSTATUS status; + status = ext_glMultiDrawArraysIndirectBindlessNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawArraysIndirectCount( void *args ) +{ + struct + { + GLenum mode; + PTR32 indirect; + PTR32 drawcount; + GLsizei maxdrawcount; + GLsizei stride; + } *params32 = args; + struct glMultiDrawArraysIndirectCount_params params = + { + .mode = params32->mode, + .indirect = (const void *)ULongToPtr(params32->indirect), + .drawcount = (GLintptr)ULongToPtr(params32->drawcount), + .maxdrawcount = params32->maxdrawcount, + .stride = params32->stride, + }; + NTSTATUS status; + status = ext_glMultiDrawArraysIndirectCount( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawArraysIndirectCountARB( void *args ) +{ + struct + { + GLenum mode; + PTR32 indirect; + PTR32 drawcount; + GLsizei maxdrawcount; + GLsizei stride; + } *params32 = args; + struct glMultiDrawArraysIndirectCountARB_params params = + { + .mode = params32->mode, + .indirect = (const void *)ULongToPtr(params32->indirect), + .drawcount = (GLintptr)ULongToPtr(params32->drawcount), + .maxdrawcount = params32->maxdrawcount, + .stride = params32->stride, + }; + NTSTATUS status; + status = ext_glMultiDrawArraysIndirectCountARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawElementArrayAPPLE( void *args ) +{ + struct + { + GLenum mode; + PTR32 first; + PTR32 count; + GLsizei primcount; + } *params32 = args; + struct glMultiDrawElementArrayAPPLE_params params = + { + .mode = params32->mode, + .first = (const GLint *)ULongToPtr(params32->first), + .count = (const GLsizei *)ULongToPtr(params32->count), + .primcount = params32->primcount, + }; + NTSTATUS status; + status = ext_glMultiDrawElementArrayAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawElements( void *args ) +{ + struct + { + GLenum mode; + PTR32 count; + GLenum type; + PTR32 indices; + GLsizei drawcount; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glMultiDrawElementsBaseVertex( void *args ) +{ + struct + { + GLenum mode; + PTR32 count; + GLenum type; + PTR32 indices; + GLsizei drawcount; + PTR32 basevertex; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glMultiDrawElementsEXT( void *args ) +{ + struct + { + GLenum mode; + PTR32 count; + GLenum type; + PTR32 indices; + GLsizei primcount; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glMultiDrawElementsIndirect( void *args ) +{ + struct + { + GLenum mode; + GLenum type; + PTR32 indirect; + GLsizei drawcount; + GLsizei stride; + } *params32 = args; + struct glMultiDrawElementsIndirect_params params = + { + .mode = params32->mode, + .type = params32->type, + .indirect = (const void *)ULongToPtr(params32->indirect), + .drawcount = params32->drawcount, + .stride = params32->stride, + }; + NTSTATUS status; + status = ext_glMultiDrawElementsIndirect( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawElementsIndirectAMD( void *args ) +{ + struct + { + GLenum mode; + GLenum type; + PTR32 indirect; + GLsizei primcount; + GLsizei stride; + } *params32 = args; + struct glMultiDrawElementsIndirectAMD_params params = + { + .mode = params32->mode, + .type = params32->type, + .indirect = (const void *)ULongToPtr(params32->indirect), + .primcount = params32->primcount, + .stride = params32->stride, + }; + NTSTATUS status; + status = ext_glMultiDrawElementsIndirectAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawElementsIndirectBindlessCountNV( void *args ) +{ + struct + { + GLenum mode; + GLenum type; + PTR32 indirect; + GLsizei drawCount; + GLsizei maxDrawCount; + GLsizei stride; + GLint vertexBufferCount; + } *params32 = args; + struct glMultiDrawElementsIndirectBindlessCountNV_params params = + { + .mode = params32->mode, + .type = params32->type, + .indirect = (const void *)ULongToPtr(params32->indirect), + .drawCount = params32->drawCount, + .maxDrawCount = params32->maxDrawCount, + .stride = params32->stride, + .vertexBufferCount = params32->vertexBufferCount, + }; + NTSTATUS status; + status = ext_glMultiDrawElementsIndirectBindlessCountNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawElementsIndirectBindlessNV( void *args ) +{ + struct + { + GLenum mode; + GLenum type; + PTR32 indirect; + GLsizei drawCount; + GLsizei stride; + GLint vertexBufferCount; + } *params32 = args; + struct glMultiDrawElementsIndirectBindlessNV_params params = + { + .mode = params32->mode, + .type = params32->type, + .indirect = (const void *)ULongToPtr(params32->indirect), + .drawCount = params32->drawCount, + .stride = params32->stride, + .vertexBufferCount = params32->vertexBufferCount, + }; + NTSTATUS status; + status = ext_glMultiDrawElementsIndirectBindlessNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawElementsIndirectCount( void *args ) +{ + struct + { + GLenum mode; + GLenum type; + PTR32 indirect; + PTR32 drawcount; + GLsizei maxdrawcount; + GLsizei stride; + } *params32 = args; + struct glMultiDrawElementsIndirectCount_params params = + { + .mode = params32->mode, + .type = params32->type, + .indirect = (const void *)ULongToPtr(params32->indirect), + .drawcount = (GLintptr)ULongToPtr(params32->drawcount), + .maxdrawcount = params32->maxdrawcount, + .stride = params32->stride, + }; + NTSTATUS status; + status = ext_glMultiDrawElementsIndirectCount( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawElementsIndirectCountARB( void *args ) +{ + struct + { + GLenum mode; + GLenum type; + PTR32 indirect; + PTR32 drawcount; + GLsizei maxdrawcount; + GLsizei stride; + } *params32 = args; + struct glMultiDrawElementsIndirectCountARB_params params = + { + .mode = params32->mode, + .type = params32->type, + .indirect = (const void *)ULongToPtr(params32->indirect), + .drawcount = (GLintptr)ULongToPtr(params32->drawcount), + .maxdrawcount = params32->maxdrawcount, + .stride = params32->stride, + }; + NTSTATUS status; + status = ext_glMultiDrawElementsIndirectCountARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawMeshTasksIndirectCountNV( void *args ) +{ + struct + { + PTR32 indirect; + PTR32 drawcount; + GLsizei maxdrawcount; + GLsizei stride; + } *params32 = args; + struct glMultiDrawMeshTasksIndirectCountNV_params params = + { + .indirect = (GLintptr)ULongToPtr(params32->indirect), + .drawcount = (GLintptr)ULongToPtr(params32->drawcount), + .maxdrawcount = params32->maxdrawcount, + .stride = params32->stride, + }; + NTSTATUS status; + status = ext_glMultiDrawMeshTasksIndirectCountNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawMeshTasksIndirectNV( void *args ) +{ + struct + { + PTR32 indirect; + GLsizei drawcount; + GLsizei stride; + } *params32 = args; + struct glMultiDrawMeshTasksIndirectNV_params params = + { + .indirect = (GLintptr)ULongToPtr(params32->indirect), + .drawcount = params32->drawcount, + .stride = params32->stride, + }; + NTSTATUS status; + status = ext_glMultiDrawMeshTasksIndirectNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiDrawRangeElementArrayAPPLE( void *args ) +{ + struct + { + GLenum mode; + GLuint start; + GLuint end; + PTR32 first; + PTR32 count; + GLsizei primcount; + } *params32 = args; + struct glMultiDrawRangeElementArrayAPPLE_params params = + { + .mode = params32->mode, + .start = params32->start, + .end = params32->end, + .first = (const GLint *)ULongToPtr(params32->first), + .count = (const GLsizei *)ULongToPtr(params32->count), + .primcount = params32->primcount, + }; + NTSTATUS status; + status = ext_glMultiDrawRangeElementArrayAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiModeDrawArraysIBM( void *args ) +{ + struct + { + PTR32 mode; + PTR32 first; + PTR32 count; + GLsizei primcount; + GLint modestride; + } *params32 = args; + struct glMultiModeDrawArraysIBM_params params = + { + .mode = (const GLenum *)ULongToPtr(params32->mode), + .first = (const GLint *)ULongToPtr(params32->first), + .count = (const GLsizei *)ULongToPtr(params32->count), + .primcount = params32->primcount, + .modestride = params32->modestride, + }; + NTSTATUS status; + status = ext_glMultiModeDrawArraysIBM( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiModeDrawElementsIBM( void *args ) +{ + struct + { + PTR32 mode; + PTR32 count; + GLenum type; + PTR32 indices; + GLsizei primcount; + GLint modestride; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1bvOES( void *args ) +{ + struct + { + GLenum texture; + PTR32 coords; + } *params32 = args; + struct glMultiTexCoord1bvOES_params params = + { + .texture = params32->texture, + .coords = (const GLbyte *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1bvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1dv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord1dv_params params = + { + .target = params32->target, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1dvARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord1dvARB_params params = + { + .target = params32->target, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1dvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1dvSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord1dvSGIS_params params = + { + .target = params32->target, + .v = (GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1dvSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1fv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord1fv_params params = + { + .target = params32->target, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1fvARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord1fvARB_params params = + { + .target = params32->target, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1fvSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord1fvSGIS_params params = + { + .target = params32->target, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1fvSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1hvNV( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord1hvNV_params params = + { + .target = params32->target, + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1iv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord1iv_params params = + { + .target = params32->target, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1ivARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord1ivARB_params params = + { + .target = params32->target, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1ivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1ivSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord1ivSGIS_params params = + { + .target = params32->target, + .v = (GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1ivSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1sv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord1sv_params params = + { + .target = params32->target, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1svARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord1svARB_params params = + { + .target = params32->target, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1svARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1svSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord1svSGIS_params params = + { + .target = params32->target, + .v = (GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1svSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord1xvOES( void *args ) +{ + struct + { + GLenum texture; + PTR32 coords; + } *params32 = args; + struct glMultiTexCoord1xvOES_params params = + { + .texture = params32->texture, + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glMultiTexCoord1xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2bvOES( void *args ) +{ + struct + { + GLenum texture; + PTR32 coords; + } *params32 = args; + struct glMultiTexCoord2bvOES_params params = + { + .texture = params32->texture, + .coords = (const GLbyte *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2bvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2dv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord2dv_params params = + { + .target = params32->target, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2dvARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord2dvARB_params params = + { + .target = params32->target, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2dvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2dvSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord2dvSGIS_params params = + { + .target = params32->target, + .v = (GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2dvSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2fv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord2fv_params params = + { + .target = params32->target, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2fvARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord2fvARB_params params = + { + .target = params32->target, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2fvSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord2fvSGIS_params params = + { + .target = params32->target, + .v = (GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2fvSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2hvNV( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord2hvNV_params params = + { + .target = params32->target, + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2iv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord2iv_params params = + { + .target = params32->target, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2ivARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord2ivARB_params params = + { + .target = params32->target, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2ivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2ivSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord2ivSGIS_params params = + { + .target = params32->target, + .v = (GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2ivSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2sv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord2sv_params params = + { + .target = params32->target, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2svARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord2svARB_params params = + { + .target = params32->target, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2svARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2svSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord2svSGIS_params params = + { + .target = params32->target, + .v = (GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2svSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord2xvOES( void *args ) +{ + struct + { + GLenum texture; + PTR32 coords; + } *params32 = args; + struct glMultiTexCoord2xvOES_params params = + { + .texture = params32->texture, + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glMultiTexCoord2xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3bvOES( void *args ) +{ + struct + { + GLenum texture; + PTR32 coords; + } *params32 = args; + struct glMultiTexCoord3bvOES_params params = + { + .texture = params32->texture, + .coords = (const GLbyte *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3bvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3dv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord3dv_params params = + { + .target = params32->target, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3dvARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord3dvARB_params params = + { + .target = params32->target, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3dvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3dvSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord3dvSGIS_params params = + { + .target = params32->target, + .v = (GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3dvSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3fv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord3fv_params params = + { + .target = params32->target, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3fvARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord3fvARB_params params = + { + .target = params32->target, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3fvSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord3fvSGIS_params params = + { + .target = params32->target, + .v = (GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3fvSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3hvNV( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord3hvNV_params params = + { + .target = params32->target, + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3iv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord3iv_params params = + { + .target = params32->target, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3ivARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord3ivARB_params params = + { + .target = params32->target, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3ivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3ivSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord3ivSGIS_params params = + { + .target = params32->target, + .v = (GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3ivSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3sv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord3sv_params params = + { + .target = params32->target, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3svARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord3svARB_params params = + { + .target = params32->target, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3svARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3svSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord3svSGIS_params params = + { + .target = params32->target, + .v = (GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3svSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord3xvOES( void *args ) +{ + struct + { + GLenum texture; + PTR32 coords; + } *params32 = args; + struct glMultiTexCoord3xvOES_params params = + { + .texture = params32->texture, + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glMultiTexCoord3xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4bvOES( void *args ) +{ + struct + { + GLenum texture; + PTR32 coords; + } *params32 = args; + struct glMultiTexCoord4bvOES_params params = + { + .texture = params32->texture, + .coords = (const GLbyte *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4bvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4dv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord4dv_params params = + { + .target = params32->target, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4dvARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord4dvARB_params params = + { + .target = params32->target, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4dvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4dvSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord4dvSGIS_params params = + { + .target = params32->target, + .v = (GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4dvSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4fv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord4fv_params params = + { + .target = params32->target, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4fvARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord4fvARB_params params = + { + .target = params32->target, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4fvSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord4fvSGIS_params params = + { + .target = params32->target, + .v = (GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4fvSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4hvNV( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord4hvNV_params params = + { + .target = params32->target, + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4iv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord4iv_params params = + { + .target = params32->target, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4ivARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord4ivARB_params params = + { + .target = params32->target, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4ivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4ivSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord4ivSGIS_params params = + { + .target = params32->target, + .v = (GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4ivSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4sv( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord4sv_params params = + { + .target = params32->target, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4svARB( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord4svARB_params params = + { + .target = params32->target, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4svARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4svSGIS( void *args ) +{ + struct + { + GLenum target; + PTR32 v; + } *params32 = args; + struct glMultiTexCoord4svSGIS_params params = + { + .target = params32->target, + .v = (GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4svSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoord4xvOES( void *args ) +{ + struct + { + GLenum texture; + PTR32 coords; + } *params32 = args; + struct glMultiTexCoord4xvOES_params params = + { + .texture = params32->texture, + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glMultiTexCoord4xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoordP1uiv( void *args ) +{ + struct + { + GLenum texture; + GLenum type; + PTR32 coords; + } *params32 = args; + struct glMultiTexCoordP1uiv_params params = + { + .texture = params32->texture, + .type = params32->type, + .coords = (const GLuint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glMultiTexCoordP1uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoordP2uiv( void *args ) +{ + struct + { + GLenum texture; + GLenum type; + PTR32 coords; + } *params32 = args; + struct glMultiTexCoordP2uiv_params params = + { + .texture = params32->texture, + .type = params32->type, + .coords = (const GLuint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glMultiTexCoordP2uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoordP3uiv( void *args ) +{ + struct + { + GLenum texture; + GLenum type; + PTR32 coords; + } *params32 = args; + struct glMultiTexCoordP3uiv_params params = + { + .texture = params32->texture, + .type = params32->type, + .coords = (const GLuint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glMultiTexCoordP3uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoordP4uiv( void *args ) +{ + struct + { + GLenum texture; + GLenum type; + PTR32 coords; + } *params32 = args; + struct glMultiTexCoordP4uiv_params params = + { + .texture = params32->texture, + .type = params32->type, + .coords = (const GLuint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glMultiTexCoordP4uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoordPointerEXT( void *args ) +{ + struct + { + GLenum texunit; + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glMultiTexCoordPointerEXT_params params = + { + .texunit = params32->texunit, + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glMultiTexCoordPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexCoordPointerSGIS( void *args ) +{ + struct + { + GLenum target; + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glMultiTexCoordPointerSGIS_params params = + { + .target = params32->target, + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (GLvoid *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glMultiTexCoordPointerSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexEnvfvEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMultiTexEnvfvEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMultiTexEnvfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexEnvivEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMultiTexEnvivEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMultiTexEnvivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexGendvEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMultiTexGendvEXT_params params = + { + .texunit = params32->texunit, + .coord = params32->coord, + .pname = params32->pname, + .params = (const GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMultiTexGendvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexGenfvEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMultiTexGenfvEXT_params params = + { + .texunit = params32->texunit, + .coord = params32->coord, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMultiTexGenfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexGenivEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMultiTexGenivEXT_params params = + { + .texunit = params32->texunit, + .coord = params32->coord, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMultiTexGenivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexImage1DEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLint internalformat; + GLsizei width; + GLint border; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glMultiTexImage1DEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .border = params32->border, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glMultiTexImage1DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexImage2DEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLint internalformat; + GLsizei width; + GLsizei height; + GLint border; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glMultiTexImage2DEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .border = params32->border, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glMultiTexImage2DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexImage3DEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLint internalformat; + GLsizei width; + GLsizei height; + GLsizei depth; + GLint border; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glMultiTexImage3DEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .border = params32->border, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glMultiTexImage3DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexParameterIivEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMultiTexParameterIivEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMultiTexParameterIivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexParameterIuivEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMultiTexParameterIuivEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .pname = params32->pname, + .params = (const GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMultiTexParameterIuivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexParameterfvEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMultiTexParameterfvEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMultiTexParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexParameterivEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMultiTexParameterivEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMultiTexParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexSubImage1DEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLint xoffset; + GLsizei width; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glMultiTexSubImage1DEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .width = params32->width, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glMultiTexSubImage1DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexSubImage2DEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLsizei width; + GLsizei height; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glMultiTexSubImage2DEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glMultiTexSubImage2DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMultiTexSubImage3DEXT( void *args ) +{ + struct + { + GLenum texunit; + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glMultiTexSubImage3DEXT_params params = + { + .texunit = params32->texunit, + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glMultiTexSubImage3DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMulticastBufferSubDataNV( void *args ) +{ + struct + { + GLbitfield gpuMask; + GLuint buffer; + PTR32 offset; + PTR32 size; + PTR32 data; + } *params32 = args; + struct glMulticastBufferSubDataNV_params params = + { + .gpuMask = params32->gpuMask, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glMulticastBufferSubDataNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMulticastCopyBufferSubDataNV( void *args ) +{ + struct + { + GLuint readGpu; + GLbitfield writeGpuMask; + GLuint readBuffer; + GLuint writeBuffer; + PTR32 readOffset; + PTR32 writeOffset; + PTR32 size; + } *params32 = args; + struct glMulticastCopyBufferSubDataNV_params params = + { + .readGpu = params32->readGpu, + .writeGpuMask = params32->writeGpuMask, + .readBuffer = params32->readBuffer, + .writeBuffer = params32->writeBuffer, + .readOffset = (GLintptr)ULongToPtr(params32->readOffset), + .writeOffset = (GLintptr)ULongToPtr(params32->writeOffset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + }; + NTSTATUS status; + status = ext_glMulticastCopyBufferSubDataNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMulticastFramebufferSampleLocationsfvNV( void *args ) +{ + struct + { + GLuint gpu; + GLuint framebuffer; + GLuint start; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glMulticastFramebufferSampleLocationsfvNV_params params = + { + .gpu = params32->gpu, + .framebuffer = params32->framebuffer, + .start = params32->start, + .count = params32->count, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMulticastFramebufferSampleLocationsfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMulticastGetQueryObjecti64vNV( void *args ) +{ + struct + { + GLuint gpu; + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMulticastGetQueryObjecti64vNV_params params = + { + .gpu = params32->gpu, + .id = params32->id, + .pname = params32->pname, + .params = (GLint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMulticastGetQueryObjecti64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMulticastGetQueryObjectivNV( void *args ) +{ + struct + { + GLuint gpu; + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMulticastGetQueryObjectivNV_params params = + { + .gpu = params32->gpu, + .id = params32->id, + .pname = params32->pname, + .params = (GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMulticastGetQueryObjectivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMulticastGetQueryObjectui64vNV( void *args ) +{ + struct + { + GLuint gpu; + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMulticastGetQueryObjectui64vNV_params params = + { + .gpu = params32->gpu, + .id = params32->id, + .pname = params32->pname, + .params = (GLuint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMulticastGetQueryObjectui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMulticastGetQueryObjectuivNV( void *args ) +{ + struct + { + GLuint gpu; + GLuint id; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glMulticastGetQueryObjectuivNV_params params = + { + .gpu = params32->gpu, + .id = params32->id, + .pname = params32->pname, + .params = (GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glMulticastGetQueryObjectuivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMulticastScissorArrayvNVX( void *args ) +{ + struct + { + GLuint gpu; + GLuint first; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glMulticastScissorArrayvNVX_params params = + { + .gpu = params32->gpu, + .first = params32->first, + .count = params32->count, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMulticastScissorArrayvNVX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glMulticastViewportArrayvNVX( void *args ) +{ + struct + { + GLuint gpu; + GLuint first; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glMulticastViewportArrayvNVX_params params = + { + .gpu = params32->gpu, + .first = params32->first, + .count = params32->count, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glMulticastViewportArrayvNVX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedBufferData( void *args ) +{ + struct + { + GLuint buffer; + PTR32 size; + PTR32 data; + GLenum usage; + } *params32 = args; + struct glNamedBufferData_params params = + { + .buffer = params32->buffer, + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (const void *)ULongToPtr(params32->data), + .usage = params32->usage, + }; + NTSTATUS status; + status = ext_glNamedBufferData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedBufferDataEXT( void *args ) +{ + struct + { + GLuint buffer; + PTR32 size; + PTR32 data; + GLenum usage; + } *params32 = args; + struct glNamedBufferDataEXT_params params = + { + .buffer = params32->buffer, + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (const void *)ULongToPtr(params32->data), + .usage = params32->usage, + }; + NTSTATUS status; + status = ext_glNamedBufferDataEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedBufferPageCommitmentARB( void *args ) +{ + struct + { + GLuint buffer; + PTR32 offset; + PTR32 size; + GLboolean commit; + } *params32 = args; + struct glNamedBufferPageCommitmentARB_params params = + { + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .commit = params32->commit, + }; + NTSTATUS status; + status = ext_glNamedBufferPageCommitmentARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedBufferPageCommitmentEXT( void *args ) +{ + struct + { + GLuint buffer; + PTR32 offset; + PTR32 size; + GLboolean commit; + } *params32 = args; + struct glNamedBufferPageCommitmentEXT_params params = + { + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .commit = params32->commit, + }; + NTSTATUS status; + status = ext_glNamedBufferPageCommitmentEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedBufferStorage( void *args ) +{ + struct + { + GLuint buffer; + PTR32 size; + PTR32 data; + GLbitfield flags; + } *params32 = args; + struct glNamedBufferStorage_params params = + { + .buffer = params32->buffer, + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (const void *)ULongToPtr(params32->data), + .flags = params32->flags, + }; + NTSTATUS status; + status = ext_glNamedBufferStorage( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedBufferStorageEXT( void *args ) +{ + struct + { + GLuint buffer; + PTR32 size; + PTR32 data; + GLbitfield flags; + } *params32 = args; + struct glNamedBufferStorageEXT_params params = + { + .buffer = params32->buffer, + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (const void *)ULongToPtr(params32->data), + .flags = params32->flags, + }; + NTSTATUS status; + status = ext_glNamedBufferStorageEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedBufferStorageExternalEXT( void *args ) +{ + struct + { + GLuint buffer; + PTR32 offset; + PTR32 size; + PTR32 clientBuffer; + GLbitfield flags; + } *params32 = args; + struct glNamedBufferStorageExternalEXT_params params = + { + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .clientBuffer = (GLeglClientBufferEXT)ULongToPtr(params32->clientBuffer), + .flags = params32->flags, + }; + NTSTATUS status; + status = ext_glNamedBufferStorageExternalEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedBufferStorageMemEXT( void *args ) +{ + struct + { + GLuint buffer; + PTR32 size; + GLuint memory; + GLuint64 offset; + } *params32 = args; + struct glNamedBufferStorageMemEXT_params params = + { + .buffer = params32->buffer, + .size = (GLsizeiptr)ULongToPtr(params32->size), + .memory = params32->memory, + .offset = params32->offset, + }; + NTSTATUS status; + status = ext_glNamedBufferStorageMemEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedBufferSubData( void *args ) +{ + struct + { + GLuint buffer; + PTR32 offset; + PTR32 size; + PTR32 data; + } *params32 = args; + struct glNamedBufferSubData_params params = + { + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glNamedBufferSubData( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedBufferSubDataEXT( void *args ) +{ + struct + { + GLuint buffer; + PTR32 offset; + PTR32 size; + PTR32 data; + } *params32 = args; + struct glNamedBufferSubDataEXT_params params = + { + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + .data = (const void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glNamedBufferSubDataEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedCopyBufferSubDataEXT( void *args ) +{ + struct + { + GLuint readBuffer; + GLuint writeBuffer; + PTR32 readOffset; + PTR32 writeOffset; + PTR32 size; + } *params32 = args; + struct glNamedCopyBufferSubDataEXT_params params = + { + .readBuffer = params32->readBuffer, + .writeBuffer = params32->writeBuffer, + .readOffset = (GLintptr)ULongToPtr(params32->readOffset), + .writeOffset = (GLintptr)ULongToPtr(params32->writeOffset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + }; + NTSTATUS status; + status = ext_glNamedCopyBufferSubDataEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedFramebufferDrawBuffers( void *args ) +{ + struct + { + GLuint framebuffer; + GLsizei n; + PTR32 bufs; + } *params32 = args; + struct glNamedFramebufferDrawBuffers_params params = + { + .framebuffer = params32->framebuffer, + .n = params32->n, + .bufs = (const GLenum *)ULongToPtr(params32->bufs), + }; + NTSTATUS status; + status = ext_glNamedFramebufferDrawBuffers( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedFramebufferSampleLocationsfvARB( void *args ) +{ + struct + { + GLuint framebuffer; + GLuint start; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glNamedFramebufferSampleLocationsfvARB_params params = + { + .framebuffer = params32->framebuffer, + .start = params32->start, + .count = params32->count, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glNamedFramebufferSampleLocationsfvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedFramebufferSampleLocationsfvNV( void *args ) +{ + struct + { + GLuint framebuffer; + GLuint start; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glNamedFramebufferSampleLocationsfvNV_params params = + { + .framebuffer = params32->framebuffer, + .start = params32->start, + .count = params32->count, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glNamedFramebufferSampleLocationsfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedFramebufferSamplePositionsfvAMD( void *args ) +{ + struct + { + GLuint framebuffer; + GLuint numsamples; + GLuint pixelindex; + PTR32 values; + } *params32 = args; + struct glNamedFramebufferSamplePositionsfvAMD_params params = + { + .framebuffer = params32->framebuffer, + .numsamples = params32->numsamples, + .pixelindex = params32->pixelindex, + .values = (const GLfloat *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glNamedFramebufferSamplePositionsfvAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedProgramLocalParameter4dvEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glNamedProgramLocalParameter4dvEXT_params params = + { + .program = params32->program, + .target = params32->target, + .index = params32->index, + .params = (const GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glNamedProgramLocalParameter4dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedProgramLocalParameter4fvEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glNamedProgramLocalParameter4fvEXT_params params = + { + .program = params32->program, + .target = params32->target, + .index = params32->index, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glNamedProgramLocalParameter4fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedProgramLocalParameterI4ivEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glNamedProgramLocalParameterI4ivEXT_params params = + { + .program = params32->program, + .target = params32->target, + .index = params32->index, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glNamedProgramLocalParameterI4ivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedProgramLocalParameterI4uivEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glNamedProgramLocalParameterI4uivEXT_params params = + { + .program = params32->program, + .target = params32->target, + .index = params32->index, + .params = (const GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glNamedProgramLocalParameterI4uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedProgramLocalParameters4fvEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLuint index; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glNamedProgramLocalParameters4fvEXT_params params = + { + .program = params32->program, + .target = params32->target, + .index = params32->index, + .count = params32->count, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glNamedProgramLocalParameters4fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedProgramLocalParametersI4ivEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLuint index; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glNamedProgramLocalParametersI4ivEXT_params params = + { + .program = params32->program, + .target = params32->target, + .index = params32->index, + .count = params32->count, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glNamedProgramLocalParametersI4ivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedProgramLocalParametersI4uivEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLuint index; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glNamedProgramLocalParametersI4uivEXT_params params = + { + .program = params32->program, + .target = params32->target, + .index = params32->index, + .count = params32->count, + .params = (const GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glNamedProgramLocalParametersI4uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedProgramStringEXT( void *args ) +{ + struct + { + GLuint program; + GLenum target; + GLenum format; + GLsizei len; + PTR32 string; + } *params32 = args; + struct glNamedProgramStringEXT_params params = + { + .program = params32->program, + .target = params32->target, + .format = params32->format, + .len = params32->len, + .string = (const void *)ULongToPtr(params32->string), + }; + NTSTATUS status; + status = ext_glNamedProgramStringEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNamedStringARB( void *args ) +{ + struct + { + GLenum type; + GLint namelen; + PTR32 name; + GLint stringlen; + PTR32 string; + } *params32 = args; + struct glNamedStringARB_params params = + { + .type = params32->type, + .namelen = params32->namelen, + .name = (const GLchar *)ULongToPtr(params32->name), + .stringlen = params32->stringlen, + .string = (const GLchar *)ULongToPtr(params32->string), + }; + NTSTATUS status; + status = ext_glNamedStringARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNewObjectBufferATI( void *args ) +{ + struct + { + GLsizei size; + PTR32 pointer; + GLenum usage; + GLuint ret; + } *params32 = args; + struct glNewObjectBufferATI_params params = + { + .size = params32->size, + .pointer = (const void *)ULongToPtr(params32->pointer), + .usage = params32->usage, + }; + NTSTATUS status; + status = ext_glNewObjectBufferATI( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glNormal3fVertex3fvSUN( void *args ) +{ + struct + { + PTR32 n; + PTR32 v; + } *params32 = args; + struct glNormal3fVertex3fvSUN_params params = + { + .n = (const GLfloat *)ULongToPtr(params32->n), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glNormal3fVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNormal3hvNV( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glNormal3hvNV_params params = + { + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glNormal3hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNormal3xvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glNormal3xvOES_params params = + { + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glNormal3xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNormalP3uiv( void *args ) +{ + struct + { + GLenum type; + PTR32 coords; + } *params32 = args; + struct glNormalP3uiv_params params = + { + .type = params32->type, + .coords = (const GLuint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glNormalP3uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNormalPointerEXT( void *args ) +{ + struct + { + GLenum type; + GLsizei stride; + GLsizei count; + PTR32 pointer; + } *params32 = args; + struct glNormalPointerEXT_params params = + { + .type = params32->type, + .stride = params32->stride, + .count = params32->count, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glNormalPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNormalPointerListIBM( void *args ) +{ + struct + { + GLenum type; + GLint stride; + PTR32 pointer; + GLint ptrstride; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glNormalPointervINTEL( void *args ) +{ + struct + { + GLenum type; + PTR32 pointer; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glNormalStream3bvATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glNormalStream3bvATI_params params = + { + .stream = params32->stream, + .coords = (const GLbyte *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glNormalStream3bvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNormalStream3dvATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glNormalStream3dvATI_params params = + { + .stream = params32->stream, + .coords = (const GLdouble *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glNormalStream3dvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNormalStream3fvATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glNormalStream3fvATI_params params = + { + .stream = params32->stream, + .coords = (const GLfloat *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glNormalStream3fvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNormalStream3ivATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glNormalStream3ivATI_params params = + { + .stream = params32->stream, + .coords = (const GLint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glNormalStream3ivATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glNormalStream3svATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glNormalStream3svATI_params params = + { + .stream = params32->stream, + .coords = (const GLshort *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glNormalStream3svATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glObjectLabel( void *args ) +{ + struct + { + GLenum identifier; + GLuint name; + GLsizei length; + PTR32 label; + } *params32 = args; + struct glObjectLabel_params params = + { + .identifier = params32->identifier, + .name = params32->name, + .length = params32->length, + .label = (const GLchar *)ULongToPtr(params32->label), + }; + NTSTATUS status; + status = ext_glObjectLabel( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glObjectPtrLabel( void *args ) +{ + struct + { + PTR32 ptr; + GLsizei length; + PTR32 label; + } *params32 = args; + struct glObjectPtrLabel_params params = + { + .ptr = (const void *)ULongToPtr(params32->ptr), + .length = params32->length, + .label = (const GLchar *)ULongToPtr(params32->label), + }; + NTSTATUS status; + status = ext_glObjectPtrLabel( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPatchParameterfv( void *args ) +{ + struct + { + GLenum pname; + PTR32 values; + } *params32 = args; + struct glPatchParameterfv_params params = + { + .pname = params32->pname, + .values = (const GLfloat *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glPatchParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPathColorGenNV( void *args ) +{ + struct + { + GLenum color; + GLenum genMode; + GLenum colorFormat; + PTR32 coeffs; + } *params32 = args; + struct glPathColorGenNV_params params = + { + .color = params32->color, + .genMode = params32->genMode, + .colorFormat = params32->colorFormat, + .coeffs = (const GLfloat *)ULongToPtr(params32->coeffs), + }; + NTSTATUS status; + status = ext_glPathColorGenNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPathCommandsNV( void *args ) +{ + struct + { + GLuint path; + GLsizei numCommands; + PTR32 commands; + GLsizei numCoords; + GLenum coordType; + PTR32 coords; + } *params32 = args; + struct glPathCommandsNV_params params = + { + .path = params32->path, + .numCommands = params32->numCommands, + .commands = (const GLubyte *)ULongToPtr(params32->commands), + .numCoords = params32->numCoords, + .coordType = params32->coordType, + .coords = (const void *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glPathCommandsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPathCoordsNV( void *args ) +{ + struct + { + GLuint path; + GLsizei numCoords; + GLenum coordType; + PTR32 coords; + } *params32 = args; + struct glPathCoordsNV_params params = + { + .path = params32->path, + .numCoords = params32->numCoords, + .coordType = params32->coordType, + .coords = (const void *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glPathCoordsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPathDashArrayNV( void *args ) +{ + struct + { + GLuint path; + GLsizei dashCount; + PTR32 dashArray; + } *params32 = args; + struct glPathDashArrayNV_params params = + { + .path = params32->path, + .dashCount = params32->dashCount, + .dashArray = (const GLfloat *)ULongToPtr(params32->dashArray), + }; + NTSTATUS status; + status = ext_glPathDashArrayNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPathGlyphIndexArrayNV( void *args ) +{ + struct + { + GLuint firstPathName; + GLenum fontTarget; + PTR32 fontName; + GLbitfield fontStyle; + GLuint firstGlyphIndex; + GLsizei numGlyphs; + GLuint pathParameterTemplate; + GLfloat emScale; + GLenum ret; + } *params32 = args; + struct glPathGlyphIndexArrayNV_params params = + { + .firstPathName = params32->firstPathName, + .fontTarget = params32->fontTarget, + .fontName = (const void *)ULongToPtr(params32->fontName), + .fontStyle = params32->fontStyle, + .firstGlyphIndex = params32->firstGlyphIndex, + .numGlyphs = params32->numGlyphs, + .pathParameterTemplate = params32->pathParameterTemplate, + .emScale = params32->emScale, + }; + NTSTATUS status; + status = ext_glPathGlyphIndexArrayNV( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glPathGlyphIndexRangeNV( void *args ) +{ + struct + { + GLenum fontTarget; + PTR32 fontName; + GLbitfield fontStyle; + GLuint pathParameterTemplate; + GLfloat emScale; + PTR32 baseAndCount; + GLenum ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glPathGlyphRangeNV( void *args ) +{ + struct + { + GLuint firstPathName; + GLenum fontTarget; + PTR32 fontName; + GLbitfield fontStyle; + GLuint firstGlyph; + GLsizei numGlyphs; + GLenum handleMissingGlyphs; + GLuint pathParameterTemplate; + GLfloat emScale; + } *params32 = args; + struct glPathGlyphRangeNV_params params = + { + .firstPathName = params32->firstPathName, + .fontTarget = params32->fontTarget, + .fontName = (const void *)ULongToPtr(params32->fontName), + .fontStyle = params32->fontStyle, + .firstGlyph = params32->firstGlyph, + .numGlyphs = params32->numGlyphs, + .handleMissingGlyphs = params32->handleMissingGlyphs, + .pathParameterTemplate = params32->pathParameterTemplate, + .emScale = params32->emScale, + }; + NTSTATUS status; + status = ext_glPathGlyphRangeNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPathGlyphsNV( void *args ) +{ + struct + { + GLuint firstPathName; + GLenum fontTarget; + PTR32 fontName; + GLbitfield fontStyle; + GLsizei numGlyphs; + GLenum type; + PTR32 charcodes; + GLenum handleMissingGlyphs; + GLuint pathParameterTemplate; + GLfloat emScale; + } *params32 = args; + struct glPathGlyphsNV_params params = + { + .firstPathName = params32->firstPathName, + .fontTarget = params32->fontTarget, + .fontName = (const void *)ULongToPtr(params32->fontName), + .fontStyle = params32->fontStyle, + .numGlyphs = params32->numGlyphs, + .type = params32->type, + .charcodes = (const void *)ULongToPtr(params32->charcodes), + .handleMissingGlyphs = params32->handleMissingGlyphs, + .pathParameterTemplate = params32->pathParameterTemplate, + .emScale = params32->emScale, + }; + NTSTATUS status; + status = ext_glPathGlyphsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPathMemoryGlyphIndexArrayNV( void *args ) +{ + struct + { + GLuint firstPathName; + GLenum fontTarget; + PTR32 fontSize; + PTR32 fontData; + GLsizei faceIndex; + GLuint firstGlyphIndex; + GLsizei numGlyphs; + GLuint pathParameterTemplate; + GLfloat emScale; + GLenum ret; + } *params32 = args; + struct glPathMemoryGlyphIndexArrayNV_params params = + { + .firstPathName = params32->firstPathName, + .fontTarget = params32->fontTarget, + .fontSize = (GLsizeiptr)ULongToPtr(params32->fontSize), + .fontData = (const void *)ULongToPtr(params32->fontData), + .faceIndex = params32->faceIndex, + .firstGlyphIndex = params32->firstGlyphIndex, + .numGlyphs = params32->numGlyphs, + .pathParameterTemplate = params32->pathParameterTemplate, + .emScale = params32->emScale, + }; + NTSTATUS status; + status = ext_glPathMemoryGlyphIndexArrayNV( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glPathParameterfvNV( void *args ) +{ + struct + { + GLuint path; + GLenum pname; + PTR32 value; + } *params32 = args; + struct glPathParameterfvNV_params params = + { + .path = params32->path, + .pname = params32->pname, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glPathParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPathParameterivNV( void *args ) +{ + struct + { + GLuint path; + GLenum pname; + PTR32 value; + } *params32 = args; + struct glPathParameterivNV_params params = + { + .path = params32->path, + .pname = params32->pname, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glPathParameterivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPathStringNV( void *args ) +{ + struct + { + GLuint path; + GLenum format; + GLsizei length; + PTR32 pathString; + } *params32 = args; + struct glPathStringNV_params params = + { + .path = params32->path, + .format = params32->format, + .length = params32->length, + .pathString = (const void *)ULongToPtr(params32->pathString), + }; + NTSTATUS status; + status = ext_glPathStringNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPathSubCommandsNV( void *args ) +{ + struct + { + GLuint path; + GLsizei commandStart; + GLsizei commandsToDelete; + GLsizei numCommands; + PTR32 commands; + GLsizei numCoords; + GLenum coordType; + PTR32 coords; + } *params32 = args; + struct glPathSubCommandsNV_params params = + { + .path = params32->path, + .commandStart = params32->commandStart, + .commandsToDelete = params32->commandsToDelete, + .numCommands = params32->numCommands, + .commands = (const GLubyte *)ULongToPtr(params32->commands), + .numCoords = params32->numCoords, + .coordType = params32->coordType, + .coords = (const void *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glPathSubCommandsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPathSubCoordsNV( void *args ) +{ + struct + { + GLuint path; + GLsizei coordStart; + GLsizei numCoords; + GLenum coordType; + PTR32 coords; + } *params32 = args; + struct glPathSubCoordsNV_params params = + { + .path = params32->path, + .coordStart = params32->coordStart, + .numCoords = params32->numCoords, + .coordType = params32->coordType, + .coords = (const void *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glPathSubCoordsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPathTexGenNV( void *args ) +{ + struct + { + GLenum texCoordSet; + GLenum genMode; + GLint components; + PTR32 coeffs; + } *params32 = args; + struct glPathTexGenNV_params params = + { + .texCoordSet = params32->texCoordSet, + .genMode = params32->genMode, + .components = params32->components, + .coeffs = (const GLfloat *)ULongToPtr(params32->coeffs), + }; + NTSTATUS status; + status = ext_glPathTexGenNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPixelDataRangeNV( void *args ) +{ + struct + { + GLenum target; + GLsizei length; + PTR32 pointer; + } *params32 = args; + struct glPixelDataRangeNV_params params = + { + .target = params32->target, + .length = params32->length, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glPixelDataRangeNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPixelMapx( void *args ) +{ + struct + { + GLenum map; + GLint size; + PTR32 values; + } *params32 = args; + struct glPixelMapx_params params = + { + .map = params32->map, + .size = params32->size, + .values = (const GLfixed *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glPixelMapx( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPixelTexGenParameterfvSGIS( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glPixelTexGenParameterfvSGIS_params params = + { + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glPixelTexGenParameterfvSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPixelTexGenParameterivSGIS( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glPixelTexGenParameterivSGIS_params params = + { + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glPixelTexGenParameterivSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPixelTransformParameterfvEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glPixelTransformParameterfvEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glPixelTransformParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPixelTransformParameterivEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glPixelTransformParameterivEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glPixelTransformParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPointAlongPathNV( void *args ) +{ + struct + { + GLuint path; + GLsizei startSegment; + GLsizei numSegments; + GLfloat distance; + PTR32 x; + PTR32 y; + PTR32 tangentX; + PTR32 tangentY; + GLboolean ret; + } *params32 = args; + struct glPointAlongPathNV_params params = + { + .path = params32->path, + .startSegment = params32->startSegment, + .numSegments = params32->numSegments, + .distance = params32->distance, + .x = (GLfloat *)ULongToPtr(params32->x), + .y = (GLfloat *)ULongToPtr(params32->y), + .tangentX = (GLfloat *)ULongToPtr(params32->tangentX), + .tangentY = (GLfloat *)ULongToPtr(params32->tangentY), + }; + NTSTATUS status; + status = ext_glPointAlongPathNV( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glPointParameterfv( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glPointParameterfv_params params = + { + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glPointParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPointParameterfvARB( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glPointParameterfvARB_params params = + { + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glPointParameterfvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPointParameterfvEXT( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glPointParameterfvEXT_params params = + { + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glPointParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPointParameterfvSGIS( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glPointParameterfvSGIS_params params = + { + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glPointParameterfvSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPointParameteriv( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glPointParameteriv_params params = + { + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glPointParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPointParameterivNV( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glPointParameterivNV_params params = + { + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glPointParameterivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPointParameterxvOES( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glPointParameterxvOES_params params = + { + .pname = params32->pname, + .params = (const GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glPointParameterxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPollAsyncSGIX( void *args ) +{ + struct + { + PTR32 markerp; + GLint ret; + } *params32 = args; + struct glPollAsyncSGIX_params params = + { + .markerp = (GLuint *)ULongToPtr(params32->markerp), + }; + NTSTATUS status; + status = ext_glPollAsyncSGIX( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glPollInstrumentsSGIX( void *args ) +{ + struct + { + PTR32 marker_p; + GLint ret; + } *params32 = args; + struct glPollInstrumentsSGIX_params params = + { + .marker_p = (GLint *)ULongToPtr(params32->marker_p), + }; + NTSTATUS status; + status = ext_glPollInstrumentsSGIX( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glPrioritizeTexturesEXT( void *args ) +{ + struct + { + GLsizei n; + PTR32 textures; + PTR32 priorities; + } *params32 = args; + struct glPrioritizeTexturesEXT_params params = + { + .n = params32->n, + .textures = (const GLuint *)ULongToPtr(params32->textures), + .priorities = (const GLclampf *)ULongToPtr(params32->priorities), + }; + NTSTATUS status; + status = ext_glPrioritizeTexturesEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPrioritizeTexturesxOES( void *args ) +{ + struct + { + GLsizei n; + PTR32 textures; + PTR32 priorities; + } *params32 = args; + struct glPrioritizeTexturesxOES_params params = + { + .n = params32->n, + .textures = (const GLuint *)ULongToPtr(params32->textures), + .priorities = (const GLfixed *)ULongToPtr(params32->priorities), + }; + NTSTATUS status; + status = ext_glPrioritizeTexturesxOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramBinary( void *args ) +{ + struct + { + GLuint program; + GLenum binaryFormat; + PTR32 binary; + GLsizei length; + } *params32 = args; + struct glProgramBinary_params params = + { + .program = params32->program, + .binaryFormat = params32->binaryFormat, + .binary = (const void *)ULongToPtr(params32->binary), + .length = params32->length, + }; + NTSTATUS status; + status = ext_glProgramBinary( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramBufferParametersIivNV( void *args ) +{ + struct + { + GLenum target; + GLuint bindingIndex; + GLuint wordIndex; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glProgramBufferParametersIivNV_params params = + { + .target = params32->target, + .bindingIndex = params32->bindingIndex, + .wordIndex = params32->wordIndex, + .count = params32->count, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramBufferParametersIivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramBufferParametersIuivNV( void *args ) +{ + struct + { + GLenum target; + GLuint bindingIndex; + GLuint wordIndex; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glProgramBufferParametersIuivNV_params params = + { + .target = params32->target, + .bindingIndex = params32->bindingIndex, + .wordIndex = params32->wordIndex, + .count = params32->count, + .params = (const GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramBufferParametersIuivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramBufferParametersfvNV( void *args ) +{ + struct + { + GLenum target; + GLuint bindingIndex; + GLuint wordIndex; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glProgramBufferParametersfvNV_params params = + { + .target = params32->target, + .bindingIndex = params32->bindingIndex, + .wordIndex = params32->wordIndex, + .count = params32->count, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramBufferParametersfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramEnvParameter4dvARB( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glProgramEnvParameter4dvARB_params params = + { + .target = params32->target, + .index = params32->index, + .params = (const GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramEnvParameter4dvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramEnvParameter4fvARB( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glProgramEnvParameter4fvARB_params params = + { + .target = params32->target, + .index = params32->index, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramEnvParameter4fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramEnvParameterI4ivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glProgramEnvParameterI4ivNV_params params = + { + .target = params32->target, + .index = params32->index, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramEnvParameterI4ivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramEnvParameterI4uivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glProgramEnvParameterI4uivNV_params params = + { + .target = params32->target, + .index = params32->index, + .params = (const GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramEnvParameterI4uivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramEnvParameters4fvEXT( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glProgramEnvParameters4fvEXT_params params = + { + .target = params32->target, + .index = params32->index, + .count = params32->count, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramEnvParameters4fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramEnvParametersI4ivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glProgramEnvParametersI4ivNV_params params = + { + .target = params32->target, + .index = params32->index, + .count = params32->count, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramEnvParametersI4ivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramEnvParametersI4uivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glProgramEnvParametersI4uivNV_params params = + { + .target = params32->target, + .index = params32->index, + .count = params32->count, + .params = (const GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramEnvParametersI4uivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramLocalParameter4dvARB( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glProgramLocalParameter4dvARB_params params = + { + .target = params32->target, + .index = params32->index, + .params = (const GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramLocalParameter4dvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramLocalParameter4fvARB( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glProgramLocalParameter4fvARB_params params = + { + .target = params32->target, + .index = params32->index, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramLocalParameter4fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramLocalParameterI4ivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glProgramLocalParameterI4ivNV_params params = + { + .target = params32->target, + .index = params32->index, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramLocalParameterI4ivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramLocalParameterI4uivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 params; + } *params32 = args; + struct glProgramLocalParameterI4uivNV_params params = + { + .target = params32->target, + .index = params32->index, + .params = (const GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramLocalParameterI4uivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramLocalParameters4fvEXT( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glProgramLocalParameters4fvEXT_params params = + { + .target = params32->target, + .index = params32->index, + .count = params32->count, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramLocalParameters4fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramLocalParametersI4ivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glProgramLocalParametersI4ivNV_params params = + { + .target = params32->target, + .index = params32->index, + .count = params32->count, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramLocalParametersI4ivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramLocalParametersI4uivNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glProgramLocalParametersI4uivNV_params params = + { + .target = params32->target, + .index = params32->index, + .count = params32->count, + .params = (const GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramLocalParametersI4uivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramNamedParameter4dNV( void *args ) +{ + struct + { + GLuint id; + GLsizei len; + PTR32 name; + GLdouble x; + GLdouble y; + GLdouble z; + GLdouble w; + } *params32 = args; + struct glProgramNamedParameter4dNV_params params = + { + .id = params32->id, + .len = params32->len, + .name = (const GLubyte *)ULongToPtr(params32->name), + .x = params32->x, + .y = params32->y, + .z = params32->z, + .w = params32->w, + }; + NTSTATUS status; + status = ext_glProgramNamedParameter4dNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramNamedParameter4dvNV( void *args ) +{ + struct + { + GLuint id; + GLsizei len; + PTR32 name; + PTR32 v; + } *params32 = args; + struct glProgramNamedParameter4dvNV_params params = + { + .id = params32->id, + .len = params32->len, + .name = (const GLubyte *)ULongToPtr(params32->name), + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glProgramNamedParameter4dvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramNamedParameter4fNV( void *args ) +{ + struct + { + GLuint id; + GLsizei len; + PTR32 name; + GLfloat x; + GLfloat y; + GLfloat z; + GLfloat w; + } *params32 = args; + struct glProgramNamedParameter4fNV_params params = + { + .id = params32->id, + .len = params32->len, + .name = (const GLubyte *)ULongToPtr(params32->name), + .x = params32->x, + .y = params32->y, + .z = params32->z, + .w = params32->w, + }; + NTSTATUS status; + status = ext_glProgramNamedParameter4fNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramNamedParameter4fvNV( void *args ) +{ + struct + { + GLuint id; + GLsizei len; + PTR32 name; + PTR32 v; + } *params32 = args; + struct glProgramNamedParameter4fvNV_params params = + { + .id = params32->id, + .len = params32->len, + .name = (const GLubyte *)ULongToPtr(params32->name), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glProgramNamedParameter4fvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramParameter4dvNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 v; + } *params32 = args; + struct glProgramParameter4dvNV_params params = + { + .target = params32->target, + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glProgramParameter4dvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramParameter4fvNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + PTR32 v; + } *params32 = args; + struct glProgramParameter4fvNV_params params = + { + .target = params32->target, + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glProgramParameter4fvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramParameters4dvNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glProgramParameters4dvNV_params params = + { + .target = params32->target, + .index = params32->index, + .count = params32->count, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glProgramParameters4dvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramParameters4fvNV( void *args ) +{ + struct + { + GLenum target; + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glProgramParameters4fvNV_params params = + { + .target = params32->target, + .index = params32->index, + .count = params32->count, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glProgramParameters4fvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramPathFragmentInputGenNV( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLenum genMode; + GLint components; + PTR32 coeffs; + } *params32 = args; + struct glProgramPathFragmentInputGenNV_params params = + { + .program = params32->program, + .location = params32->location, + .genMode = params32->genMode, + .components = params32->components, + .coeffs = (const GLfloat *)ULongToPtr(params32->coeffs), + }; + NTSTATUS status; + status = ext_glProgramPathFragmentInputGenNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramStringARB( void *args ) +{ + struct + { + GLenum target; + GLenum format; + GLsizei len; + PTR32 string; + } *params32 = args; + struct glProgramStringARB_params params = + { + .target = params32->target, + .format = params32->format, + .len = params32->len, + .string = (const void *)ULongToPtr(params32->string), + }; + NTSTATUS status; + status = ext_glProgramStringARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramSubroutineParametersuivNV( void *args ) +{ + struct + { + GLenum target; + GLsizei count; + PTR32 params; + } *params32 = args; + struct glProgramSubroutineParametersuivNV_params params = + { + .target = params32->target, + .count = params32->count, + .params = (const GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glProgramSubroutineParametersuivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform1dv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform1dv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform1dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform1dvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform1dvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform1dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform1fv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform1fv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform1fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform1fvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform1fvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform1fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform1i64vARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform1i64vARB_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform1i64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform1i64vNV( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform1i64vNV_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform1i64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform1iv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform1iv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform1iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform1ivEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform1ivEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform1ivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform1ui64vARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform1ui64vARB_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform1ui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform1ui64vNV( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform1ui64vNV_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform1ui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform1uiv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform1uiv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform1uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform1uivEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform1uivEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform1uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform2dv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform2dv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform2dvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform2dvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform2dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform2fv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform2fv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform2fvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform2fvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform2fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform2i64vARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform2i64vARB_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform2i64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform2i64vNV( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform2i64vNV_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform2i64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform2iv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform2iv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform2iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform2ivEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform2ivEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform2ivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform2ui64vARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform2ui64vARB_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform2ui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform2ui64vNV( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform2ui64vNV_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform2ui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform2uiv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform2uiv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform2uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform2uivEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform2uivEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform2uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform3dv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform3dv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform3dvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform3dvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform3dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform3fv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform3fv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform3fvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform3fvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform3fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform3i64vARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform3i64vARB_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform3i64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform3i64vNV( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform3i64vNV_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform3i64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform3iv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform3iv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform3iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform3ivEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform3ivEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform3ivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform3ui64vARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform3ui64vARB_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform3ui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform3ui64vNV( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform3ui64vNV_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform3ui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform3uiv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform3uiv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform3uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform3uivEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform3uivEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform3uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform4dv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform4dv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform4dvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform4dvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform4dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform4fv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform4fv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform4fvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform4fvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform4fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform4i64vARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform4i64vARB_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform4i64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform4i64vNV( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform4i64vNV_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform4i64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform4iv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform4iv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform4iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform4ivEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform4ivEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform4ivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform4ui64vARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform4ui64vARB_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform4ui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform4ui64vNV( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform4ui64vNV_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform4ui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform4uiv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform4uiv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform4uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniform4uivEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniform4uivEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniform4uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformHandleui64vARB( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 values; + } *params32 = args; + struct glProgramUniformHandleui64vARB_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .values = (const GLuint64 *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glProgramUniformHandleui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformHandleui64vNV( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 values; + } *params32 = args; + struct glProgramUniformHandleui64vNV_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .values = (const GLuint64 *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glProgramUniformHandleui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix2dv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix2dv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix2dvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix2dvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix2dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix2fv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix2fv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix2fvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix2fvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix2fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix2x3dv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix2x3dv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix2x3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix2x3dvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix2x3dvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix2x3dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix2x3fv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix2x3fv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix2x3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix2x3fvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix2x3fvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix2x3fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix2x4dv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix2x4dv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix2x4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix2x4dvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix2x4dvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix2x4dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix2x4fv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix2x4fv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix2x4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix2x4fvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix2x4fvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix2x4fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix3dv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix3dv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix3dvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix3dvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix3dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix3fv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix3fv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix3fvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix3fvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix3fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix3x2dv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix3x2dv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix3x2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix3x2dvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix3x2dvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix3x2dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix3x2fv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix3x2fv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix3x2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix3x2fvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix3x2fvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix3x2fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix3x4dv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix3x4dv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix3x4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix3x4dvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix3x4dvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix3x4dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix3x4fv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix3x4fv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix3x4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix3x4fvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix3x4fvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix3x4fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix4dv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix4dv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix4dvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix4dvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix4dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix4fv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix4fv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix4fvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix4fvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix4fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix4x2dv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix4x2dv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix4x2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix4x2dvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix4x2dvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix4x2dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix4x2fv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix4x2fv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix4x2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix4x2fvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix4x2fvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix4x2fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix4x3dv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix4x3dv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix4x3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix4x3dvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix4x3dvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix4x3dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix4x3fv( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix4x3fv_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix4x3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformMatrix4x3fvEXT( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glProgramUniformMatrix4x3fvEXT_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformMatrix4x3fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glProgramUniformui64vNV( void *args ) +{ + struct + { + GLuint program; + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glProgramUniformui64vNV_params params = + { + .program = params32->program, + .location = params32->location, + .count = params32->count, + .value = (const GLuint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glProgramUniformui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPushDebugGroup( void *args ) +{ + struct + { + GLenum source; + GLuint id; + GLsizei length; + PTR32 message; + } *params32 = args; + struct glPushDebugGroup_params params = + { + .source = params32->source, + .id = params32->id, + .length = params32->length, + .message = (const GLchar *)ULongToPtr(params32->message), + }; + NTSTATUS status; + status = ext_glPushDebugGroup( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glPushGroupMarkerEXT( void *args ) +{ + struct + { + GLsizei length; + PTR32 marker; + } *params32 = args; + struct glPushGroupMarkerEXT_params params = + { + .length = params32->length, + .marker = (const GLchar *)ULongToPtr(params32->marker), + }; + NTSTATUS status; + status = ext_glPushGroupMarkerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glQueryMatrixxOES( void *args ) +{ + struct + { + PTR32 mantissa; + PTR32 exponent; + GLbitfield ret; + } *params32 = args; + struct glQueryMatrixxOES_params params = + { + .mantissa = (GLfixed *)ULongToPtr(params32->mantissa), + .exponent = (GLint *)ULongToPtr(params32->exponent), + }; + NTSTATUS status; + status = ext_glQueryMatrixxOES( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glQueryResourceNV( void *args ) +{ + struct + { + GLenum queryType; + GLint tagId; + GLuint count; + PTR32 buffer; + GLint ret; + } *params32 = args; + struct glQueryResourceNV_params params = + { + .queryType = params32->queryType, + .tagId = params32->tagId, + .count = params32->count, + .buffer = (GLint *)ULongToPtr(params32->buffer), + }; + NTSTATUS status; + status = ext_glQueryResourceNV( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glQueryResourceTagNV( void *args ) +{ + struct + { + GLint tagId; + PTR32 tagString; + } *params32 = args; + struct glQueryResourceTagNV_params params = + { + .tagId = params32->tagId, + .tagString = (const GLchar *)ULongToPtr(params32->tagString), + }; + NTSTATUS status; + status = ext_glQueryResourceTagNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glRasterPos2xvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glRasterPos2xvOES_params params = + { + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glRasterPos2xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glRasterPos3xvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glRasterPos3xvOES_params params = + { + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glRasterPos3xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glRasterPos4xvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glRasterPos4xvOES_params params = + { + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glRasterPos4xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReadnPixels( void *args ) +{ + struct + { + GLint x; + GLint y; + GLsizei width; + GLsizei height; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 data; + } *params32 = args; + struct glReadnPixels_params params = + { + .x = params32->x, + .y = params32->y, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .data = (void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glReadnPixels( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReadnPixelsARB( void *args ) +{ + struct + { + GLint x; + GLint y; + GLsizei width; + GLsizei height; + GLenum format; + GLenum type; + GLsizei bufSize; + PTR32 data; + } *params32 = args; + struct glReadnPixelsARB_params params = + { + .x = params32->x, + .y = params32->y, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .type = params32->type, + .bufSize = params32->bufSize, + .data = (void *)ULongToPtr(params32->data), + }; + NTSTATUS status; + status = ext_glReadnPixelsARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glRectxvOES( void *args ) +{ + struct + { + PTR32 v1; + PTR32 v2; + } *params32 = args; + struct glRectxvOES_params params = + { + .v1 = (const GLfixed *)ULongToPtr(params32->v1), + .v2 = (const GLfixed *)ULongToPtr(params32->v2), + }; + NTSTATUS status; + status = ext_glRectxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReferencePlaneSGIX( void *args ) +{ + struct + { + PTR32 equation; + } *params32 = args; + struct glReferencePlaneSGIX_params params = + { + .equation = (const GLdouble *)ULongToPtr(params32->equation), + }; + NTSTATUS status; + status = ext_glReferencePlaneSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReplacementCodePointerSUN( void *args ) +{ + struct + { + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glReplacementCodeubvSUN( void *args ) +{ + struct + { + PTR32 code; + } *params32 = args; + struct glReplacementCodeubvSUN_params params = + { + .code = (const GLubyte *)ULongToPtr(params32->code), + }; + NTSTATUS status; + status = ext_glReplacementCodeubvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReplacementCodeuiColor3fVertex3fvSUN( void *args ) +{ + struct + { + PTR32 rc; + PTR32 c; + PTR32 v; + } *params32 = args; + struct glReplacementCodeuiColor3fVertex3fvSUN_params params = + { + .rc = (const GLuint *)ULongToPtr(params32->rc), + .c = (const GLfloat *)ULongToPtr(params32->c), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glReplacementCodeuiColor3fVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReplacementCodeuiColor4fNormal3fVertex3fvSUN( void *args ) +{ + struct + { + PTR32 rc; + PTR32 c; + PTR32 n; + PTR32 v; + } *params32 = args; + struct glReplacementCodeuiColor4fNormal3fVertex3fvSUN_params params = + { + .rc = (const GLuint *)ULongToPtr(params32->rc), + .c = (const GLfloat *)ULongToPtr(params32->c), + .n = (const GLfloat *)ULongToPtr(params32->n), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glReplacementCodeuiColor4fNormal3fVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReplacementCodeuiColor4ubVertex3fvSUN( void *args ) +{ + struct + { + PTR32 rc; + PTR32 c; + PTR32 v; + } *params32 = args; + struct glReplacementCodeuiColor4ubVertex3fvSUN_params params = + { + .rc = (const GLuint *)ULongToPtr(params32->rc), + .c = (const GLubyte *)ULongToPtr(params32->c), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glReplacementCodeuiColor4ubVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReplacementCodeuiNormal3fVertex3fvSUN( void *args ) +{ + struct + { + PTR32 rc; + PTR32 n; + PTR32 v; + } *params32 = args; + struct glReplacementCodeuiNormal3fVertex3fvSUN_params params = + { + .rc = (const GLuint *)ULongToPtr(params32->rc), + .n = (const GLfloat *)ULongToPtr(params32->n), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glReplacementCodeuiNormal3fVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN( void *args ) +{ + struct + { + PTR32 rc; + PTR32 tc; + PTR32 c; + PTR32 n; + PTR32 v; + } *params32 = args; + struct glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN_params params = + { + .rc = (const GLuint *)ULongToPtr(params32->rc), + .tc = (const GLfloat *)ULongToPtr(params32->tc), + .c = (const GLfloat *)ULongToPtr(params32->c), + .n = (const GLfloat *)ULongToPtr(params32->n), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN( void *args ) +{ + struct + { + PTR32 rc; + PTR32 tc; + PTR32 n; + PTR32 v; + } *params32 = args; + struct glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN_params params = + { + .rc = (const GLuint *)ULongToPtr(params32->rc), + .tc = (const GLfloat *)ULongToPtr(params32->tc), + .n = (const GLfloat *)ULongToPtr(params32->n), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReplacementCodeuiTexCoord2fVertex3fvSUN( void *args ) +{ + struct + { + PTR32 rc; + PTR32 tc; + PTR32 v; + } *params32 = args; + struct glReplacementCodeuiTexCoord2fVertex3fvSUN_params params = + { + .rc = (const GLuint *)ULongToPtr(params32->rc), + .tc = (const GLfloat *)ULongToPtr(params32->tc), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glReplacementCodeuiTexCoord2fVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReplacementCodeuiVertex3fvSUN( void *args ) +{ + struct + { + PTR32 rc; + PTR32 v; + } *params32 = args; + struct glReplacementCodeuiVertex3fvSUN_params params = + { + .rc = (const GLuint *)ULongToPtr(params32->rc), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glReplacementCodeuiVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReplacementCodeuivSUN( void *args ) +{ + struct + { + PTR32 code; + } *params32 = args; + struct glReplacementCodeuivSUN_params params = + { + .code = (const GLuint *)ULongToPtr(params32->code), + }; + NTSTATUS status; + status = ext_glReplacementCodeuivSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glReplacementCodeusvSUN( void *args ) +{ + struct + { + PTR32 code; + } *params32 = args; + struct glReplacementCodeusvSUN_params params = + { + .code = (const GLushort *)ULongToPtr(params32->code), + }; + NTSTATUS status; + status = ext_glReplacementCodeusvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glRequestResidentProgramsNV( void *args ) +{ + struct + { + GLsizei n; + PTR32 programs; + } *params32 = args; + struct glRequestResidentProgramsNV_params params = + { + .n = params32->n, + .programs = (const GLuint *)ULongToPtr(params32->programs), + }; + NTSTATUS status; + status = ext_glRequestResidentProgramsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSamplerParameterIiv( void *args ) +{ + struct + { + GLuint sampler; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glSamplerParameterIiv_params params = + { + .sampler = params32->sampler, + .pname = params32->pname, + .param = (const GLint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glSamplerParameterIiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSamplerParameterIuiv( void *args ) +{ + struct + { + GLuint sampler; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glSamplerParameterIuiv_params params = + { + .sampler = params32->sampler, + .pname = params32->pname, + .param = (const GLuint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glSamplerParameterIuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSamplerParameterfv( void *args ) +{ + struct + { + GLuint sampler; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glSamplerParameterfv_params params = + { + .sampler = params32->sampler, + .pname = params32->pname, + .param = (const GLfloat *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glSamplerParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSamplerParameteriv( void *args ) +{ + struct + { + GLuint sampler; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glSamplerParameteriv_params params = + { + .sampler = params32->sampler, + .pname = params32->pname, + .param = (const GLint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glSamplerParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glScissorArrayv( void *args ) +{ + struct + { + GLuint first; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glScissorArrayv_params params = + { + .first = params32->first, + .count = params32->count, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glScissorArrayv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glScissorExclusiveArrayvNV( void *args ) +{ + struct + { + GLuint first; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glScissorExclusiveArrayvNV_params params = + { + .first = params32->first, + .count = params32->count, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glScissorExclusiveArrayvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glScissorIndexedv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glScissorIndexedv_params params = + { + .index = params32->index, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glScissorIndexedv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3bv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3bv_params params = + { + .v = (const GLbyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3bv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3bvEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3bvEXT_params params = + { + .v = (const GLbyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3bvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3dvEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3dvEXT_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3fvEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3fvEXT_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3hvNV( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3hvNV_params params = + { + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3ivEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3ivEXT_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3ivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3svEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3svEXT_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3svEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3ubv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3ubv_params params = + { + .v = (const GLubyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3ubv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3ubvEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3ubvEXT_params params = + { + .v = (const GLubyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3ubvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3uiv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3uiv_params params = + { + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3uivEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3uivEXT_params params = + { + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3usv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3usv_params params = + { + .v = (const GLushort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3usv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColor3usvEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glSecondaryColor3usvEXT_params params = + { + .v = (const GLushort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glSecondaryColor3usvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColorP3uiv( void *args ) +{ + struct + { + GLenum type; + PTR32 color; + } *params32 = args; + struct glSecondaryColorP3uiv_params params = + { + .type = params32->type, + .color = (const GLuint *)ULongToPtr(params32->color), + }; + NTSTATUS status; + status = ext_glSecondaryColorP3uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColorPointer( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glSecondaryColorPointer_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glSecondaryColorPointer( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColorPointerEXT( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glSecondaryColorPointerEXT_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glSecondaryColorPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSecondaryColorPointerListIBM( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLint stride; + PTR32 pointer; + GLint ptrstride; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glSelectPerfMonitorCountersAMD( void *args ) +{ + struct + { + GLuint monitor; + GLboolean enable; + GLuint group; + GLint numCounters; + PTR32 counterList; + } *params32 = args; + struct glSelectPerfMonitorCountersAMD_params params = + { + .monitor = params32->monitor, + .enable = params32->enable, + .group = params32->group, + .numCounters = params32->numCounters, + .counterList = (GLuint *)ULongToPtr(params32->counterList), + }; + NTSTATUS status; + status = ext_glSelectPerfMonitorCountersAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSemaphoreParameterui64vEXT( void *args ) +{ + struct + { + GLuint semaphore; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glSemaphoreParameterui64vEXT_params params = + { + .semaphore = params32->semaphore, + .pname = params32->pname, + .params = (const GLuint64 *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glSemaphoreParameterui64vEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSeparableFilter2D( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLenum format; + GLenum type; + PTR32 row; + PTR32 column; + } *params32 = args; + struct glSeparableFilter2D_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .type = params32->type, + .row = (const void *)ULongToPtr(params32->row), + .column = (const void *)ULongToPtr(params32->column), + }; + NTSTATUS status; + status = ext_glSeparableFilter2D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSeparableFilter2DEXT( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLenum format; + GLenum type; + PTR32 row; + PTR32 column; + } *params32 = args; + struct glSeparableFilter2DEXT_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .type = params32->type, + .row = (const void *)ULongToPtr(params32->row), + .column = (const void *)ULongToPtr(params32->column), + }; + NTSTATUS status; + status = ext_glSeparableFilter2DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSetFragmentShaderConstantATI( void *args ) +{ + struct + { + GLuint dst; + PTR32 value; + } *params32 = args; + struct glSetFragmentShaderConstantATI_params params = + { + .dst = params32->dst, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glSetFragmentShaderConstantATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSetInvariantEXT( void *args ) +{ + struct + { + GLuint id; + GLenum type; + PTR32 addr; + } *params32 = args; + struct glSetInvariantEXT_params params = + { + .id = params32->id, + .type = params32->type, + .addr = (const void *)ULongToPtr(params32->addr), + }; + NTSTATUS status; + status = ext_glSetInvariantEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSetLocalConstantEXT( void *args ) +{ + struct + { + GLuint id; + GLenum type; + PTR32 addr; + } *params32 = args; + struct glSetLocalConstantEXT_params params = + { + .id = params32->id, + .type = params32->type, + .addr = (const void *)ULongToPtr(params32->addr), + }; + NTSTATUS status; + status = ext_glSetLocalConstantEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSetMultisamplefvAMD( void *args ) +{ + struct + { + GLenum pname; + GLuint index; + PTR32 val; + } *params32 = args; + struct glSetMultisamplefvAMD_params params = + { + .pname = params32->pname, + .index = params32->index, + .val = (const GLfloat *)ULongToPtr(params32->val), + }; + NTSTATUS status; + status = ext_glSetMultisamplefvAMD( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glShaderBinary( void *args ) +{ + struct + { + GLsizei count; + PTR32 shaders; + GLenum binaryformat; + PTR32 binary; + GLsizei length; + } *params32 = args; + struct glShaderBinary_params params = + { + .count = params32->count, + .shaders = (const GLuint *)ULongToPtr(params32->shaders), + .binaryformat = params32->binaryformat, + .binary = (const void *)ULongToPtr(params32->binary), + .length = params32->length, + }; + NTSTATUS status; + status = ext_glShaderBinary( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glShaderSource( void *args ) +{ + struct + { + GLuint shader; + GLsizei count; + PTR32 string; + PTR32 length; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glShaderSourceARB( void *args ) +{ + struct + { + GLhandleARB shaderObj; + GLsizei count; + PTR32 string; + PTR32 length; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glShadingRateImagePaletteNV( void *args ) +{ + struct + { + GLuint viewport; + GLuint first; + GLsizei count; + PTR32 rates; + } *params32 = args; + struct glShadingRateImagePaletteNV_params params = + { + .viewport = params32->viewport, + .first = params32->first, + .count = params32->count, + .rates = (const GLenum *)ULongToPtr(params32->rates), + }; + NTSTATUS status; + status = ext_glShadingRateImagePaletteNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glShadingRateSampleOrderCustomNV( void *args ) +{ + struct + { + GLenum rate; + GLuint samples; + PTR32 locations; + } *params32 = args; + struct glShadingRateSampleOrderCustomNV_params params = + { + .rate = params32->rate, + .samples = params32->samples, + .locations = (const GLint *)ULongToPtr(params32->locations), + }; + NTSTATUS status; + status = ext_glShadingRateSampleOrderCustomNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSharpenTexFuncSGIS( void *args ) +{ + struct + { + GLenum target; + GLsizei n; + PTR32 points; + } *params32 = args; + struct glSharpenTexFuncSGIS_params params = + { + .target = params32->target, + .n = params32->n, + .points = (const GLfloat *)ULongToPtr(params32->points), + }; + NTSTATUS status; + status = ext_glSharpenTexFuncSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSignalSemaphoreEXT( void *args ) +{ + struct + { + GLuint semaphore; + GLuint numBufferBarriers; + PTR32 buffers; + GLuint numTextureBarriers; + PTR32 textures; + PTR32 dstLayouts; + } *params32 = args; + struct glSignalSemaphoreEXT_params params = + { + .semaphore = params32->semaphore, + .numBufferBarriers = params32->numBufferBarriers, + .buffers = (const GLuint *)ULongToPtr(params32->buffers), + .numTextureBarriers = params32->numTextureBarriers, + .textures = (const GLuint *)ULongToPtr(params32->textures), + .dstLayouts = (const GLenum *)ULongToPtr(params32->dstLayouts), + }; + NTSTATUS status; + status = ext_glSignalSemaphoreEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSignalSemaphoreui64NVX( void *args ) +{ + struct + { + GLuint signalGpu; + GLsizei fenceObjectCount; + PTR32 semaphoreArray; + PTR32 fenceValueArray; + } *params32 = args; + struct glSignalSemaphoreui64NVX_params params = + { + .signalGpu = params32->signalGpu, + .fenceObjectCount = params32->fenceObjectCount, + .semaphoreArray = (const GLuint *)ULongToPtr(params32->semaphoreArray), + .fenceValueArray = (const GLuint64 *)ULongToPtr(params32->fenceValueArray), + }; + NTSTATUS status; + status = ext_glSignalSemaphoreui64NVX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSpecializeShader( void *args ) +{ + struct + { + GLuint shader; + PTR32 pEntryPoint; + GLuint numSpecializationConstants; + PTR32 pConstantIndex; + PTR32 pConstantValue; + } *params32 = args; + struct glSpecializeShader_params params = + { + .shader = params32->shader, + .pEntryPoint = (const GLchar *)ULongToPtr(params32->pEntryPoint), + .numSpecializationConstants = params32->numSpecializationConstants, + .pConstantIndex = (const GLuint *)ULongToPtr(params32->pConstantIndex), + .pConstantValue = (const GLuint *)ULongToPtr(params32->pConstantValue), + }; + NTSTATUS status; + status = ext_glSpecializeShader( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSpecializeShaderARB( void *args ) +{ + struct + { + GLuint shader; + PTR32 pEntryPoint; + GLuint numSpecializationConstants; + PTR32 pConstantIndex; + PTR32 pConstantValue; + } *params32 = args; + struct glSpecializeShaderARB_params params = + { + .shader = params32->shader, + .pEntryPoint = (const GLchar *)ULongToPtr(params32->pEntryPoint), + .numSpecializationConstants = params32->numSpecializationConstants, + .pConstantIndex = (const GLuint *)ULongToPtr(params32->pConstantIndex), + .pConstantValue = (const GLuint *)ULongToPtr(params32->pConstantValue), + }; + NTSTATUS status; + status = ext_glSpecializeShaderARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSpriteParameterfvSGIX( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glSpriteParameterfvSGIX_params params = + { + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glSpriteParameterfvSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glSpriteParameterivSGIX( void *args ) +{ + struct + { + GLenum pname; + PTR32 params; + } *params32 = args; + struct glSpriteParameterivSGIX_params params = + { + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glSpriteParameterivSGIX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glStencilFillPathInstancedNV( void *args ) +{ + struct + { + GLsizei numPaths; + GLenum pathNameType; + PTR32 paths; + GLuint pathBase; + GLenum fillMode; + GLuint mask; + GLenum transformType; + PTR32 transformValues; + } *params32 = args; + struct glStencilFillPathInstancedNV_params params = + { + .numPaths = params32->numPaths, + .pathNameType = params32->pathNameType, + .paths = (const void *)ULongToPtr(params32->paths), + .pathBase = params32->pathBase, + .fillMode = params32->fillMode, + .mask = params32->mask, + .transformType = params32->transformType, + .transformValues = (const GLfloat *)ULongToPtr(params32->transformValues), + }; + NTSTATUS status; + status = ext_glStencilFillPathInstancedNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glStencilStrokePathInstancedNV( void *args ) +{ + struct + { + GLsizei numPaths; + GLenum pathNameType; + PTR32 paths; + GLuint pathBase; + GLint reference; + GLuint mask; + GLenum transformType; + PTR32 transformValues; + } *params32 = args; + struct glStencilStrokePathInstancedNV_params params = + { + .numPaths = params32->numPaths, + .pathNameType = params32->pathNameType, + .paths = (const void *)ULongToPtr(params32->paths), + .pathBase = params32->pathBase, + .reference = params32->reference, + .mask = params32->mask, + .transformType = params32->transformType, + .transformValues = (const GLfloat *)ULongToPtr(params32->transformValues), + }; + NTSTATUS status; + status = ext_glStencilStrokePathInstancedNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glStencilThenCoverFillPathInstancedNV( void *args ) +{ + struct + { + GLsizei numPaths; + GLenum pathNameType; + PTR32 paths; + GLuint pathBase; + GLenum fillMode; + GLuint mask; + GLenum coverMode; + GLenum transformType; + PTR32 transformValues; + } *params32 = args; + struct glStencilThenCoverFillPathInstancedNV_params params = + { + .numPaths = params32->numPaths, + .pathNameType = params32->pathNameType, + .paths = (const void *)ULongToPtr(params32->paths), + .pathBase = params32->pathBase, + .fillMode = params32->fillMode, + .mask = params32->mask, + .coverMode = params32->coverMode, + .transformType = params32->transformType, + .transformValues = (const GLfloat *)ULongToPtr(params32->transformValues), + }; + NTSTATUS status; + status = ext_glStencilThenCoverFillPathInstancedNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glStencilThenCoverStrokePathInstancedNV( void *args ) +{ + struct + { + GLsizei numPaths; + GLenum pathNameType; + PTR32 paths; + GLuint pathBase; + GLint reference; + GLuint mask; + GLenum coverMode; + GLenum transformType; + PTR32 transformValues; + } *params32 = args; + struct glStencilThenCoverStrokePathInstancedNV_params params = + { + .numPaths = params32->numPaths, + .pathNameType = params32->pathNameType, + .paths = (const void *)ULongToPtr(params32->paths), + .pathBase = params32->pathBase, + .reference = params32->reference, + .mask = params32->mask, + .coverMode = params32->coverMode, + .transformType = params32->transformType, + .transformValues = (const GLfloat *)ULongToPtr(params32->transformValues), + }; + NTSTATUS status; + status = ext_glStencilThenCoverStrokePathInstancedNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glStringMarkerGREMEDY( void *args ) +{ + struct + { + GLsizei len; + PTR32 string; + } *params32 = args; + struct glStringMarkerGREMEDY_params params = + { + .len = params32->len, + .string = (const void *)ULongToPtr(params32->string), + }; + NTSTATUS status; + status = ext_glStringMarkerGREMEDY( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTangent3bvEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTangent3bvEXT_params params = + { + .v = (const GLbyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTangent3bvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTangent3dvEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTangent3dvEXT_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTangent3dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTangent3fvEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTangent3fvEXT_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTangent3fvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTangent3ivEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTangent3ivEXT_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTangent3ivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTangent3svEXT( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTangent3svEXT_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTangent3svEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTangentPointerEXT( void *args ) +{ + struct + { + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glTangentPointerEXT_params params = + { + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glTangentPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexBufferRange( void *args ) +{ + struct + { + GLenum target; + GLenum internalformat; + GLuint buffer; + PTR32 offset; + PTR32 size; + } *params32 = args; + struct glTexBufferRange_params params = + { + .target = params32->target, + .internalformat = params32->internalformat, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + }; + NTSTATUS status; + status = ext_glTexBufferRange( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexBumpParameterfvATI( void *args ) +{ + struct + { + GLenum pname; + PTR32 param; + } *params32 = args; + struct glTexBumpParameterfvATI_params params = + { + .pname = params32->pname, + .param = (const GLfloat *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glTexBumpParameterfvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexBumpParameterivATI( void *args ) +{ + struct + { + GLenum pname; + PTR32 param; + } *params32 = args; + struct glTexBumpParameterivATI_params params = + { + .pname = params32->pname, + .param = (const GLint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glTexBumpParameterivATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord1bvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glTexCoord1bvOES_params params = + { + .coords = (const GLbyte *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glTexCoord1bvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord1hvNV( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord1hvNV_params params = + { + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTexCoord1hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord1xvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glTexCoord1xvOES_params params = + { + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glTexCoord1xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord2bvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glTexCoord2bvOES_params params = + { + .coords = (const GLbyte *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glTexCoord2bvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord2fColor3fVertex3fvSUN( void *args ) +{ + struct + { + PTR32 tc; + PTR32 c; + PTR32 v; + } *params32 = args; + struct glTexCoord2fColor3fVertex3fvSUN_params params = + { + .tc = (const GLfloat *)ULongToPtr(params32->tc), + .c = (const GLfloat *)ULongToPtr(params32->c), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTexCoord2fColor3fVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord2fColor4fNormal3fVertex3fvSUN( void *args ) +{ + struct + { + PTR32 tc; + PTR32 c; + PTR32 n; + PTR32 v; + } *params32 = args; + struct glTexCoord2fColor4fNormal3fVertex3fvSUN_params params = + { + .tc = (const GLfloat *)ULongToPtr(params32->tc), + .c = (const GLfloat *)ULongToPtr(params32->c), + .n = (const GLfloat *)ULongToPtr(params32->n), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTexCoord2fColor4fNormal3fVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord2fColor4ubVertex3fvSUN( void *args ) +{ + struct + { + PTR32 tc; + PTR32 c; + PTR32 v; + } *params32 = args; + struct glTexCoord2fColor4ubVertex3fvSUN_params params = + { + .tc = (const GLfloat *)ULongToPtr(params32->tc), + .c = (const GLubyte *)ULongToPtr(params32->c), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTexCoord2fColor4ubVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord2fNormal3fVertex3fvSUN( void *args ) +{ + struct + { + PTR32 tc; + PTR32 n; + PTR32 v; + } *params32 = args; + struct glTexCoord2fNormal3fVertex3fvSUN_params params = + { + .tc = (const GLfloat *)ULongToPtr(params32->tc), + .n = (const GLfloat *)ULongToPtr(params32->n), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTexCoord2fNormal3fVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord2fVertex3fvSUN( void *args ) +{ + struct + { + PTR32 tc; + PTR32 v; + } *params32 = args; + struct glTexCoord2fVertex3fvSUN_params params = + { + .tc = (const GLfloat *)ULongToPtr(params32->tc), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTexCoord2fVertex3fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord2hvNV( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord2hvNV_params params = + { + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTexCoord2hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord2xvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glTexCoord2xvOES_params params = + { + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glTexCoord2xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord3bvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glTexCoord3bvOES_params params = + { + .coords = (const GLbyte *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glTexCoord3bvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord3hvNV( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord3hvNV_params params = + { + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTexCoord3hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord3xvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glTexCoord3xvOES_params params = + { + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glTexCoord3xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord4bvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glTexCoord4bvOES_params params = + { + .coords = (const GLbyte *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glTexCoord4bvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord4fColor4fNormal3fVertex4fvSUN( void *args ) +{ + struct + { + PTR32 tc; + PTR32 c; + PTR32 n; + PTR32 v; + } *params32 = args; + struct glTexCoord4fColor4fNormal3fVertex4fvSUN_params params = + { + .tc = (const GLfloat *)ULongToPtr(params32->tc), + .c = (const GLfloat *)ULongToPtr(params32->c), + .n = (const GLfloat *)ULongToPtr(params32->n), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTexCoord4fColor4fNormal3fVertex4fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord4fVertex4fvSUN( void *args ) +{ + struct + { + PTR32 tc; + PTR32 v; + } *params32 = args; + struct glTexCoord4fVertex4fvSUN_params params = + { + .tc = (const GLfloat *)ULongToPtr(params32->tc), + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTexCoord4fVertex4fvSUN( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord4hvNV( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glTexCoord4hvNV_params params = + { + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glTexCoord4hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoord4xvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glTexCoord4xvOES_params params = + { + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glTexCoord4xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoordP1uiv( void *args ) +{ + struct + { + GLenum type; + PTR32 coords; + } *params32 = args; + struct glTexCoordP1uiv_params params = + { + .type = params32->type, + .coords = (const GLuint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glTexCoordP1uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoordP2uiv( void *args ) +{ + struct + { + GLenum type; + PTR32 coords; + } *params32 = args; + struct glTexCoordP2uiv_params params = + { + .type = params32->type, + .coords = (const GLuint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glTexCoordP2uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoordP3uiv( void *args ) +{ + struct + { + GLenum type; + PTR32 coords; + } *params32 = args; + struct glTexCoordP3uiv_params params = + { + .type = params32->type, + .coords = (const GLuint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glTexCoordP3uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoordP4uiv( void *args ) +{ + struct + { + GLenum type; + PTR32 coords; + } *params32 = args; + struct glTexCoordP4uiv_params params = + { + .type = params32->type, + .coords = (const GLuint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glTexCoordP4uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoordPointerEXT( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLsizei stride; + GLsizei count; + PTR32 pointer; + } *params32 = args; + struct glTexCoordPointerEXT_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .count = params32->count, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glTexCoordPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexCoordPointerListIBM( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLint stride; + PTR32 pointer; + GLint ptrstride; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glTexCoordPointervINTEL( void *args ) +{ + struct + { + GLint size; + GLenum type; + PTR32 pointer; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glTexEnvxvOES( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexEnvxvOES_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glTexEnvxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexFilterFuncSGIS( void *args ) +{ + struct + { + GLenum target; + GLenum filter; + GLsizei n; + PTR32 weights; + } *params32 = args; + struct glTexFilterFuncSGIS_params params = + { + .target = params32->target, + .filter = params32->filter, + .n = params32->n, + .weights = (const GLfloat *)ULongToPtr(params32->weights), + }; + NTSTATUS status; + status = ext_glTexFilterFuncSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexGenxvOES( void *args ) +{ + struct + { + GLenum coord; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexGenxvOES_params params = + { + .coord = params32->coord, + .pname = params32->pname, + .params = (const GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glTexGenxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexImage3D( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint internalformat; + GLsizei width; + GLsizei height; + GLsizei depth; + GLint border; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTexImage3D_params params = + { + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .border = params32->border, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTexImage3D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexImage3DEXT( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLsizei depth; + GLint border; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTexImage3DEXT_params params = + { + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .border = params32->border, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTexImage3DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexImage4DSGIS( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLenum internalformat; + GLsizei width; + GLsizei height; + GLsizei depth; + GLsizei size4d; + GLint border; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTexImage4DSGIS_params params = + { + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .size4d = params32->size4d, + .border = params32->border, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTexImage4DSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexParameterIiv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexParameterIiv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glTexParameterIiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexParameterIivEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexParameterIivEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glTexParameterIivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexParameterIuiv( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexParameterIuiv_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glTexParameterIuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexParameterIuivEXT( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexParameterIuivEXT_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glTexParameterIuivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexParameterxvOES( void *args ) +{ + struct + { + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTexParameterxvOES_params params = + { + .target = params32->target, + .pname = params32->pname, + .params = (const GLfixed *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glTexParameterxvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexSubImage1DEXT( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint xoffset; + GLsizei width; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTexSubImage1DEXT_params params = + { + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .width = params32->width, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTexSubImage1DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexSubImage2DEXT( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLsizei width; + GLsizei height; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTexSubImage2DEXT_params params = + { + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTexSubImage2DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexSubImage3D( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTexSubImage3D_params params = + { + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTexSubImage3D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexSubImage3DEXT( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTexSubImage3DEXT_params params = + { + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTexSubImage3DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTexSubImage4DSGIS( void *args ) +{ + struct + { + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLint woffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLsizei size4d; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTexSubImage4DSGIS_params params = + { + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .woffset = params32->woffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .size4d = params32->size4d, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTexSubImage4DSGIS( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureBufferRange( void *args ) +{ + struct + { + GLuint texture; + GLenum internalformat; + GLuint buffer; + PTR32 offset; + PTR32 size; + } *params32 = args; + struct glTextureBufferRange_params params = + { + .texture = params32->texture, + .internalformat = params32->internalformat, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + }; + NTSTATUS status; + status = ext_glTextureBufferRange( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureBufferRangeEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLenum internalformat; + GLuint buffer; + PTR32 offset; + PTR32 size; + } *params32 = args; + struct glTextureBufferRangeEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .internalformat = params32->internalformat, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + }; + NTSTATUS status; + status = ext_glTextureBufferRangeEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureImage1DEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLint internalformat; + GLsizei width; + GLint border; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTextureImage1DEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .border = params32->border, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTextureImage1DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureImage2DEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLint internalformat; + GLsizei width; + GLsizei height; + GLint border; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTextureImage2DEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .border = params32->border, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTextureImage2DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureImage3DEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLint internalformat; + GLsizei width; + GLsizei height; + GLsizei depth; + GLint border; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTextureImage3DEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .internalformat = params32->internalformat, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .border = params32->border, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTextureImage3DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureParameterIiv( void *args ) +{ + struct + { + GLuint texture; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTextureParameterIiv_params params = + { + .texture = params32->texture, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glTextureParameterIiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureParameterIivEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTextureParameterIivEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glTextureParameterIivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureParameterIuiv( void *args ) +{ + struct + { + GLuint texture; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTextureParameterIuiv_params params = + { + .texture = params32->texture, + .pname = params32->pname, + .params = (const GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glTextureParameterIuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureParameterIuivEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTextureParameterIuivEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .pname = params32->pname, + .params = (const GLuint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glTextureParameterIuivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureParameterfv( void *args ) +{ + struct + { + GLuint texture; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glTextureParameterfv_params params = + { + .texture = params32->texture, + .pname = params32->pname, + .param = (const GLfloat *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glTextureParameterfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureParameterfvEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTextureParameterfvEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glTextureParameterfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureParameteriv( void *args ) +{ + struct + { + GLuint texture; + GLenum pname; + PTR32 param; + } *params32 = args; + struct glTextureParameteriv_params params = + { + .texture = params32->texture, + .pname = params32->pname, + .param = (const GLint *)ULongToPtr(params32->param), + }; + NTSTATUS status; + status = ext_glTextureParameteriv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureParameterivEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glTextureParameterivEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glTextureParameterivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureRangeAPPLE( void *args ) +{ + struct + { + GLenum target; + GLsizei length; + PTR32 pointer; + } *params32 = args; + struct glTextureRangeAPPLE_params params = + { + .target = params32->target, + .length = params32->length, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glTextureRangeAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureSubImage1D( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLint xoffset; + GLsizei width; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTextureSubImage1D_params params = + { + .texture = params32->texture, + .level = params32->level, + .xoffset = params32->xoffset, + .width = params32->width, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTextureSubImage1D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureSubImage1DEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLint xoffset; + GLsizei width; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTextureSubImage1DEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .width = params32->width, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTextureSubImage1DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureSubImage2D( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLint xoffset; + GLint yoffset; + GLsizei width; + GLsizei height; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTextureSubImage2D_params params = + { + .texture = params32->texture, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTextureSubImage2D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureSubImage2DEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLsizei width; + GLsizei height; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTextureSubImage2DEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .width = params32->width, + .height = params32->height, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTextureSubImage2DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureSubImage3D( void *args ) +{ + struct + { + GLuint texture; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTextureSubImage3D_params params = + { + .texture = params32->texture, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTextureSubImage3D( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTextureSubImage3DEXT( void *args ) +{ + struct + { + GLuint texture; + GLenum target; + GLint level; + GLint xoffset; + GLint yoffset; + GLint zoffset; + GLsizei width; + GLsizei height; + GLsizei depth; + GLenum format; + GLenum type; + PTR32 pixels; + } *params32 = args; + struct glTextureSubImage3DEXT_params params = + { + .texture = params32->texture, + .target = params32->target, + .level = params32->level, + .xoffset = params32->xoffset, + .yoffset = params32->yoffset, + .zoffset = params32->zoffset, + .width = params32->width, + .height = params32->height, + .depth = params32->depth, + .format = params32->format, + .type = params32->type, + .pixels = (const void *)ULongToPtr(params32->pixels), + }; + NTSTATUS status; + status = ext_glTextureSubImage3DEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTransformFeedbackAttribsNV( void *args ) +{ + struct + { + GLsizei count; + PTR32 attribs; + GLenum bufferMode; + } *params32 = args; + struct glTransformFeedbackAttribsNV_params params = + { + .count = params32->count, + .attribs = (const GLint *)ULongToPtr(params32->attribs), + .bufferMode = params32->bufferMode, + }; + NTSTATUS status; + status = ext_glTransformFeedbackAttribsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTransformFeedbackBufferRange( void *args ) +{ + struct + { + GLuint xfb; + GLuint index; + GLuint buffer; + PTR32 offset; + PTR32 size; + } *params32 = args; + struct glTransformFeedbackBufferRange_params params = + { + .xfb = params32->xfb, + .index = params32->index, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .size = (GLsizeiptr)ULongToPtr(params32->size), + }; + NTSTATUS status; + status = ext_glTransformFeedbackBufferRange( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTransformFeedbackStreamAttribsNV( void *args ) +{ + struct + { + GLsizei count; + PTR32 attribs; + GLsizei nbuffers; + PTR32 bufstreams; + GLenum bufferMode; + } *params32 = args; + struct glTransformFeedbackStreamAttribsNV_params params = + { + .count = params32->count, + .attribs = (const GLint *)ULongToPtr(params32->attribs), + .nbuffers = params32->nbuffers, + .bufstreams = (const GLint *)ULongToPtr(params32->bufstreams), + .bufferMode = params32->bufferMode, + }; + NTSTATUS status; + status = ext_glTransformFeedbackStreamAttribsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTransformFeedbackVaryings( void *args ) +{ + struct + { + GLuint program; + GLsizei count; + PTR32 varyings; + GLenum bufferMode; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glTransformFeedbackVaryingsEXT( void *args ) +{ + struct + { + GLuint program; + GLsizei count; + PTR32 varyings; + GLenum bufferMode; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glTransformFeedbackVaryingsNV( void *args ) +{ + struct + { + GLuint program; + GLsizei count; + PTR32 locations; + GLenum bufferMode; + } *params32 = args; + struct glTransformFeedbackVaryingsNV_params params = + { + .program = params32->program, + .count = params32->count, + .locations = (const GLint *)ULongToPtr(params32->locations), + .bufferMode = params32->bufferMode, + }; + NTSTATUS status; + status = ext_glTransformFeedbackVaryingsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glTransformPathNV( void *args ) +{ + struct + { + GLuint resultPath; + GLuint srcPath; + GLenum transformType; + PTR32 transformValues; + } *params32 = args; + struct glTransformPathNV_params params = + { + .resultPath = params32->resultPath, + .srcPath = params32->srcPath, + .transformType = params32->transformType, + .transformValues = (const GLfloat *)ULongToPtr(params32->transformValues), + }; + NTSTATUS status; + status = ext_glTransformPathNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform1dv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform1dv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform1dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform1fv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform1fv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform1fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform1fvARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform1fvARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform1fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform1i64vARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform1i64vARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform1i64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform1i64vNV( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform1i64vNV_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform1i64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform1iv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform1iv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform1iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform1ivARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform1ivARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform1ivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform1ui64vARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform1ui64vARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform1ui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform1ui64vNV( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform1ui64vNV_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform1ui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform1uiv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform1uiv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform1uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform1uivEXT( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform1uivEXT_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform1uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform2dv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform2dv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform2fv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform2fv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform2fvARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform2fvARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform2fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform2i64vARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform2i64vARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform2i64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform2i64vNV( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform2i64vNV_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform2i64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform2iv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform2iv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform2iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform2ivARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform2ivARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform2ivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform2ui64vARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform2ui64vARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform2ui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform2ui64vNV( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform2ui64vNV_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform2ui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform2uiv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform2uiv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform2uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform2uivEXT( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform2uivEXT_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform2uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform3dv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform3dv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform3fv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform3fv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform3fvARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform3fvARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform3fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform3i64vARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform3i64vARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform3i64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform3i64vNV( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform3i64vNV_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform3i64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform3iv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform3iv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform3iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform3ivARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform3ivARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform3ivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform3ui64vARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform3ui64vARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform3ui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform3ui64vNV( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform3ui64vNV_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform3ui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform3uiv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform3uiv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform3uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform3uivEXT( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform3uivEXT_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform3uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform4dv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform4dv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform4fv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform4fv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform4fvARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform4fvARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform4fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform4i64vARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform4i64vARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform4i64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform4i64vNV( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform4i64vNV_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform4i64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform4iv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform4iv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform4iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform4ivARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform4ivARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform4ivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform4ui64vARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform4ui64vARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform4ui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform4ui64vNV( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform4ui64vNV_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform4ui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform4uiv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform4uiv_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform4uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniform4uivEXT( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniform4uivEXT_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniform4uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformHandleui64vARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniformHandleui64vARB_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformHandleui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformHandleui64vNV( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniformHandleui64vNV_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint64 *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformHandleui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix2dv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix2dv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix2fv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix2fv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix2fvARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix2fvARB_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix2fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix2x3dv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix2x3dv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix2x3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix2x3fv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix2x3fv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix2x3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix2x4dv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix2x4dv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix2x4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix2x4fv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix2x4fv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix2x4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix3dv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix3dv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix3fv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix3fv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix3fvARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix3fvARB_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix3fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix3x2dv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix3x2dv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix3x2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix3x2fv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix3x2fv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix3x2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix3x4dv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix3x4dv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix3x4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix3x4fv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix3x4fv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix3x4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix4dv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix4dv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix4fv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix4fv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix4fvARB( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix4fvARB_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix4fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix4x2dv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix4x2dv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix4x2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix4x2fv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix4x2fv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix4x2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix4x3dv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix4x3dv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLdouble *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix4x3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformMatrix4x3fv( void *args ) +{ + struct + { + GLint location; + GLsizei count; + GLboolean transpose; + PTR32 value; + } *params32 = args; + struct glUniformMatrix4x3fv_params params = + { + .location = params32->location, + .count = params32->count, + .transpose = params32->transpose, + .value = (const GLfloat *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformMatrix4x3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformSubroutinesuiv( void *args ) +{ + struct + { + GLenum shadertype; + GLsizei count; + PTR32 indices; + } *params32 = args; + struct glUniformSubroutinesuiv_params params = + { + .shadertype = params32->shadertype, + .count = params32->count, + .indices = (const GLuint *)ULongToPtr(params32->indices), + }; + NTSTATUS status; + status = ext_glUniformSubroutinesuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUniformui64vNV( void *args ) +{ + struct + { + GLint location; + GLsizei count; + PTR32 value; + } *params32 = args; + struct glUniformui64vNV_params params = + { + .location = params32->location, + .count = params32->count, + .value = (const GLuint64EXT *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glUniformui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glUpdateObjectBufferATI( void *args ) +{ + struct + { + GLuint buffer; + GLuint offset; + GLsizei size; + PTR32 pointer; + GLenum preserve; + } *params32 = args; + struct glUpdateObjectBufferATI_params params = + { + .buffer = params32->buffer, + .offset = params32->offset, + .size = params32->size, + .pointer = (const void *)ULongToPtr(params32->pointer), + .preserve = params32->preserve, + }; + NTSTATUS status; + status = ext_glUpdateObjectBufferATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVDPAUGetSurfaceivNV( void *args ) +{ + struct + { + GLvdpauSurfaceNV surface; + GLenum pname; + GLsizei count; + PTR32 length; + PTR32 values; + } *params32 = args; + struct glVDPAUGetSurfaceivNV_params params = + { + .surface = params32->surface, + .pname = params32->pname, + .count = params32->count, + .length = (GLsizei *)ULongToPtr(params32->length), + .values = (GLint *)ULongToPtr(params32->values), + }; + NTSTATUS status; + status = ext_glVDPAUGetSurfaceivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVDPAUInitNV( void *args ) +{ + struct + { + PTR32 vdpDevice; + PTR32 getProcAddress; + } *params32 = args; + struct glVDPAUInitNV_params params = + { + .vdpDevice = (const void *)ULongToPtr(params32->vdpDevice), + .getProcAddress = (const void *)ULongToPtr(params32->getProcAddress), + }; + NTSTATUS status; + status = ext_glVDPAUInitNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVDPAUMapSurfacesNV( void *args ) +{ + struct + { + GLsizei numSurfaces; + PTR32 surfaces; + } *params32 = args; + struct glVDPAUMapSurfacesNV_params params = + { + .numSurfaces = params32->numSurfaces, + .surfaces = (const GLvdpauSurfaceNV *)ULongToPtr(params32->surfaces), + }; + NTSTATUS status; + status = ext_glVDPAUMapSurfacesNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVDPAURegisterOutputSurfaceNV( void *args ) +{ + struct + { + PTR32 vdpSurface; + GLenum target; + GLsizei numTextureNames; + PTR32 textureNames; + GLvdpauSurfaceNV ret; + } *params32 = args; + struct glVDPAURegisterOutputSurfaceNV_params params = + { + .vdpSurface = (const void *)ULongToPtr(params32->vdpSurface), + .target = params32->target, + .numTextureNames = params32->numTextureNames, + .textureNames = (const GLuint *)ULongToPtr(params32->textureNames), + }; + NTSTATUS status; + status = ext_glVDPAURegisterOutputSurfaceNV( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glVDPAURegisterVideoSurfaceNV( void *args ) +{ + struct + { + PTR32 vdpSurface; + GLenum target; + GLsizei numTextureNames; + PTR32 textureNames; + GLvdpauSurfaceNV ret; + } *params32 = args; + struct glVDPAURegisterVideoSurfaceNV_params params = + { + .vdpSurface = (const void *)ULongToPtr(params32->vdpSurface), + .target = params32->target, + .numTextureNames = params32->numTextureNames, + .textureNames = (const GLuint *)ULongToPtr(params32->textureNames), + }; + NTSTATUS status; + status = ext_glVDPAURegisterVideoSurfaceNV( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glVDPAURegisterVideoSurfaceWithPictureStructureNV( void *args ) +{ + struct + { + PTR32 vdpSurface; + GLenum target; + GLsizei numTextureNames; + PTR32 textureNames; + GLboolean isFrameStructure; + GLvdpauSurfaceNV ret; + } *params32 = args; + struct glVDPAURegisterVideoSurfaceWithPictureStructureNV_params params = + { + .vdpSurface = (const void *)ULongToPtr(params32->vdpSurface), + .target = params32->target, + .numTextureNames = params32->numTextureNames, + .textureNames = (const GLuint *)ULongToPtr(params32->textureNames), + .isFrameStructure = params32->isFrameStructure, + }; + NTSTATUS status; + status = ext_glVDPAURegisterVideoSurfaceWithPictureStructureNV( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glVDPAUUnmapSurfacesNV( void *args ) +{ + struct + { + GLsizei numSurface; + PTR32 surfaces; + } *params32 = args; + struct glVDPAUUnmapSurfacesNV_params params = + { + .numSurface = params32->numSurface, + .surfaces = (const GLvdpauSurfaceNV *)ULongToPtr(params32->surfaces), + }; + NTSTATUS status; + status = ext_glVDPAUUnmapSurfacesNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVariantPointerEXT( void *args ) +{ + struct + { + GLuint id; + GLenum type; + GLuint stride; + PTR32 addr; + } *params32 = args; + struct glVariantPointerEXT_params params = + { + .id = params32->id, + .type = params32->type, + .stride = params32->stride, + .addr = (const void *)ULongToPtr(params32->addr), + }; + NTSTATUS status; + status = ext_glVariantPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVariantbvEXT( void *args ) +{ + struct + { + GLuint id; + PTR32 addr; + } *params32 = args; + struct glVariantbvEXT_params params = + { + .id = params32->id, + .addr = (const GLbyte *)ULongToPtr(params32->addr), + }; + NTSTATUS status; + status = ext_glVariantbvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVariantdvEXT( void *args ) +{ + struct + { + GLuint id; + PTR32 addr; + } *params32 = args; + struct glVariantdvEXT_params params = + { + .id = params32->id, + .addr = (const GLdouble *)ULongToPtr(params32->addr), + }; + NTSTATUS status; + status = ext_glVariantdvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVariantfvEXT( void *args ) +{ + struct + { + GLuint id; + PTR32 addr; + } *params32 = args; + struct glVariantfvEXT_params params = + { + .id = params32->id, + .addr = (const GLfloat *)ULongToPtr(params32->addr), + }; + NTSTATUS status; + status = ext_glVariantfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVariantivEXT( void *args ) +{ + struct + { + GLuint id; + PTR32 addr; + } *params32 = args; + struct glVariantivEXT_params params = + { + .id = params32->id, + .addr = (const GLint *)ULongToPtr(params32->addr), + }; + NTSTATUS status; + status = ext_glVariantivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVariantsvEXT( void *args ) +{ + struct + { + GLuint id; + PTR32 addr; + } *params32 = args; + struct glVariantsvEXT_params params = + { + .id = params32->id, + .addr = (const GLshort *)ULongToPtr(params32->addr), + }; + NTSTATUS status; + status = ext_glVariantsvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVariantubvEXT( void *args ) +{ + struct + { + GLuint id; + PTR32 addr; + } *params32 = args; + struct glVariantubvEXT_params params = + { + .id = params32->id, + .addr = (const GLubyte *)ULongToPtr(params32->addr), + }; + NTSTATUS status; + status = ext_glVariantubvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVariantuivEXT( void *args ) +{ + struct + { + GLuint id; + PTR32 addr; + } *params32 = args; + struct glVariantuivEXT_params params = + { + .id = params32->id, + .addr = (const GLuint *)ULongToPtr(params32->addr), + }; + NTSTATUS status; + status = ext_glVariantuivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVariantusvEXT( void *args ) +{ + struct + { + GLuint id; + PTR32 addr; + } *params32 = args; + struct glVariantusvEXT_params params = + { + .id = params32->id, + .addr = (const GLushort *)ULongToPtr(params32->addr), + }; + NTSTATUS status; + status = ext_glVariantusvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertex2bvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glVertex2bvOES_params params = + { + .coords = (const GLbyte *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertex2bvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertex2hvNV( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex2hvNV_params params = + { + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertex2hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertex2xvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glVertex2xvOES_params params = + { + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertex2xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertex3bvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glVertex3bvOES_params params = + { + .coords = (const GLbyte *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertex3bvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertex3hvNV( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex3hvNV_params params = + { + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertex3hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertex3xvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glVertex3xvOES_params params = + { + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertex3xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertex4bvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glVertex4bvOES_params params = + { + .coords = (const GLbyte *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertex4bvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertex4hvNV( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glVertex4hvNV_params params = + { + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertex4hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertex4xvOES( void *args ) +{ + struct + { + PTR32 coords; + } *params32 = args; + struct glVertex4xvOES_params params = + { + .coords = (const GLfixed *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertex4xvOES( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayBindVertexBufferEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint bindingindex; + GLuint buffer; + PTR32 offset; + GLsizei stride; + } *params32 = args; + struct glVertexArrayBindVertexBufferEXT_params params = + { + .vaobj = params32->vaobj, + .bindingindex = params32->bindingindex, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .stride = params32->stride, + }; + NTSTATUS status; + status = ext_glVertexArrayBindVertexBufferEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayColorOffsetEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint buffer; + GLint size; + GLenum type; + GLsizei stride; + PTR32 offset; + } *params32 = args; + struct glVertexArrayColorOffsetEXT_params params = + { + .vaobj = params32->vaobj, + .buffer = params32->buffer, + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glVertexArrayColorOffsetEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayEdgeFlagOffsetEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint buffer; + GLsizei stride; + PTR32 offset; + } *params32 = args; + struct glVertexArrayEdgeFlagOffsetEXT_params params = + { + .vaobj = params32->vaobj, + .buffer = params32->buffer, + .stride = params32->stride, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glVertexArrayEdgeFlagOffsetEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayFogCoordOffsetEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint buffer; + GLenum type; + GLsizei stride; + PTR32 offset; + } *params32 = args; + struct glVertexArrayFogCoordOffsetEXT_params params = + { + .vaobj = params32->vaobj, + .buffer = params32->buffer, + .type = params32->type, + .stride = params32->stride, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glVertexArrayFogCoordOffsetEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayIndexOffsetEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint buffer; + GLenum type; + GLsizei stride; + PTR32 offset; + } *params32 = args; + struct glVertexArrayIndexOffsetEXT_params params = + { + .vaobj = params32->vaobj, + .buffer = params32->buffer, + .type = params32->type, + .stride = params32->stride, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glVertexArrayIndexOffsetEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayMultiTexCoordOffsetEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint buffer; + GLenum texunit; + GLint size; + GLenum type; + GLsizei stride; + PTR32 offset; + } *params32 = args; + struct glVertexArrayMultiTexCoordOffsetEXT_params params = + { + .vaobj = params32->vaobj, + .buffer = params32->buffer, + .texunit = params32->texunit, + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glVertexArrayMultiTexCoordOffsetEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayNormalOffsetEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint buffer; + GLenum type; + GLsizei stride; + PTR32 offset; + } *params32 = args; + struct glVertexArrayNormalOffsetEXT_params params = + { + .vaobj = params32->vaobj, + .buffer = params32->buffer, + .type = params32->type, + .stride = params32->stride, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glVertexArrayNormalOffsetEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayRangeAPPLE( void *args ) +{ + struct + { + GLsizei length; + PTR32 pointer; + } *params32 = args; + struct glVertexArrayRangeAPPLE_params params = + { + .length = params32->length, + .pointer = (void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glVertexArrayRangeAPPLE( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayRangeNV( void *args ) +{ + struct + { + GLsizei length; + PTR32 pointer; + } *params32 = args; + struct glVertexArrayRangeNV_params params = + { + .length = params32->length, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glVertexArrayRangeNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArraySecondaryColorOffsetEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint buffer; + GLint size; + GLenum type; + GLsizei stride; + PTR32 offset; + } *params32 = args; + struct glVertexArraySecondaryColorOffsetEXT_params params = + { + .vaobj = params32->vaobj, + .buffer = params32->buffer, + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glVertexArraySecondaryColorOffsetEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayTexCoordOffsetEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint buffer; + GLint size; + GLenum type; + GLsizei stride; + PTR32 offset; + } *params32 = args; + struct glVertexArrayTexCoordOffsetEXT_params params = + { + .vaobj = params32->vaobj, + .buffer = params32->buffer, + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glVertexArrayTexCoordOffsetEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayVertexAttribIOffsetEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint buffer; + GLuint index; + GLint size; + GLenum type; + GLsizei stride; + PTR32 offset; + } *params32 = args; + struct glVertexArrayVertexAttribIOffsetEXT_params params = + { + .vaobj = params32->vaobj, + .buffer = params32->buffer, + .index = params32->index, + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glVertexArrayVertexAttribIOffsetEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayVertexAttribLOffsetEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint buffer; + GLuint index; + GLint size; + GLenum type; + GLsizei stride; + PTR32 offset; + } *params32 = args; + struct glVertexArrayVertexAttribLOffsetEXT_params params = + { + .vaobj = params32->vaobj, + .buffer = params32->buffer, + .index = params32->index, + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glVertexArrayVertexAttribLOffsetEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayVertexAttribOffsetEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint buffer; + GLuint index; + GLint size; + GLenum type; + GLboolean normalized; + GLsizei stride; + PTR32 offset; + } *params32 = args; + struct glVertexArrayVertexAttribOffsetEXT_params params = + { + .vaobj = params32->vaobj, + .buffer = params32->buffer, + .index = params32->index, + .size = params32->size, + .type = params32->type, + .normalized = params32->normalized, + .stride = params32->stride, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glVertexArrayVertexAttribOffsetEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayVertexBuffer( void *args ) +{ + struct + { + GLuint vaobj; + GLuint bindingindex; + GLuint buffer; + PTR32 offset; + GLsizei stride; + } *params32 = args; + struct glVertexArrayVertexBuffer_params params = + { + .vaobj = params32->vaobj, + .bindingindex = params32->bindingindex, + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .stride = params32->stride, + }; + NTSTATUS status; + status = ext_glVertexArrayVertexBuffer( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexArrayVertexBuffers( void *args ) +{ + struct + { + GLuint vaobj; + GLuint first; + GLsizei count; + PTR32 buffers; + PTR32 offsets; + PTR32 strides; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glVertexArrayVertexOffsetEXT( void *args ) +{ + struct + { + GLuint vaobj; + GLuint buffer; + GLint size; + GLenum type; + GLsizei stride; + PTR32 offset; + } *params32 = args; + struct glVertexArrayVertexOffsetEXT_params params = + { + .vaobj = params32->vaobj, + .buffer = params32->buffer, + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .offset = (GLintptr)ULongToPtr(params32->offset), + }; + NTSTATUS status; + status = ext_glVertexArrayVertexOffsetEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib1dv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib1dv_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib1dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib1dvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib1dvARB_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib1dvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib1dvNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib1dvNV_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib1dvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib1fv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib1fv_params params = + { + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib1fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib1fvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib1fvARB_params params = + { + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib1fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib1fvNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib1fvNV_params params = + { + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib1fvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib1hvNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib1hvNV_params params = + { + .index = params32->index, + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib1hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib1sv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib1sv_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib1sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib1svARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib1svARB_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib1svARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib1svNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib1svNV_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib1svNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib2dv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib2dv_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib2dvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib2dvARB_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib2dvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib2dvNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib2dvNV_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib2dvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib2fv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib2fv_params params = + { + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib2fvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib2fvARB_params params = + { + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib2fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib2fvNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib2fvNV_params params = + { + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib2fvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib2hvNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib2hvNV_params params = + { + .index = params32->index, + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib2hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib2sv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib2sv_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib2sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib2svARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib2svARB_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib2svARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib2svNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib2svNV_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib2svNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib3dv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib3dv_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib3dvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib3dvARB_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib3dvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib3dvNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib3dvNV_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib3dvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib3fv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib3fv_params params = + { + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib3fvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib3fvARB_params params = + { + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib3fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib3fvNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib3fvNV_params params = + { + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib3fvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib3hvNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib3hvNV_params params = + { + .index = params32->index, + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib3hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib3sv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib3sv_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib3sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib3svARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib3svARB_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib3svARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib3svNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib3svNV_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib3svNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4Nbv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4Nbv_params params = + { + .index = params32->index, + .v = (const GLbyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4Nbv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4NbvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4NbvARB_params params = + { + .index = params32->index, + .v = (const GLbyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4NbvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4Niv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4Niv_params params = + { + .index = params32->index, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4Niv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4NivARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4NivARB_params params = + { + .index = params32->index, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4NivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4Nsv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4Nsv_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4Nsv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4NsvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4NsvARB_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4NsvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4Nubv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4Nubv_params params = + { + .index = params32->index, + .v = (const GLubyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4Nubv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4NubvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4NubvARB_params params = + { + .index = params32->index, + .v = (const GLubyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4NubvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4Nuiv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4Nuiv_params params = + { + .index = params32->index, + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4Nuiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4NuivARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4NuivARB_params params = + { + .index = params32->index, + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4NuivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4Nusv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4Nusv_params params = + { + .index = params32->index, + .v = (const GLushort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4Nusv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4NusvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4NusvARB_params params = + { + .index = params32->index, + .v = (const GLushort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4NusvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4bv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4bv_params params = + { + .index = params32->index, + .v = (const GLbyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4bv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4bvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4bvARB_params params = + { + .index = params32->index, + .v = (const GLbyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4bvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4dv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4dv_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4dvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4dvARB_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4dvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4dvNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4dvNV_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4dvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4fv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4fv_params params = + { + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4fvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4fvARB_params params = + { + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4fvNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4fvNV_params params = + { + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4fvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4hvNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4hvNV_params params = + { + .index = params32->index, + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4iv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4iv_params params = + { + .index = params32->index, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4ivARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4ivARB_params params = + { + .index = params32->index, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4ivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4sv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4sv_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4svARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4svARB_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4svARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4svNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4svNV_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4svNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4ubv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4ubv_params params = + { + .index = params32->index, + .v = (const GLubyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4ubv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4ubvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4ubvARB_params params = + { + .index = params32->index, + .v = (const GLubyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4ubvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4ubvNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4ubvNV_params params = + { + .index = params32->index, + .v = (const GLubyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4ubvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4uiv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4uiv_params params = + { + .index = params32->index, + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4uivARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4uivARB_params params = + { + .index = params32->index, + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4uivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4usv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4usv_params params = + { + .index = params32->index, + .v = (const GLushort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4usv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttrib4usvARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttrib4usvARB_params params = + { + .index = params32->index, + .v = (const GLushort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttrib4usvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI1iv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI1iv_params params = + { + .index = params32->index, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI1iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI1ivEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI1ivEXT_params params = + { + .index = params32->index, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI1ivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI1uiv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI1uiv_params params = + { + .index = params32->index, + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI1uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI1uivEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI1uivEXT_params params = + { + .index = params32->index, + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI1uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI2iv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI2iv_params params = + { + .index = params32->index, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI2iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI2ivEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI2ivEXT_params params = + { + .index = params32->index, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI2ivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI2uiv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI2uiv_params params = + { + .index = params32->index, + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI2uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI2uivEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI2uivEXT_params params = + { + .index = params32->index, + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI2uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI3iv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI3iv_params params = + { + .index = params32->index, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI3iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI3ivEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI3ivEXT_params params = + { + .index = params32->index, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI3ivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI3uiv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI3uiv_params params = + { + .index = params32->index, + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI3uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI3uivEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI3uivEXT_params params = + { + .index = params32->index, + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI3uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI4bv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI4bv_params params = + { + .index = params32->index, + .v = (const GLbyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI4bv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI4bvEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI4bvEXT_params params = + { + .index = params32->index, + .v = (const GLbyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI4bvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI4iv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI4iv_params params = + { + .index = params32->index, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI4iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI4ivEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI4ivEXT_params params = + { + .index = params32->index, + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI4ivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI4sv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI4sv_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI4sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI4svEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI4svEXT_params params = + { + .index = params32->index, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI4svEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI4ubv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI4ubv_params params = + { + .index = params32->index, + .v = (const GLubyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI4ubv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI4ubvEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI4ubvEXT_params params = + { + .index = params32->index, + .v = (const GLubyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI4ubvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI4uiv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI4uiv_params params = + { + .index = params32->index, + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI4uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI4uivEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI4uivEXT_params params = + { + .index = params32->index, + .v = (const GLuint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI4uivEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI4usv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI4usv_params params = + { + .index = params32->index, + .v = (const GLushort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI4usv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribI4usvEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribI4usvEXT_params params = + { + .index = params32->index, + .v = (const GLushort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribI4usvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribIPointer( void *args ) +{ + struct + { + GLuint index; + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glVertexAttribIPointer_params params = + { + .index = params32->index, + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glVertexAttribIPointer( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribIPointerEXT( void *args ) +{ + struct + { + GLuint index; + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glVertexAttribIPointerEXT_params params = + { + .index = params32->index, + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glVertexAttribIPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL1dv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL1dv_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL1dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL1dvEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL1dvEXT_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL1dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL1i64vNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL1i64vNV_params params = + { + .index = params32->index, + .v = (const GLint64EXT *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL1i64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL1ui64vARB( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL1ui64vARB_params params = + { + .index = params32->index, + .v = (const GLuint64EXT *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL1ui64vARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL1ui64vNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL1ui64vNV_params params = + { + .index = params32->index, + .v = (const GLuint64EXT *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL1ui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL2dv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL2dv_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL2dvEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL2dvEXT_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL2dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL2i64vNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL2i64vNV_params params = + { + .index = params32->index, + .v = (const GLint64EXT *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL2i64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL2ui64vNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL2ui64vNV_params params = + { + .index = params32->index, + .v = (const GLuint64EXT *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL2ui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL3dv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL3dv_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL3dvEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL3dvEXT_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL3dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL3i64vNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL3i64vNV_params params = + { + .index = params32->index, + .v = (const GLint64EXT *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL3i64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL3ui64vNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL3ui64vNV_params params = + { + .index = params32->index, + .v = (const GLuint64EXT *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL3ui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL4dv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL4dv_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL4dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL4dvEXT( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL4dvEXT_params params = + { + .index = params32->index, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL4dvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL4i64vNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL4i64vNV_params params = + { + .index = params32->index, + .v = (const GLint64EXT *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL4i64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribL4ui64vNV( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glVertexAttribL4ui64vNV_params params = + { + .index = params32->index, + .v = (const GLuint64EXT *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribL4ui64vNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribLPointer( void *args ) +{ + struct + { + GLuint index; + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glVertexAttribLPointer_params params = + { + .index = params32->index, + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glVertexAttribLPointer( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribLPointerEXT( void *args ) +{ + struct + { + GLuint index; + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glVertexAttribLPointerEXT_params params = + { + .index = params32->index, + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glVertexAttribLPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribP1uiv( void *args ) +{ + struct + { + GLuint index; + GLenum type; + GLboolean normalized; + PTR32 value; + } *params32 = args; + struct glVertexAttribP1uiv_params params = + { + .index = params32->index, + .type = params32->type, + .normalized = params32->normalized, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glVertexAttribP1uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribP2uiv( void *args ) +{ + struct + { + GLuint index; + GLenum type; + GLboolean normalized; + PTR32 value; + } *params32 = args; + struct glVertexAttribP2uiv_params params = + { + .index = params32->index, + .type = params32->type, + .normalized = params32->normalized, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glVertexAttribP2uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribP3uiv( void *args ) +{ + struct + { + GLuint index; + GLenum type; + GLboolean normalized; + PTR32 value; + } *params32 = args; + struct glVertexAttribP3uiv_params params = + { + .index = params32->index, + .type = params32->type, + .normalized = params32->normalized, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glVertexAttribP3uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribP4uiv( void *args ) +{ + struct + { + GLuint index; + GLenum type; + GLboolean normalized; + PTR32 value; + } *params32 = args; + struct glVertexAttribP4uiv_params params = + { + .index = params32->index, + .type = params32->type, + .normalized = params32->normalized, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glVertexAttribP4uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribPointer( void *args ) +{ + struct + { + GLuint index; + GLint size; + GLenum type; + GLboolean normalized; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glVertexAttribPointer_params params = + { + .index = params32->index, + .size = params32->size, + .type = params32->type, + .normalized = params32->normalized, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glVertexAttribPointer( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribPointerARB( void *args ) +{ + struct + { + GLuint index; + GLint size; + GLenum type; + GLboolean normalized; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glVertexAttribPointerARB_params params = + { + .index = params32->index, + .size = params32->size, + .type = params32->type, + .normalized = params32->normalized, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glVertexAttribPointerARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribPointerNV( void *args ) +{ + struct + { + GLuint index; + GLint fsize; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glVertexAttribPointerNV_params params = + { + .index = params32->index, + .fsize = params32->fsize, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glVertexAttribPointerNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs1dvNV( void *args ) +{ + struct + { + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glVertexAttribs1dvNV_params params = + { + .index = params32->index, + .count = params32->count, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs1dvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs1fvNV( void *args ) +{ + struct + { + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glVertexAttribs1fvNV_params params = + { + .index = params32->index, + .count = params32->count, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs1fvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs1hvNV( void *args ) +{ + struct + { + GLuint index; + GLsizei n; + PTR32 v; + } *params32 = args; + struct glVertexAttribs1hvNV_params params = + { + .index = params32->index, + .n = params32->n, + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs1hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs1svNV( void *args ) +{ + struct + { + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glVertexAttribs1svNV_params params = + { + .index = params32->index, + .count = params32->count, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs1svNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs2dvNV( void *args ) +{ + struct + { + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glVertexAttribs2dvNV_params params = + { + .index = params32->index, + .count = params32->count, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs2dvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs2fvNV( void *args ) +{ + struct + { + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glVertexAttribs2fvNV_params params = + { + .index = params32->index, + .count = params32->count, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs2fvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs2hvNV( void *args ) +{ + struct + { + GLuint index; + GLsizei n; + PTR32 v; + } *params32 = args; + struct glVertexAttribs2hvNV_params params = + { + .index = params32->index, + .n = params32->n, + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs2hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs2svNV( void *args ) +{ + struct + { + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glVertexAttribs2svNV_params params = + { + .index = params32->index, + .count = params32->count, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs2svNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs3dvNV( void *args ) +{ + struct + { + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glVertexAttribs3dvNV_params params = + { + .index = params32->index, + .count = params32->count, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs3dvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs3fvNV( void *args ) +{ + struct + { + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glVertexAttribs3fvNV_params params = + { + .index = params32->index, + .count = params32->count, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs3fvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs3hvNV( void *args ) +{ + struct + { + GLuint index; + GLsizei n; + PTR32 v; + } *params32 = args; + struct glVertexAttribs3hvNV_params params = + { + .index = params32->index, + .n = params32->n, + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs3hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs3svNV( void *args ) +{ + struct + { + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glVertexAttribs3svNV_params params = + { + .index = params32->index, + .count = params32->count, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs3svNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs4dvNV( void *args ) +{ + struct + { + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glVertexAttribs4dvNV_params params = + { + .index = params32->index, + .count = params32->count, + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs4dvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs4fvNV( void *args ) +{ + struct + { + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glVertexAttribs4fvNV_params params = + { + .index = params32->index, + .count = params32->count, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs4fvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs4hvNV( void *args ) +{ + struct + { + GLuint index; + GLsizei n; + PTR32 v; + } *params32 = args; + struct glVertexAttribs4hvNV_params params = + { + .index = params32->index, + .n = params32->n, + .v = (const GLhalfNV *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs4hvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs4svNV( void *args ) +{ + struct + { + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glVertexAttribs4svNV_params params = + { + .index = params32->index, + .count = params32->count, + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs4svNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexAttribs4ubvNV( void *args ) +{ + struct + { + GLuint index; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glVertexAttribs4ubvNV_params params = + { + .index = params32->index, + .count = params32->count, + .v = (const GLubyte *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glVertexAttribs4ubvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexP2uiv( void *args ) +{ + struct + { + GLenum type; + PTR32 value; + } *params32 = args; + struct glVertexP2uiv_params params = + { + .type = params32->type, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glVertexP2uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexP3uiv( void *args ) +{ + struct + { + GLenum type; + PTR32 value; + } *params32 = args; + struct glVertexP3uiv_params params = + { + .type = params32->type, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glVertexP3uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexP4uiv( void *args ) +{ + struct + { + GLenum type; + PTR32 value; + } *params32 = args; + struct glVertexP4uiv_params params = + { + .type = params32->type, + .value = (const GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_glVertexP4uiv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexPointerEXT( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLsizei stride; + GLsizei count; + PTR32 pointer; + } *params32 = args; + struct glVertexPointerEXT_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .count = params32->count, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glVertexPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexPointerListIBM( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLint stride; + PTR32 pointer; + GLint ptrstride; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glVertexPointervINTEL( void *args ) +{ + struct + { + GLint size; + GLenum type; + PTR32 pointer; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_glVertexStream1dvATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream1dvATI_params params = + { + .stream = params32->stream, + .coords = (const GLdouble *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream1dvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream1fvATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream1fvATI_params params = + { + .stream = params32->stream, + .coords = (const GLfloat *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream1fvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream1ivATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream1ivATI_params params = + { + .stream = params32->stream, + .coords = (const GLint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream1ivATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream1svATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream1svATI_params params = + { + .stream = params32->stream, + .coords = (const GLshort *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream1svATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream2dvATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream2dvATI_params params = + { + .stream = params32->stream, + .coords = (const GLdouble *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream2dvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream2fvATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream2fvATI_params params = + { + .stream = params32->stream, + .coords = (const GLfloat *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream2fvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream2ivATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream2ivATI_params params = + { + .stream = params32->stream, + .coords = (const GLint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream2ivATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream2svATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream2svATI_params params = + { + .stream = params32->stream, + .coords = (const GLshort *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream2svATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream3dvATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream3dvATI_params params = + { + .stream = params32->stream, + .coords = (const GLdouble *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream3dvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream3fvATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream3fvATI_params params = + { + .stream = params32->stream, + .coords = (const GLfloat *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream3fvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream3ivATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream3ivATI_params params = + { + .stream = params32->stream, + .coords = (const GLint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream3ivATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream3svATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream3svATI_params params = + { + .stream = params32->stream, + .coords = (const GLshort *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream3svATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream4dvATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream4dvATI_params params = + { + .stream = params32->stream, + .coords = (const GLdouble *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream4dvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream4fvATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream4fvATI_params params = + { + .stream = params32->stream, + .coords = (const GLfloat *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream4fvATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream4ivATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream4ivATI_params params = + { + .stream = params32->stream, + .coords = (const GLint *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream4ivATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexStream4svATI( void *args ) +{ + struct + { + GLenum stream; + PTR32 coords; + } *params32 = args; + struct glVertexStream4svATI_params params = + { + .stream = params32->stream, + .coords = (const GLshort *)ULongToPtr(params32->coords), + }; + NTSTATUS status; + status = ext_glVertexStream4svATI( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexWeightPointerEXT( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glVertexWeightPointerEXT_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glVertexWeightPointerEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexWeightfvEXT( void *args ) +{ + struct + { + PTR32 weight; + } *params32 = args; + struct glVertexWeightfvEXT_params params = + { + .weight = (const GLfloat *)ULongToPtr(params32->weight), + }; + NTSTATUS status; + status = ext_glVertexWeightfvEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVertexWeighthvNV( void *args ) +{ + struct + { + PTR32 weight; + } *params32 = args; + struct glVertexWeighthvNV_params params = + { + .weight = (const GLhalfNV *)ULongToPtr(params32->weight), + }; + NTSTATUS status; + status = ext_glVertexWeighthvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVideoCaptureNV( void *args ) +{ + struct + { + GLuint video_capture_slot; + PTR32 sequence_num; + PTR32 capture_time; + GLenum ret; + } *params32 = args; + struct glVideoCaptureNV_params params = + { + .video_capture_slot = params32->video_capture_slot, + .sequence_num = (GLuint *)ULongToPtr(params32->sequence_num), + .capture_time = (GLuint64EXT *)ULongToPtr(params32->capture_time), + }; + NTSTATUS status; + status = ext_glVideoCaptureNV( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_glVideoCaptureStreamParameterdvNV( void *args ) +{ + struct + { + GLuint video_capture_slot; + GLuint stream; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glVideoCaptureStreamParameterdvNV_params params = + { + .video_capture_slot = params32->video_capture_slot, + .stream = params32->stream, + .pname = params32->pname, + .params = (const GLdouble *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glVideoCaptureStreamParameterdvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVideoCaptureStreamParameterfvNV( void *args ) +{ + struct + { + GLuint video_capture_slot; + GLuint stream; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glVideoCaptureStreamParameterfvNV_params params = + { + .video_capture_slot = params32->video_capture_slot, + .stream = params32->stream, + .pname = params32->pname, + .params = (const GLfloat *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glVideoCaptureStreamParameterfvNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glVideoCaptureStreamParameterivNV( void *args ) +{ + struct + { + GLuint video_capture_slot; + GLuint stream; + GLenum pname; + PTR32 params; + } *params32 = args; + struct glVideoCaptureStreamParameterivNV_params params = + { + .video_capture_slot = params32->video_capture_slot, + .stream = params32->stream, + .pname = params32->pname, + .params = (const GLint *)ULongToPtr(params32->params), + }; + NTSTATUS status; + status = ext_glVideoCaptureStreamParameterivNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glViewportArrayv( void *args ) +{ + struct + { + GLuint first; + GLsizei count; + PTR32 v; + } *params32 = args; + struct glViewportArrayv_params params = + { + .first = params32->first, + .count = params32->count, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glViewportArrayv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glViewportIndexedfv( void *args ) +{ + struct + { + GLuint index; + PTR32 v; + } *params32 = args; + struct glViewportIndexedfv_params params = + { + .index = params32->index, + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glViewportIndexedfv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWaitSemaphoreEXT( void *args ) +{ + struct + { + GLuint semaphore; + GLuint numBufferBarriers; + PTR32 buffers; + GLuint numTextureBarriers; + PTR32 textures; + PTR32 srcLayouts; + } *params32 = args; + struct glWaitSemaphoreEXT_params params = + { + .semaphore = params32->semaphore, + .numBufferBarriers = params32->numBufferBarriers, + .buffers = (const GLuint *)ULongToPtr(params32->buffers), + .numTextureBarriers = params32->numTextureBarriers, + .textures = (const GLuint *)ULongToPtr(params32->textures), + .srcLayouts = (const GLenum *)ULongToPtr(params32->srcLayouts), + }; + NTSTATUS status; + status = ext_glWaitSemaphoreEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWaitSemaphoreui64NVX( void *args ) +{ + struct + { + GLuint waitGpu; + GLsizei fenceObjectCount; + PTR32 semaphoreArray; + PTR32 fenceValueArray; + } *params32 = args; + struct glWaitSemaphoreui64NVX_params params = + { + .waitGpu = params32->waitGpu, + .fenceObjectCount = params32->fenceObjectCount, + .semaphoreArray = (const GLuint *)ULongToPtr(params32->semaphoreArray), + .fenceValueArray = (const GLuint64 *)ULongToPtr(params32->fenceValueArray), + }; + NTSTATUS status; + status = ext_glWaitSemaphoreui64NVX( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWaitSync( void *args ) +{ + struct + { + PTR32 sync; + GLbitfield flags; + GLuint64 timeout; + } *params32 = args; + struct glWaitSync_params params = + { + .sync = (GLsync)ULongToPtr(params32->sync), + .flags = params32->flags, + .timeout = params32->timeout, + }; + NTSTATUS status; + status = ext_glWaitSync( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWeightPathsNV( void *args ) +{ + struct + { + GLuint resultPath; + GLsizei numPaths; + PTR32 paths; + PTR32 weights; + } *params32 = args; + struct glWeightPathsNV_params params = + { + .resultPath = params32->resultPath, + .numPaths = params32->numPaths, + .paths = (const GLuint *)ULongToPtr(params32->paths), + .weights = (const GLfloat *)ULongToPtr(params32->weights), + }; + NTSTATUS status; + status = ext_glWeightPathsNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWeightPointerARB( void *args ) +{ + struct + { + GLint size; + GLenum type; + GLsizei stride; + PTR32 pointer; + } *params32 = args; + struct glWeightPointerARB_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .pointer = (const void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_glWeightPointerARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWeightbvARB( void *args ) +{ + struct + { + GLint size; + PTR32 weights; + } *params32 = args; + struct glWeightbvARB_params params = + { + .size = params32->size, + .weights = (const GLbyte *)ULongToPtr(params32->weights), + }; + NTSTATUS status; + status = ext_glWeightbvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWeightdvARB( void *args ) +{ + struct + { + GLint size; + PTR32 weights; + } *params32 = args; + struct glWeightdvARB_params params = + { + .size = params32->size, + .weights = (const GLdouble *)ULongToPtr(params32->weights), + }; + NTSTATUS status; + status = ext_glWeightdvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWeightfvARB( void *args ) +{ + struct + { + GLint size; + PTR32 weights; + } *params32 = args; + struct glWeightfvARB_params params = + { + .size = params32->size, + .weights = (const GLfloat *)ULongToPtr(params32->weights), + }; + NTSTATUS status; + status = ext_glWeightfvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWeightivARB( void *args ) +{ + struct + { + GLint size; + PTR32 weights; + } *params32 = args; + struct glWeightivARB_params params = + { + .size = params32->size, + .weights = (const GLint *)ULongToPtr(params32->weights), + }; + NTSTATUS status; + status = ext_glWeightivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWeightsvARB( void *args ) +{ + struct + { + GLint size; + PTR32 weights; + } *params32 = args; + struct glWeightsvARB_params params = + { + .size = params32->size, + .weights = (const GLshort *)ULongToPtr(params32->weights), + }; + NTSTATUS status; + status = ext_glWeightsvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWeightubvARB( void *args ) +{ + struct + { + GLint size; + PTR32 weights; + } *params32 = args; + struct glWeightubvARB_params params = + { + .size = params32->size, + .weights = (const GLubyte *)ULongToPtr(params32->weights), + }; + NTSTATUS status; + status = ext_glWeightubvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWeightuivARB( void *args ) +{ + struct + { + GLint size; + PTR32 weights; + } *params32 = args; + struct glWeightuivARB_params params = + { + .size = params32->size, + .weights = (const GLuint *)ULongToPtr(params32->weights), + }; + NTSTATUS status; + status = ext_glWeightuivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWeightusvARB( void *args ) +{ + struct + { + GLint size; + PTR32 weights; + } *params32 = args; + struct glWeightusvARB_params params = + { + .size = params32->size, + .weights = (const GLushort *)ULongToPtr(params32->weights), + }; + NTSTATUS status; + status = ext_glWeightusvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos2dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos2dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos2dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos2dvARB( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos2dvARB_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos2dvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos2dvMESA( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos2dvMESA_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos2dvMESA( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos2fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos2fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos2fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos2fvARB( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos2fvARB_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos2fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos2fvMESA( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos2fvMESA_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos2fvMESA( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos2iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos2iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos2iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos2ivARB( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos2ivARB_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos2ivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos2ivMESA( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos2ivMESA_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos2ivMESA( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos2sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos2sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos2sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos2svARB( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos2svARB_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos2svARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos2svMESA( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos2svMESA_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos2svMESA( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos3dv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos3dv_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos3dv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos3dvARB( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos3dvARB_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos3dvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos3dvMESA( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos3dvMESA_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos3dvMESA( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos3fv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos3fv_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos3fv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos3fvARB( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos3fvARB_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos3fvARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos3fvMESA( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos3fvMESA_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos3fvMESA( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos3iv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos3iv_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos3iv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos3ivARB( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos3ivARB_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos3ivARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos3ivMESA( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos3ivMESA_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos3ivMESA( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos3sv( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos3sv_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos3sv( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos3svARB( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos3svARB_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos3svARB( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos3svMESA( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos3svMESA_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos3svMESA( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos4dvMESA( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos4dvMESA_params params = + { + .v = (const GLdouble *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos4dvMESA( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos4fvMESA( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos4fvMESA_params params = + { + .v = (const GLfloat *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos4fvMESA( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos4ivMESA( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos4ivMESA_params params = + { + .v = (const GLint *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos4ivMESA( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowPos4svMESA( void *args ) +{ + struct + { + PTR32 v; + } *params32 = args; + struct glWindowPos4svMESA_params params = + { + .v = (const GLshort *)ULongToPtr(params32->v), + }; + NTSTATUS status; + status = ext_glWindowPos4svMESA( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_glWindowRectanglesEXT( void *args ) +{ + struct + { + GLenum mode; + GLsizei count; + PTR32 box; + } *params32 = args; + struct glWindowRectanglesEXT_params params = + { + .mode = params32->mode, + .count = params32->count, + .box = (const GLint *)ULongToPtr(params32->box), + }; + NTSTATUS status; + status = ext_glWindowRectanglesEXT( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_wglAllocateMemoryNV( void *args ) +{ + struct + { + GLsizei size; + GLfloat readfreq; + GLfloat writefreq; + GLfloat priority; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_wglBindTexImageARB( void *args ) +{ + struct + { + PTR32 hPbuffer; + int iBuffer; + BOOL ret; + } *params32 = args; + struct wglBindTexImageARB_params params = + { + .hPbuffer = (HPBUFFERARB)ULongToPtr(params32->hPbuffer), + .iBuffer = params32->iBuffer, + }; + NTSTATUS status; + status = ext_wglBindTexImageARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_wglChoosePixelFormatARB( void *args ) +{ + struct + { + PTR32 hdc; + PTR32 piAttribIList; + PTR32 pfAttribFList; + UINT nMaxFormats; + PTR32 piFormats; + PTR32 nNumFormats; + BOOL ret; + } *params32 = args; + struct wglChoosePixelFormatARB_params params = + { + .hdc = (HDC)ULongToPtr(params32->hdc), + .piAttribIList = (const int *)ULongToPtr(params32->piAttribIList), + .pfAttribFList = (const FLOAT *)ULongToPtr(params32->pfAttribFList), + .nMaxFormats = params32->nMaxFormats, + .piFormats = (int *)ULongToPtr(params32->piFormats), + .nNumFormats = (UINT *)ULongToPtr(params32->nNumFormats), + }; + NTSTATUS status; + status = ext_wglChoosePixelFormatARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_wglCreateContextAttribsARB( void *args ) +{ + struct + { + PTR32 hDC; + PTR32 hShareContext; + PTR32 attribList; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_wglCreatePbufferARB( void *args ) +{ + struct + { + PTR32 hDC; + int iPixelFormat; + int iWidth; + int iHeight; + PTR32 piAttribList; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_wglDestroyPbufferARB( void *args ) +{ + struct + { + PTR32 hPbuffer; + BOOL ret; + } *params32 = args; + struct wglDestroyPbufferARB_params params = + { + .hPbuffer = (HPBUFFERARB)ULongToPtr(params32->hPbuffer), + }; + NTSTATUS status; + status = ext_wglDestroyPbufferARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_wglFreeMemoryNV( void *args ) +{ + struct + { + PTR32 pointer; + } *params32 = args; + struct wglFreeMemoryNV_params params = + { + .pointer = (void *)ULongToPtr(params32->pointer), + }; + NTSTATUS status; + status = ext_wglFreeMemoryNV( ¶ms ); + return status; +} + +static NTSTATUS wow64_ext_wglGetCurrentReadDCARB( void *args ) +{ + struct + { + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_wglGetExtensionsStringARB( void *args ) +{ + struct + { + PTR32 hdc; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_wglGetExtensionsStringEXT( void *args ) +{ + struct + { + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_wglGetPbufferDCARB( void *args ) +{ + struct + { + PTR32 hPbuffer; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_wglGetPixelFormatAttribfvARB( void *args ) +{ + struct + { + PTR32 hdc; + int iPixelFormat; + int iLayerPlane; + UINT nAttributes; + PTR32 piAttributes; + PTR32 pfValues; + BOOL ret; + } *params32 = args; + struct wglGetPixelFormatAttribfvARB_params params = + { + .hdc = (HDC)ULongToPtr(params32->hdc), + .iPixelFormat = params32->iPixelFormat, + .iLayerPlane = params32->iLayerPlane, + .nAttributes = params32->nAttributes, + .piAttributes = (const int *)ULongToPtr(params32->piAttributes), + .pfValues = (FLOAT *)ULongToPtr(params32->pfValues), + }; + NTSTATUS status; + status = ext_wglGetPixelFormatAttribfvARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_wglGetPixelFormatAttribivARB( void *args ) +{ + struct + { + PTR32 hdc; + int iPixelFormat; + int iLayerPlane; + UINT nAttributes; + PTR32 piAttributes; + PTR32 piValues; + BOOL ret; + } *params32 = args; + struct wglGetPixelFormatAttribivARB_params params = + { + .hdc = (HDC)ULongToPtr(params32->hdc), + .iPixelFormat = params32->iPixelFormat, + .iLayerPlane = params32->iLayerPlane, + .nAttributes = params32->nAttributes, + .piAttributes = (const int *)ULongToPtr(params32->piAttributes), + .piValues = (int *)ULongToPtr(params32->piValues), + }; + NTSTATUS status; + status = ext_wglGetPixelFormatAttribivARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_wglMakeContextCurrentARB( void *args ) +{ + struct + { + PTR32 hDrawDC; + PTR32 hReadDC; + PTR32 hglrc; + BOOL ret; + } *params32 = args; + struct wglMakeContextCurrentARB_params params = + { + .hDrawDC = (HDC)ULongToPtr(params32->hDrawDC), + .hReadDC = (HDC)ULongToPtr(params32->hReadDC), + .hglrc = (HGLRC)ULongToPtr(params32->hglrc), + }; + NTSTATUS status; + status = ext_wglMakeContextCurrentARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_wglQueryCurrentRendererIntegerWINE( void *args ) +{ + struct + { + GLenum attribute; + PTR32 value; + BOOL ret; + } *params32 = args; + struct wglQueryCurrentRendererIntegerWINE_params params = + { + .attribute = params32->attribute, + .value = (GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_wglQueryCurrentRendererIntegerWINE( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_wglQueryCurrentRendererStringWINE( void *args ) +{ + struct + { + GLenum attribute; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_wglQueryPbufferARB( void *args ) +{ + struct + { + PTR32 hPbuffer; + int iAttribute; + PTR32 piValue; + BOOL ret; + } *params32 = args; + struct wglQueryPbufferARB_params params = + { + .hPbuffer = (HPBUFFERARB)ULongToPtr(params32->hPbuffer), + .iAttribute = params32->iAttribute, + .piValue = (int *)ULongToPtr(params32->piValue), + }; + NTSTATUS status; + status = ext_wglQueryPbufferARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_wglQueryRendererIntegerWINE( void *args ) +{ + struct + { + PTR32 dc; + GLint renderer; + GLenum attribute; + PTR32 value; + BOOL ret; + } *params32 = args; + struct wglQueryRendererIntegerWINE_params params = + { + .dc = (HDC)ULongToPtr(params32->dc), + .renderer = params32->renderer, + .attribute = params32->attribute, + .value = (GLuint *)ULongToPtr(params32->value), + }; + NTSTATUS status; + status = ext_wglQueryRendererIntegerWINE( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_wglQueryRendererStringWINE( void *args ) +{ + struct + { + PTR32 dc; + GLint renderer; + GLenum attribute; + PTR32 ret; + } *params32 = args; + FIXME( "params32 %p stub!\n", params32 ); + return STATUS_NOT_IMPLEMENTED; +} + +static NTSTATUS wow64_ext_wglReleasePbufferDCARB( void *args ) +{ + struct + { + PTR32 hPbuffer; + PTR32 hDC; + int ret; + } *params32 = args; + struct wglReleasePbufferDCARB_params params = + { + .hPbuffer = (HPBUFFERARB)ULongToPtr(params32->hPbuffer), + .hDC = (HDC)ULongToPtr(params32->hDC), + }; + NTSTATUS status; + status = ext_wglReleasePbufferDCARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_wglReleaseTexImageARB( void *args ) +{ + struct + { + PTR32 hPbuffer; + int iBuffer; + BOOL ret; + } *params32 = args; + struct wglReleaseTexImageARB_params params = + { + .hPbuffer = (HPBUFFERARB)ULongToPtr(params32->hPbuffer), + .iBuffer = params32->iBuffer, + }; + NTSTATUS status; + status = ext_wglReleaseTexImageARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_wglSetPbufferAttribARB( void *args ) +{ + struct + { + PTR32 hPbuffer; + PTR32 piAttribList; + BOOL ret; + } *params32 = args; + struct wglSetPbufferAttribARB_params params = + { + .hPbuffer = (HPBUFFERARB)ULongToPtr(params32->hPbuffer), + .piAttribList = (const int *)ULongToPtr(params32->piAttribList), + }; + NTSTATUS status; + status = ext_wglSetPbufferAttribARB( ¶ms ); + params32->ret = params.ret; + return status; +} + +static NTSTATUS wow64_ext_wglSetPixelFormatWINE( void *args ) +{ + struct + { + PTR32 hdc; + int format; + BOOL ret; + } *params32 = args; + struct wglSetPixelFormatWINE_params params = + { + .hdc = (HDC)ULongToPtr(params32->hdc), + .format = params32->format, + }; + NTSTATUS status; + status = ext_wglSetPixelFormatWINE( ¶ms ); + params32->ret = params.ret; + return status; +} + + +const unixlib_entry_t __wine_unix_call_wow64_funcs[] = +{ + &thread_attach, + &wow64_wgl_wglCopyContext, + &wow64_wgl_wglCreateContext, + &wow64_wgl_wglDeleteContext, + &wow64_wgl_wglDescribePixelFormat, + &wow64_wgl_wglGetPixelFormat, + &wow64_wgl_wglGetProcAddress, + &wow64_wgl_wglMakeCurrent, + &wow64_wgl_wglSetPixelFormat, + &wow64_wgl_wglShareLists, + &wow64_wgl_wglSwapBuffers, + &gl_glAccum, + &gl_glAlphaFunc, + &wow64_gl_glAreTexturesResident, + &gl_glArrayElement, + &gl_glBegin, + &gl_glBindTexture, + &wow64_gl_glBitmap, + &gl_glBlendFunc, + &gl_glCallList, + &wow64_gl_glCallLists, + &gl_glClear, + &gl_glClearAccum, + &gl_glClearColor, + &gl_glClearDepth, + &gl_glClearIndex, + &gl_glClearStencil, + &wow64_gl_glClipPlane, + &gl_glColor3b, + &wow64_gl_glColor3bv, + &gl_glColor3d, + &wow64_gl_glColor3dv, + &gl_glColor3f, + &wow64_gl_glColor3fv, + &gl_glColor3i, + &wow64_gl_glColor3iv, + &gl_glColor3s, + &wow64_gl_glColor3sv, + &gl_glColor3ub, + &wow64_gl_glColor3ubv, + &gl_glColor3ui, + &wow64_gl_glColor3uiv, + &gl_glColor3us, + &wow64_gl_glColor3usv, + &gl_glColor4b, + &wow64_gl_glColor4bv, + &gl_glColor4d, + &wow64_gl_glColor4dv, + &gl_glColor4f, + &wow64_gl_glColor4fv, + &gl_glColor4i, + &wow64_gl_glColor4iv, + &gl_glColor4s, + &wow64_gl_glColor4sv, + &gl_glColor4ub, + &wow64_gl_glColor4ubv, + &gl_glColor4ui, + &wow64_gl_glColor4uiv, + &gl_glColor4us, + &wow64_gl_glColor4usv, + &gl_glColorMask, + &gl_glColorMaterial, + &wow64_gl_glColorPointer, + &gl_glCopyPixels, + &gl_glCopyTexImage1D, + &gl_glCopyTexImage2D, + &gl_glCopyTexSubImage1D, + &gl_glCopyTexSubImage2D, + &gl_glCullFace, + &gl_glDeleteLists, + &wow64_gl_glDeleteTextures, + &gl_glDepthFunc, + &gl_glDepthMask, + &gl_glDepthRange, + &gl_glDisable, + &gl_glDisableClientState, + &gl_glDrawArrays, + &gl_glDrawBuffer, + &wow64_gl_glDrawElements, + &wow64_gl_glDrawPixels, + &gl_glEdgeFlag, + &wow64_gl_glEdgeFlagPointer, + &wow64_gl_glEdgeFlagv, + &gl_glEnable, + &gl_glEnableClientState, + &gl_glEnd, + &gl_glEndList, + &gl_glEvalCoord1d, + &wow64_gl_glEvalCoord1dv, + &gl_glEvalCoord1f, + &wow64_gl_glEvalCoord1fv, + &gl_glEvalCoord2d, + &wow64_gl_glEvalCoord2dv, + &gl_glEvalCoord2f, + &wow64_gl_glEvalCoord2fv, + &gl_glEvalMesh1, + &gl_glEvalMesh2, + &gl_glEvalPoint1, + &gl_glEvalPoint2, + &wow64_gl_glFeedbackBuffer, + &gl_glFinish, + &gl_glFlush, + &gl_glFogf, + &wow64_gl_glFogfv, + &gl_glFogi, + &wow64_gl_glFogiv, + &gl_glFrontFace, + &gl_glFrustum, + &gl_glGenLists, + &wow64_gl_glGenTextures, + &wow64_gl_glGetBooleanv, + &wow64_gl_glGetClipPlane, + &wow64_gl_glGetDoublev, + &gl_glGetError, + &wow64_gl_glGetFloatv, + &wow64_gl_glGetIntegerv, + &wow64_gl_glGetLightfv, + &wow64_gl_glGetLightiv, + &wow64_gl_glGetMapdv, + &wow64_gl_glGetMapfv, + &wow64_gl_glGetMapiv, + &wow64_gl_glGetMaterialfv, + &wow64_gl_glGetMaterialiv, + &wow64_gl_glGetPixelMapfv, + &wow64_gl_glGetPixelMapuiv, + &wow64_gl_glGetPixelMapusv, + &wow64_gl_glGetPointerv, + &wow64_gl_glGetPolygonStipple, + &wow64_gl_glGetString, + &wow64_gl_glGetTexEnvfv, + &wow64_gl_glGetTexEnviv, + &wow64_gl_glGetTexGendv, + &wow64_gl_glGetTexGenfv, + &wow64_gl_glGetTexGeniv, + &wow64_gl_glGetTexImage, + &wow64_gl_glGetTexLevelParameterfv, + &wow64_gl_glGetTexLevelParameteriv, + &wow64_gl_glGetTexParameterfv, + &wow64_gl_glGetTexParameteriv, + &gl_glHint, + &gl_glIndexMask, + &wow64_gl_glIndexPointer, + &gl_glIndexd, + &wow64_gl_glIndexdv, + &gl_glIndexf, + &wow64_gl_glIndexfv, + &gl_glIndexi, + &wow64_gl_glIndexiv, + &gl_glIndexs, + &wow64_gl_glIndexsv, + &gl_glIndexub, + &wow64_gl_glIndexubv, + &gl_glInitNames, + &wow64_gl_glInterleavedArrays, + &gl_glIsEnabled, + &gl_glIsList, + &gl_glIsTexture, + &gl_glLightModelf, + &wow64_gl_glLightModelfv, + &gl_glLightModeli, + &wow64_gl_glLightModeliv, + &gl_glLightf, + &wow64_gl_glLightfv, + &gl_glLighti, + &wow64_gl_glLightiv, + &gl_glLineStipple, + &gl_glLineWidth, + &gl_glListBase, + &gl_glLoadIdentity, + &wow64_gl_glLoadMatrixd, + &wow64_gl_glLoadMatrixf, + &gl_glLoadName, + &gl_glLogicOp, + &wow64_gl_glMap1d, + &wow64_gl_glMap1f, + &wow64_gl_glMap2d, + &wow64_gl_glMap2f, + &gl_glMapGrid1d, + &gl_glMapGrid1f, + &gl_glMapGrid2d, + &gl_glMapGrid2f, + &gl_glMaterialf, + &wow64_gl_glMaterialfv, + &gl_glMateriali, + &wow64_gl_glMaterialiv, + &gl_glMatrixMode, + &wow64_gl_glMultMatrixd, + &wow64_gl_glMultMatrixf, + &gl_glNewList, + &gl_glNormal3b, + &wow64_gl_glNormal3bv, + &gl_glNormal3d, + &wow64_gl_glNormal3dv, + &gl_glNormal3f, + &wow64_gl_glNormal3fv, + &gl_glNormal3i, + &wow64_gl_glNormal3iv, + &gl_glNormal3s, + &wow64_gl_glNormal3sv, + &wow64_gl_glNormalPointer, + &gl_glOrtho, + &gl_glPassThrough, + &wow64_gl_glPixelMapfv, + &wow64_gl_glPixelMapuiv, + &wow64_gl_glPixelMapusv, + &gl_glPixelStoref, + &gl_glPixelStorei, + &gl_glPixelTransferf, + &gl_glPixelTransferi, + &gl_glPixelZoom, + &gl_glPointSize, + &gl_glPolygonMode, + &gl_glPolygonOffset, + &wow64_gl_glPolygonStipple, + &gl_glPopAttrib, + &gl_glPopClientAttrib, + &gl_glPopMatrix, + &gl_glPopName, + &wow64_gl_glPrioritizeTextures, + &gl_glPushAttrib, + &gl_glPushClientAttrib, + &gl_glPushMatrix, + &gl_glPushName, + &gl_glRasterPos2d, + &wow64_gl_glRasterPos2dv, + &gl_glRasterPos2f, + &wow64_gl_glRasterPos2fv, + &gl_glRasterPos2i, + &wow64_gl_glRasterPos2iv, + &gl_glRasterPos2s, + &wow64_gl_glRasterPos2sv, + &gl_glRasterPos3d, + &wow64_gl_glRasterPos3dv, + &gl_glRasterPos3f, + &wow64_gl_glRasterPos3fv, + &gl_glRasterPos3i, + &wow64_gl_glRasterPos3iv, + &gl_glRasterPos3s, + &wow64_gl_glRasterPos3sv, + &gl_glRasterPos4d, + &wow64_gl_glRasterPos4dv, + &gl_glRasterPos4f, + &wow64_gl_glRasterPos4fv, + &gl_glRasterPos4i, + &wow64_gl_glRasterPos4iv, + &gl_glRasterPos4s, + &wow64_gl_glRasterPos4sv, + &gl_glReadBuffer, + &wow64_gl_glReadPixels, + &gl_glRectd, + &wow64_gl_glRectdv, + &gl_glRectf, + &wow64_gl_glRectfv, + &gl_glRecti, + &wow64_gl_glRectiv, + &gl_glRects, + &wow64_gl_glRectsv, + &gl_glRenderMode, + &gl_glRotated, + &gl_glRotatef, + &gl_glScaled, + &gl_glScalef, + &gl_glScissor, + &wow64_gl_glSelectBuffer, + &gl_glShadeModel, + &gl_glStencilFunc, + &gl_glStencilMask, + &gl_glStencilOp, + &gl_glTexCoord1d, + &wow64_gl_glTexCoord1dv, + &gl_glTexCoord1f, + &wow64_gl_glTexCoord1fv, + &gl_glTexCoord1i, + &wow64_gl_glTexCoord1iv, + &gl_glTexCoord1s, + &wow64_gl_glTexCoord1sv, + &gl_glTexCoord2d, + &wow64_gl_glTexCoord2dv, + &gl_glTexCoord2f, + &wow64_gl_glTexCoord2fv, + &gl_glTexCoord2i, + &wow64_gl_glTexCoord2iv, + &gl_glTexCoord2s, + &wow64_gl_glTexCoord2sv, + &gl_glTexCoord3d, + &wow64_gl_glTexCoord3dv, + &gl_glTexCoord3f, + &wow64_gl_glTexCoord3fv, + &gl_glTexCoord3i, + &wow64_gl_glTexCoord3iv, + &gl_glTexCoord3s, + &wow64_gl_glTexCoord3sv, + &gl_glTexCoord4d, + &wow64_gl_glTexCoord4dv, + &gl_glTexCoord4f, + &wow64_gl_glTexCoord4fv, + &gl_glTexCoord4i, + &wow64_gl_glTexCoord4iv, + &gl_glTexCoord4s, + &wow64_gl_glTexCoord4sv, + &wow64_gl_glTexCoordPointer, + &gl_glTexEnvf, + &wow64_gl_glTexEnvfv, + &gl_glTexEnvi, + &wow64_gl_glTexEnviv, + &gl_glTexGend, + &wow64_gl_glTexGendv, + &gl_glTexGenf, + &wow64_gl_glTexGenfv, + &gl_glTexGeni, + &wow64_gl_glTexGeniv, + &wow64_gl_glTexImage1D, + &wow64_gl_glTexImage2D, + &gl_glTexParameterf, + &wow64_gl_glTexParameterfv, + &gl_glTexParameteri, + &wow64_gl_glTexParameteriv, + &wow64_gl_glTexSubImage1D, + &wow64_gl_glTexSubImage2D, + &gl_glTranslated, + &gl_glTranslatef, + &gl_glVertex2d, + &wow64_gl_glVertex2dv, + &gl_glVertex2f, + &wow64_gl_glVertex2fv, + &gl_glVertex2i, + &wow64_gl_glVertex2iv, + &gl_glVertex2s, + &wow64_gl_glVertex2sv, + &gl_glVertex3d, + &wow64_gl_glVertex3dv, + &gl_glVertex3f, + &wow64_gl_glVertex3fv, + &gl_glVertex3i, + &wow64_gl_glVertex3iv, + &gl_glVertex3s, + &wow64_gl_glVertex3sv, + &gl_glVertex4d, + &wow64_gl_glVertex4dv, + &gl_glVertex4f, + &wow64_gl_glVertex4fv, + &gl_glVertex4i, + &wow64_gl_glVertex4iv, + &gl_glVertex4s, + &wow64_gl_glVertex4sv, + &wow64_gl_glVertexPointer, + &gl_glViewport, + &ext_glAccumxOES, + &ext_glAcquireKeyedMutexWin32EXT, + &ext_glActiveProgramEXT, + &ext_glActiveShaderProgram, + &ext_glActiveStencilFaceEXT, + &ext_glActiveTexture, + &ext_glActiveTextureARB, + &wow64_ext_glActiveVaryingNV, + &ext_glAlphaFragmentOp1ATI, + &ext_glAlphaFragmentOp2ATI, + &ext_glAlphaFragmentOp3ATI, + &ext_glAlphaFuncxOES, + &ext_glAlphaToCoverageDitherControlNV, + &ext_glApplyFramebufferAttachmentCMAAINTEL, + &ext_glApplyTextureEXT, + &wow64_ext_glAreProgramsResidentNV, + &wow64_ext_glAreTexturesResidentEXT, + &ext_glArrayElementEXT, + &ext_glArrayObjectATI, + &wow64_ext_glAsyncCopyBufferSubDataNVX, + &wow64_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, + &wow64_ext_glBindAttribLocation, + &wow64_ext_glBindAttribLocationARB, + &ext_glBindBuffer, + &ext_glBindBufferARB, + &ext_glBindBufferBase, + &ext_glBindBufferBaseEXT, + &ext_glBindBufferBaseNV, + &wow64_ext_glBindBufferOffsetEXT, + &wow64_ext_glBindBufferOffsetNV, + &wow64_ext_glBindBufferRange, + &wow64_ext_glBindBufferRangeEXT, + &wow64_ext_glBindBufferRangeNV, + &wow64_ext_glBindBuffersBase, + &wow64_ext_glBindBuffersRange, + &wow64_ext_glBindFragDataLocation, + &wow64_ext_glBindFragDataLocationEXT, + &wow64_ext_glBindFragDataLocationIndexed, + &ext_glBindFragmentShaderATI, + &ext_glBindFramebuffer, + &ext_glBindFramebufferEXT, + &ext_glBindImageTexture, + &ext_glBindImageTextureEXT, + &wow64_ext_glBindImageTextures, + &ext_glBindLightParameterEXT, + &ext_glBindMaterialParameterEXT, + &ext_glBindMultiTextureEXT, + &ext_glBindParameterEXT, + &ext_glBindProgramARB, + &ext_glBindProgramNV, + &ext_glBindProgramPipeline, + &ext_glBindRenderbuffer, + &ext_glBindRenderbufferEXT, + &ext_glBindSampler, + &wow64_ext_glBindSamplers, + &ext_glBindShadingRateImageNV, + &ext_glBindTexGenParameterEXT, + &ext_glBindTextureEXT, + &ext_glBindTextureUnit, + &ext_glBindTextureUnitParameterEXT, + &wow64_ext_glBindTextures, + &ext_glBindTransformFeedback, + &ext_glBindTransformFeedbackNV, + &ext_glBindVertexArray, + &ext_glBindVertexArrayAPPLE, + &wow64_ext_glBindVertexBuffer, + &wow64_ext_glBindVertexBuffers, + &ext_glBindVertexShaderEXT, + &wow64_ext_glBindVideoCaptureStreamBufferNV, + &ext_glBindVideoCaptureStreamTextureNV, + &ext_glBinormal3bEXT, + &wow64_ext_glBinormal3bvEXT, + &ext_glBinormal3dEXT, + &wow64_ext_glBinormal3dvEXT, + &ext_glBinormal3fEXT, + &wow64_ext_glBinormal3fvEXT, + &ext_glBinormal3iEXT, + &wow64_ext_glBinormal3ivEXT, + &ext_glBinormal3sEXT, + &wow64_ext_glBinormal3svEXT, + &wow64_ext_glBinormalPointerEXT, + &wow64_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, + &wow64_ext_glBufferAddressRangeNV, + &ext_glBufferAttachMemoryNV, + &wow64_ext_glBufferData, + &wow64_ext_glBufferDataARB, + &wow64_ext_glBufferPageCommitmentARB, + &ext_glBufferParameteriAPPLE, + &ext_glBufferRegionEnabled, + &wow64_ext_glBufferStorage, + &wow64_ext_glBufferStorageExternalEXT, + &wow64_ext_glBufferStorageMemEXT, + &wow64_ext_glBufferSubData, + &wow64_ext_glBufferSubDataARB, + &ext_glCallCommandListNV, + &ext_glCheckFramebufferStatus, + &ext_glCheckFramebufferStatusEXT, + &ext_glCheckNamedFramebufferStatus, + &ext_glCheckNamedFramebufferStatusEXT, + &ext_glClampColor, + &ext_glClampColorARB, + &ext_glClearAccumxOES, + &wow64_ext_glClearBufferData, + &wow64_ext_glClearBufferSubData, + &ext_glClearBufferfi, + &wow64_ext_glClearBufferfv, + &wow64_ext_glClearBufferiv, + &wow64_ext_glClearBufferuiv, + &ext_glClearColorIiEXT, + &ext_glClearColorIuiEXT, + &ext_glClearColorxOES, + &ext_glClearDepthdNV, + &ext_glClearDepthf, + &ext_glClearDepthfOES, + &ext_glClearDepthxOES, + &wow64_ext_glClearNamedBufferData, + &wow64_ext_glClearNamedBufferDataEXT, + &wow64_ext_glClearNamedBufferSubData, + &wow64_ext_glClearNamedBufferSubDataEXT, + &ext_glClearNamedFramebufferfi, + &wow64_ext_glClearNamedFramebufferfv, + &wow64_ext_glClearNamedFramebufferiv, + &wow64_ext_glClearNamedFramebufferuiv, + &wow64_ext_glClearTexImage, + &wow64_ext_glClearTexSubImage, + &ext_glClientActiveTexture, + &ext_glClientActiveTextureARB, + &ext_glClientActiveVertexStreamATI, + &ext_glClientAttribDefaultEXT, + &wow64_ext_glClientWaitSemaphoreui64NVX, + &wow64_ext_glClientWaitSync, + &ext_glClipControl, + &wow64_ext_glClipPlanefOES, + &wow64_ext_glClipPlanexOES, + &ext_glColor3fVertex3fSUN, + &wow64_ext_glColor3fVertex3fvSUN, + &ext_glColor3hNV, + &wow64_ext_glColor3hvNV, + &ext_glColor3xOES, + &wow64_ext_glColor3xvOES, + &ext_glColor4fNormal3fVertex3fSUN, + &wow64_ext_glColor4fNormal3fVertex3fvSUN, + &ext_glColor4hNV, + &wow64_ext_glColor4hvNV, + &ext_glColor4ubVertex2fSUN, + &wow64_ext_glColor4ubVertex2fvSUN, + &ext_glColor4ubVertex3fSUN, + &wow64_ext_glColor4ubVertex3fvSUN, + &ext_glColor4xOES, + &wow64_ext_glColor4xvOES, + &ext_glColorFormatNV, + &ext_glColorFragmentOp1ATI, + &ext_glColorFragmentOp2ATI, + &ext_glColorFragmentOp3ATI, + &ext_glColorMaskIndexedEXT, + &ext_glColorMaski, + &ext_glColorP3ui, + &wow64_ext_glColorP3uiv, + &ext_glColorP4ui, + &wow64_ext_glColorP4uiv, + &wow64_ext_glColorPointerEXT, + &wow64_ext_glColorPointerListIBM, + &wow64_ext_glColorPointervINTEL, + &wow64_ext_glColorSubTable, + &wow64_ext_glColorSubTableEXT, + &wow64_ext_glColorTable, + &wow64_ext_glColorTableEXT, + &wow64_ext_glColorTableParameterfv, + &wow64_ext_glColorTableParameterfvSGI, + &wow64_ext_glColorTableParameteriv, + &wow64_ext_glColorTableParameterivSGI, + &wow64_ext_glColorTableSGI, + &ext_glCombinerInputNV, + &ext_glCombinerOutputNV, + &ext_glCombinerParameterfNV, + &wow64_ext_glCombinerParameterfvNV, + &ext_glCombinerParameteriNV, + &wow64_ext_glCombinerParameterivNV, + &wow64_ext_glCombinerStageParameterfvNV, + &ext_glCommandListSegmentsNV, + &ext_glCompileCommandListNV, + &ext_glCompileShader, + &ext_glCompileShaderARB, + &wow64_ext_glCompileShaderIncludeARB, + &wow64_ext_glCompressedMultiTexImage1DEXT, + &wow64_ext_glCompressedMultiTexImage2DEXT, + &wow64_ext_glCompressedMultiTexImage3DEXT, + &wow64_ext_glCompressedMultiTexSubImage1DEXT, + &wow64_ext_glCompressedMultiTexSubImage2DEXT, + &wow64_ext_glCompressedMultiTexSubImage3DEXT, + &wow64_ext_glCompressedTexImage1D, + &wow64_ext_glCompressedTexImage1DARB, + &wow64_ext_glCompressedTexImage2D, + &wow64_ext_glCompressedTexImage2DARB, + &wow64_ext_glCompressedTexImage3D, + &wow64_ext_glCompressedTexImage3DARB, + &wow64_ext_glCompressedTexSubImage1D, + &wow64_ext_glCompressedTexSubImage1DARB, + &wow64_ext_glCompressedTexSubImage2D, + &wow64_ext_glCompressedTexSubImage2DARB, + &wow64_ext_glCompressedTexSubImage3D, + &wow64_ext_glCompressedTexSubImage3DARB, + &wow64_ext_glCompressedTextureImage1DEXT, + &wow64_ext_glCompressedTextureImage2DEXT, + &wow64_ext_glCompressedTextureImage3DEXT, + &wow64_ext_glCompressedTextureSubImage1D, + &wow64_ext_glCompressedTextureSubImage1DEXT, + &wow64_ext_glCompressedTextureSubImage2D, + &wow64_ext_glCompressedTextureSubImage2DEXT, + &wow64_ext_glCompressedTextureSubImage3D, + &wow64_ext_glCompressedTextureSubImage3DEXT, + &ext_glConservativeRasterParameterfNV, + &ext_glConservativeRasterParameteriNV, + &wow64_ext_glConvolutionFilter1D, + &wow64_ext_glConvolutionFilter1DEXT, + &wow64_ext_glConvolutionFilter2D, + &wow64_ext_glConvolutionFilter2DEXT, + &ext_glConvolutionParameterf, + &ext_glConvolutionParameterfEXT, + &wow64_ext_glConvolutionParameterfv, + &wow64_ext_glConvolutionParameterfvEXT, + &ext_glConvolutionParameteri, + &ext_glConvolutionParameteriEXT, + &wow64_ext_glConvolutionParameteriv, + &wow64_ext_glConvolutionParameterivEXT, + &ext_glConvolutionParameterxOES, + &wow64_ext_glConvolutionParameterxvOES, + &wow64_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, + &wow64_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, + &wow64_ext_glCoverFillPathInstancedNV, + &ext_glCoverFillPathNV, + &wow64_ext_glCoverStrokePathInstancedNV, + &ext_glCoverStrokePathNV, + &ext_glCoverageModulationNV, + &wow64_ext_glCoverageModulationTableNV, + &wow64_ext_glCreateBuffers, + &wow64_ext_glCreateCommandListsNV, + &wow64_ext_glCreateFramebuffers, + &wow64_ext_glCreateMemoryObjectsEXT, + &wow64_ext_glCreatePerfQueryINTEL, + &ext_glCreateProgram, + &ext_glCreateProgramObjectARB, + &wow64_ext_glCreateProgramPipelines, + &ext_glCreateProgressFenceNVX, + &wow64_ext_glCreateQueries, + &wow64_ext_glCreateRenderbuffers, + &wow64_ext_glCreateSamplers, + &ext_glCreateShader, + &ext_glCreateShaderObjectARB, + &wow64_ext_glCreateShaderProgramEXT, + &wow64_ext_glCreateShaderProgramv, + &wow64_ext_glCreateStatesNV, + &wow64_ext_glCreateSyncFromCLeventARB, + &wow64_ext_glCreateTextures, + &wow64_ext_glCreateTransformFeedbacks, + &wow64_ext_glCreateVertexArrays, + &wow64_ext_glCullParameterdvEXT, + &wow64_ext_glCullParameterfvEXT, + &ext_glCurrentPaletteMatrixARB, + &wow64_ext_glDebugMessageCallback, + &wow64_ext_glDebugMessageCallbackAMD, + &wow64_ext_glDebugMessageCallbackARB, + &wow64_ext_glDebugMessageControl, + &wow64_ext_glDebugMessageControlARB, + &wow64_ext_glDebugMessageEnableAMD, + &wow64_ext_glDebugMessageInsert, + &wow64_ext_glDebugMessageInsertAMD, + &wow64_ext_glDebugMessageInsertARB, + &ext_glDeformSGIX, + &wow64_ext_glDeformationMap3dSGIX, + &wow64_ext_glDeformationMap3fSGIX, + &ext_glDeleteAsyncMarkersSGIX, + &ext_glDeleteBufferRegion, + &wow64_ext_glDeleteBuffers, + &wow64_ext_glDeleteBuffersARB, + &wow64_ext_glDeleteCommandListsNV, + &wow64_ext_glDeleteFencesAPPLE, + &wow64_ext_glDeleteFencesNV, + &ext_glDeleteFragmentShaderATI, + &wow64_ext_glDeleteFramebuffers, + &wow64_ext_glDeleteFramebuffersEXT, + &wow64_ext_glDeleteMemoryObjectsEXT, + &wow64_ext_glDeleteNamedStringARB, + &wow64_ext_glDeleteNamesAMD, + &ext_glDeleteObjectARB, + &ext_glDeleteObjectBufferATI, + &wow64_ext_glDeleteOcclusionQueriesNV, + &ext_glDeletePathsNV, + &wow64_ext_glDeletePerfMonitorsAMD, + &ext_glDeletePerfQueryINTEL, + &ext_glDeleteProgram, + &wow64_ext_glDeleteProgramPipelines, + &wow64_ext_glDeleteProgramsARB, + &wow64_ext_glDeleteProgramsNV, + &wow64_ext_glDeleteQueries, + &wow64_ext_glDeleteQueriesARB, + &wow64_ext_glDeleteQueryResourceTagNV, + &wow64_ext_glDeleteRenderbuffers, + &wow64_ext_glDeleteRenderbuffersEXT, + &wow64_ext_glDeleteSamplers, + &wow64_ext_glDeleteSemaphoresEXT, + &ext_glDeleteShader, + &wow64_ext_glDeleteStatesNV, + &wow64_ext_glDeleteSync, + &wow64_ext_glDeleteTexturesEXT, + &wow64_ext_glDeleteTransformFeedbacks, + &wow64_ext_glDeleteTransformFeedbacksNV, + &wow64_ext_glDeleteVertexArrays, + &wow64_ext_glDeleteVertexArraysAPPLE, + &ext_glDeleteVertexShaderEXT, + &ext_glDepthBoundsEXT, + &ext_glDepthBoundsdNV, + &wow64_ext_glDepthRangeArraydvNV, + &wow64_ext_glDepthRangeArrayv, + &ext_glDepthRangeIndexed, + &ext_glDepthRangeIndexeddNV, + &ext_glDepthRangedNV, + &ext_glDepthRangef, + &ext_glDepthRangefOES, + &ext_glDepthRangexOES, + &ext_glDetachObjectARB, + &ext_glDetachShader, + &wow64_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, + &wow64_ext_glDispatchComputeIndirect, + &ext_glDrawArraysEXT, + &wow64_ext_glDrawArraysIndirect, + &ext_glDrawArraysInstanced, + &ext_glDrawArraysInstancedARB, + &ext_glDrawArraysInstancedBaseInstance, + &ext_glDrawArraysInstancedEXT, + &ext_glDrawBufferRegion, + &wow64_ext_glDrawBuffers, + &wow64_ext_glDrawBuffersARB, + &wow64_ext_glDrawBuffersATI, + &wow64_ext_glDrawCommandsAddressNV, + &wow64_ext_glDrawCommandsNV, + &wow64_ext_glDrawCommandsStatesAddressNV, + &wow64_ext_glDrawCommandsStatesNV, + &ext_glDrawElementArrayAPPLE, + &ext_glDrawElementArrayATI, + &wow64_ext_glDrawElementsBaseVertex, + &wow64_ext_glDrawElementsIndirect, + &wow64_ext_glDrawElementsInstanced, + &wow64_ext_glDrawElementsInstancedARB, + &wow64_ext_glDrawElementsInstancedBaseInstance, + &wow64_ext_glDrawElementsInstancedBaseVertex, + &wow64_ext_glDrawElementsInstancedBaseVertexBaseInstance, + &wow64_ext_glDrawElementsInstancedEXT, + &ext_glDrawMeshArraysSUN, + &wow64_ext_glDrawMeshTasksIndirectNV, + &ext_glDrawMeshTasksNV, + &ext_glDrawRangeElementArrayAPPLE, + &ext_glDrawRangeElementArrayATI, + &wow64_ext_glDrawRangeElements, + &wow64_ext_glDrawRangeElementsBaseVertex, + &wow64_ext_glDrawRangeElementsEXT, + &ext_glDrawTextureNV, + &ext_glDrawTransformFeedback, + &ext_glDrawTransformFeedbackInstanced, + &ext_glDrawTransformFeedbackNV, + &ext_glDrawTransformFeedbackStream, + &ext_glDrawTransformFeedbackStreamInstanced, + &ext_glDrawVkImageNV, + &wow64_ext_glEGLImageTargetTexStorageEXT, + &wow64_ext_glEGLImageTargetTextureStorageEXT, + &ext_glEdgeFlagFormatNV, + &wow64_ext_glEdgeFlagPointerEXT, + &wow64_ext_glEdgeFlagPointerListIBM, + &wow64_ext_glElementPointerAPPLE, + &wow64_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, + &wow64_ext_glEvalCoord1xvOES, + &ext_glEvalCoord2xOES, + &wow64_ext_glEvalCoord2xvOES, + &ext_glEvalMapsNV, + &ext_glEvaluateDepthValuesARB, + &wow64_ext_glExecuteProgramNV, + &ext_glExtractComponentEXT, + &wow64_ext_glFeedbackBufferxOES, + &wow64_ext_glFenceSync, + &ext_glFinalCombinerInputNV, + &wow64_ext_glFinishAsyncSGIX, + &ext_glFinishFenceAPPLE, + &ext_glFinishFenceNV, + &ext_glFinishObjectAPPLE, + &ext_glFinishTextureSUNX, + &wow64_ext_glFlushMappedBufferRange, + &wow64_ext_glFlushMappedBufferRangeAPPLE, + &wow64_ext_glFlushMappedNamedBufferRange, + &wow64_ext_glFlushMappedNamedBufferRangeEXT, + &ext_glFlushPixelDataRangeNV, + &ext_glFlushRasterSGIX, + &ext_glFlushStaticDataIBM, + &wow64_ext_glFlushVertexArrayRangeAPPLE, + &ext_glFlushVertexArrayRangeNV, + &ext_glFogCoordFormatNV, + &wow64_ext_glFogCoordPointer, + &wow64_ext_glFogCoordPointerEXT, + &wow64_ext_glFogCoordPointerListIBM, + &ext_glFogCoordd, + &ext_glFogCoorddEXT, + &wow64_ext_glFogCoorddv, + &wow64_ext_glFogCoorddvEXT, + &ext_glFogCoordf, + &ext_glFogCoordfEXT, + &wow64_ext_glFogCoordfv, + &wow64_ext_glFogCoordfvEXT, + &ext_glFogCoordhNV, + &wow64_ext_glFogCoordhvNV, + &wow64_ext_glFogFuncSGIS, + &ext_glFogxOES, + &wow64_ext_glFogxvOES, + &ext_glFragmentColorMaterialSGIX, + &ext_glFragmentCoverageColorNV, + &ext_glFragmentLightModelfSGIX, + &wow64_ext_glFragmentLightModelfvSGIX, + &ext_glFragmentLightModeliSGIX, + &wow64_ext_glFragmentLightModelivSGIX, + &ext_glFragmentLightfSGIX, + &wow64_ext_glFragmentLightfvSGIX, + &ext_glFragmentLightiSGIX, + &wow64_ext_glFragmentLightivSGIX, + &ext_glFragmentMaterialfSGIX, + &wow64_ext_glFragmentMaterialfvSGIX, + &ext_glFragmentMaterialiSGIX, + &wow64_ext_glFragmentMaterialivSGIX, + &ext_glFrameTerminatorGREMEDY, + &ext_glFrameZoomSGIX, + &ext_glFramebufferDrawBufferEXT, + &wow64_ext_glFramebufferDrawBuffersEXT, + &ext_glFramebufferFetchBarrierEXT, + &ext_glFramebufferParameteri, + &ext_glFramebufferParameteriMESA, + &ext_glFramebufferReadBufferEXT, + &ext_glFramebufferRenderbuffer, + &ext_glFramebufferRenderbufferEXT, + &wow64_ext_glFramebufferSampleLocationsfvARB, + &wow64_ext_glFramebufferSampleLocationsfvNV, + &wow64_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, + &wow64_ext_glGenBuffers, + &wow64_ext_glGenBuffersARB, + &wow64_ext_glGenFencesAPPLE, + &wow64_ext_glGenFencesNV, + &ext_glGenFragmentShadersATI, + &wow64_ext_glGenFramebuffers, + &wow64_ext_glGenFramebuffersEXT, + &wow64_ext_glGenNamesAMD, + &wow64_ext_glGenOcclusionQueriesNV, + &ext_glGenPathsNV, + &wow64_ext_glGenPerfMonitorsAMD, + &wow64_ext_glGenProgramPipelines, + &wow64_ext_glGenProgramsARB, + &wow64_ext_glGenProgramsNV, + &wow64_ext_glGenQueries, + &wow64_ext_glGenQueriesARB, + &wow64_ext_glGenQueryResourceTagNV, + &wow64_ext_glGenRenderbuffers, + &wow64_ext_glGenRenderbuffersEXT, + &wow64_ext_glGenSamplers, + &wow64_ext_glGenSemaphoresEXT, + &ext_glGenSymbolsEXT, + &wow64_ext_glGenTexturesEXT, + &wow64_ext_glGenTransformFeedbacks, + &wow64_ext_glGenTransformFeedbacksNV, + &wow64_ext_glGenVertexArrays, + &wow64_ext_glGenVertexArraysAPPLE, + &ext_glGenVertexShadersEXT, + &ext_glGenerateMipmap, + &ext_glGenerateMipmapEXT, + &ext_glGenerateMultiTexMipmapEXT, + &ext_glGenerateTextureMipmap, + &ext_glGenerateTextureMipmapEXT, + &wow64_ext_glGetActiveAtomicCounterBufferiv, + &wow64_ext_glGetActiveAttrib, + &wow64_ext_glGetActiveAttribARB, + &wow64_ext_glGetActiveSubroutineName, + &wow64_ext_glGetActiveSubroutineUniformName, + &wow64_ext_glGetActiveSubroutineUniformiv, + &wow64_ext_glGetActiveUniform, + &wow64_ext_glGetActiveUniformARB, + &wow64_ext_glGetActiveUniformBlockName, + &wow64_ext_glGetActiveUniformBlockiv, + &wow64_ext_glGetActiveUniformName, + &wow64_ext_glGetActiveUniformsiv, + &wow64_ext_glGetActiveVaryingNV, + &wow64_ext_glGetArrayObjectfvATI, + &wow64_ext_glGetArrayObjectivATI, + &wow64_ext_glGetAttachedObjectsARB, + &wow64_ext_glGetAttachedShaders, + &wow64_ext_glGetAttribLocation, + &wow64_ext_glGetAttribLocationARB, + &wow64_ext_glGetBooleanIndexedvEXT, + &wow64_ext_glGetBooleani_v, + &wow64_ext_glGetBufferParameteri64v, + &wow64_ext_glGetBufferParameteriv, + &wow64_ext_glGetBufferParameterivARB, + &wow64_ext_glGetBufferParameterui64vNV, + &wow64_ext_glGetBufferPointerv, + &wow64_ext_glGetBufferPointervARB, + &wow64_ext_glGetBufferSubData, + &wow64_ext_glGetBufferSubDataARB, + &wow64_ext_glGetClipPlanefOES, + &wow64_ext_glGetClipPlanexOES, + &wow64_ext_glGetColorTable, + &wow64_ext_glGetColorTableEXT, + &wow64_ext_glGetColorTableParameterfv, + &wow64_ext_glGetColorTableParameterfvEXT, + &wow64_ext_glGetColorTableParameterfvSGI, + &wow64_ext_glGetColorTableParameteriv, + &wow64_ext_glGetColorTableParameterivEXT, + &wow64_ext_glGetColorTableParameterivSGI, + &wow64_ext_glGetColorTableSGI, + &wow64_ext_glGetCombinerInputParameterfvNV, + &wow64_ext_glGetCombinerInputParameterivNV, + &wow64_ext_glGetCombinerOutputParameterfvNV, + &wow64_ext_glGetCombinerOutputParameterivNV, + &wow64_ext_glGetCombinerStageParameterfvNV, + &ext_glGetCommandHeaderNV, + &wow64_ext_glGetCompressedMultiTexImageEXT, + &wow64_ext_glGetCompressedTexImage, + &wow64_ext_glGetCompressedTexImageARB, + &wow64_ext_glGetCompressedTextureImage, + &wow64_ext_glGetCompressedTextureImageEXT, + &wow64_ext_glGetCompressedTextureSubImage, + &wow64_ext_glGetConvolutionFilter, + &wow64_ext_glGetConvolutionFilterEXT, + &wow64_ext_glGetConvolutionParameterfv, + &wow64_ext_glGetConvolutionParameterfvEXT, + &wow64_ext_glGetConvolutionParameteriv, + &wow64_ext_glGetConvolutionParameterivEXT, + &wow64_ext_glGetConvolutionParameterxvOES, + &wow64_ext_glGetCoverageModulationTableNV, + &wow64_ext_glGetDebugMessageLog, + &wow64_ext_glGetDebugMessageLogAMD, + &wow64_ext_glGetDebugMessageLogARB, + &wow64_ext_glGetDetailTexFuncSGIS, + &wow64_ext_glGetDoubleIndexedvEXT, + &wow64_ext_glGetDoublei_v, + &wow64_ext_glGetDoublei_vEXT, + &wow64_ext_glGetFenceivNV, + &wow64_ext_glGetFinalCombinerInputParameterfvNV, + &wow64_ext_glGetFinalCombinerInputParameterivNV, + &wow64_ext_glGetFirstPerfQueryIdINTEL, + &wow64_ext_glGetFixedvOES, + &wow64_ext_glGetFloatIndexedvEXT, + &wow64_ext_glGetFloati_v, + &wow64_ext_glGetFloati_vEXT, + &wow64_ext_glGetFogFuncSGIS, + &wow64_ext_glGetFragDataIndex, + &wow64_ext_glGetFragDataLocation, + &wow64_ext_glGetFragDataLocationEXT, + &wow64_ext_glGetFragmentLightfvSGIX, + &wow64_ext_glGetFragmentLightivSGIX, + &wow64_ext_glGetFragmentMaterialfvSGIX, + &wow64_ext_glGetFragmentMaterialivSGIX, + &wow64_ext_glGetFramebufferAttachmentParameteriv, + &wow64_ext_glGetFramebufferAttachmentParameterivEXT, + &wow64_ext_glGetFramebufferParameterfvAMD, + &wow64_ext_glGetFramebufferParameteriv, + &wow64_ext_glGetFramebufferParameterivEXT, + &wow64_ext_glGetFramebufferParameterivMESA, + &ext_glGetGraphicsResetStatus, + &ext_glGetGraphicsResetStatusARB, + &ext_glGetHandleARB, + &wow64_ext_glGetHistogram, + &wow64_ext_glGetHistogramEXT, + &wow64_ext_glGetHistogramParameterfv, + &wow64_ext_glGetHistogramParameterfvEXT, + &wow64_ext_glGetHistogramParameteriv, + &wow64_ext_glGetHistogramParameterivEXT, + &wow64_ext_glGetHistogramParameterxvOES, + &ext_glGetImageHandleARB, + &ext_glGetImageHandleNV, + &wow64_ext_glGetImageTransformParameterfvHP, + &wow64_ext_glGetImageTransformParameterivHP, + &wow64_ext_glGetInfoLogARB, + &ext_glGetInstrumentsSGIX, + &wow64_ext_glGetInteger64i_v, + &wow64_ext_glGetInteger64v, + &wow64_ext_glGetIntegerIndexedvEXT, + &wow64_ext_glGetIntegeri_v, + &wow64_ext_glGetIntegerui64i_vNV, + &wow64_ext_glGetIntegerui64vNV, + &wow64_ext_glGetInternalformatSampleivNV, + &wow64_ext_glGetInternalformati64v, + &wow64_ext_glGetInternalformativ, + &wow64_ext_glGetInvariantBooleanvEXT, + &wow64_ext_glGetInvariantFloatvEXT, + &wow64_ext_glGetInvariantIntegervEXT, + &wow64_ext_glGetLightxOES, + &wow64_ext_glGetListParameterfvSGIX, + &wow64_ext_glGetListParameterivSGIX, + &wow64_ext_glGetLocalConstantBooleanvEXT, + &wow64_ext_glGetLocalConstantFloatvEXT, + &wow64_ext_glGetLocalConstantIntegervEXT, + &wow64_ext_glGetMapAttribParameterfvNV, + &wow64_ext_glGetMapAttribParameterivNV, + &wow64_ext_glGetMapControlPointsNV, + &wow64_ext_glGetMapParameterfvNV, + &wow64_ext_glGetMapParameterivNV, + &wow64_ext_glGetMapxvOES, + &ext_glGetMaterialxOES, + &wow64_ext_glGetMemoryObjectDetachedResourcesuivNV, + &wow64_ext_glGetMemoryObjectParameterivEXT, + &wow64_ext_glGetMinmax, + &wow64_ext_glGetMinmaxEXT, + &wow64_ext_glGetMinmaxParameterfv, + &wow64_ext_glGetMinmaxParameterfvEXT, + &wow64_ext_glGetMinmaxParameteriv, + &wow64_ext_glGetMinmaxParameterivEXT, + &wow64_ext_glGetMultiTexEnvfvEXT, + &wow64_ext_glGetMultiTexEnvivEXT, + &wow64_ext_glGetMultiTexGendvEXT, + &wow64_ext_glGetMultiTexGenfvEXT, + &wow64_ext_glGetMultiTexGenivEXT, + &wow64_ext_glGetMultiTexImageEXT, + &wow64_ext_glGetMultiTexLevelParameterfvEXT, + &wow64_ext_glGetMultiTexLevelParameterivEXT, + &wow64_ext_glGetMultiTexParameterIivEXT, + &wow64_ext_glGetMultiTexParameterIuivEXT, + &wow64_ext_glGetMultiTexParameterfvEXT, + &wow64_ext_glGetMultiTexParameterivEXT, + &wow64_ext_glGetMultisamplefv, + &wow64_ext_glGetMultisamplefvNV, + &wow64_ext_glGetNamedBufferParameteri64v, + &wow64_ext_glGetNamedBufferParameteriv, + &wow64_ext_glGetNamedBufferParameterivEXT, + &wow64_ext_glGetNamedBufferParameterui64vNV, + &wow64_ext_glGetNamedBufferPointerv, + &wow64_ext_glGetNamedBufferPointervEXT, + &wow64_ext_glGetNamedBufferSubData, + &wow64_ext_glGetNamedBufferSubDataEXT, + &wow64_ext_glGetNamedFramebufferAttachmentParameteriv, + &wow64_ext_glGetNamedFramebufferAttachmentParameterivEXT, + &wow64_ext_glGetNamedFramebufferParameterfvAMD, + &wow64_ext_glGetNamedFramebufferParameteriv, + &wow64_ext_glGetNamedFramebufferParameterivEXT, + &wow64_ext_glGetNamedProgramLocalParameterIivEXT, + &wow64_ext_glGetNamedProgramLocalParameterIuivEXT, + &wow64_ext_glGetNamedProgramLocalParameterdvEXT, + &wow64_ext_glGetNamedProgramLocalParameterfvEXT, + &wow64_ext_glGetNamedProgramStringEXT, + &wow64_ext_glGetNamedProgramivEXT, + &wow64_ext_glGetNamedRenderbufferParameteriv, + &wow64_ext_glGetNamedRenderbufferParameterivEXT, + &wow64_ext_glGetNamedStringARB, + &wow64_ext_glGetNamedStringivARB, + &wow64_ext_glGetNextPerfQueryIdINTEL, + &wow64_ext_glGetObjectBufferfvATI, + &wow64_ext_glGetObjectBufferivATI, + &wow64_ext_glGetObjectLabel, + &wow64_ext_glGetObjectLabelEXT, + &wow64_ext_glGetObjectParameterfvARB, + &wow64_ext_glGetObjectParameterivAPPLE, + &wow64_ext_glGetObjectParameterivARB, + &wow64_ext_glGetObjectPtrLabel, + &wow64_ext_glGetOcclusionQueryivNV, + &wow64_ext_glGetOcclusionQueryuivNV, + &wow64_ext_glGetPathColorGenfvNV, + &wow64_ext_glGetPathColorGenivNV, + &wow64_ext_glGetPathCommandsNV, + &wow64_ext_glGetPathCoordsNV, + &wow64_ext_glGetPathDashArrayNV, + &ext_glGetPathLengthNV, + &wow64_ext_glGetPathMetricRangeNV, + &wow64_ext_glGetPathMetricsNV, + &wow64_ext_glGetPathParameterfvNV, + &wow64_ext_glGetPathParameterivNV, + &wow64_ext_glGetPathSpacingNV, + &wow64_ext_glGetPathTexGenfvNV, + &wow64_ext_glGetPathTexGenivNV, + &wow64_ext_glGetPerfCounterInfoINTEL, + &wow64_ext_glGetPerfMonitorCounterDataAMD, + &wow64_ext_glGetPerfMonitorCounterInfoAMD, + &wow64_ext_glGetPerfMonitorCounterStringAMD, + &wow64_ext_glGetPerfMonitorCountersAMD, + &wow64_ext_glGetPerfMonitorGroupStringAMD, + &wow64_ext_glGetPerfMonitorGroupsAMD, + &wow64_ext_glGetPerfQueryDataINTEL, + &wow64_ext_glGetPerfQueryIdByNameINTEL, + &wow64_ext_glGetPerfQueryInfoINTEL, + &wow64_ext_glGetPixelMapxv, + &wow64_ext_glGetPixelTexGenParameterfvSGIS, + &wow64_ext_glGetPixelTexGenParameterivSGIS, + &wow64_ext_glGetPixelTransformParameterfvEXT, + &wow64_ext_glGetPixelTransformParameterivEXT, + &wow64_ext_glGetPointerIndexedvEXT, + &wow64_ext_glGetPointeri_vEXT, + &wow64_ext_glGetPointervEXT, + &wow64_ext_glGetProgramBinary, + &wow64_ext_glGetProgramEnvParameterIivNV, + &wow64_ext_glGetProgramEnvParameterIuivNV, + &wow64_ext_glGetProgramEnvParameterdvARB, + &wow64_ext_glGetProgramEnvParameterfvARB, + &wow64_ext_glGetProgramInfoLog, + &wow64_ext_glGetProgramInterfaceiv, + &wow64_ext_glGetProgramLocalParameterIivNV, + &wow64_ext_glGetProgramLocalParameterIuivNV, + &wow64_ext_glGetProgramLocalParameterdvARB, + &wow64_ext_glGetProgramLocalParameterfvARB, + &wow64_ext_glGetProgramNamedParameterdvNV, + &wow64_ext_glGetProgramNamedParameterfvNV, + &wow64_ext_glGetProgramParameterdvNV, + &wow64_ext_glGetProgramParameterfvNV, + &wow64_ext_glGetProgramPipelineInfoLog, + &wow64_ext_glGetProgramPipelineiv, + &wow64_ext_glGetProgramResourceIndex, + &wow64_ext_glGetProgramResourceLocation, + &wow64_ext_glGetProgramResourceLocationIndex, + &wow64_ext_glGetProgramResourceName, + &wow64_ext_glGetProgramResourcefvNV, + &wow64_ext_glGetProgramResourceiv, + &wow64_ext_glGetProgramStageiv, + &wow64_ext_glGetProgramStringARB, + &wow64_ext_glGetProgramStringNV, + &wow64_ext_glGetProgramSubroutineParameteruivNV, + &wow64_ext_glGetProgramiv, + &wow64_ext_glGetProgramivARB, + &wow64_ext_glGetProgramivNV, + &wow64_ext_glGetQueryBufferObjecti64v, + &wow64_ext_glGetQueryBufferObjectiv, + &wow64_ext_glGetQueryBufferObjectui64v, + &wow64_ext_glGetQueryBufferObjectuiv, + &wow64_ext_glGetQueryIndexediv, + &wow64_ext_glGetQueryObjecti64v, + &wow64_ext_glGetQueryObjecti64vEXT, + &wow64_ext_glGetQueryObjectiv, + &wow64_ext_glGetQueryObjectivARB, + &wow64_ext_glGetQueryObjectui64v, + &wow64_ext_glGetQueryObjectui64vEXT, + &wow64_ext_glGetQueryObjectuiv, + &wow64_ext_glGetQueryObjectuivARB, + &wow64_ext_glGetQueryiv, + &wow64_ext_glGetQueryivARB, + &wow64_ext_glGetRenderbufferParameteriv, + &wow64_ext_glGetRenderbufferParameterivEXT, + &wow64_ext_glGetSamplerParameterIiv, + &wow64_ext_glGetSamplerParameterIuiv, + &wow64_ext_glGetSamplerParameterfv, + &wow64_ext_glGetSamplerParameteriv, + &wow64_ext_glGetSemaphoreParameterui64vEXT, + &wow64_ext_glGetSeparableFilter, + &wow64_ext_glGetSeparableFilterEXT, + &wow64_ext_glGetShaderInfoLog, + &wow64_ext_glGetShaderPrecisionFormat, + &wow64_ext_glGetShaderSource, + &wow64_ext_glGetShaderSourceARB, + &wow64_ext_glGetShaderiv, + &wow64_ext_glGetShadingRateImagePaletteNV, + &wow64_ext_glGetShadingRateSampleLocationivNV, + &wow64_ext_glGetSharpenTexFuncSGIS, + &ext_glGetStageIndexNV, + &wow64_ext_glGetStringi, + &wow64_ext_glGetSubroutineIndex, + &wow64_ext_glGetSubroutineUniformLocation, + &wow64_ext_glGetSynciv, + &wow64_ext_glGetTexBumpParameterfvATI, + &wow64_ext_glGetTexBumpParameterivATI, + &wow64_ext_glGetTexEnvxvOES, + &wow64_ext_glGetTexFilterFuncSGIS, + &wow64_ext_glGetTexGenxvOES, + &wow64_ext_glGetTexLevelParameterxvOES, + &wow64_ext_glGetTexParameterIiv, + &wow64_ext_glGetTexParameterIivEXT, + &wow64_ext_glGetTexParameterIuiv, + &wow64_ext_glGetTexParameterIuivEXT, + &wow64_ext_glGetTexParameterPointervAPPLE, + &wow64_ext_glGetTexParameterxvOES, + &ext_glGetTextureHandleARB, + &ext_glGetTextureHandleNV, + &wow64_ext_glGetTextureImage, + &wow64_ext_glGetTextureImageEXT, + &wow64_ext_glGetTextureLevelParameterfv, + &wow64_ext_glGetTextureLevelParameterfvEXT, + &wow64_ext_glGetTextureLevelParameteriv, + &wow64_ext_glGetTextureLevelParameterivEXT, + &wow64_ext_glGetTextureParameterIiv, + &wow64_ext_glGetTextureParameterIivEXT, + &wow64_ext_glGetTextureParameterIuiv, + &wow64_ext_glGetTextureParameterIuivEXT, + &wow64_ext_glGetTextureParameterfv, + &wow64_ext_glGetTextureParameterfvEXT, + &wow64_ext_glGetTextureParameteriv, + &wow64_ext_glGetTextureParameterivEXT, + &ext_glGetTextureSamplerHandleARB, + &ext_glGetTextureSamplerHandleNV, + &wow64_ext_glGetTextureSubImage, + &wow64_ext_glGetTrackMatrixivNV, + &wow64_ext_glGetTransformFeedbackVarying, + &wow64_ext_glGetTransformFeedbackVaryingEXT, + &wow64_ext_glGetTransformFeedbackVaryingNV, + &wow64_ext_glGetTransformFeedbacki64_v, + &wow64_ext_glGetTransformFeedbacki_v, + &wow64_ext_glGetTransformFeedbackiv, + &wow64_ext_glGetUniformBlockIndex, + &ext_glGetUniformBufferSizeEXT, + &wow64_ext_glGetUniformIndices, + &wow64_ext_glGetUniformLocation, + &wow64_ext_glGetUniformLocationARB, + &wow64_ext_glGetUniformOffsetEXT, + &wow64_ext_glGetUniformSubroutineuiv, + &wow64_ext_glGetUniformdv, + &wow64_ext_glGetUniformfv, + &wow64_ext_glGetUniformfvARB, + &wow64_ext_glGetUniformi64vARB, + &wow64_ext_glGetUniformi64vNV, + &wow64_ext_glGetUniformiv, + &wow64_ext_glGetUniformivARB, + &wow64_ext_glGetUniformui64vARB, + &wow64_ext_glGetUniformui64vNV, + &wow64_ext_glGetUniformuiv, + &wow64_ext_glGetUniformuivEXT, + &wow64_ext_glGetUnsignedBytei_vEXT, + &wow64_ext_glGetUnsignedBytevEXT, + &wow64_ext_glGetVariantArrayObjectfvATI, + &wow64_ext_glGetVariantArrayObjectivATI, + &wow64_ext_glGetVariantBooleanvEXT, + &wow64_ext_glGetVariantFloatvEXT, + &wow64_ext_glGetVariantIntegervEXT, + &wow64_ext_glGetVariantPointervEXT, + &wow64_ext_glGetVaryingLocationNV, + &wow64_ext_glGetVertexArrayIndexed64iv, + &wow64_ext_glGetVertexArrayIndexediv, + &wow64_ext_glGetVertexArrayIntegeri_vEXT, + &wow64_ext_glGetVertexArrayIntegervEXT, + &wow64_ext_glGetVertexArrayPointeri_vEXT, + &wow64_ext_glGetVertexArrayPointervEXT, + &wow64_ext_glGetVertexArrayiv, + &wow64_ext_glGetVertexAttribArrayObjectfvATI, + &wow64_ext_glGetVertexAttribArrayObjectivATI, + &wow64_ext_glGetVertexAttribIiv, + &wow64_ext_glGetVertexAttribIivEXT, + &wow64_ext_glGetVertexAttribIuiv, + &wow64_ext_glGetVertexAttribIuivEXT, + &wow64_ext_glGetVertexAttribLdv, + &wow64_ext_glGetVertexAttribLdvEXT, + &wow64_ext_glGetVertexAttribLi64vNV, + &wow64_ext_glGetVertexAttribLui64vARB, + &wow64_ext_glGetVertexAttribLui64vNV, + &wow64_ext_glGetVertexAttribPointerv, + &wow64_ext_glGetVertexAttribPointervARB, + &wow64_ext_glGetVertexAttribPointervNV, + &wow64_ext_glGetVertexAttribdv, + &wow64_ext_glGetVertexAttribdvARB, + &wow64_ext_glGetVertexAttribdvNV, + &wow64_ext_glGetVertexAttribfv, + &wow64_ext_glGetVertexAttribfvARB, + &wow64_ext_glGetVertexAttribfvNV, + &wow64_ext_glGetVertexAttribiv, + &wow64_ext_glGetVertexAttribivARB, + &wow64_ext_glGetVertexAttribivNV, + &wow64_ext_glGetVideoCaptureStreamdvNV, + &wow64_ext_glGetVideoCaptureStreamfvNV, + &wow64_ext_glGetVideoCaptureStreamivNV, + &wow64_ext_glGetVideoCaptureivNV, + &wow64_ext_glGetVideoi64vNV, + &wow64_ext_glGetVideoivNV, + &wow64_ext_glGetVideoui64vNV, + &wow64_ext_glGetVideouivNV, + &wow64_ext_glGetVkProcAddrNV, + &wow64_ext_glGetnColorTable, + &wow64_ext_glGetnColorTableARB, + &wow64_ext_glGetnCompressedTexImage, + &wow64_ext_glGetnCompressedTexImageARB, + &wow64_ext_glGetnConvolutionFilter, + &wow64_ext_glGetnConvolutionFilterARB, + &wow64_ext_glGetnHistogram, + &wow64_ext_glGetnHistogramARB, + &wow64_ext_glGetnMapdv, + &wow64_ext_glGetnMapdvARB, + &wow64_ext_glGetnMapfv, + &wow64_ext_glGetnMapfvARB, + &wow64_ext_glGetnMapiv, + &wow64_ext_glGetnMapivARB, + &wow64_ext_glGetnMinmax, + &wow64_ext_glGetnMinmaxARB, + &wow64_ext_glGetnPixelMapfv, + &wow64_ext_glGetnPixelMapfvARB, + &wow64_ext_glGetnPixelMapuiv, + &wow64_ext_glGetnPixelMapuivARB, + &wow64_ext_glGetnPixelMapusv, + &wow64_ext_glGetnPixelMapusvARB, + &wow64_ext_glGetnPolygonStipple, + &wow64_ext_glGetnPolygonStippleARB, + &wow64_ext_glGetnSeparableFilter, + &wow64_ext_glGetnSeparableFilterARB, + &wow64_ext_glGetnTexImage, + &wow64_ext_glGetnTexImageARB, + &wow64_ext_glGetnUniformdv, + &wow64_ext_glGetnUniformdvARB, + &wow64_ext_glGetnUniformfv, + &wow64_ext_glGetnUniformfvARB, + &wow64_ext_glGetnUniformi64vARB, + &wow64_ext_glGetnUniformiv, + &wow64_ext_glGetnUniformivARB, + &wow64_ext_glGetnUniformui64vARB, + &wow64_ext_glGetnUniformuiv, + &wow64_ext_glGetnUniformuivARB, + &ext_glGlobalAlphaFactorbSUN, + &ext_glGlobalAlphaFactordSUN, + &ext_glGlobalAlphaFactorfSUN, + &ext_glGlobalAlphaFactoriSUN, + &ext_glGlobalAlphaFactorsSUN, + &ext_glGlobalAlphaFactorubSUN, + &ext_glGlobalAlphaFactoruiSUN, + &ext_glGlobalAlphaFactorusSUN, + &ext_glHintPGI, + &ext_glHistogram, + &ext_glHistogramEXT, + &wow64_ext_glIglooInterfaceSGIX, + &ext_glImageTransformParameterfHP, + &wow64_ext_glImageTransformParameterfvHP, + &ext_glImageTransformParameteriHP, + &wow64_ext_glImageTransformParameterivHP, + &ext_glImportMemoryFdEXT, + &wow64_ext_glImportMemoryWin32HandleEXT, + &wow64_ext_glImportMemoryWin32NameEXT, + &ext_glImportSemaphoreFdEXT, + &wow64_ext_glImportSemaphoreWin32HandleEXT, + &wow64_ext_glImportSemaphoreWin32NameEXT, + &wow64_ext_glImportSyncEXT, + &ext_glIndexFormatNV, + &ext_glIndexFuncEXT, + &ext_glIndexMaterialEXT, + &wow64_ext_glIndexPointerEXT, + &wow64_ext_glIndexPointerListIBM, + &ext_glIndexxOES, + &wow64_ext_glIndexxvOES, + &ext_glInsertComponentEXT, + &wow64_ext_glInsertEventMarkerEXT, + &wow64_ext_glInstrumentsBufferSGIX, + &ext_glInterpolatePathsNV, + &ext_glInvalidateBufferData, + &wow64_ext_glInvalidateBufferSubData, + &wow64_ext_glInvalidateFramebuffer, + &wow64_ext_glInvalidateNamedFramebufferData, + &wow64_ext_glInvalidateNamedFramebufferSubData, + &wow64_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, + &wow64_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, + &wow64_ext_glIsSync, + &ext_glIsTextureEXT, + &ext_glIsTextureHandleResidentARB, + &ext_glIsTextureHandleResidentNV, + &ext_glIsTransformFeedback, + &ext_glIsTransformFeedbackNV, + &ext_glIsVariantEnabledEXT, + &ext_glIsVertexArray, + &ext_glIsVertexArrayAPPLE, + &ext_glIsVertexAttribEnabledAPPLE, + &ext_glLGPUCopyImageSubDataNVX, + &ext_glLGPUInterlockNVX, + &wow64_ext_glLGPUNamedBufferSubDataNVX, + &wow64_ext_glLabelObjectEXT, + &ext_glLightEnviSGIX, + &ext_glLightModelxOES, + &wow64_ext_glLightModelxvOES, + &ext_glLightxOES, + &wow64_ext_glLightxvOES, + &ext_glLineWidthxOES, + &ext_glLinkProgram, + &ext_glLinkProgramARB, + &wow64_ext_glListDrawCommandsStatesClientNV, + &ext_glListParameterfSGIX, + &wow64_ext_glListParameterfvSGIX, + &ext_glListParameteriSGIX, + &wow64_ext_glListParameterivSGIX, + &ext_glLoadIdentityDeformationMapSGIX, + &wow64_ext_glLoadMatrixxOES, + &wow64_ext_glLoadProgramNV, + &wow64_ext_glLoadTransposeMatrixd, + &wow64_ext_glLoadTransposeMatrixdARB, + &wow64_ext_glLoadTransposeMatrixf, + &wow64_ext_glLoadTransposeMatrixfARB, + &wow64_ext_glLoadTransposeMatrixxOES, + &ext_glLockArraysEXT, + &ext_glMTexCoord2fSGIS, + &wow64_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, + &wow64_ext_glMapBuffer, + &wow64_ext_glMapBufferARB, + &wow64_ext_glMapBufferRange, + &wow64_ext_glMapControlPointsNV, + &ext_glMapGrid1xOES, + &ext_glMapGrid2xOES, + &wow64_ext_glMapNamedBuffer, + &wow64_ext_glMapNamedBufferEXT, + &wow64_ext_glMapNamedBufferRange, + &wow64_ext_glMapNamedBufferRangeEXT, + &wow64_ext_glMapObjectBufferATI, + &wow64_ext_glMapParameterfvNV, + &wow64_ext_glMapParameterivNV, + &wow64_ext_glMapTexture2DINTEL, + &wow64_ext_glMapVertexAttrib1dAPPLE, + &wow64_ext_glMapVertexAttrib1fAPPLE, + &wow64_ext_glMapVertexAttrib2dAPPLE, + &wow64_ext_glMapVertexAttrib2fAPPLE, + &ext_glMaterialxOES, + &wow64_ext_glMaterialxvOES, + &ext_glMatrixFrustumEXT, + &wow64_ext_glMatrixIndexPointerARB, + &wow64_ext_glMatrixIndexubvARB, + &wow64_ext_glMatrixIndexuivARB, + &wow64_ext_glMatrixIndexusvARB, + &wow64_ext_glMatrixLoad3x2fNV, + &wow64_ext_glMatrixLoad3x3fNV, + &ext_glMatrixLoadIdentityEXT, + &wow64_ext_glMatrixLoadTranspose3x3fNV, + &wow64_ext_glMatrixLoadTransposedEXT, + &wow64_ext_glMatrixLoadTransposefEXT, + &wow64_ext_glMatrixLoaddEXT, + &wow64_ext_glMatrixLoadfEXT, + &wow64_ext_glMatrixMult3x2fNV, + &wow64_ext_glMatrixMult3x3fNV, + &wow64_ext_glMatrixMultTranspose3x3fNV, + &wow64_ext_glMatrixMultTransposedEXT, + &wow64_ext_glMatrixMultTransposefEXT, + &wow64_ext_glMatrixMultdEXT, + &wow64_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, + &wow64_ext_glMemoryObjectParameterivEXT, + &ext_glMinSampleShading, + &ext_glMinSampleShadingARB, + &ext_glMinmax, + &ext_glMinmaxEXT, + &wow64_ext_glMultMatrixxOES, + &wow64_ext_glMultTransposeMatrixd, + &wow64_ext_glMultTransposeMatrixdARB, + &wow64_ext_glMultTransposeMatrixf, + &wow64_ext_glMultTransposeMatrixfARB, + &wow64_ext_glMultTransposeMatrixxOES, + &wow64_ext_glMultiDrawArrays, + &wow64_ext_glMultiDrawArraysEXT, + &wow64_ext_glMultiDrawArraysIndirect, + &wow64_ext_glMultiDrawArraysIndirectAMD, + &wow64_ext_glMultiDrawArraysIndirectBindlessCountNV, + &wow64_ext_glMultiDrawArraysIndirectBindlessNV, + &wow64_ext_glMultiDrawArraysIndirectCount, + &wow64_ext_glMultiDrawArraysIndirectCountARB, + &wow64_ext_glMultiDrawElementArrayAPPLE, + &wow64_ext_glMultiDrawElements, + &wow64_ext_glMultiDrawElementsBaseVertex, + &wow64_ext_glMultiDrawElementsEXT, + &wow64_ext_glMultiDrawElementsIndirect, + &wow64_ext_glMultiDrawElementsIndirectAMD, + &wow64_ext_glMultiDrawElementsIndirectBindlessCountNV, + &wow64_ext_glMultiDrawElementsIndirectBindlessNV, + &wow64_ext_glMultiDrawElementsIndirectCount, + &wow64_ext_glMultiDrawElementsIndirectCountARB, + &wow64_ext_glMultiDrawMeshTasksIndirectCountNV, + &wow64_ext_glMultiDrawMeshTasksIndirectNV, + &wow64_ext_glMultiDrawRangeElementArrayAPPLE, + &wow64_ext_glMultiModeDrawArraysIBM, + &wow64_ext_glMultiModeDrawElementsIBM, + &ext_glMultiTexBufferEXT, + &ext_glMultiTexCoord1bOES, + &wow64_ext_glMultiTexCoord1bvOES, + &ext_glMultiTexCoord1d, + &ext_glMultiTexCoord1dARB, + &ext_glMultiTexCoord1dSGIS, + &wow64_ext_glMultiTexCoord1dv, + &wow64_ext_glMultiTexCoord1dvARB, + &wow64_ext_glMultiTexCoord1dvSGIS, + &ext_glMultiTexCoord1f, + &ext_glMultiTexCoord1fARB, + &ext_glMultiTexCoord1fSGIS, + &wow64_ext_glMultiTexCoord1fv, + &wow64_ext_glMultiTexCoord1fvARB, + &wow64_ext_glMultiTexCoord1fvSGIS, + &ext_glMultiTexCoord1hNV, + &wow64_ext_glMultiTexCoord1hvNV, + &ext_glMultiTexCoord1i, + &ext_glMultiTexCoord1iARB, + &ext_glMultiTexCoord1iSGIS, + &wow64_ext_glMultiTexCoord1iv, + &wow64_ext_glMultiTexCoord1ivARB, + &wow64_ext_glMultiTexCoord1ivSGIS, + &ext_glMultiTexCoord1s, + &ext_glMultiTexCoord1sARB, + &ext_glMultiTexCoord1sSGIS, + &wow64_ext_glMultiTexCoord1sv, + &wow64_ext_glMultiTexCoord1svARB, + &wow64_ext_glMultiTexCoord1svSGIS, + &ext_glMultiTexCoord1xOES, + &wow64_ext_glMultiTexCoord1xvOES, + &ext_glMultiTexCoord2bOES, + &wow64_ext_glMultiTexCoord2bvOES, + &ext_glMultiTexCoord2d, + &ext_glMultiTexCoord2dARB, + &ext_glMultiTexCoord2dSGIS, + &wow64_ext_glMultiTexCoord2dv, + &wow64_ext_glMultiTexCoord2dvARB, + &wow64_ext_glMultiTexCoord2dvSGIS, + &ext_glMultiTexCoord2f, + &ext_glMultiTexCoord2fARB, + &ext_glMultiTexCoord2fSGIS, + &wow64_ext_glMultiTexCoord2fv, + &wow64_ext_glMultiTexCoord2fvARB, + &wow64_ext_glMultiTexCoord2fvSGIS, + &ext_glMultiTexCoord2hNV, + &wow64_ext_glMultiTexCoord2hvNV, + &ext_glMultiTexCoord2i, + &ext_glMultiTexCoord2iARB, + &ext_glMultiTexCoord2iSGIS, + &wow64_ext_glMultiTexCoord2iv, + &wow64_ext_glMultiTexCoord2ivARB, + &wow64_ext_glMultiTexCoord2ivSGIS, + &ext_glMultiTexCoord2s, + &ext_glMultiTexCoord2sARB, + &ext_glMultiTexCoord2sSGIS, + &wow64_ext_glMultiTexCoord2sv, + &wow64_ext_glMultiTexCoord2svARB, + &wow64_ext_glMultiTexCoord2svSGIS, + &ext_glMultiTexCoord2xOES, + &wow64_ext_glMultiTexCoord2xvOES, + &ext_glMultiTexCoord3bOES, + &wow64_ext_glMultiTexCoord3bvOES, + &ext_glMultiTexCoord3d, + &ext_glMultiTexCoord3dARB, + &ext_glMultiTexCoord3dSGIS, + &wow64_ext_glMultiTexCoord3dv, + &wow64_ext_glMultiTexCoord3dvARB, + &wow64_ext_glMultiTexCoord3dvSGIS, + &ext_glMultiTexCoord3f, + &ext_glMultiTexCoord3fARB, + &ext_glMultiTexCoord3fSGIS, + &wow64_ext_glMultiTexCoord3fv, + &wow64_ext_glMultiTexCoord3fvARB, + &wow64_ext_glMultiTexCoord3fvSGIS, + &ext_glMultiTexCoord3hNV, + &wow64_ext_glMultiTexCoord3hvNV, + &ext_glMultiTexCoord3i, + &ext_glMultiTexCoord3iARB, + &ext_glMultiTexCoord3iSGIS, + &wow64_ext_glMultiTexCoord3iv, + &wow64_ext_glMultiTexCoord3ivARB, + &wow64_ext_glMultiTexCoord3ivSGIS, + &ext_glMultiTexCoord3s, + &ext_glMultiTexCoord3sARB, + &ext_glMultiTexCoord3sSGIS, + &wow64_ext_glMultiTexCoord3sv, + &wow64_ext_glMultiTexCoord3svARB, + &wow64_ext_glMultiTexCoord3svSGIS, + &ext_glMultiTexCoord3xOES, + &wow64_ext_glMultiTexCoord3xvOES, + &ext_glMultiTexCoord4bOES, + &wow64_ext_glMultiTexCoord4bvOES, + &ext_glMultiTexCoord4d, + &ext_glMultiTexCoord4dARB, + &ext_glMultiTexCoord4dSGIS, + &wow64_ext_glMultiTexCoord4dv, + &wow64_ext_glMultiTexCoord4dvARB, + &wow64_ext_glMultiTexCoord4dvSGIS, + &ext_glMultiTexCoord4f, + &ext_glMultiTexCoord4fARB, + &ext_glMultiTexCoord4fSGIS, + &wow64_ext_glMultiTexCoord4fv, + &wow64_ext_glMultiTexCoord4fvARB, + &wow64_ext_glMultiTexCoord4fvSGIS, + &ext_glMultiTexCoord4hNV, + &wow64_ext_glMultiTexCoord4hvNV, + &ext_glMultiTexCoord4i, + &ext_glMultiTexCoord4iARB, + &ext_glMultiTexCoord4iSGIS, + &wow64_ext_glMultiTexCoord4iv, + &wow64_ext_glMultiTexCoord4ivARB, + &wow64_ext_glMultiTexCoord4ivSGIS, + &ext_glMultiTexCoord4s, + &ext_glMultiTexCoord4sARB, + &ext_glMultiTexCoord4sSGIS, + &wow64_ext_glMultiTexCoord4sv, + &wow64_ext_glMultiTexCoord4svARB, + &wow64_ext_glMultiTexCoord4svSGIS, + &ext_glMultiTexCoord4xOES, + &wow64_ext_glMultiTexCoord4xvOES, + &ext_glMultiTexCoordP1ui, + &wow64_ext_glMultiTexCoordP1uiv, + &ext_glMultiTexCoordP2ui, + &wow64_ext_glMultiTexCoordP2uiv, + &ext_glMultiTexCoordP3ui, + &wow64_ext_glMultiTexCoordP3uiv, + &ext_glMultiTexCoordP4ui, + &wow64_ext_glMultiTexCoordP4uiv, + &wow64_ext_glMultiTexCoordPointerEXT, + &wow64_ext_glMultiTexCoordPointerSGIS, + &ext_glMultiTexEnvfEXT, + &wow64_ext_glMultiTexEnvfvEXT, + &ext_glMultiTexEnviEXT, + &wow64_ext_glMultiTexEnvivEXT, + &ext_glMultiTexGendEXT, + &wow64_ext_glMultiTexGendvEXT, + &ext_glMultiTexGenfEXT, + &wow64_ext_glMultiTexGenfvEXT, + &ext_glMultiTexGeniEXT, + &wow64_ext_glMultiTexGenivEXT, + &wow64_ext_glMultiTexImage1DEXT, + &wow64_ext_glMultiTexImage2DEXT, + &wow64_ext_glMultiTexImage3DEXT, + &wow64_ext_glMultiTexParameterIivEXT, + &wow64_ext_glMultiTexParameterIuivEXT, + &ext_glMultiTexParameterfEXT, + &wow64_ext_glMultiTexParameterfvEXT, + &ext_glMultiTexParameteriEXT, + &wow64_ext_glMultiTexParameterivEXT, + &ext_glMultiTexRenderbufferEXT, + &wow64_ext_glMultiTexSubImage1DEXT, + &wow64_ext_glMultiTexSubImage2DEXT, + &wow64_ext_glMultiTexSubImage3DEXT, + &ext_glMulticastBarrierNV, + &ext_glMulticastBlitFramebufferNV, + &wow64_ext_glMulticastBufferSubDataNV, + &wow64_ext_glMulticastCopyBufferSubDataNV, + &ext_glMulticastCopyImageSubDataNV, + &wow64_ext_glMulticastFramebufferSampleLocationsfvNV, + &wow64_ext_glMulticastGetQueryObjecti64vNV, + &wow64_ext_glMulticastGetQueryObjectivNV, + &wow64_ext_glMulticastGetQueryObjectui64vNV, + &wow64_ext_glMulticastGetQueryObjectuivNV, + &wow64_ext_glMulticastScissorArrayvNVX, + &wow64_ext_glMulticastViewportArrayvNVX, + &ext_glMulticastViewportPositionWScaleNVX, + &ext_glMulticastWaitSyncNV, + &ext_glNamedBufferAttachMemoryNV, + &wow64_ext_glNamedBufferData, + &wow64_ext_glNamedBufferDataEXT, + &wow64_ext_glNamedBufferPageCommitmentARB, + &wow64_ext_glNamedBufferPageCommitmentEXT, + &wow64_ext_glNamedBufferStorage, + &wow64_ext_glNamedBufferStorageEXT, + &wow64_ext_glNamedBufferStorageExternalEXT, + &wow64_ext_glNamedBufferStorageMemEXT, + &wow64_ext_glNamedBufferSubData, + &wow64_ext_glNamedBufferSubDataEXT, + &wow64_ext_glNamedCopyBufferSubDataEXT, + &ext_glNamedFramebufferDrawBuffer, + &wow64_ext_glNamedFramebufferDrawBuffers, + &ext_glNamedFramebufferParameteri, + &ext_glNamedFramebufferParameteriEXT, + &ext_glNamedFramebufferReadBuffer, + &ext_glNamedFramebufferRenderbuffer, + &ext_glNamedFramebufferRenderbufferEXT, + &wow64_ext_glNamedFramebufferSampleLocationsfvARB, + &wow64_ext_glNamedFramebufferSampleLocationsfvNV, + &wow64_ext_glNamedFramebufferSamplePositionsfvAMD, + &ext_glNamedFramebufferTexture, + &ext_glNamedFramebufferTexture1DEXT, + &ext_glNamedFramebufferTexture2DEXT, + &ext_glNamedFramebufferTexture3DEXT, + &ext_glNamedFramebufferTextureEXT, + &ext_glNamedFramebufferTextureFaceEXT, + &ext_glNamedFramebufferTextureLayer, + &ext_glNamedFramebufferTextureLayerEXT, + &ext_glNamedProgramLocalParameter4dEXT, + &wow64_ext_glNamedProgramLocalParameter4dvEXT, + &ext_glNamedProgramLocalParameter4fEXT, + &wow64_ext_glNamedProgramLocalParameter4fvEXT, + &ext_glNamedProgramLocalParameterI4iEXT, + &wow64_ext_glNamedProgramLocalParameterI4ivEXT, + &ext_glNamedProgramLocalParameterI4uiEXT, + &wow64_ext_glNamedProgramLocalParameterI4uivEXT, + &wow64_ext_glNamedProgramLocalParameters4fvEXT, + &wow64_ext_glNamedProgramLocalParametersI4ivEXT, + &wow64_ext_glNamedProgramLocalParametersI4uivEXT, + &wow64_ext_glNamedProgramStringEXT, + &ext_glNamedRenderbufferStorage, + &ext_glNamedRenderbufferStorageEXT, + &ext_glNamedRenderbufferStorageMultisample, + &ext_glNamedRenderbufferStorageMultisampleAdvancedAMD, + &ext_glNamedRenderbufferStorageMultisampleCoverageEXT, + &ext_glNamedRenderbufferStorageMultisampleEXT, + &wow64_ext_glNamedStringARB, + &ext_glNewBufferRegion, + &wow64_ext_glNewObjectBufferATI, + &ext_glNormal3fVertex3fSUN, + &wow64_ext_glNormal3fVertex3fvSUN, + &ext_glNormal3hNV, + &wow64_ext_glNormal3hvNV, + &ext_glNormal3xOES, + &wow64_ext_glNormal3xvOES, + &ext_glNormalFormatNV, + &ext_glNormalP3ui, + &wow64_ext_glNormalP3uiv, + &wow64_ext_glNormalPointerEXT, + &wow64_ext_glNormalPointerListIBM, + &wow64_ext_glNormalPointervINTEL, + &ext_glNormalStream3bATI, + &wow64_ext_glNormalStream3bvATI, + &ext_glNormalStream3dATI, + &wow64_ext_glNormalStream3dvATI, + &ext_glNormalStream3fATI, + &wow64_ext_glNormalStream3fvATI, + &ext_glNormalStream3iATI, + &wow64_ext_glNormalStream3ivATI, + &ext_glNormalStream3sATI, + &wow64_ext_glNormalStream3svATI, + &wow64_ext_glObjectLabel, + &wow64_ext_glObjectPtrLabel, + &ext_glObjectPurgeableAPPLE, + &ext_glObjectUnpurgeableAPPLE, + &ext_glOrthofOES, + &ext_glOrthoxOES, + &ext_glPNTrianglesfATI, + &ext_glPNTrianglesiATI, + &ext_glPassTexCoordATI, + &ext_glPassThroughxOES, + &wow64_ext_glPatchParameterfv, + &ext_glPatchParameteri, + &wow64_ext_glPathColorGenNV, + &wow64_ext_glPathCommandsNV, + &wow64_ext_glPathCoordsNV, + &ext_glPathCoverDepthFuncNV, + &wow64_ext_glPathDashArrayNV, + &ext_glPathFogGenNV, + &wow64_ext_glPathGlyphIndexArrayNV, + &wow64_ext_glPathGlyphIndexRangeNV, + &wow64_ext_glPathGlyphRangeNV, + &wow64_ext_glPathGlyphsNV, + &wow64_ext_glPathMemoryGlyphIndexArrayNV, + &ext_glPathParameterfNV, + &wow64_ext_glPathParameterfvNV, + &ext_glPathParameteriNV, + &wow64_ext_glPathParameterivNV, + &ext_glPathStencilDepthOffsetNV, + &ext_glPathStencilFuncNV, + &wow64_ext_glPathStringNV, + &wow64_ext_glPathSubCommandsNV, + &wow64_ext_glPathSubCoordsNV, + &wow64_ext_glPathTexGenNV, + &ext_glPauseTransformFeedback, + &ext_glPauseTransformFeedbackNV, + &wow64_ext_glPixelDataRangeNV, + &wow64_ext_glPixelMapx, + &ext_glPixelStorex, + &ext_glPixelTexGenParameterfSGIS, + &wow64_ext_glPixelTexGenParameterfvSGIS, + &ext_glPixelTexGenParameteriSGIS, + &wow64_ext_glPixelTexGenParameterivSGIS, + &ext_glPixelTexGenSGIX, + &ext_glPixelTransferxOES, + &ext_glPixelTransformParameterfEXT, + &wow64_ext_glPixelTransformParameterfvEXT, + &ext_glPixelTransformParameteriEXT, + &wow64_ext_glPixelTransformParameterivEXT, + &ext_glPixelZoomxOES, + &wow64_ext_glPointAlongPathNV, + &ext_glPointParameterf, + &ext_glPointParameterfARB, + &ext_glPointParameterfEXT, + &ext_glPointParameterfSGIS, + &wow64_ext_glPointParameterfv, + &wow64_ext_glPointParameterfvARB, + &wow64_ext_glPointParameterfvEXT, + &wow64_ext_glPointParameterfvSGIS, + &ext_glPointParameteri, + &ext_glPointParameteriNV, + &wow64_ext_glPointParameteriv, + &wow64_ext_glPointParameterivNV, + &wow64_ext_glPointParameterxvOES, + &ext_glPointSizexOES, + &wow64_ext_glPollAsyncSGIX, + &wow64_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, + &wow64_ext_glPrioritizeTexturesEXT, + &wow64_ext_glPrioritizeTexturesxOES, + &wow64_ext_glProgramBinary, + &wow64_ext_glProgramBufferParametersIivNV, + &wow64_ext_glProgramBufferParametersIuivNV, + &wow64_ext_glProgramBufferParametersfvNV, + &ext_glProgramEnvParameter4dARB, + &wow64_ext_glProgramEnvParameter4dvARB, + &ext_glProgramEnvParameter4fARB, + &wow64_ext_glProgramEnvParameter4fvARB, + &ext_glProgramEnvParameterI4iNV, + &wow64_ext_glProgramEnvParameterI4ivNV, + &ext_glProgramEnvParameterI4uiNV, + &wow64_ext_glProgramEnvParameterI4uivNV, + &wow64_ext_glProgramEnvParameters4fvEXT, + &wow64_ext_glProgramEnvParametersI4ivNV, + &wow64_ext_glProgramEnvParametersI4uivNV, + &ext_glProgramLocalParameter4dARB, + &wow64_ext_glProgramLocalParameter4dvARB, + &ext_glProgramLocalParameter4fARB, + &wow64_ext_glProgramLocalParameter4fvARB, + &ext_glProgramLocalParameterI4iNV, + &wow64_ext_glProgramLocalParameterI4ivNV, + &ext_glProgramLocalParameterI4uiNV, + &wow64_ext_glProgramLocalParameterI4uivNV, + &wow64_ext_glProgramLocalParameters4fvEXT, + &wow64_ext_glProgramLocalParametersI4ivNV, + &wow64_ext_glProgramLocalParametersI4uivNV, + &wow64_ext_glProgramNamedParameter4dNV, + &wow64_ext_glProgramNamedParameter4dvNV, + &wow64_ext_glProgramNamedParameter4fNV, + &wow64_ext_glProgramNamedParameter4fvNV, + &ext_glProgramParameter4dNV, + &wow64_ext_glProgramParameter4dvNV, + &ext_glProgramParameter4fNV, + &wow64_ext_glProgramParameter4fvNV, + &ext_glProgramParameteri, + &ext_glProgramParameteriARB, + &ext_glProgramParameteriEXT, + &wow64_ext_glProgramParameters4dvNV, + &wow64_ext_glProgramParameters4fvNV, + &wow64_ext_glProgramPathFragmentInputGenNV, + &wow64_ext_glProgramStringARB, + &wow64_ext_glProgramSubroutineParametersuivNV, + &ext_glProgramUniform1d, + &ext_glProgramUniform1dEXT, + &wow64_ext_glProgramUniform1dv, + &wow64_ext_glProgramUniform1dvEXT, + &ext_glProgramUniform1f, + &ext_glProgramUniform1fEXT, + &wow64_ext_glProgramUniform1fv, + &wow64_ext_glProgramUniform1fvEXT, + &ext_glProgramUniform1i, + &ext_glProgramUniform1i64ARB, + &ext_glProgramUniform1i64NV, + &wow64_ext_glProgramUniform1i64vARB, + &wow64_ext_glProgramUniform1i64vNV, + &ext_glProgramUniform1iEXT, + &wow64_ext_glProgramUniform1iv, + &wow64_ext_glProgramUniform1ivEXT, + &ext_glProgramUniform1ui, + &ext_glProgramUniform1ui64ARB, + &ext_glProgramUniform1ui64NV, + &wow64_ext_glProgramUniform1ui64vARB, + &wow64_ext_glProgramUniform1ui64vNV, + &ext_glProgramUniform1uiEXT, + &wow64_ext_glProgramUniform1uiv, + &wow64_ext_glProgramUniform1uivEXT, + &ext_glProgramUniform2d, + &ext_glProgramUniform2dEXT, + &wow64_ext_glProgramUniform2dv, + &wow64_ext_glProgramUniform2dvEXT, + &ext_glProgramUniform2f, + &ext_glProgramUniform2fEXT, + &wow64_ext_glProgramUniform2fv, + &wow64_ext_glProgramUniform2fvEXT, + &ext_glProgramUniform2i, + &ext_glProgramUniform2i64ARB, + &ext_glProgramUniform2i64NV, + &wow64_ext_glProgramUniform2i64vARB, + &wow64_ext_glProgramUniform2i64vNV, + &ext_glProgramUniform2iEXT, + &wow64_ext_glProgramUniform2iv, + &wow64_ext_glProgramUniform2ivEXT, + &ext_glProgramUniform2ui, + &ext_glProgramUniform2ui64ARB, + &ext_glProgramUniform2ui64NV, + &wow64_ext_glProgramUniform2ui64vARB, + &wow64_ext_glProgramUniform2ui64vNV, + &ext_glProgramUniform2uiEXT, + &wow64_ext_glProgramUniform2uiv, + &wow64_ext_glProgramUniform2uivEXT, + &ext_glProgramUniform3d, + &ext_glProgramUniform3dEXT, + &wow64_ext_glProgramUniform3dv, + &wow64_ext_glProgramUniform3dvEXT, + &ext_glProgramUniform3f, + &ext_glProgramUniform3fEXT, + &wow64_ext_glProgramUniform3fv, + &wow64_ext_glProgramUniform3fvEXT, + &ext_glProgramUniform3i, + &ext_glProgramUniform3i64ARB, + &ext_glProgramUniform3i64NV, + &wow64_ext_glProgramUniform3i64vARB, + &wow64_ext_glProgramUniform3i64vNV, + &ext_glProgramUniform3iEXT, + &wow64_ext_glProgramUniform3iv, + &wow64_ext_glProgramUniform3ivEXT, + &ext_glProgramUniform3ui, + &ext_glProgramUniform3ui64ARB, + &ext_glProgramUniform3ui64NV, + &wow64_ext_glProgramUniform3ui64vARB, + &wow64_ext_glProgramUniform3ui64vNV, + &ext_glProgramUniform3uiEXT, + &wow64_ext_glProgramUniform3uiv, + &wow64_ext_glProgramUniform3uivEXT, + &ext_glProgramUniform4d, + &ext_glProgramUniform4dEXT, + &wow64_ext_glProgramUniform4dv, + &wow64_ext_glProgramUniform4dvEXT, + &ext_glProgramUniform4f, + &ext_glProgramUniform4fEXT, + &wow64_ext_glProgramUniform4fv, + &wow64_ext_glProgramUniform4fvEXT, + &ext_glProgramUniform4i, + &ext_glProgramUniform4i64ARB, + &ext_glProgramUniform4i64NV, + &wow64_ext_glProgramUniform4i64vARB, + &wow64_ext_glProgramUniform4i64vNV, + &ext_glProgramUniform4iEXT, + &wow64_ext_glProgramUniform4iv, + &wow64_ext_glProgramUniform4ivEXT, + &ext_glProgramUniform4ui, + &ext_glProgramUniform4ui64ARB, + &ext_glProgramUniform4ui64NV, + &wow64_ext_glProgramUniform4ui64vARB, + &wow64_ext_glProgramUniform4ui64vNV, + &ext_glProgramUniform4uiEXT, + &wow64_ext_glProgramUniform4uiv, + &wow64_ext_glProgramUniform4uivEXT, + &ext_glProgramUniformHandleui64ARB, + &ext_glProgramUniformHandleui64NV, + &wow64_ext_glProgramUniformHandleui64vARB, + &wow64_ext_glProgramUniformHandleui64vNV, + &wow64_ext_glProgramUniformMatrix2dv, + &wow64_ext_glProgramUniformMatrix2dvEXT, + &wow64_ext_glProgramUniformMatrix2fv, + &wow64_ext_glProgramUniformMatrix2fvEXT, + &wow64_ext_glProgramUniformMatrix2x3dv, + &wow64_ext_glProgramUniformMatrix2x3dvEXT, + &wow64_ext_glProgramUniformMatrix2x3fv, + &wow64_ext_glProgramUniformMatrix2x3fvEXT, + &wow64_ext_glProgramUniformMatrix2x4dv, + &wow64_ext_glProgramUniformMatrix2x4dvEXT, + &wow64_ext_glProgramUniformMatrix2x4fv, + &wow64_ext_glProgramUniformMatrix2x4fvEXT, + &wow64_ext_glProgramUniformMatrix3dv, + &wow64_ext_glProgramUniformMatrix3dvEXT, + &wow64_ext_glProgramUniformMatrix3fv, + &wow64_ext_glProgramUniformMatrix3fvEXT, + &wow64_ext_glProgramUniformMatrix3x2dv, + &wow64_ext_glProgramUniformMatrix3x2dvEXT, + &wow64_ext_glProgramUniformMatrix3x2fv, + &wow64_ext_glProgramUniformMatrix3x2fvEXT, + &wow64_ext_glProgramUniformMatrix3x4dv, + &wow64_ext_glProgramUniformMatrix3x4dvEXT, + &wow64_ext_glProgramUniformMatrix3x4fv, + &wow64_ext_glProgramUniformMatrix3x4fvEXT, + &wow64_ext_glProgramUniformMatrix4dv, + &wow64_ext_glProgramUniformMatrix4dvEXT, + &wow64_ext_glProgramUniformMatrix4fv, + &wow64_ext_glProgramUniformMatrix4fvEXT, + &wow64_ext_glProgramUniformMatrix4x2dv, + &wow64_ext_glProgramUniformMatrix4x2dvEXT, + &wow64_ext_glProgramUniformMatrix4x2fv, + &wow64_ext_glProgramUniformMatrix4x2fvEXT, + &wow64_ext_glProgramUniformMatrix4x3dv, + &wow64_ext_glProgramUniformMatrix4x3dvEXT, + &wow64_ext_glProgramUniformMatrix4x3fv, + &wow64_ext_glProgramUniformMatrix4x3fvEXT, + &ext_glProgramUniformui64NV, + &wow64_ext_glProgramUniformui64vNV, + &ext_glProgramVertexLimitNV, + &ext_glProvokingVertex, + &ext_glProvokingVertexEXT, + &ext_glPushClientAttribDefaultEXT, + &wow64_ext_glPushDebugGroup, + &wow64_ext_glPushGroupMarkerEXT, + &ext_glQueryCounter, + &wow64_ext_glQueryMatrixxOES, + &ext_glQueryObjectParameteruiAMD, + &wow64_ext_glQueryResourceNV, + &wow64_ext_glQueryResourceTagNV, + &ext_glRasterPos2xOES, + &wow64_ext_glRasterPos2xvOES, + &ext_glRasterPos3xOES, + &wow64_ext_glRasterPos3xvOES, + &ext_glRasterPos4xOES, + &wow64_ext_glRasterPos4xvOES, + &ext_glRasterSamplesEXT, + &ext_glReadBufferRegion, + &ext_glReadInstrumentsSGIX, + &wow64_ext_glReadnPixels, + &wow64_ext_glReadnPixelsARB, + &ext_glRectxOES, + &wow64_ext_glRectxvOES, + &wow64_ext_glReferencePlaneSGIX, + &ext_glReleaseKeyedMutexWin32EXT, + &ext_glReleaseShaderCompiler, + &ext_glRenderGpuMaskNV, + &ext_glRenderbufferStorage, + &ext_glRenderbufferStorageEXT, + &ext_glRenderbufferStorageMultisample, + &ext_glRenderbufferStorageMultisampleAdvancedAMD, + &ext_glRenderbufferStorageMultisampleCoverageNV, + &ext_glRenderbufferStorageMultisampleEXT, + &wow64_ext_glReplacementCodePointerSUN, + &ext_glReplacementCodeubSUN, + &wow64_ext_glReplacementCodeubvSUN, + &ext_glReplacementCodeuiColor3fVertex3fSUN, + &wow64_ext_glReplacementCodeuiColor3fVertex3fvSUN, + &ext_glReplacementCodeuiColor4fNormal3fVertex3fSUN, + &wow64_ext_glReplacementCodeuiColor4fNormal3fVertex3fvSUN, + &ext_glReplacementCodeuiColor4ubVertex3fSUN, + &wow64_ext_glReplacementCodeuiColor4ubVertex3fvSUN, + &ext_glReplacementCodeuiNormal3fVertex3fSUN, + &wow64_ext_glReplacementCodeuiNormal3fVertex3fvSUN, + &ext_glReplacementCodeuiSUN, + &ext_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN, + &wow64_ext_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN, + &ext_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN, + &wow64_ext_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN, + &ext_glReplacementCodeuiTexCoord2fVertex3fSUN, + &wow64_ext_glReplacementCodeuiTexCoord2fVertex3fvSUN, + &ext_glReplacementCodeuiVertex3fSUN, + &wow64_ext_glReplacementCodeuiVertex3fvSUN, + &wow64_ext_glReplacementCodeuivSUN, + &ext_glReplacementCodeusSUN, + &wow64_ext_glReplacementCodeusvSUN, + &wow64_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, + &wow64_ext_glSamplerParameterIiv, + &wow64_ext_glSamplerParameterIuiv, + &ext_glSamplerParameterf, + &wow64_ext_glSamplerParameterfv, + &ext_glSamplerParameteri, + &wow64_ext_glSamplerParameteriv, + &ext_glScalexOES, + &wow64_ext_glScissorArrayv, + &wow64_ext_glScissorExclusiveArrayvNV, + &ext_glScissorExclusiveNV, + &ext_glScissorIndexed, + &wow64_ext_glScissorIndexedv, + &ext_glSecondaryColor3b, + &ext_glSecondaryColor3bEXT, + &wow64_ext_glSecondaryColor3bv, + &wow64_ext_glSecondaryColor3bvEXT, + &ext_glSecondaryColor3d, + &ext_glSecondaryColor3dEXT, + &wow64_ext_glSecondaryColor3dv, + &wow64_ext_glSecondaryColor3dvEXT, + &ext_glSecondaryColor3f, + &ext_glSecondaryColor3fEXT, + &wow64_ext_glSecondaryColor3fv, + &wow64_ext_glSecondaryColor3fvEXT, + &ext_glSecondaryColor3hNV, + &wow64_ext_glSecondaryColor3hvNV, + &ext_glSecondaryColor3i, + &ext_glSecondaryColor3iEXT, + &wow64_ext_glSecondaryColor3iv, + &wow64_ext_glSecondaryColor3ivEXT, + &ext_glSecondaryColor3s, + &ext_glSecondaryColor3sEXT, + &wow64_ext_glSecondaryColor3sv, + &wow64_ext_glSecondaryColor3svEXT, + &ext_glSecondaryColor3ub, + &ext_glSecondaryColor3ubEXT, + &wow64_ext_glSecondaryColor3ubv, + &wow64_ext_glSecondaryColor3ubvEXT, + &ext_glSecondaryColor3ui, + &ext_glSecondaryColor3uiEXT, + &wow64_ext_glSecondaryColor3uiv, + &wow64_ext_glSecondaryColor3uivEXT, + &ext_glSecondaryColor3us, + &ext_glSecondaryColor3usEXT, + &wow64_ext_glSecondaryColor3usv, + &wow64_ext_glSecondaryColor3usvEXT, + &ext_glSecondaryColorFormatNV, + &ext_glSecondaryColorP3ui, + &wow64_ext_glSecondaryColorP3uiv, + &wow64_ext_glSecondaryColorPointer, + &wow64_ext_glSecondaryColorPointerEXT, + &wow64_ext_glSecondaryColorPointerListIBM, + &wow64_ext_glSelectPerfMonitorCountersAMD, + &ext_glSelectTextureCoordSetSGIS, + &ext_glSelectTextureSGIS, + &wow64_ext_glSemaphoreParameterui64vEXT, + &wow64_ext_glSeparableFilter2D, + &wow64_ext_glSeparableFilter2DEXT, + &ext_glSetFenceAPPLE, + &ext_glSetFenceNV, + &wow64_ext_glSetFragmentShaderConstantATI, + &wow64_ext_glSetInvariantEXT, + &wow64_ext_glSetLocalConstantEXT, + &wow64_ext_glSetMultisamplefvAMD, + &wow64_ext_glShaderBinary, + &ext_glShaderOp1EXT, + &ext_glShaderOp2EXT, + &ext_glShaderOp3EXT, + &wow64_ext_glShaderSource, + &wow64_ext_glShaderSourceARB, + &ext_glShaderStorageBlockBinding, + &ext_glShadingRateImageBarrierNV, + &wow64_ext_glShadingRateImagePaletteNV, + &wow64_ext_glShadingRateSampleOrderCustomNV, + &ext_glShadingRateSampleOrderNV, + &wow64_ext_glSharpenTexFuncSGIS, + &wow64_ext_glSignalSemaphoreEXT, + &wow64_ext_glSignalSemaphoreui64NVX, + &ext_glSignalVkFenceNV, + &ext_glSignalVkSemaphoreNV, + &wow64_ext_glSpecializeShader, + &wow64_ext_glSpecializeShaderARB, + &ext_glSpriteParameterfSGIX, + &wow64_ext_glSpriteParameterfvSGIX, + &ext_glSpriteParameteriSGIX, + &wow64_ext_glSpriteParameterivSGIX, + &ext_glStartInstrumentsSGIX, + &ext_glStateCaptureNV, + &ext_glStencilClearTagEXT, + &wow64_ext_glStencilFillPathInstancedNV, + &ext_glStencilFillPathNV, + &ext_glStencilFuncSeparate, + &ext_glStencilFuncSeparateATI, + &ext_glStencilMaskSeparate, + &ext_glStencilOpSeparate, + &ext_glStencilOpSeparateATI, + &ext_glStencilOpValueAMD, + &wow64_ext_glStencilStrokePathInstancedNV, + &ext_glStencilStrokePathNV, + &wow64_ext_glStencilThenCoverFillPathInstancedNV, + &ext_glStencilThenCoverFillPathNV, + &wow64_ext_glStencilThenCoverStrokePathInstancedNV, + &ext_glStencilThenCoverStrokePathNV, + &ext_glStopInstrumentsSGIX, + &wow64_ext_glStringMarkerGREMEDY, + &ext_glSubpixelPrecisionBiasNV, + &ext_glSwizzleEXT, + &ext_glSyncTextureINTEL, + &ext_glTagSampleBufferSGIX, + &ext_glTangent3bEXT, + &wow64_ext_glTangent3bvEXT, + &ext_glTangent3dEXT, + &wow64_ext_glTangent3dvEXT, + &ext_glTangent3fEXT, + &wow64_ext_glTangent3fvEXT, + &ext_glTangent3iEXT, + &wow64_ext_glTangent3ivEXT, + &ext_glTangent3sEXT, + &wow64_ext_glTangent3svEXT, + &wow64_ext_glTangentPointerEXT, + &ext_glTbufferMask3DFX, + &ext_glTessellationFactorAMD, + &ext_glTessellationModeAMD, + &ext_glTestFenceAPPLE, + &ext_glTestFenceNV, + &ext_glTestObjectAPPLE, + &ext_glTexAttachMemoryNV, + &ext_glTexBuffer, + &ext_glTexBufferARB, + &ext_glTexBufferEXT, + &wow64_ext_glTexBufferRange, + &wow64_ext_glTexBumpParameterfvATI, + &wow64_ext_glTexBumpParameterivATI, + &ext_glTexCoord1bOES, + &wow64_ext_glTexCoord1bvOES, + &ext_glTexCoord1hNV, + &wow64_ext_glTexCoord1hvNV, + &ext_glTexCoord1xOES, + &wow64_ext_glTexCoord1xvOES, + &ext_glTexCoord2bOES, + &wow64_ext_glTexCoord2bvOES, + &ext_glTexCoord2fColor3fVertex3fSUN, + &wow64_ext_glTexCoord2fColor3fVertex3fvSUN, + &ext_glTexCoord2fColor4fNormal3fVertex3fSUN, + &wow64_ext_glTexCoord2fColor4fNormal3fVertex3fvSUN, + &ext_glTexCoord2fColor4ubVertex3fSUN, + &wow64_ext_glTexCoord2fColor4ubVertex3fvSUN, + &ext_glTexCoord2fNormal3fVertex3fSUN, + &wow64_ext_glTexCoord2fNormal3fVertex3fvSUN, + &ext_glTexCoord2fVertex3fSUN, + &wow64_ext_glTexCoord2fVertex3fvSUN, + &ext_glTexCoord2hNV, + &wow64_ext_glTexCoord2hvNV, + &ext_glTexCoord2xOES, + &wow64_ext_glTexCoord2xvOES, + &ext_glTexCoord3bOES, + &wow64_ext_glTexCoord3bvOES, + &ext_glTexCoord3hNV, + &wow64_ext_glTexCoord3hvNV, + &ext_glTexCoord3xOES, + &wow64_ext_glTexCoord3xvOES, + &ext_glTexCoord4bOES, + &wow64_ext_glTexCoord4bvOES, + &ext_glTexCoord4fColor4fNormal3fVertex4fSUN, + &wow64_ext_glTexCoord4fColor4fNormal3fVertex4fvSUN, + &ext_glTexCoord4fVertex4fSUN, + &wow64_ext_glTexCoord4fVertex4fvSUN, + &ext_glTexCoord4hNV, + &wow64_ext_glTexCoord4hvNV, + &ext_glTexCoord4xOES, + &wow64_ext_glTexCoord4xvOES, + &ext_glTexCoordFormatNV, + &ext_glTexCoordP1ui, + &wow64_ext_glTexCoordP1uiv, + &ext_glTexCoordP2ui, + &wow64_ext_glTexCoordP2uiv, + &ext_glTexCoordP3ui, + &wow64_ext_glTexCoordP3uiv, + &ext_glTexCoordP4ui, + &wow64_ext_glTexCoordP4uiv, + &wow64_ext_glTexCoordPointerEXT, + &wow64_ext_glTexCoordPointerListIBM, + &wow64_ext_glTexCoordPointervINTEL, + &ext_glTexEnvxOES, + &wow64_ext_glTexEnvxvOES, + &wow64_ext_glTexFilterFuncSGIS, + &ext_glTexGenxOES, + &wow64_ext_glTexGenxvOES, + &ext_glTexImage2DMultisample, + &ext_glTexImage2DMultisampleCoverageNV, + &wow64_ext_glTexImage3D, + &wow64_ext_glTexImage3DEXT, + &ext_glTexImage3DMultisample, + &ext_glTexImage3DMultisampleCoverageNV, + &wow64_ext_glTexImage4DSGIS, + &ext_glTexPageCommitmentARB, + &wow64_ext_glTexParameterIiv, + &wow64_ext_glTexParameterIivEXT, + &wow64_ext_glTexParameterIuiv, + &wow64_ext_glTexParameterIuivEXT, + &ext_glTexParameterxOES, + &wow64_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, + &wow64_ext_glTexSubImage1DEXT, + &wow64_ext_glTexSubImage2DEXT, + &wow64_ext_glTexSubImage3D, + &wow64_ext_glTexSubImage3DEXT, + &wow64_ext_glTexSubImage4DSGIS, + &ext_glTextureAttachMemoryNV, + &ext_glTextureBarrier, + &ext_glTextureBarrierNV, + &ext_glTextureBuffer, + &ext_glTextureBufferEXT, + &wow64_ext_glTextureBufferRange, + &wow64_ext_glTextureBufferRangeEXT, + &ext_glTextureColorMaskSGIS, + &wow64_ext_glTextureImage1DEXT, + &wow64_ext_glTextureImage2DEXT, + &ext_glTextureImage2DMultisampleCoverageNV, + &ext_glTextureImage2DMultisampleNV, + &wow64_ext_glTextureImage3DEXT, + &ext_glTextureImage3DMultisampleCoverageNV, + &ext_glTextureImage3DMultisampleNV, + &ext_glTextureLightEXT, + &ext_glTextureMaterialEXT, + &ext_glTextureNormalEXT, + &ext_glTexturePageCommitmentEXT, + &wow64_ext_glTextureParameterIiv, + &wow64_ext_glTextureParameterIivEXT, + &wow64_ext_glTextureParameterIuiv, + &wow64_ext_glTextureParameterIuivEXT, + &ext_glTextureParameterf, + &ext_glTextureParameterfEXT, + &wow64_ext_glTextureParameterfv, + &wow64_ext_glTextureParameterfvEXT, + &ext_glTextureParameteri, + &ext_glTextureParameteriEXT, + &wow64_ext_glTextureParameteriv, + &wow64_ext_glTextureParameterivEXT, + &wow64_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, + &wow64_ext_glTextureSubImage1D, + &wow64_ext_glTextureSubImage1DEXT, + &wow64_ext_glTextureSubImage2D, + &wow64_ext_glTextureSubImage2DEXT, + &wow64_ext_glTextureSubImage3D, + &wow64_ext_glTextureSubImage3DEXT, + &ext_glTextureView, + &ext_glTrackMatrixNV, + &wow64_ext_glTransformFeedbackAttribsNV, + &ext_glTransformFeedbackBufferBase, + &wow64_ext_glTransformFeedbackBufferRange, + &wow64_ext_glTransformFeedbackStreamAttribsNV, + &wow64_ext_glTransformFeedbackVaryings, + &wow64_ext_glTransformFeedbackVaryingsEXT, + &wow64_ext_glTransformFeedbackVaryingsNV, + &wow64_ext_glTransformPathNV, + &ext_glTranslatexOES, + &ext_glUniform1d, + &wow64_ext_glUniform1dv, + &ext_glUniform1f, + &ext_glUniform1fARB, + &wow64_ext_glUniform1fv, + &wow64_ext_glUniform1fvARB, + &ext_glUniform1i, + &ext_glUniform1i64ARB, + &ext_glUniform1i64NV, + &wow64_ext_glUniform1i64vARB, + &wow64_ext_glUniform1i64vNV, + &ext_glUniform1iARB, + &wow64_ext_glUniform1iv, + &wow64_ext_glUniform1ivARB, + &ext_glUniform1ui, + &ext_glUniform1ui64ARB, + &ext_glUniform1ui64NV, + &wow64_ext_glUniform1ui64vARB, + &wow64_ext_glUniform1ui64vNV, + &ext_glUniform1uiEXT, + &wow64_ext_glUniform1uiv, + &wow64_ext_glUniform1uivEXT, + &ext_glUniform2d, + &wow64_ext_glUniform2dv, + &ext_glUniform2f, + &ext_glUniform2fARB, + &wow64_ext_glUniform2fv, + &wow64_ext_glUniform2fvARB, + &ext_glUniform2i, + &ext_glUniform2i64ARB, + &ext_glUniform2i64NV, + &wow64_ext_glUniform2i64vARB, + &wow64_ext_glUniform2i64vNV, + &ext_glUniform2iARB, + &wow64_ext_glUniform2iv, + &wow64_ext_glUniform2ivARB, + &ext_glUniform2ui, + &ext_glUniform2ui64ARB, + &ext_glUniform2ui64NV, + &wow64_ext_glUniform2ui64vARB, + &wow64_ext_glUniform2ui64vNV, + &ext_glUniform2uiEXT, + &wow64_ext_glUniform2uiv, + &wow64_ext_glUniform2uivEXT, + &ext_glUniform3d, + &wow64_ext_glUniform3dv, + &ext_glUniform3f, + &ext_glUniform3fARB, + &wow64_ext_glUniform3fv, + &wow64_ext_glUniform3fvARB, + &ext_glUniform3i, + &ext_glUniform3i64ARB, + &ext_glUniform3i64NV, + &wow64_ext_glUniform3i64vARB, + &wow64_ext_glUniform3i64vNV, + &ext_glUniform3iARB, + &wow64_ext_glUniform3iv, + &wow64_ext_glUniform3ivARB, + &ext_glUniform3ui, + &ext_glUniform3ui64ARB, + &ext_glUniform3ui64NV, + &wow64_ext_glUniform3ui64vARB, + &wow64_ext_glUniform3ui64vNV, + &ext_glUniform3uiEXT, + &wow64_ext_glUniform3uiv, + &wow64_ext_glUniform3uivEXT, + &ext_glUniform4d, + &wow64_ext_glUniform4dv, + &ext_glUniform4f, + &ext_glUniform4fARB, + &wow64_ext_glUniform4fv, + &wow64_ext_glUniform4fvARB, + &ext_glUniform4i, + &ext_glUniform4i64ARB, + &ext_glUniform4i64NV, + &wow64_ext_glUniform4i64vARB, + &wow64_ext_glUniform4i64vNV, + &ext_glUniform4iARB, + &wow64_ext_glUniform4iv, + &wow64_ext_glUniform4ivARB, + &ext_glUniform4ui, + &ext_glUniform4ui64ARB, + &ext_glUniform4ui64NV, + &wow64_ext_glUniform4ui64vARB, + &wow64_ext_glUniform4ui64vNV, + &ext_glUniform4uiEXT, + &wow64_ext_glUniform4uiv, + &wow64_ext_glUniform4uivEXT, + &ext_glUniformBlockBinding, + &ext_glUniformBufferEXT, + &ext_glUniformHandleui64ARB, + &ext_glUniformHandleui64NV, + &wow64_ext_glUniformHandleui64vARB, + &wow64_ext_glUniformHandleui64vNV, + &wow64_ext_glUniformMatrix2dv, + &wow64_ext_glUniformMatrix2fv, + &wow64_ext_glUniformMatrix2fvARB, + &wow64_ext_glUniformMatrix2x3dv, + &wow64_ext_glUniformMatrix2x3fv, + &wow64_ext_glUniformMatrix2x4dv, + &wow64_ext_glUniformMatrix2x4fv, + &wow64_ext_glUniformMatrix3dv, + &wow64_ext_glUniformMatrix3fv, + &wow64_ext_glUniformMatrix3fvARB, + &wow64_ext_glUniformMatrix3x2dv, + &wow64_ext_glUniformMatrix3x2fv, + &wow64_ext_glUniformMatrix3x4dv, + &wow64_ext_glUniformMatrix3x4fv, + &wow64_ext_glUniformMatrix4dv, + &wow64_ext_glUniformMatrix4fv, + &wow64_ext_glUniformMatrix4fvARB, + &wow64_ext_glUniformMatrix4x2dv, + &wow64_ext_glUniformMatrix4x2fv, + &wow64_ext_glUniformMatrix4x3dv, + &wow64_ext_glUniformMatrix4x3fv, + &wow64_ext_glUniformSubroutinesuiv, + &ext_glUniformui64NV, + &wow64_ext_glUniformui64vNV, + &ext_glUnlockArraysEXT, + &ext_glUnmapBuffer, + &ext_glUnmapBufferARB, + &ext_glUnmapNamedBuffer, + &ext_glUnmapNamedBufferEXT, + &ext_glUnmapObjectBufferATI, + &ext_glUnmapTexture2DINTEL, + &wow64_ext_glUpdateObjectBufferATI, + &ext_glUploadGpuMaskNVX, + &ext_glUseProgram, + &ext_glUseProgramObjectARB, + &ext_glUseProgramStages, + &ext_glUseShaderProgramEXT, + &ext_glVDPAUFiniNV, + &wow64_ext_glVDPAUGetSurfaceivNV, + &wow64_ext_glVDPAUInitNV, + &ext_glVDPAUIsSurfaceNV, + &wow64_ext_glVDPAUMapSurfacesNV, + &wow64_ext_glVDPAURegisterOutputSurfaceNV, + &wow64_ext_glVDPAURegisterVideoSurfaceNV, + &wow64_ext_glVDPAURegisterVideoSurfaceWithPictureStructureNV, + &ext_glVDPAUSurfaceAccessNV, + &wow64_ext_glVDPAUUnmapSurfacesNV, + &ext_glVDPAUUnregisterSurfaceNV, + &ext_glValidateProgram, + &ext_glValidateProgramARB, + &ext_glValidateProgramPipeline, + &ext_glVariantArrayObjectATI, + &wow64_ext_glVariantPointerEXT, + &wow64_ext_glVariantbvEXT, + &wow64_ext_glVariantdvEXT, + &wow64_ext_glVariantfvEXT, + &wow64_ext_glVariantivEXT, + &wow64_ext_glVariantsvEXT, + &wow64_ext_glVariantubvEXT, + &wow64_ext_glVariantuivEXT, + &wow64_ext_glVariantusvEXT, + &ext_glVertex2bOES, + &wow64_ext_glVertex2bvOES, + &ext_glVertex2hNV, + &wow64_ext_glVertex2hvNV, + &ext_glVertex2xOES, + &wow64_ext_glVertex2xvOES, + &ext_glVertex3bOES, + &wow64_ext_glVertex3bvOES, + &ext_glVertex3hNV, + &wow64_ext_glVertex3hvNV, + &ext_glVertex3xOES, + &wow64_ext_glVertex3xvOES, + &ext_glVertex4bOES, + &wow64_ext_glVertex4bvOES, + &ext_glVertex4hNV, + &wow64_ext_glVertex4hvNV, + &ext_glVertex4xOES, + &wow64_ext_glVertex4xvOES, + &ext_glVertexArrayAttribBinding, + &ext_glVertexArrayAttribFormat, + &ext_glVertexArrayAttribIFormat, + &ext_glVertexArrayAttribLFormat, + &wow64_ext_glVertexArrayBindVertexBufferEXT, + &ext_glVertexArrayBindingDivisor, + &wow64_ext_glVertexArrayColorOffsetEXT, + &wow64_ext_glVertexArrayEdgeFlagOffsetEXT, + &ext_glVertexArrayElementBuffer, + &wow64_ext_glVertexArrayFogCoordOffsetEXT, + &wow64_ext_glVertexArrayIndexOffsetEXT, + &wow64_ext_glVertexArrayMultiTexCoordOffsetEXT, + &wow64_ext_glVertexArrayNormalOffsetEXT, + &ext_glVertexArrayParameteriAPPLE, + &wow64_ext_glVertexArrayRangeAPPLE, + &wow64_ext_glVertexArrayRangeNV, + &wow64_ext_glVertexArraySecondaryColorOffsetEXT, + &wow64_ext_glVertexArrayTexCoordOffsetEXT, + &ext_glVertexArrayVertexAttribBindingEXT, + &ext_glVertexArrayVertexAttribDivisorEXT, + &ext_glVertexArrayVertexAttribFormatEXT, + &ext_glVertexArrayVertexAttribIFormatEXT, + &wow64_ext_glVertexArrayVertexAttribIOffsetEXT, + &ext_glVertexArrayVertexAttribLFormatEXT, + &wow64_ext_glVertexArrayVertexAttribLOffsetEXT, + &wow64_ext_glVertexArrayVertexAttribOffsetEXT, + &ext_glVertexArrayVertexBindingDivisorEXT, + &wow64_ext_glVertexArrayVertexBuffer, + &wow64_ext_glVertexArrayVertexBuffers, + &wow64_ext_glVertexArrayVertexOffsetEXT, + &ext_glVertexAttrib1d, + &ext_glVertexAttrib1dARB, + &ext_glVertexAttrib1dNV, + &wow64_ext_glVertexAttrib1dv, + &wow64_ext_glVertexAttrib1dvARB, + &wow64_ext_glVertexAttrib1dvNV, + &ext_glVertexAttrib1f, + &ext_glVertexAttrib1fARB, + &ext_glVertexAttrib1fNV, + &wow64_ext_glVertexAttrib1fv, + &wow64_ext_glVertexAttrib1fvARB, + &wow64_ext_glVertexAttrib1fvNV, + &ext_glVertexAttrib1hNV, + &wow64_ext_glVertexAttrib1hvNV, + &ext_glVertexAttrib1s, + &ext_glVertexAttrib1sARB, + &ext_glVertexAttrib1sNV, + &wow64_ext_glVertexAttrib1sv, + &wow64_ext_glVertexAttrib1svARB, + &wow64_ext_glVertexAttrib1svNV, + &ext_glVertexAttrib2d, + &ext_glVertexAttrib2dARB, + &ext_glVertexAttrib2dNV, + &wow64_ext_glVertexAttrib2dv, + &wow64_ext_glVertexAttrib2dvARB, + &wow64_ext_glVertexAttrib2dvNV, + &ext_glVertexAttrib2f, + &ext_glVertexAttrib2fARB, + &ext_glVertexAttrib2fNV, + &wow64_ext_glVertexAttrib2fv, + &wow64_ext_glVertexAttrib2fvARB, + &wow64_ext_glVertexAttrib2fvNV, + &ext_glVertexAttrib2hNV, + &wow64_ext_glVertexAttrib2hvNV, + &ext_glVertexAttrib2s, + &ext_glVertexAttrib2sARB, + &ext_glVertexAttrib2sNV, + &wow64_ext_glVertexAttrib2sv, + &wow64_ext_glVertexAttrib2svARB, + &wow64_ext_glVertexAttrib2svNV, + &ext_glVertexAttrib3d, + &ext_glVertexAttrib3dARB, + &ext_glVertexAttrib3dNV, + &wow64_ext_glVertexAttrib3dv, + &wow64_ext_glVertexAttrib3dvARB, + &wow64_ext_glVertexAttrib3dvNV, + &ext_glVertexAttrib3f, + &ext_glVertexAttrib3fARB, + &ext_glVertexAttrib3fNV, + &wow64_ext_glVertexAttrib3fv, + &wow64_ext_glVertexAttrib3fvARB, + &wow64_ext_glVertexAttrib3fvNV, + &ext_glVertexAttrib3hNV, + &wow64_ext_glVertexAttrib3hvNV, + &ext_glVertexAttrib3s, + &ext_glVertexAttrib3sARB, + &ext_glVertexAttrib3sNV, + &wow64_ext_glVertexAttrib3sv, + &wow64_ext_glVertexAttrib3svARB, + &wow64_ext_glVertexAttrib3svNV, + &wow64_ext_glVertexAttrib4Nbv, + &wow64_ext_glVertexAttrib4NbvARB, + &wow64_ext_glVertexAttrib4Niv, + &wow64_ext_glVertexAttrib4NivARB, + &wow64_ext_glVertexAttrib4Nsv, + &wow64_ext_glVertexAttrib4NsvARB, + &ext_glVertexAttrib4Nub, + &ext_glVertexAttrib4NubARB, + &wow64_ext_glVertexAttrib4Nubv, + &wow64_ext_glVertexAttrib4NubvARB, + &wow64_ext_glVertexAttrib4Nuiv, + &wow64_ext_glVertexAttrib4NuivARB, + &wow64_ext_glVertexAttrib4Nusv, + &wow64_ext_glVertexAttrib4NusvARB, + &wow64_ext_glVertexAttrib4bv, + &wow64_ext_glVertexAttrib4bvARB, + &ext_glVertexAttrib4d, + &ext_glVertexAttrib4dARB, + &ext_glVertexAttrib4dNV, + &wow64_ext_glVertexAttrib4dv, + &wow64_ext_glVertexAttrib4dvARB, + &wow64_ext_glVertexAttrib4dvNV, + &ext_glVertexAttrib4f, + &ext_glVertexAttrib4fARB, + &ext_glVertexAttrib4fNV, + &wow64_ext_glVertexAttrib4fv, + &wow64_ext_glVertexAttrib4fvARB, + &wow64_ext_glVertexAttrib4fvNV, + &ext_glVertexAttrib4hNV, + &wow64_ext_glVertexAttrib4hvNV, + &wow64_ext_glVertexAttrib4iv, + &wow64_ext_glVertexAttrib4ivARB, + &ext_glVertexAttrib4s, + &ext_glVertexAttrib4sARB, + &ext_glVertexAttrib4sNV, + &wow64_ext_glVertexAttrib4sv, + &wow64_ext_glVertexAttrib4svARB, + &wow64_ext_glVertexAttrib4svNV, + &ext_glVertexAttrib4ubNV, + &wow64_ext_glVertexAttrib4ubv, + &wow64_ext_glVertexAttrib4ubvARB, + &wow64_ext_glVertexAttrib4ubvNV, + &wow64_ext_glVertexAttrib4uiv, + &wow64_ext_glVertexAttrib4uivARB, + &wow64_ext_glVertexAttrib4usv, + &wow64_ext_glVertexAttrib4usvARB, + &ext_glVertexAttribArrayObjectATI, + &ext_glVertexAttribBinding, + &ext_glVertexAttribDivisor, + &ext_glVertexAttribDivisorARB, + &ext_glVertexAttribFormat, + &ext_glVertexAttribFormatNV, + &ext_glVertexAttribI1i, + &ext_glVertexAttribI1iEXT, + &wow64_ext_glVertexAttribI1iv, + &wow64_ext_glVertexAttribI1ivEXT, + &ext_glVertexAttribI1ui, + &ext_glVertexAttribI1uiEXT, + &wow64_ext_glVertexAttribI1uiv, + &wow64_ext_glVertexAttribI1uivEXT, + &ext_glVertexAttribI2i, + &ext_glVertexAttribI2iEXT, + &wow64_ext_glVertexAttribI2iv, + &wow64_ext_glVertexAttribI2ivEXT, + &ext_glVertexAttribI2ui, + &ext_glVertexAttribI2uiEXT, + &wow64_ext_glVertexAttribI2uiv, + &wow64_ext_glVertexAttribI2uivEXT, + &ext_glVertexAttribI3i, + &ext_glVertexAttribI3iEXT, + &wow64_ext_glVertexAttribI3iv, + &wow64_ext_glVertexAttribI3ivEXT, + &ext_glVertexAttribI3ui, + &ext_glVertexAttribI3uiEXT, + &wow64_ext_glVertexAttribI3uiv, + &wow64_ext_glVertexAttribI3uivEXT, + &wow64_ext_glVertexAttribI4bv, + &wow64_ext_glVertexAttribI4bvEXT, + &ext_glVertexAttribI4i, + &ext_glVertexAttribI4iEXT, + &wow64_ext_glVertexAttribI4iv, + &wow64_ext_glVertexAttribI4ivEXT, + &wow64_ext_glVertexAttribI4sv, + &wow64_ext_glVertexAttribI4svEXT, + &wow64_ext_glVertexAttribI4ubv, + &wow64_ext_glVertexAttribI4ubvEXT, + &ext_glVertexAttribI4ui, + &ext_glVertexAttribI4uiEXT, + &wow64_ext_glVertexAttribI4uiv, + &wow64_ext_glVertexAttribI4uivEXT, + &wow64_ext_glVertexAttribI4usv, + &wow64_ext_glVertexAttribI4usvEXT, + &ext_glVertexAttribIFormat, + &ext_glVertexAttribIFormatNV, + &wow64_ext_glVertexAttribIPointer, + &wow64_ext_glVertexAttribIPointerEXT, + &ext_glVertexAttribL1d, + &ext_glVertexAttribL1dEXT, + &wow64_ext_glVertexAttribL1dv, + &wow64_ext_glVertexAttribL1dvEXT, + &ext_glVertexAttribL1i64NV, + &wow64_ext_glVertexAttribL1i64vNV, + &ext_glVertexAttribL1ui64ARB, + &ext_glVertexAttribL1ui64NV, + &wow64_ext_glVertexAttribL1ui64vARB, + &wow64_ext_glVertexAttribL1ui64vNV, + &ext_glVertexAttribL2d, + &ext_glVertexAttribL2dEXT, + &wow64_ext_glVertexAttribL2dv, + &wow64_ext_glVertexAttribL2dvEXT, + &ext_glVertexAttribL2i64NV, + &wow64_ext_glVertexAttribL2i64vNV, + &ext_glVertexAttribL2ui64NV, + &wow64_ext_glVertexAttribL2ui64vNV, + &ext_glVertexAttribL3d, + &ext_glVertexAttribL3dEXT, + &wow64_ext_glVertexAttribL3dv, + &wow64_ext_glVertexAttribL3dvEXT, + &ext_glVertexAttribL3i64NV, + &wow64_ext_glVertexAttribL3i64vNV, + &ext_glVertexAttribL3ui64NV, + &wow64_ext_glVertexAttribL3ui64vNV, + &ext_glVertexAttribL4d, + &ext_glVertexAttribL4dEXT, + &wow64_ext_glVertexAttribL4dv, + &wow64_ext_glVertexAttribL4dvEXT, + &ext_glVertexAttribL4i64NV, + &wow64_ext_glVertexAttribL4i64vNV, + &ext_glVertexAttribL4ui64NV, + &wow64_ext_glVertexAttribL4ui64vNV, + &ext_glVertexAttribLFormat, + &ext_glVertexAttribLFormatNV, + &wow64_ext_glVertexAttribLPointer, + &wow64_ext_glVertexAttribLPointerEXT, + &ext_glVertexAttribP1ui, + &wow64_ext_glVertexAttribP1uiv, + &ext_glVertexAttribP2ui, + &wow64_ext_glVertexAttribP2uiv, + &ext_glVertexAttribP3ui, + &wow64_ext_glVertexAttribP3uiv, + &ext_glVertexAttribP4ui, + &wow64_ext_glVertexAttribP4uiv, + &ext_glVertexAttribParameteriAMD, + &wow64_ext_glVertexAttribPointer, + &wow64_ext_glVertexAttribPointerARB, + &wow64_ext_glVertexAttribPointerNV, + &wow64_ext_glVertexAttribs1dvNV, + &wow64_ext_glVertexAttribs1fvNV, + &wow64_ext_glVertexAttribs1hvNV, + &wow64_ext_glVertexAttribs1svNV, + &wow64_ext_glVertexAttribs2dvNV, + &wow64_ext_glVertexAttribs2fvNV, + &wow64_ext_glVertexAttribs2hvNV, + &wow64_ext_glVertexAttribs2svNV, + &wow64_ext_glVertexAttribs3dvNV, + &wow64_ext_glVertexAttribs3fvNV, + &wow64_ext_glVertexAttribs3hvNV, + &wow64_ext_glVertexAttribs3svNV, + &wow64_ext_glVertexAttribs4dvNV, + &wow64_ext_glVertexAttribs4fvNV, + &wow64_ext_glVertexAttribs4hvNV, + &wow64_ext_glVertexAttribs4svNV, + &wow64_ext_glVertexAttribs4ubvNV, + &ext_glVertexBindingDivisor, + &ext_glVertexBlendARB, + &ext_glVertexBlendEnvfATI, + &ext_glVertexBlendEnviATI, + &ext_glVertexFormatNV, + &ext_glVertexP2ui, + &wow64_ext_glVertexP2uiv, + &ext_glVertexP3ui, + &wow64_ext_glVertexP3uiv, + &ext_glVertexP4ui, + &wow64_ext_glVertexP4uiv, + &wow64_ext_glVertexPointerEXT, + &wow64_ext_glVertexPointerListIBM, + &wow64_ext_glVertexPointervINTEL, + &ext_glVertexStream1dATI, + &wow64_ext_glVertexStream1dvATI, + &ext_glVertexStream1fATI, + &wow64_ext_glVertexStream1fvATI, + &ext_glVertexStream1iATI, + &wow64_ext_glVertexStream1ivATI, + &ext_glVertexStream1sATI, + &wow64_ext_glVertexStream1svATI, + &ext_glVertexStream2dATI, + &wow64_ext_glVertexStream2dvATI, + &ext_glVertexStream2fATI, + &wow64_ext_glVertexStream2fvATI, + &ext_glVertexStream2iATI, + &wow64_ext_glVertexStream2ivATI, + &ext_glVertexStream2sATI, + &wow64_ext_glVertexStream2svATI, + &ext_glVertexStream3dATI, + &wow64_ext_glVertexStream3dvATI, + &ext_glVertexStream3fATI, + &wow64_ext_glVertexStream3fvATI, + &ext_glVertexStream3iATI, + &wow64_ext_glVertexStream3ivATI, + &ext_glVertexStream3sATI, + &wow64_ext_glVertexStream3svATI, + &ext_glVertexStream4dATI, + &wow64_ext_glVertexStream4dvATI, + &ext_glVertexStream4fATI, + &wow64_ext_glVertexStream4fvATI, + &ext_glVertexStream4iATI, + &wow64_ext_glVertexStream4ivATI, + &ext_glVertexStream4sATI, + &wow64_ext_glVertexStream4svATI, + &wow64_ext_glVertexWeightPointerEXT, + &ext_glVertexWeightfEXT, + &wow64_ext_glVertexWeightfvEXT, + &ext_glVertexWeighthNV, + &wow64_ext_glVertexWeighthvNV, + &wow64_ext_glVideoCaptureNV, + &wow64_ext_glVideoCaptureStreamParameterdvNV, + &wow64_ext_glVideoCaptureStreamParameterfvNV, + &wow64_ext_glVideoCaptureStreamParameterivNV, + &wow64_ext_glViewportArrayv, + &ext_glViewportIndexedf, + &wow64_ext_glViewportIndexedfv, + &ext_glViewportPositionWScaleNV, + &ext_glViewportSwizzleNV, + &wow64_ext_glWaitSemaphoreEXT, + &wow64_ext_glWaitSemaphoreui64NVX, + &wow64_ext_glWaitSync, + &ext_glWaitVkSemaphoreNV, + &wow64_ext_glWeightPathsNV, + &wow64_ext_glWeightPointerARB, + &wow64_ext_glWeightbvARB, + &wow64_ext_glWeightdvARB, + &wow64_ext_glWeightfvARB, + &wow64_ext_glWeightivARB, + &wow64_ext_glWeightsvARB, + &wow64_ext_glWeightubvARB, + &wow64_ext_glWeightuivARB, + &wow64_ext_glWeightusvARB, + &ext_glWindowPos2d, + &ext_glWindowPos2dARB, + &ext_glWindowPos2dMESA, + &wow64_ext_glWindowPos2dv, + &wow64_ext_glWindowPos2dvARB, + &wow64_ext_glWindowPos2dvMESA, + &ext_glWindowPos2f, + &ext_glWindowPos2fARB, + &ext_glWindowPos2fMESA, + &wow64_ext_glWindowPos2fv, + &wow64_ext_glWindowPos2fvARB, + &wow64_ext_glWindowPos2fvMESA, + &ext_glWindowPos2i, + &ext_glWindowPos2iARB, + &ext_glWindowPos2iMESA, + &wow64_ext_glWindowPos2iv, + &wow64_ext_glWindowPos2ivARB, + &wow64_ext_glWindowPos2ivMESA, + &ext_glWindowPos2s, + &ext_glWindowPos2sARB, + &ext_glWindowPos2sMESA, + &wow64_ext_glWindowPos2sv, + &wow64_ext_glWindowPos2svARB, + &wow64_ext_glWindowPos2svMESA, + &ext_glWindowPos3d, + &ext_glWindowPos3dARB, + &ext_glWindowPos3dMESA, + &wow64_ext_glWindowPos3dv, + &wow64_ext_glWindowPos3dvARB, + &wow64_ext_glWindowPos3dvMESA, + &ext_glWindowPos3f, + &ext_glWindowPos3fARB, + &ext_glWindowPos3fMESA, + &wow64_ext_glWindowPos3fv, + &wow64_ext_glWindowPos3fvARB, + &wow64_ext_glWindowPos3fvMESA, + &ext_glWindowPos3i, + &ext_glWindowPos3iARB, + &ext_glWindowPos3iMESA, + &wow64_ext_glWindowPos3iv, + &wow64_ext_glWindowPos3ivARB, + &wow64_ext_glWindowPos3ivMESA, + &ext_glWindowPos3s, + &ext_glWindowPos3sARB, + &ext_glWindowPos3sMESA, + &wow64_ext_glWindowPos3sv, + &wow64_ext_glWindowPos3svARB, + &wow64_ext_glWindowPos3svMESA, + &ext_glWindowPos4dMESA, + &wow64_ext_glWindowPos4dvMESA, + &ext_glWindowPos4fMESA, + &wow64_ext_glWindowPos4fvMESA, + &ext_glWindowPos4iMESA, + &wow64_ext_glWindowPos4ivMESA, + &ext_glWindowPos4sMESA, + &wow64_ext_glWindowPos4svMESA, + &wow64_ext_glWindowRectanglesEXT, + &ext_glWriteMaskEXT, + &wow64_ext_wglAllocateMemoryNV, + &wow64_ext_wglBindTexImageARB, + &wow64_ext_wglChoosePixelFormatARB, + &wow64_ext_wglCreateContextAttribsARB, + &wow64_ext_wglCreatePbufferARB, + &wow64_ext_wglDestroyPbufferARB, + &wow64_ext_wglFreeMemoryNV, + &wow64_ext_wglGetCurrentReadDCARB, + &wow64_ext_wglGetExtensionsStringARB, + &wow64_ext_wglGetExtensionsStringEXT, + &wow64_ext_wglGetPbufferDCARB, + &wow64_ext_wglGetPixelFormatAttribfvARB, + &wow64_ext_wglGetPixelFormatAttribivARB, + &ext_wglGetSwapIntervalEXT, + &wow64_ext_wglMakeContextCurrentARB, + &wow64_ext_wglQueryCurrentRendererIntegerWINE, + &wow64_ext_wglQueryCurrentRendererStringWINE, + &wow64_ext_wglQueryPbufferARB, + &wow64_ext_wglQueryRendererIntegerWINE, + &wow64_ext_wglQueryRendererStringWINE, + &wow64_ext_wglReleasePbufferDCARB, + &wow64_ext_wglReleaseTexImageARB, + &wow64_ext_wglSetPbufferAttribARB, + &wow64_ext_wglSetPixelFormatWINE, + &ext_wglSwapIntervalEXT, +}; + +#endif + static BOOL WINAPI null_wglCopyContext( struct wgl_context * hglrcSrc, struct wgl_context * hglrcDst, UINT mask ) { return 0; } static struct wgl_context * WINAPI null_wglCreateContext( HDC hDc ) { return 0; } static BOOL WINAPI null_wglDeleteContext( struct wgl_context * oldContext ) { return 0; }
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/opengl32/make_opengl | 42 ++++++++++++++++++++++++++++++------- dlls/opengl32/unix_thunks.c | 19 ++--------------- dlls/opengl32/unix_wgl.c | 37 ++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 25 deletions(-)
diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index 37dafef9635..4338b8929ad 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -167,6 +167,10 @@ my %manual_win_thunks = "wglGetProcAddress" => 1, "wglSwapBuffers" => 1, ); +my %manual_wow64_thunks = + ( + "glPathGlyphIndexRangeNV" => 1, + );
# # Used to convert some types @@ -258,7 +262,7 @@ sub generate_unix_thunk($$$) my $func_ret = get_func_ret( $func, 0 ); my $ret = "";
- $ret .= "static NTSTATUS $prefix_$name( void *args )\n"; + $ret .= "NTSTATUS $prefix_$name( void *args )\n"; $ret .= "{\n"; $ret .= " struct $name_params *params = args;\n" unless !$call_args && is_void_func( $func ); # special case for functions that take an HDC as first parameter @@ -361,7 +365,7 @@ sub generate_wow64_thunk($$$) } $ret .= " } *params32 = args;\n";
- if ($need_manual_thunk || get_wow64_arg_type( $func->[0] ) =~ /PTR32/ || $name =~ /glPathGlyphIndexRangeNV/) + if ($need_manual_thunk || get_wow64_arg_type( $func->[0] ) =~ /PTR32/) { $ret .= " FIXME( "params32 %p stub!\n", params32 );\n"; $ret .= " return STATUS_NOT_IMPLEMENTED;\n"; @@ -1055,18 +1059,21 @@ foreach (sort keys %wgl_functions) { next if defined $manual_win_functions{$_}; next if needs_wrapper( $_, $wgl_functions{$_} ); + print OUT "static " unless defined $manual_wow64_thunks{$_}; print OUT generate_unix_thunk($_, $wgl_functions{$_}, "wgl"); } foreach (sort keys %norm_functions) { next if defined $manual_win_functions{$_}; next if needs_wrapper( $_, $norm_functions{$_} ); + print OUT "static " unless defined $manual_wow64_thunks{$_}; print OUT generate_unix_thunk($_, $norm_functions{$_}, "gl"); } foreach (sort keys %ext_functions) { next if defined $manual_win_functions{$_}; next if needs_wrapper( $_, $ext_functions{$_} ); + print OUT "static " unless defined $manual_wow64_thunks{$_}; print OUT generate_unix_thunk($_, $ext_functions{$_}, "ext"); }
@@ -1096,29 +1103,48 @@ print OUT "typedef ULONG PTR32;\n\n"; foreach (sort keys %wgl_functions) { next if defined $manual_win_functions{$_}; - next if !needs_wow64_thunk($_, $wgl_functions{$_}); + next if !needs_wow64_thunk($_, $wgl_functions{$_}) || defined $manual_wow64_thunks{$_}; print OUT generate_wow64_thunk($_, $wgl_functions{$_}, "wgl"); } foreach (sort keys %norm_functions) { next if defined $manual_win_functions{$_}; - next if !needs_wow64_thunk($_, $norm_functions{$_}); + next if !needs_wow64_thunk($_, $norm_functions{$_}) || defined $manual_wow64_thunks{$_}; print OUT generate_wow64_thunk($_, $norm_functions{$_}, "gl"); } foreach (sort keys %ext_functions) { next if defined $manual_win_functions{$_}; - next if !needs_wow64_thunk($_, $ext_functions{$_}); + next if !needs_wow64_thunk($_, $ext_functions{$_}) || defined $manual_wow64_thunks{$_}; print OUT generate_wow64_thunk($_, $ext_functions{$_}, "ext"); }
+foreach (sort keys %wgl_functions) +{ + next if defined $manual_win_functions{$_}; + next unless defined $manual_wow64_thunks{$_}; + print OUT "extern NTSTATUS wow64_wgl_$_( void *args ) DECLSPEC_HIDDEN;\n"; +} +foreach (sort keys %norm_functions) +{ + next if defined $manual_win_functions{$_}; + next unless defined $manual_wow64_thunks{$_}; + print OUT "extern NTSTATUS wow64_gl_$_( void *args ) DECLSPEC_HIDDEN;\n"; +} +foreach (sort keys %ext_functions) +{ + next if defined $manual_win_functions{$_}; + next unless defined $manual_wow64_thunks{$_}; + print OUT "extern NTSTATUS wow64_ext_$_( void *args ) DECLSPEC_HIDDEN;\n"; +} + print OUT "\nconst unixlib_entry_t __wine_unix_call_wow64_funcs[] =\n"; print OUT "{\n"; print OUT " &thread_attach,\n"; foreach (sort keys %wgl_functions) { next if defined $manual_win_functions{$_}; - if (needs_wow64_thunk($_, $wgl_functions{$_})) + if (needs_wow64_thunk($_, $wgl_functions{$_}) || defined $manual_wow64_thunks{$_}) { printf OUT " &wow64_wgl_%s,\n", $_; } @@ -1130,7 +1156,7 @@ foreach (sort keys %wgl_functions) foreach (sort keys %norm_functions) { next if defined $manual_win_functions{$_}; - if (needs_wow64_thunk($_, $norm_functions{$_})) + if (needs_wow64_thunk($_, $norm_functions{$_}) || defined $manual_wow64_thunks{$_}) { printf OUT " &wow64_gl_%s,\n", $_; } @@ -1142,7 +1168,7 @@ foreach (sort keys %norm_functions) foreach (sort keys %ext_functions) { next if defined $manual_win_functions{$_}; - if (needs_wow64_thunk($_, $ext_functions{$_})) + if (needs_wow64_thunk($_, $ext_functions{$_}) || defined $manual_wow64_thunks{$_}) { printf OUT " &wow64_ext_%s,\n", $_; } diff --git a/dlls/opengl32/unix_thunks.c b/dlls/opengl32/unix_thunks.c index 815b8c9e865..e035724361f 100644 --- a/dlls/opengl32/unix_thunks.c +++ b/dlls/opengl32/unix_thunks.c @@ -14753,7 +14753,7 @@ static NTSTATUS ext_glPathGlyphIndexArrayNV( void *args ) return STATUS_SUCCESS; }
-static NTSTATUS ext_glPathGlyphIndexRangeNV( void *args ) +NTSTATUS ext_glPathGlyphIndexRangeNV( void *args ) { struct glPathGlyphIndexRangeNV_params *params = args; const struct opengl_funcs *funcs = NtCurrentTeb()->glTable; @@ -48319,22 +48319,6 @@ static NTSTATUS wow64_ext_glPathGlyphIndexArrayNV( void *args ) return status; }
-static NTSTATUS wow64_ext_glPathGlyphIndexRangeNV( void *args ) -{ - struct - { - GLenum fontTarget; - PTR32 fontName; - GLbitfield fontStyle; - GLuint pathParameterTemplate; - GLfloat emScale; - PTR32 baseAndCount; - GLenum ret; - } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); - return STATUS_NOT_IMPLEMENTED; -} - static NTSTATUS wow64_ext_glPathGlyphRangeNV( void *args ) { struct @@ -60697,6 +60681,7 @@ static NTSTATUS wow64_ext_wglSetPixelFormatWINE( void *args ) return status; }
+extern NTSTATUS wow64_ext_glPathGlyphIndexRangeNV( void *args ) DECLSPEC_HIDDEN;
const unixlib_entry_t __wine_unix_call_wow64_funcs[] = { diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index 7a6b3bb0ca4..8d9c71b119d 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -558,6 +558,8 @@ static HGLRC wrap_wglCreateContext( HDC hdc ) struct opengl_context *context; struct opengl_funcs *funcs = get_dc_funcs( hdc );
+ TRACE( "hdc %p.\n", hdc ); + if (!funcs) return 0; if (!(drv_ctx = funcs->wgl.p_wglCreateContext( hdc ))) return 0; if ((context = calloc( 1, sizeof(*context) ))) @@ -1042,3 +1044,38 @@ NTSTATUS WINAPI thread_attach( void *args ) NtCurrentTeb()->glTable = &null_opengl_funcs; return STATUS_SUCCESS; } + +#ifdef _WIN64 + +typedef ULONG PTR32; + +extern NTSTATUS ext_glPathGlyphIndexRangeNV( void *args ) DECLSPEC_HIDDEN; + +NTSTATUS wow64_ext_glPathGlyphIndexRangeNV( void *args ) +{ + struct + { + GLenum fontTarget; + PTR32 fontName; + GLbitfield fontStyle; + GLuint pathParameterTemplate; + GLfloat emScale; + GLuint baseAndCount[2]; + GLenum ret; + } *params32 = args; + struct glPathGlyphIndexRangeNV_params params = + { + .fontTarget = params32->fontTarget, + .fontName = ULongToPtr(params32->fontName), + .fontStyle = params32->fontStyle, + .pathParameterTemplate = params32->pathParameterTemplate, + .emScale = params32->emScale, + .baseAndCount = {params32->baseAndCount[0], params32->baseAndCount[1]}, + }; + NTSTATUS status; + if ((status = ext_glPathGlyphIndexRangeNV( ¶ms ))) return status; + params32->ret = params.ret; + return status; +} + +#endif
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/opengl32/make_opengl | 17 +- dlls/opengl32/unix_thunks.c | 551 +++++++++++++++++++++++++++++++----- 2 files changed, 487 insertions(+), 81 deletions(-)
diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index 4338b8929ad..eaaf47b2c1c 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -364,15 +364,6 @@ sub generate_wow64_thunk($$$) $ret .= " $ptype ret;\n"; } $ret .= " } *params32 = args;\n"; - - if ($need_manual_thunk || get_wow64_arg_type( $func->[0] ) =~ /PTR32/) - { - $ret .= " FIXME( "params32 %p stub!\n", params32 );\n"; - $ret .= " return STATUS_NOT_IMPLEMENTED;\n"; - $ret .= "}\n\n"; - return $ret; - } - $ret .= " struct $name_params params =\n"; $ret .= " {\n"; foreach my $arg (@{$func->[1]}) @@ -391,6 +382,14 @@ sub generate_wow64_thunk($$$) } $ret .= " };\n";
+ if ($need_manual_thunk || get_wow64_arg_type( $func->[0] ) =~ /PTR32/) + { + $ret .= " FIXME( "params32 %p, params %p stub!\n", params32, ¶ms );\n"; + $ret .= " return STATUS_NOT_IMPLEMENTED;\n"; + $ret .= "}\n\n"; + return $ret; + } + $ret .= " NTSTATUS status;\n"; $ret .= " status = $prefix_$name( ¶ms );\n"; if (!is_void_func( $func )) diff --git a/dlls/opengl32/unix_thunks.c b/dlls/opengl32/unix_thunks.c index e035724361f..d2a64c7c129 100644 --- a/dlls/opengl32/unix_thunks.c +++ b/dlls/opengl32/unix_thunks.c @@ -27229,7 +27229,11 @@ static NTSTATUS wow64_wgl_wglCreateContext( void *args ) PTR32 hDc; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct wglCreateContext_params params = + { + .hDc = (HDC)ULongToPtr(params32->hDc), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -27297,7 +27301,11 @@ static NTSTATUS wow64_wgl_wglGetProcAddress( void *args ) PTR32 lpszProc; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct wglGetProcAddress_params params = + { + .lpszProc = (LPCSTR)ULongToPtr(params32->lpszProc), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -28221,7 +28229,11 @@ static NTSTATUS wow64_gl_glGetPointerv( void *args ) GLenum pname; PTR32 params; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetPointerv_params params = + { + .pname = params32->pname, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -28247,7 +28259,11 @@ static NTSTATUS wow64_gl_glGetString( void *args ) GLenum name; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetString_params params = + { + .name = params32->name, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -30380,7 +30396,14 @@ static NTSTATUS wow64_ext_glBindBuffersRange( void *args ) PTR32 offsets; PTR32 sizes; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glBindBuffersRange_params params = + { + .target = params32->target, + .first = params32->first, + .count = params32->count, + .buffers = (const GLuint *)ULongToPtr(params32->buffers), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -30531,7 +30554,14 @@ static NTSTATUS wow64_ext_glBindVertexBuffers( void *args ) PTR32 offsets; PTR32 strides; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glBindVertexBuffers_params params = + { + .first = params32->first, + .count = params32->count, + .buffers = (const GLuint *)ULongToPtr(params32->buffers), + .strides = (const GLsizei *)ULongToPtr(params32->strides), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -31467,7 +31497,14 @@ static NTSTATUS wow64_ext_glColorPointerListIBM( void *args ) PTR32 pointer; GLint ptrstride; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glColorPointerListIBM_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .ptrstride = params32->ptrstride, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -31479,7 +31516,12 @@ static NTSTATUS wow64_ext_glColorPointervINTEL( void *args ) GLenum type; PTR32 pointer; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glColorPointervINTEL_params params = + { + .size = params32->size, + .type = params32->type, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -31746,7 +31788,13 @@ static NTSTATUS wow64_ext_glCompileShaderIncludeARB( void *args ) PTR32 path; PTR32 length; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glCompileShaderIncludeARB_params params = + { + .shader = params32->shader, + .count = params32->count, + .length = (const GLint *)ULongToPtr(params32->length), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -33086,7 +33134,12 @@ static NTSTATUS wow64_ext_glCreateShaderProgramv( void *args ) PTR32 strings; GLuint ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glCreateShaderProgramv_params params = + { + .type = params32->type, + .count = params32->count, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -33116,7 +33169,13 @@ static NTSTATUS wow64_ext_glCreateSyncFromCLeventARB( void *args ) GLbitfield flags; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glCreateSyncFromCLeventARB_params params = + { + .context = (struct _cl_context *)ULongToPtr(params32->context), + .event = (struct _cl_event *)ULongToPtr(params32->event), + .flags = params32->flags, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -34150,7 +34209,14 @@ static NTSTATUS wow64_ext_glDrawCommandsNV( void *args ) PTR32 sizes; GLuint count; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glDrawCommandsNV_params params = + { + .primitiveMode = params32->primitiveMode, + .buffer = params32->buffer, + .sizes = (const GLsizei *)ULongToPtr(params32->sizes), + .count = params32->count, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -34188,7 +34254,15 @@ static NTSTATUS wow64_ext_glDrawCommandsStatesNV( void *args ) PTR32 fbos; GLuint count; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glDrawCommandsStatesNV_params params = + { + .buffer = params32->buffer, + .sizes = (const GLsizei *)ULongToPtr(params32->sizes), + .states = (const GLuint *)ULongToPtr(params32->states), + .fbos = (const GLuint *)ULongToPtr(params32->fbos), + .count = params32->count, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -34537,7 +34611,12 @@ static NTSTATUS wow64_ext_glEdgeFlagPointerListIBM( void *args ) PTR32 pointer; GLint ptrstride; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glEdgeFlagPointerListIBM_params params = + { + .stride = params32->stride, + .ptrstride = params32->ptrstride, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -34651,7 +34730,12 @@ static NTSTATUS wow64_ext_glFenceSync( void *args ) GLbitfield flags; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glFenceSync_params params = + { + .condition = params32->condition, + .flags = params32->flags, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -34812,7 +34896,13 @@ static NTSTATUS wow64_ext_glFogCoordPointerListIBM( void *args ) PTR32 pointer; GLint ptrstride; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glFogCoordPointerListIBM_params params = + { + .type = params32->type, + .stride = params32->stride, + .ptrstride = params32->ptrstride, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -36086,7 +36176,12 @@ static NTSTATUS wow64_ext_glGetBufferPointerv( void *args ) GLenum pname; PTR32 params; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetBufferPointerv_params params = + { + .target = params32->target, + .pname = params32->pname, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -36098,7 +36193,12 @@ static NTSTATUS wow64_ext_glGetBufferPointervARB( void *args ) GLenum pname; PTR32 params; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetBufferPointervARB_params params = + { + .target = params32->target, + .pname = params32->pname, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -38557,7 +38657,12 @@ static NTSTATUS wow64_ext_glGetNamedBufferPointerv( void *args ) GLenum pname; PTR32 params; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetNamedBufferPointerv_params params = + { + .buffer = params32->buffer, + .pname = params32->pname, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -38569,7 +38674,12 @@ static NTSTATUS wow64_ext_glGetNamedBufferPointervEXT( void *args ) GLenum pname; PTR32 params; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetNamedBufferPointervEXT_params params = + { + .buffer = params32->buffer, + .pname = params32->pname, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -39724,7 +39834,12 @@ static NTSTATUS wow64_ext_glGetPointerIndexedvEXT( void *args ) GLuint index; PTR32 data; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetPointerIndexedvEXT_params params = + { + .target = params32->target, + .index = params32->index, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -39736,7 +39851,12 @@ static NTSTATUS wow64_ext_glGetPointeri_vEXT( void *args ) GLuint index; PTR32 params; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetPointeri_vEXT_params params = + { + .pname = params32->pname, + .index = params32->index, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -39747,7 +39867,11 @@ static NTSTATUS wow64_ext_glGetPointervEXT( void *args ) GLenum pname; PTR32 params; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetPointervEXT_params params = + { + .pname = params32->pname, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -41019,7 +41143,12 @@ static NTSTATUS wow64_ext_glGetStringi( void *args ) GLuint index; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetStringi_params params = + { + .name = params32->name, + .index = params32->index, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -41284,7 +41413,12 @@ static NTSTATUS wow64_ext_glGetTexParameterPointervAPPLE( void *args ) GLenum pname; PTR32 params; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetTexParameterPointervAPPLE_params params = + { + .target = params32->target, + .pname = params32->pname, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -41825,7 +41959,13 @@ static NTSTATUS wow64_ext_glGetUniformIndices( void *args ) PTR32 uniformNames; PTR32 uniformIndices; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetUniformIndices_params params = + { + .program = params32->program, + .uniformCount = params32->uniformCount, + .uniformIndices = (GLuint *)ULongToPtr(params32->uniformIndices), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -41875,7 +42015,12 @@ static NTSTATUS wow64_ext_glGetUniformOffsetEXT( void *args ) GLint location; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetUniformOffsetEXT_params params = + { + .program = params32->program, + .location = params32->location, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -42246,7 +42391,12 @@ static NTSTATUS wow64_ext_glGetVariantPointervEXT( void *args ) GLenum value; PTR32 data; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetVariantPointervEXT_params params = + { + .id = params32->id, + .value = params32->value, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -42360,7 +42510,13 @@ static NTSTATUS wow64_ext_glGetVertexArrayPointeri_vEXT( void *args ) GLenum pname; PTR32 param; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetVertexArrayPointeri_vEXT_params params = + { + .vaobj = params32->vaobj, + .index = params32->index, + .pname = params32->pname, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -42372,7 +42528,12 @@ static NTSTATUS wow64_ext_glGetVertexArrayPointervEXT( void *args ) GLenum pname; PTR32 param; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetVertexArrayPointervEXT_params params = + { + .vaobj = params32->vaobj, + .pname = params32->pname, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -42612,7 +42773,12 @@ static NTSTATUS wow64_ext_glGetVertexAttribPointerv( void *args ) GLenum pname; PTR32 pointer; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetVertexAttribPointerv_params params = + { + .index = params32->index, + .pname = params32->pname, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -42624,7 +42790,12 @@ static NTSTATUS wow64_ext_glGetVertexAttribPointervARB( void *args ) GLenum pname; PTR32 pointer; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetVertexAttribPointervARB_params params = + { + .index = params32->index, + .pname = params32->pname, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -42636,7 +42807,12 @@ static NTSTATUS wow64_ext_glGetVertexAttribPointervNV( void *args ) GLenum pname; PTR32 pointer; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetVertexAttribPointervNV_params params = + { + .index = params32->index, + .pname = params32->pname, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -42976,7 +43152,11 @@ static NTSTATUS wow64_ext_glGetVkProcAddrNV( void *args ) PTR32 name; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glGetVkProcAddrNV_params params = + { + .name = (const GLchar *)ULongToPtr(params32->name), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -43950,7 +44130,13 @@ static NTSTATUS wow64_ext_glImportSyncEXT( void *args ) GLbitfield flags; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glImportSyncEXT_params params = + { + .external_sync_type = params32->external_sync_type, + .external_sync = (GLintptr)ULongToPtr(params32->external_sync), + .flags = params32->flags, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -43984,7 +44170,13 @@ static NTSTATUS wow64_ext_glIndexPointerListIBM( void *args ) PTR32 pointer; GLint ptrstride; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glIndexPointerListIBM_params params = + { + .type = params32->type, + .stride = params32->stride, + .ptrstride = params32->ptrstride, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -44276,7 +44468,16 @@ static NTSTATUS wow64_ext_glListDrawCommandsStatesClientNV( void *args ) PTR32 fbos; GLuint count; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glListDrawCommandsStatesClientNV_params params = + { + .list = params32->list, + .segment = params32->segment, + .sizes = (const GLsizei *)ULongToPtr(params32->sizes), + .states = (const GLuint *)ULongToPtr(params32->states), + .fbos = (const GLuint *)ULongToPtr(params32->fbos), + .count = params32->count, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -44454,7 +44655,12 @@ static NTSTATUS wow64_ext_glMapBuffer( void *args ) GLenum access; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glMapBuffer_params params = + { + .target = params32->target, + .access = params32->access, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -44466,7 +44672,12 @@ static NTSTATUS wow64_ext_glMapBufferARB( void *args ) GLenum access; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glMapBufferARB_params params = + { + .target = params32->target, + .access = params32->access, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -44480,7 +44691,14 @@ static NTSTATUS wow64_ext_glMapBufferRange( void *args ) GLbitfield access; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glMapBufferRange_params params = + { + .target = params32->target, + .offset = (GLintptr)ULongToPtr(params32->offset), + .length = (GLsizeiptr)ULongToPtr(params32->length), + .access = params32->access, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -44523,7 +44741,12 @@ static NTSTATUS wow64_ext_glMapNamedBuffer( void *args ) GLenum access; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glMapNamedBuffer_params params = + { + .buffer = params32->buffer, + .access = params32->access, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -44535,7 +44758,12 @@ static NTSTATUS wow64_ext_glMapNamedBufferEXT( void *args ) GLenum access; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glMapNamedBufferEXT_params params = + { + .buffer = params32->buffer, + .access = params32->access, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -44549,7 +44777,14 @@ static NTSTATUS wow64_ext_glMapNamedBufferRange( void *args ) GLbitfield access; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glMapNamedBufferRange_params params = + { + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .length = (GLsizeiptr)ULongToPtr(params32->length), + .access = params32->access, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -44563,7 +44798,14 @@ static NTSTATUS wow64_ext_glMapNamedBufferRangeEXT( void *args ) GLbitfield access; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glMapNamedBufferRangeEXT_params params = + { + .buffer = params32->buffer, + .offset = (GLintptr)ULongToPtr(params32->offset), + .length = (GLsizeiptr)ULongToPtr(params32->length), + .access = params32->access, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -44574,7 +44816,11 @@ static NTSTATUS wow64_ext_glMapObjectBufferATI( void *args ) GLuint buffer; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glMapObjectBufferATI_params params = + { + .buffer = params32->buffer, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -44627,7 +44873,15 @@ static NTSTATUS wow64_ext_glMapTexture2DINTEL( void *args ) PTR32 layout; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glMapTexture2DINTEL_params params = + { + .texture = params32->texture, + .level = params32->level, + .access = params32->access, + .stride = (GLint *)ULongToPtr(params32->stride), + .layout = (GLenum *)ULongToPtr(params32->layout), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -45402,7 +45656,14 @@ static NTSTATUS wow64_ext_glMultiDrawElements( void *args ) PTR32 indices; GLsizei drawcount; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glMultiDrawElements_params params = + { + .mode = params32->mode, + .count = (const GLsizei *)ULongToPtr(params32->count), + .type = params32->type, + .drawcount = params32->drawcount, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -45417,7 +45678,15 @@ static NTSTATUS wow64_ext_glMultiDrawElementsBaseVertex( void *args ) GLsizei drawcount; PTR32 basevertex; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glMultiDrawElementsBaseVertex_params params = + { + .mode = params32->mode, + .count = (const GLsizei *)ULongToPtr(params32->count), + .type = params32->type, + .drawcount = params32->drawcount, + .basevertex = (const GLint *)ULongToPtr(params32->basevertex), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -45431,7 +45700,14 @@ static NTSTATUS wow64_ext_glMultiDrawElementsEXT( void *args ) PTR32 indices; GLsizei primcount; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glMultiDrawElementsEXT_params params = + { + .mode = params32->mode, + .count = (const GLsizei *)ULongToPtr(params32->count), + .type = params32->type, + .primcount = params32->primcount, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -45682,7 +45958,15 @@ static NTSTATUS wow64_ext_glMultiModeDrawElementsIBM( void *args ) GLsizei primcount; GLint modestride; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glMultiModeDrawElementsIBM_params params = + { + .mode = (const GLenum *)ULongToPtr(params32->mode), + .count = (const GLsizei *)ULongToPtr(params32->count), + .type = params32->type, + .primcount = params32->primcount, + .modestride = params32->modestride, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -48045,7 +48329,13 @@ static NTSTATUS wow64_ext_glNormalPointerListIBM( void *args ) PTR32 pointer; GLint ptrstride; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glNormalPointerListIBM_params params = + { + .type = params32->type, + .stride = params32->stride, + .ptrstride = params32->ptrstride, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -48056,7 +48346,11 @@ static NTSTATUS wow64_ext_glNormalPointervINTEL( void *args ) GLenum type; PTR32 pointer; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glNormalPointervINTEL_params params = + { + .type = params32->type, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -51626,7 +51920,12 @@ static NTSTATUS wow64_ext_glReplacementCodePointerSUN( void *args ) GLsizei stride; PTR32 pointer; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glReplacementCodePointerSUN_params params = + { + .type = params32->type, + .stride = params32->stride, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -52305,7 +52604,14 @@ static NTSTATUS wow64_ext_glSecondaryColorPointerListIBM( void *args ) PTR32 pointer; GLint ptrstride; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glSecondaryColorPointerListIBM_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .ptrstride = params32->ptrstride, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -52515,7 +52821,13 @@ static NTSTATUS wow64_ext_glShaderSource( void *args ) PTR32 string; PTR32 length; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glShaderSource_params params = + { + .shader = params32->shader, + .count = params32->count, + .length = (const GLint *)ULongToPtr(params32->length), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -52528,7 +52840,13 @@ static NTSTATUS wow64_ext_glShaderSourceARB( void *args ) PTR32 string; PTR32 length; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glShaderSourceARB_params params = + { + .shaderObj = params32->shaderObj, + .count = params32->count, + .length = (const GLint *)ULongToPtr(params32->length), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -53419,7 +53737,14 @@ static NTSTATUS wow64_ext_glTexCoordPointerListIBM( void *args ) PTR32 pointer; GLint ptrstride; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glTexCoordPointerListIBM_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .ptrstride = params32->ptrstride, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -53431,7 +53756,12 @@ static NTSTATUS wow64_ext_glTexCoordPointervINTEL( void *args ) GLenum type; PTR32 pointer; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glTexCoordPointervINTEL_params params = + { + .size = params32->size, + .type = params32->type, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -54449,7 +54779,13 @@ static NTSTATUS wow64_ext_glTransformFeedbackVaryings( void *args ) PTR32 varyings; GLenum bufferMode; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glTransformFeedbackVaryings_params params = + { + .program = params32->program, + .count = params32->count, + .bufferMode = params32->bufferMode, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -54462,7 +54798,13 @@ static NTSTATUS wow64_ext_glTransformFeedbackVaryingsEXT( void *args ) PTR32 varyings; GLenum bufferMode; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glTransformFeedbackVaryingsEXT_params params = + { + .program = params32->program, + .count = params32->count, + .bufferMode = params32->bufferMode, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -56687,7 +57029,15 @@ static NTSTATUS wow64_ext_glVertexArrayVertexBuffers( void *args ) PTR32 offsets; PTR32 strides; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glVertexArrayVertexBuffers_params params = + { + .vaobj = params32->vaobj, + .first = params32->first, + .count = params32->count, + .buffers = (const GLuint *)ULongToPtr(params32->buffers), + .strides = (const GLsizei *)ULongToPtr(params32->strides), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -59140,7 +59490,14 @@ static NTSTATUS wow64_ext_glVertexPointerListIBM( void *args ) PTR32 pointer; GLint ptrstride; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glVertexPointerListIBM_params params = + { + .size = params32->size, + .type = params32->type, + .stride = params32->stride, + .ptrstride = params32->ptrstride, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -59152,7 +59509,12 @@ static NTSTATUS wow64_ext_glVertexPointervINTEL( void *args ) GLenum type; PTR32 pointer; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct glVertexPointervINTEL_params params = + { + .size = params32->size, + .type = params32->type, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -60291,7 +60653,14 @@ static NTSTATUS wow64_ext_wglAllocateMemoryNV( void *args ) GLfloat priority; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct wglAllocateMemoryNV_params params = + { + .size = params32->size, + .readfreq = params32->readfreq, + .writefreq = params32->writefreq, + .priority = params32->priority, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -60350,7 +60719,13 @@ static NTSTATUS wow64_ext_wglCreateContextAttribsARB( void *args ) PTR32 attribList; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct wglCreateContextAttribsARB_params params = + { + .hDC = (HDC)ULongToPtr(params32->hDC), + .hShareContext = (HGLRC)ULongToPtr(params32->hShareContext), + .attribList = (const int *)ULongToPtr(params32->attribList), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -60365,7 +60740,15 @@ static NTSTATUS wow64_ext_wglCreatePbufferARB( void *args ) PTR32 piAttribList; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct wglCreatePbufferARB_params params = + { + .hDC = (HDC)ULongToPtr(params32->hDC), + .iPixelFormat = params32->iPixelFormat, + .iWidth = params32->iWidth, + .iHeight = params32->iHeight, + .piAttribList = (const int *)ULongToPtr(params32->piAttribList), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -60407,7 +60790,10 @@ static NTSTATUS wow64_ext_wglGetCurrentReadDCARB( void *args ) { PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct wglGetCurrentReadDCARB_params params = + { + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -60418,7 +60804,11 @@ static NTSTATUS wow64_ext_wglGetExtensionsStringARB( void *args ) PTR32 hdc; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct wglGetExtensionsStringARB_params params = + { + .hdc = (HDC)ULongToPtr(params32->hdc), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -60428,7 +60818,10 @@ static NTSTATUS wow64_ext_wglGetExtensionsStringEXT( void *args ) { PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct wglGetExtensionsStringEXT_params params = + { + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -60439,7 +60832,11 @@ static NTSTATUS wow64_ext_wglGetPbufferDCARB( void *args ) PTR32 hPbuffer; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct wglGetPbufferDCARB_params params = + { + .hPbuffer = (HPBUFFERARB)ULongToPtr(params32->hPbuffer), + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -60544,7 +60941,11 @@ static NTSTATUS wow64_ext_wglQueryCurrentRendererStringWINE( void *args ) GLenum attribute; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct wglQueryCurrentRendererStringWINE_params params = + { + .attribute = params32->attribute, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
@@ -60601,7 +61002,13 @@ static NTSTATUS wow64_ext_wglQueryRendererStringWINE( void *args ) GLenum attribute; PTR32 ret; } *params32 = args; - FIXME( "params32 %p stub!\n", params32 ); + struct wglQueryRendererStringWINE_params params = + { + .dc = (HDC)ULongToPtr(params32->dc), + .renderer = params32->renderer, + .attribute = params32->attribute, + }; + FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); return STATUS_NOT_IMPLEMENTED; }
From: Rémi Bernon rbernon@codeweavers.com
--- dlls/opengl32/make_opengl | 1 + dlls/opengl32/unix_thunks.c | 16 +--------------- dlls/opengl32/unix_wgl.c | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index eaaf47b2c1c..7832a0ff55e 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -170,6 +170,7 @@ my %manual_win_thunks = my %manual_wow64_thunks = ( "glPathGlyphIndexRangeNV" => 1, + "wglGetProcAddress" => 1, );
# diff --git a/dlls/opengl32/unix_thunks.c b/dlls/opengl32/unix_thunks.c index d2a64c7c129..e69de4ca895 100644 --- a/dlls/opengl32/unix_thunks.c +++ b/dlls/opengl32/unix_thunks.c @@ -27294,21 +27294,6 @@ static NTSTATUS wow64_wgl_wglGetPixelFormat( void *args ) return status; }
-static NTSTATUS wow64_wgl_wglGetProcAddress( void *args ) -{ - struct - { - PTR32 lpszProc; - PTR32 ret; - } *params32 = args; - struct wglGetProcAddress_params params = - { - .lpszProc = (LPCSTR)ULongToPtr(params32->lpszProc), - }; - FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); - return STATUS_NOT_IMPLEMENTED; -} - static NTSTATUS wow64_wgl_wglMakeCurrent( void *args ) { struct @@ -61088,6 +61073,7 @@ static NTSTATUS wow64_ext_wglSetPixelFormatWINE( void *args ) return status; }
+extern NTSTATUS wow64_wgl_wglGetProcAddress( void *args ) DECLSPEC_HIDDEN; extern NTSTATUS wow64_ext_glPathGlyphIndexRangeNV( void *args ) DECLSPEC_HIDDEN;
const unixlib_entry_t __wine_unix_call_wow64_funcs[] = diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index 8d9c71b119d..543241335a7 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -534,6 +534,9 @@ static PROC WINAPI wrap_wglGetProcAddress( LPCSTR name ) *func_ptr = driver_func; }
+ /* Return the index into the extension registry instead of a useless + * function pointer, PE side will returns its own function pointers. + */ return (void *)(UINT_PTR)(found - extension_registry); }
@@ -1051,6 +1054,23 @@ typedef ULONG PTR32;
extern NTSTATUS ext_glPathGlyphIndexRangeNV( void *args ) DECLSPEC_HIDDEN;
+NTSTATUS wow64_wgl_wglGetProcAddress( void *args ) +{ + struct + { + PTR32 lpszProc; + PTR32 ret; + } *params32 = args; + struct wglGetProcAddress_params params = + { + .lpszProc = ULongToPtr(params32->lpszProc), + }; + NTSTATUS status; + if ((status = wgl_wglGetProcAddress( ¶ms ))) return status; + params32->ret = (UINT_PTR)params.ret; + return STATUS_SUCCESS; +} + NTSTATUS wow64_ext_glPathGlyphIndexRangeNV( void *args ) { struct
From: Rémi Bernon rbernon@codeweavers.com
Keeping the 32bit TEB context and private data in sync. --- dlls/opengl32/make_opengl | 4 ++ dlls/opengl32/unix_thunks.c | 76 ++------------------------------ dlls/opengl32/unix_wgl.c | 87 +++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 72 deletions(-)
diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index 7832a0ff55e..8dc25ac4e43 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -170,7 +170,11 @@ my %manual_win_thunks = my %manual_wow64_thunks = ( "glPathGlyphIndexRangeNV" => 1, + "wglCreateContext" => 1, + "wglDeleteContext" => 1, "wglGetProcAddress" => 1, + "wglMakeContextCurrentARB" => 1, + "wglMakeCurrent" => 1, );
# diff --git a/dlls/opengl32/unix_thunks.c b/dlls/opengl32/unix_thunks.c index e69de4ca895..fbffe18ba74 100644 --- a/dlls/opengl32/unix_thunks.c +++ b/dlls/opengl32/unix_thunks.c @@ -27222,38 +27222,6 @@ static NTSTATUS wow64_wgl_wglCopyContext( void *args ) return status; }
-static NTSTATUS wow64_wgl_wglCreateContext( void *args ) -{ - struct - { - PTR32 hDc; - PTR32 ret; - } *params32 = args; - struct wglCreateContext_params params = - { - .hDc = (HDC)ULongToPtr(params32->hDc), - }; - FIXME( "params32 %p, params %p stub!\n", params32, ¶ms ); - return STATUS_NOT_IMPLEMENTED; -} - -static NTSTATUS wow64_wgl_wglDeleteContext( void *args ) -{ - struct - { - PTR32 oldContext; - BOOL ret; - } *params32 = args; - struct wglDeleteContext_params params = - { - .oldContext = (HGLRC)ULongToPtr(params32->oldContext), - }; - NTSTATUS status; - status = wgl_wglDeleteContext( ¶ms ); - params32->ret = params.ret; - return status; -} - static NTSTATUS wow64_wgl_wglDescribePixelFormat( void *args ) { struct @@ -27294,25 +27262,6 @@ static NTSTATUS wow64_wgl_wglGetPixelFormat( void *args ) return status; }
-static NTSTATUS wow64_wgl_wglMakeCurrent( void *args ) -{ - struct - { - PTR32 hDc; - PTR32 newContext; - BOOL ret; - } *params32 = args; - struct wglMakeCurrent_params params = - { - .hDc = (HDC)ULongToPtr(params32->hDc), - .newContext = (HGLRC)ULongToPtr(params32->newContext), - }; - NTSTATUS status; - status = wgl_wglMakeCurrent( ¶ms ); - params32->ret = params.ret; - return status; -} - static NTSTATUS wow64_wgl_wglSetPixelFormat( void *args ) { struct @@ -60879,27 +60828,6 @@ static NTSTATUS wow64_ext_wglGetPixelFormatAttribivARB( void *args ) return status; }
-static NTSTATUS wow64_ext_wglMakeContextCurrentARB( void *args ) -{ - struct - { - PTR32 hDrawDC; - PTR32 hReadDC; - PTR32 hglrc; - BOOL ret; - } *params32 = args; - struct wglMakeContextCurrentARB_params params = - { - .hDrawDC = (HDC)ULongToPtr(params32->hDrawDC), - .hReadDC = (HDC)ULongToPtr(params32->hReadDC), - .hglrc = (HGLRC)ULongToPtr(params32->hglrc), - }; - NTSTATUS status; - status = ext_wglMakeContextCurrentARB( ¶ms ); - params32->ret = params.ret; - return status; -} - static NTSTATUS wow64_ext_wglQueryCurrentRendererIntegerWINE( void *args ) { struct @@ -61073,8 +61001,12 @@ static NTSTATUS wow64_ext_wglSetPixelFormatWINE( void *args ) return status; }
+extern NTSTATUS wow64_wgl_wglCreateContext( void *args ) DECLSPEC_HIDDEN; +extern NTSTATUS wow64_wgl_wglDeleteContext( void *args ) DECLSPEC_HIDDEN; extern NTSTATUS wow64_wgl_wglGetProcAddress( void *args ) DECLSPEC_HIDDEN; +extern NTSTATUS wow64_wgl_wglMakeCurrent( void *args ) DECLSPEC_HIDDEN; extern NTSTATUS wow64_ext_glPathGlyphIndexRangeNV( void *args ) DECLSPEC_HIDDEN; +extern NTSTATUS wow64_ext_wglMakeContextCurrentARB( void *args ) DECLSPEC_HIDDEN;
const unixlib_entry_t __wine_unix_call_wow64_funcs[] = { diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index 543241335a7..a930e48de2e 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -1054,6 +1054,93 @@ typedef ULONG PTR32;
extern NTSTATUS ext_glPathGlyphIndexRangeNV( void *args ) DECLSPEC_HIDDEN;
+static inline void update_teb32_context(void) +{ + TEB *teb = NtCurrentTeb(); + void *teb32; + + if (!teb->WowTebOffset) return; + teb32 = (char *)teb + teb->WowTebOffset; + + ((TEB32 *)teb32)->glCurrentRC = (UINT_PTR)teb->glCurrentRC; + ((TEB32 *)teb32)->glReserved1[0] = (UINT_PTR)teb->glReserved1[0]; + ((TEB32 *)teb32)->glReserved1[1] = (UINT_PTR)teb->glReserved1[1]; +} + +NTSTATUS wow64_wgl_wglCreateContext( void *args ) +{ + struct + { + PTR32 hDc; + PTR32 ret; + } *params32 = args; + struct wglCreateContext_params params = + { + .hDc = ULongToPtr(params32->hDc), + }; + NTSTATUS status; + if ((status = wgl_wglCreateContext( ¶ms ))) return status; + params32->ret = (UINT_PTR)params.ret; + return STATUS_SUCCESS; +} + +NTSTATUS wow64_wgl_wglDeleteContext( void *args ) +{ + struct + { + PTR32 oldContext; + BOOL ret; + } *params32 = args; + struct wglDeleteContext_params params = + { + .oldContext = ULongToPtr(params32->oldContext), + }; + NTSTATUS status; + if (!(status = wgl_wglDeleteContext( ¶ms ))) update_teb32_context(); + params32->ret = params.ret; + return status; +} + +NTSTATUS wow64_wgl_wglMakeCurrent( void *args ) +{ + struct + { + PTR32 hDc; + PTR32 newContext; + BOOL ret; + } *params32 = args; + struct wglMakeCurrent_params params = + { + .hDc = ULongToPtr(params32->hDc), + .newContext = ULongToPtr(params32->newContext), + }; + NTSTATUS status; + if (!(status = wgl_wglMakeCurrent( ¶ms ))) update_teb32_context(); + params32->ret = params.ret; + return status; +} + +NTSTATUS wow64_ext_wglMakeContextCurrentARB( void *args ) +{ + struct + { + PTR32 hDrawDC; + PTR32 hReadDC; + PTR32 hglrc; + BOOL ret; + } *params32 = args; + struct wglMakeContextCurrentARB_params params = + { + .hDrawDC = ULongToPtr(params32->hDrawDC), + .hReadDC = ULongToPtr(params32->hReadDC), + .hglrc = ULongToPtr(params32->hglrc), + }; + NTSTATUS status; + if (!(status = ext_wglMakeContextCurrentARB( ¶ms ))) update_teb32_context(); + params32->ret = params.ret; + return status; +} + NTSTATUS wow64_wgl_wglGetProcAddress( void *args ) { struct
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=126133
Your paranoid android.
=== debian11 (32 bit report) ===
crypt32: cert.c:4191: Test failed: success cert.c:4192: Test failed: got 00000000 cert.c:4193: Test failed: got 00000000
=== debian11 (build log) ===
06d4:err:winediag:d3d_device_create The application wants to create a Direct3D device, but the current DirectDrawRenderer does not support this. 06d4:err:winediag:d3d_device_create The application wants to create a Direct3D device, but the current DirectDrawRenderer does not support this. 06d4:err:winediag:d3d_device_create The application wants to create a Direct3D device, but the current DirectDrawRenderer does not support this.
Zebediah Figura (@zfigura) commented about dlls/opengl32/make_opengl:
- $ret .= " struct\n {\n";
- foreach my $arg (@{$func->[1]})
- {
my $ptype = get_wow64_arg_type( $arg );
my $pname = get_arg_name( $arg );
$ret .= " $ptype $pname;\n";
$need_manual_thunk = 1 if $arg->textContent() =~ /\*.*\*/ || $arg->textContent() =~ /(sizei|int)ptr.*\*/;
- }
- if (!is_void_func($func))
- {
my $ptype = get_wow64_arg_type( $func->[0] );
$ret .= " $ptype ret;\n";
- }
- $ret .= " } *params32 = args;\n";
- if ($need_manual_thunk || get_wow64_arg_type( $func->[0] ) =~ /PTR32/ || $name =~ /glPathGlyphIndexRangeNV/)
I assume this is because glPathGlyphIndexRangeNV has an array argument; can we check for that instead of hardcoding the function name?
Zebediah Figura (@zfigura) commented about dlls/opengl32/make_opengl:
$ret .= " FIXME( \"params32 %p stub!\\n\", params32 );\n";
$ret .= " return STATUS_NOT_IMPLEMENTED;\n";
$ret .= "}\n\n";
return $ret;
- }
- $ret .= " struct $name_params params =\n";
- $ret .= " {\n";
- foreach my $arg (@{$func->[1]})
- {
next if $arg->textContent() =~ /\*.*\*/ || $arg->textContent() =~ /(sizei|int)ptr.*\*/;
my $ptype = get_arg_type( $arg );
my $pname = get_arg_name( $arg );
if (get_wow64_arg_type( $arg ) =~ /PTR32/)
{
$ret .= " .$pname = ($ptype)ULongToPtr(params32->$pname),\n";
Why do we need this cast?