/******************************************************************************
 * The MIT License (MIT)
 * 
 * Copyright (c) 2015 Baldur Karlsson
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 ******************************************************************************/


#pragma once

// This file is autogenerated with hookset.pl - any changes will be overwritten
// next time that script is run.
// $ pwd
// .../renderdoc/driver/gl
// $ ./hookset.pl > gl_hookset_defs.h
////////////////////////////////////////////////////

// dllexport functions
#define DLLExportHooks() \
    HookInit(glCullFace); \
    HookInit(glFrontFace); \
    HookInit(glHint); \
    HookInit(glLineWidth); \
    HookInit(glPointSize); \
    HookInit(glPolygonMode); \
    HookInit(glScissor); \
    HookInit(glTexParameterf); \
    HookInit(glTexParameterfv); \
    HookInit(glTexParameteri); \
    HookInit(glTexParameteriv); \
    HookInit(glTexImage1D); \
    HookInit(glTexImage2D); \
    HookInit(glDrawBuffer); \
    HookInit(glClear); \
    HookInit(glClearColor); \
    HookInit(glClearStencil); \
    HookInit(glClearDepth); \
    HookInit(glStencilMask); \
    HookInit(glColorMask); \
    HookInit(glDepthMask); \
    HookInit(glDisable); \
    HookInit(glEnable); \
    HookInit(glFinish); \
    HookInit(glFlush); \
    HookInit(glBlendFunc); \
    HookInit(glLogicOp); \
    HookInit(glStencilFunc); \
    HookInit(glStencilOp); \
    HookInit(glDepthFunc); \
    HookInit(glPixelStoref); \
    HookInit(glPixelStorei); \
    HookInit(glReadBuffer); \
    HookInit(glReadPixels); \
    HookInit(glGetBooleanv); \
    HookInit(glGetDoublev); \
    HookInit(glGetError); \
    HookInit(glGetFloatv); \
    HookInit(glGetIntegerv); \
    HookInit(glGetString); \
    HookInit(glGetTexImage); \
    HookInit(glGetTexParameterfv); \
    HookInit(glGetTexParameteriv); \
    HookInit(glGetTexLevelParameterfv); \
    HookInit(glGetTexLevelParameteriv); \
    HookInit(glIsEnabled); \
    HookInit(glDepthRange); \
    HookInit(glViewport); \
    HookInit(glDrawArrays); \
    HookInit(glDrawElements); \
    HookInit(glGetPointerv); \
    HookInit(glPolygonOffset); \
    HookInit(glCopyTexImage1D); \
    HookInit(glCopyTexImage2D); \
    HookInit(glCopyTexSubImage1D); \
    HookInit(glCopyTexSubImage2D); \
    HookInit(glTexSubImage1D); \
    HookInit(glTexSubImage2D); \
    HookInit(glBindTexture); \
    HookInit(glDeleteTextures); \
    HookInit(glGenTextures); \
    HookInit(glIsTexture); \



// gl extensions
#define HookCheckGLExtensions() \
    HookExtension(PFNGLDRAWRANGEELEMENTSPROC, glDrawRangeElements); \
    HookExtensionAlias(PFNGLDRAWRANGEELEMENTSPROC, glDrawRangeElements, glDrawRangeElementsEXT); \
    HookExtension(PFNGLTEXIMAGE3DPROC, glTexImage3D); \
    HookExtensionAlias(PFNGLTEXIMAGE3DPROC, glTexImage3D, glTexImage3DEXT); \
    HookExtension(PFNGLTEXSUBIMAGE3DPROC, glTexSubImage3D); \
    HookExtension(PFNGLCOPYTEXSUBIMAGE3DPROC, glCopyTexSubImage3D); \
    HookExtension(PFNGLACTIVETEXTUREPROC, glActiveTexture); \
    HookExtensionAlias(PFNGLACTIVETEXTUREPROC, glActiveTexture, glActiveTextureARB); \
    HookExtension(PFNGLSAMPLECOVERAGEPROC, glSampleCoverage); \
    HookExtensionAlias(PFNGLSAMPLECOVERAGEPROC, glSampleCoverage, glSampleCoverageARB); \
    HookExtension(PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D); \
    HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D, glCompressedTexImage3DARB); \
    HookExtension(PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D); \
    HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D, glCompressedTexImage2DARB); \
    HookExtension(PFNGLCOMPRESSEDTEXIMAGE1DPROC, glCompressedTexImage1D); \
    HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE1DPROC, glCompressedTexImage1D, glCompressedTexImage1DARB); \
    HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC, glCompressedTexSubImage3D); \
    HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC, glCompressedTexSubImage3D, glCompressedTexSubImage3DARB); \
    HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC, glCompressedTexSubImage2D); \
    HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC, glCompressedTexSubImage2D, glCompressedTexSubImage2DARB); \
    HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC, glCompressedTexSubImage1D); \
    HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC, glCompressedTexSubImage1D, glCompressedTexSubImage1DARB); \
    HookExtension(PFNGLGETCOMPRESSEDTEXIMAGEPROC, glGetCompressedTexImage); \
    HookExtensionAlias(PFNGLGETCOMPRESSEDTEXIMAGEPROC, glGetCompressedTexImage, glGetCompressedTexImageARB); \
    HookExtension(PFNGLBLENDFUNCSEPARATEPROC, glBlendFuncSeparate); \
    HookExtensionAlias(PFNGLBLENDFUNCSEPARATEPROC, glBlendFuncSeparate, glBlendFuncSeparateARB); \
    HookExtension(PFNGLMULTIDRAWARRAYSPROC, glMultiDrawArrays); \
    HookExtensionAlias(PFNGLMULTIDRAWARRAYSPROC, glMultiDrawArrays, glMultiDrawArraysEXT); \
    HookExtension(PFNGLMULTIDRAWELEMENTSPROC, glMultiDrawElements); \
    HookExtension(PFNGLPOINTPARAMETERFPROC, glPointParameterf); \
    HookExtensionAlias(PFNGLPOINTPARAMETERFPROC, glPointParameterf, glPointParameterfARB); \
    HookExtensionAlias(PFNGLPOINTPARAMETERFPROC, glPointParameterf, aliases glPointParameterfEXT); \
    HookExtension(PFNGLPOINTPARAMETERFVPROC, glPointParameterfv); \
    HookExtensionAlias(PFNGLPOINTPARAMETERFVPROC, glPointParameterfv, glPointParameterfvARB); \
    HookExtensionAlias(PFNGLPOINTPARAMETERFVPROC, glPointParameterfv, aliases glPointParameterfvEXT); \
    HookExtension(PFNGLPOINTPARAMETERIPROC, glPointParameteri); \
    HookExtension(PFNGLPOINTPARAMETERIVPROC, glPointParameteriv); \
    HookExtension(PFNGLBLENDCOLORPROC, glBlendColor); \
    HookExtensionAlias(PFNGLBLENDCOLORPROC, glBlendColor, glBlendColorEXT); \
    HookExtension(PFNGLBLENDEQUATIONPROC, glBlendEquation); \
    HookExtensionAlias(PFNGLBLENDEQUATIONPROC, glBlendEquation, glBlendEquationEXT); \
    HookExtension(PFNGLGENQUERIESPROC, glGenQueries); \
    HookExtensionAlias(PFNGLGENQUERIESPROC, glGenQueries, glGenQueriesARB); \
    HookExtension(PFNGLDELETEQUERIESPROC, glDeleteQueries); \
    HookExtensionAlias(PFNGLDELETEQUERIESPROC, glDeleteQueries, glDeleteQueriesARB); \
    HookExtension(PFNGLISQUERYPROC, glIsQuery); \
    HookExtensionAlias(PFNGLISQUERYPROC, glIsQuery, glIsQueryARB); \
    HookExtension(PFNGLBEGINQUERYPROC, glBeginQuery); \
    HookExtensionAlias(PFNGLBEGINQUERYPROC, glBeginQuery, glBeginQueryARB); \
    HookExtension(PFNGLENDQUERYPROC, glEndQuery); \
    HookExtensionAlias(PFNGLENDQUERYPROC, glEndQuery, glEndQueryARB); \
    HookExtension(PFNGLGETQUERYIVPROC, glGetQueryiv); \
    HookExtensionAlias(PFNGLGETQUERYIVPROC, glGetQueryiv, glGetQueryivARB); \
    HookExtension(PFNGLGETQUERYOBJECTIVPROC, glGetQueryObjectiv); \
    HookExtensionAlias(PFNGLGETQUERYOBJECTIVPROC, glGetQueryObjectiv, glGetQueryObjectivARB); \
    HookExtension(PFNGLGETQUERYOBJECTUIVPROC, glGetQueryObjectuiv); \
    HookExtensionAlias(PFNGLGETQUERYOBJECTUIVPROC, glGetQueryObjectuiv, glGetQueryObjectuivARB); \
    HookExtension(PFNGLBINDBUFFERPROC, glBindBuffer); \
    HookExtensionAlias(PFNGLBINDBUFFERPROC, glBindBuffer, glBindBufferARB); \
    HookExtension(PFNGLDELETEBUFFERSPROC, glDeleteBuffers); \
    HookExtensionAlias(PFNGLDELETEBUFFERSPROC, glDeleteBuffers, glDeleteBuffersARB); \
    HookExtension(PFNGLGENBUFFERSPROC, glGenBuffers); \
    HookExtensionAlias(PFNGLGENBUFFERSPROC, glGenBuffers, glGenBuffersARB); \
    HookExtension(PFNGLISBUFFERPROC, glIsBuffer); \
    HookExtensionAlias(PFNGLISBUFFERPROC, glIsBuffer, glIsBufferARB); \
    HookExtension(PFNGLBUFFERDATAPROC, glBufferData); \
    HookExtensionAlias(PFNGLBUFFERDATAPROC, glBufferData, glBufferDataARB); \
    HookExtension(PFNGLBUFFERSUBDATAPROC, glBufferSubData); \
    HookExtensionAlias(PFNGLBUFFERSUBDATAPROC, glBufferSubData, glBufferSubDataARB); \
    HookExtension(PFNGLGETBUFFERSUBDATAPROC, glGetBufferSubData); \
    HookExtensionAlias(PFNGLGETBUFFERSUBDATAPROC, glGetBufferSubData, glGetBufferSubDataARB); \
    HookExtension(PFNGLMAPBUFFERPROC, glMapBuffer); \
    HookExtensionAlias(PFNGLMAPBUFFERPROC, glMapBuffer, glMapBufferARB); \
    HookExtension(PFNGLUNMAPBUFFERPROC, glUnmapBuffer); \
    HookExtensionAlias(PFNGLUNMAPBUFFERPROC, glUnmapBuffer, glUnmapBufferARB); \
    HookExtension(PFNGLGETBUFFERPARAMETERIVPROC, glGetBufferParameteriv); \
    HookExtensionAlias(PFNGLGETBUFFERPARAMETERIVPROC, glGetBufferParameteriv, glGetBufferParameterivARB); \
    HookExtension(PFNGLGETBUFFERPOINTERVPROC, glGetBufferPointerv); \
    HookExtensionAlias(PFNGLGETBUFFERPOINTERVPROC, glGetBufferPointerv, glGetBufferPointervARB); \
    HookExtension(PFNGLBLENDEQUATIONSEPARATEPROC, glBlendEquationSeparate); \
    HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEPROC, glBlendEquationSeparate, glBlendEquationSeparateARB); \
    HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEPROC, glBlendEquationSeparate, glBlendEquationSeparateEXT); \
    HookExtension(PFNGLDRAWBUFFERSPROC, glDrawBuffers); \
    HookExtensionAlias(PFNGLDRAWBUFFERSPROC, glDrawBuffers, glDrawBuffersARB); \
    HookExtension(PFNGLSTENCILOPSEPARATEPROC, glStencilOpSeparate); \
    HookExtension(PFNGLSTENCILFUNCSEPARATEPROC, glStencilFuncSeparate); \
    HookExtension(PFNGLSTENCILMASKSEPARATEPROC, glStencilMaskSeparate); \
    HookExtension(PFNGLATTACHSHADERPROC, glAttachShader); \
    HookExtension(PFNGLBINDATTRIBLOCATIONPROC, glBindAttribLocation); \
    HookExtension(PFNGLCOMPILESHADERPROC, glCompileShader); \
    HookExtension(PFNGLCREATEPROGRAMPROC, glCreateProgram); \
    HookExtension(PFNGLCREATESHADERPROC, glCreateShader); \
    HookExtension(PFNGLDELETEPROGRAMPROC, glDeleteProgram); \
    HookExtension(PFNGLDELETESHADERPROC, glDeleteShader); \
    HookExtension(PFNGLDETACHSHADERPROC, glDetachShader); \
    HookExtension(PFNGLDISABLEVERTEXATTRIBARRAYPROC, glDisableVertexAttribArray); \
    HookExtensionAlias(PFNGLDISABLEVERTEXATTRIBARRAYPROC, glDisableVertexAttribArray, glDisableVertexAttribArrayARB); \
    HookExtension(PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray); \
    HookExtensionAlias(PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray, glEnableVertexAttribArrayARB); \
    HookExtension(PFNGLGETACTIVEATTRIBPROC, glGetActiveAttrib); \
    HookExtension(PFNGLGETACTIVEUNIFORMPROC, glGetActiveUniform); \
    HookExtension(PFNGLGETATTACHEDSHADERSPROC, glGetAttachedShaders); \
    HookExtension(PFNGLGETATTRIBLOCATIONPROC, glGetAttribLocation); \
    HookExtension(PFNGLGETPROGRAMIVPROC, glGetProgramiv); \
    HookExtension(PFNGLGETPROGRAMINFOLOGPROC, glGetProgramInfoLog); \
    HookExtension(PFNGLGETSHADERIVPROC, glGetShaderiv); \
    HookExtension(PFNGLGETSHADERINFOLOGPROC, glGetShaderInfoLog); \
    HookExtension(PFNGLGETSHADERSOURCEPROC, glGetShaderSource); \
    HookExtension(PFNGLGETUNIFORMLOCATIONPROC, glGetUniformLocation); \
    HookExtension(PFNGLGETUNIFORMFVPROC, glGetUniformfv); \
    HookExtension(PFNGLGETUNIFORMIVPROC, glGetUniformiv); \
    HookExtension(PFNGLGETVERTEXATTRIBDVPROC, glGetVertexAttribdv); \
    HookExtension(PFNGLGETVERTEXATTRIBFVPROC, glGetVertexAttribfv); \
    HookExtension(PFNGLGETVERTEXATTRIBIVPROC, glGetVertexAttribiv); \
    HookExtension(PFNGLGETVERTEXATTRIBPOINTERVPROC, glGetVertexAttribPointerv); \
    HookExtension(PFNGLISPROGRAMPROC, glIsProgram); \
    HookExtension(PFNGLISSHADERPROC, glIsShader); \
    HookExtension(PFNGLLINKPROGRAMPROC, glLinkProgram); \
    HookExtension(PFNGLSHADERSOURCEPROC, glShaderSource); \
    HookExtension(PFNGLUSEPROGRAMPROC, glUseProgram); \
    HookExtension(PFNGLUNIFORM1FPROC,   glUniform1f); \
    HookExtension(PFNGLUNIFORM2FPROC,   glUniform2f); \
    HookExtension(PFNGLUNIFORM3FPROC,   glUniform3f); \
    HookExtension(PFNGLUNIFORM4FPROC,   glUniform4f); \
    HookExtension(PFNGLUNIFORM1IPROC,   glUniform1i); \
    HookExtension(PFNGLUNIFORM2IPROC,   glUniform2i); \
    HookExtension(PFNGLUNIFORM3IPROC,   glUniform3i); \
    HookExtension(PFNGLUNIFORM4IPROC,   glUniform4i); \
    HookExtension(PFNGLUNIFORM1FVPROC,  glUniform1fv); \
    HookExtension(PFNGLUNIFORM2FVPROC,  glUniform2fv); \
    HookExtension(PFNGLUNIFORM3FVPROC,  glUniform3fv); \
    HookExtension(PFNGLUNIFORM4FVPROC,  glUniform4fv); \
    HookExtension(PFNGLUNIFORM1IVPROC,  glUniform1iv); \
    HookExtension(PFNGLUNIFORM2IVPROC,  glUniform2iv); \
    HookExtension(PFNGLUNIFORM3IVPROC,  glUniform3iv); \
    HookExtension(PFNGLUNIFORM4IVPROC,  glUniform4iv); \
    HookExtension(PFNGLUNIFORMMATRIX2FVPROC,   glUniformMatrix2fv); \
    HookExtension(PFNGLUNIFORMMATRIX3FVPROC,   glUniformMatrix3fv); \
    HookExtension(PFNGLUNIFORMMATRIX4FVPROC,   glUniformMatrix4fv); \
    HookExtension(PFNGLVALIDATEPROGRAMPROC, glValidateProgram); \
    HookExtension(PFNGLVERTEXATTRIB1DPROC, glVertexAttrib1d); \
    HookExtensionAlias(PFNGLVERTEXATTRIB1DPROC, glVertexAttrib1d, glVertexAttrib1dARB); \
    HookExtension(PFNGLVERTEXATTRIB1DVPROC, glVertexAttrib1dv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB1DVPROC, glVertexAttrib1dv, glVertexAttrib1dvARB); \
    HookExtension(PFNGLVERTEXATTRIB1FPROC, glVertexAttrib1f); \
    HookExtensionAlias(PFNGLVERTEXATTRIB1FPROC, glVertexAttrib1f, glVertexAttrib1fARB); \
    HookExtension(PFNGLVERTEXATTRIB1FVPROC, glVertexAttrib1fv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB1FVPROC, glVertexAttrib1fv, glVertexAttrib1fvARB); \
    HookExtension(PFNGLVERTEXATTRIB1SPROC, glVertexAttrib1s); \
    HookExtensionAlias(PFNGLVERTEXATTRIB1SPROC, glVertexAttrib1s, glVertexAttrib1sARB); \
    HookExtension(PFNGLVERTEXATTRIB1SVPROC, glVertexAttrib1sv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB1SVPROC, glVertexAttrib1sv, glVertexAttrib1svARB); \
    HookExtension(PFNGLVERTEXATTRIB2DPROC, glVertexAttrib2d); \
    HookExtensionAlias(PFNGLVERTEXATTRIB2DPROC, glVertexAttrib2d, glVertexAttrib2dARB); \
    HookExtension(PFNGLVERTEXATTRIB2DVPROC, glVertexAttrib2dv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB2DVPROC, glVertexAttrib2dv, glVertexAttrib2dvARB); \
    HookExtension(PFNGLVERTEXATTRIB2FPROC, glVertexAttrib2f); \
    HookExtensionAlias(PFNGLVERTEXATTRIB2FPROC, glVertexAttrib2f, glVertexAttrib2fARB); \
    HookExtension(PFNGLVERTEXATTRIB2FVPROC, glVertexAttrib2fv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB2FVPROC, glVertexAttrib2fv, glVertexAttrib2fvARB); \
    HookExtension(PFNGLVERTEXATTRIB2SPROC, glVertexAttrib2s); \
    HookExtensionAlias(PFNGLVERTEXATTRIB2SPROC, glVertexAttrib2s, glVertexAttrib2sARB); \
    HookExtension(PFNGLVERTEXATTRIB2SVPROC, glVertexAttrib2sv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB2SVPROC, glVertexAttrib2sv, glVertexAttrib2svARB); \
    HookExtension(PFNGLVERTEXATTRIB3DPROC, glVertexAttrib3d); \
    HookExtensionAlias(PFNGLVERTEXATTRIB3DPROC, glVertexAttrib3d, glVertexAttrib3dARB); \
    HookExtension(PFNGLVERTEXATTRIB3DVPROC, glVertexAttrib3dv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB3DVPROC, glVertexAttrib3dv, glVertexAttrib3dvARB); \
    HookExtension(PFNGLVERTEXATTRIB3FPROC, glVertexAttrib3f); \
    HookExtensionAlias(PFNGLVERTEXATTRIB3FPROC, glVertexAttrib3f, glVertexAttrib3fARB); \
    HookExtension(PFNGLVERTEXATTRIB3FVPROC, glVertexAttrib3fv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB3FVPROC, glVertexAttrib3fv, glVertexAttrib3fvARB); \
    HookExtension(PFNGLVERTEXATTRIB3SPROC, glVertexAttrib3s); \
    HookExtensionAlias(PFNGLVERTEXATTRIB3SPROC, glVertexAttrib3s, glVertexAttrib3sARB); \
    HookExtension(PFNGLVERTEXATTRIB3SVPROC, glVertexAttrib3sv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB3SVPROC, glVertexAttrib3sv, glVertexAttrib3svARB); \
    HookExtension(PFNGLVERTEXATTRIB4NBVPROC, glVertexAttrib4Nbv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4NBVPROC, glVertexAttrib4Nbv, glVertexAttrib4NbvARB); \
    HookExtension(PFNGLVERTEXATTRIB4NIVPROC, glVertexAttrib4Niv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4NIVPROC, glVertexAttrib4Niv, glVertexAttrib4NivARB); \
    HookExtension(PFNGLVERTEXATTRIB4NSVPROC, glVertexAttrib4Nsv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4NSVPROC, glVertexAttrib4Nsv, glVertexAttrib4NsvARB); \
    HookExtension(PFNGLVERTEXATTRIB4NUBPROC, glVertexAttrib4Nub); \
    HookExtension(PFNGLVERTEXATTRIB4NUBVPROC, glVertexAttrib4Nubv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4NUBVPROC, glVertexAttrib4Nubv, glVertexAttrib4NubvARB); \
    HookExtension(PFNGLVERTEXATTRIB4NUIVPROC, glVertexAttrib4Nuiv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4NUIVPROC, glVertexAttrib4Nuiv, glVertexAttrib4NuivARB); \
    HookExtension(PFNGLVERTEXATTRIB4NUSVPROC, glVertexAttrib4Nusv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4NUSVPROC, glVertexAttrib4Nusv, glVertexAttrib4NusvARB); \
    HookExtension(PFNGLVERTEXATTRIB4BVPROC, glVertexAttrib4bv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4BVPROC, glVertexAttrib4bv, glVertexAttrib4bvARB); \
    HookExtension(PFNGLVERTEXATTRIB4DPROC, glVertexAttrib4d); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4DPROC, glVertexAttrib4d, glVertexAttrib4dARB); \
    HookExtension(PFNGLVERTEXATTRIB4DVPROC, glVertexAttrib4dv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4DVPROC, glVertexAttrib4dv, glVertexAttrib4dvARB); \
    HookExtension(PFNGLVERTEXATTRIB4FPROC, glVertexAttrib4f); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4FPROC, glVertexAttrib4f, glVertexAttrib4fARB); \
    HookExtension(PFNGLVERTEXATTRIB4FVPROC, glVertexAttrib4fv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4FVPROC, glVertexAttrib4fv, glVertexAttrib4fvARB); \
    HookExtension(PFNGLVERTEXATTRIB4IVPROC, glVertexAttrib4iv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4IVPROC, glVertexAttrib4iv, glVertexAttrib4ivARB); \
    HookExtension(PFNGLVERTEXATTRIB4SPROC, glVertexAttrib4s); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4SPROC, glVertexAttrib4s, glVertexAttrib4sARB); \
    HookExtension(PFNGLVERTEXATTRIB4SVPROC, glVertexAttrib4sv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4SVPROC, glVertexAttrib4sv, glVertexAttrib4svARB); \
    HookExtension(PFNGLVERTEXATTRIB4UBVPROC, glVertexAttrib4ubv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4UBVPROC, glVertexAttrib4ubv, glVertexAttrib4ubvARB); \
    HookExtension(PFNGLVERTEXATTRIB4UIVPROC, glVertexAttrib4uiv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4UIVPROC, glVertexAttrib4uiv, glVertexAttrib4uivARB); \
    HookExtension(PFNGLVERTEXATTRIB4USVPROC, glVertexAttrib4usv); \
    HookExtensionAlias(PFNGLVERTEXATTRIB4USVPROC, glVertexAttrib4usv, glVertexAttrib4usvARB); \
    HookExtension(PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer); \
    HookExtensionAlias(PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer, glVertexAttribPointerARB); \
    HookExtension(PFNGLUNIFORMMATRIX2X3FVPROC, glUniformMatrix2x3fv); \
    HookExtension(PFNGLUNIFORMMATRIX3X2FVPROC, glUniformMatrix3x2fv); \
    HookExtension(PFNGLUNIFORMMATRIX2X4FVPROC, glUniformMatrix2x4fv); \
    HookExtension(PFNGLUNIFORMMATRIX4X2FVPROC, glUniformMatrix4x2fv); \
    HookExtension(PFNGLUNIFORMMATRIX3X4FVPROC, glUniformMatrix3x4fv); \
    HookExtension(PFNGLUNIFORMMATRIX4X3FVPROC, glUniformMatrix4x3fv); \
    HookExtension(PFNGLCOLORMASKIPROC, glColorMaski); \
    HookExtensionAlias(PFNGLCOLORMASKIPROC, glColorMaski, glColorMaskIndexedEXT); \
    HookExtension(PFNGLGETBOOLEANI_VPROC, glGetBooleani_v); \
    HookExtension(PFNGLGETINTEGERI_VPROC, glGetIntegeri_v); \
    HookExtension(PFNGLENABLEIPROC, glEnablei); \
    HookExtensionAlias(PFNGLENABLEIPROC, glEnablei, glEnableIndexedEXT); \
    HookExtension(PFNGLDISABLEIPROC, glDisablei); \
    HookExtensionAlias(PFNGLDISABLEIPROC, glDisablei, glDisableIndexedEXT); \
    HookExtension(PFNGLISENABLEDIPROC, glIsEnabledi); \
    HookExtensionAlias(PFNGLISENABLEDIPROC, glIsEnabledi, glIsEnabledIndexedEXT); \
    HookExtension(PFNGLBEGINTRANSFORMFEEDBACKPROC, glBeginTransformFeedback); \
    HookExtensionAlias(PFNGLBEGINTRANSFORMFEEDBACKPROC, glBeginTransformFeedback, glBeginTransformFeedbackEXT); \
    HookExtension(PFNGLENDTRANSFORMFEEDBACKPROC, glEndTransformFeedback); \
    HookExtensionAlias(PFNGLENDTRANSFORMFEEDBACKPROC, glEndTransformFeedback, glEndTransformFeedbackEXT); \
    HookExtension(PFNGLBINDBUFFERRANGEPROC, glBindBufferRange); \
    HookExtensionAlias(PFNGLBINDBUFFERRANGEPROC, glBindBufferRange, glBindBufferRangeEXT); \
    HookExtension(PFNGLBINDBUFFERBASEPROC, glBindBufferBase); \
    HookExtensionAlias(PFNGLBINDBUFFERBASEPROC, glBindBufferBase, glBindBufferBaseEXT); \
    HookExtension(PFNGLTRANSFORMFEEDBACKVARYINGSPROC, glTransformFeedbackVaryings); \
    HookExtensionAlias(PFNGLTRANSFORMFEEDBACKVARYINGSPROC, glTransformFeedbackVaryings, glTransformFeedbackVaryingsEXT); \
    HookExtension(PFNGLGETTRANSFORMFEEDBACKVARYINGPROC, glGetTransformFeedbackVarying); \
    HookExtensionAlias(PFNGLGETTRANSFORMFEEDBACKVARYINGPROC, glGetTransformFeedbackVarying, glGetTransformFeedbackVaryingEXT); \
    HookExtension(PFNGLCLAMPCOLORPROC, glClampColor); \
    HookExtensionAlias(PFNGLCLAMPCOLORPROC, glClampColor, glClampColorARB); \
    HookExtension(PFNGLBEGINCONDITIONALRENDERPROC, glBeginConditionalRender); \
    HookExtension(PFNGLENDCONDITIONALRENDERPROC, glEndConditionalRender); \
    HookExtension(PFNGLVERTEXATTRIBIPOINTERPROC, glVertexAttribIPointer); \
    HookExtensionAlias(PFNGLVERTEXATTRIBIPOINTERPROC, glVertexAttribIPointer, glVertexAttribIPointerEXT); \
    HookExtension(PFNGLGETVERTEXATTRIBIIVPROC, glGetVertexAttribIiv); \
    HookExtensionAlias(PFNGLGETVERTEXATTRIBIIVPROC, glGetVertexAttribIiv, glGetVertexAttribIivEXT); \
    HookExtension(PFNGLGETVERTEXATTRIBIUIVPROC, glGetVertexAttribIuiv); \
    HookExtensionAlias(PFNGLGETVERTEXATTRIBIUIVPROC, glGetVertexAttribIuiv, glGetVertexAttribIuivEXT); \
    HookExtension(PFNGLVERTEXATTRIBI1IPROC, glVertexAttribI1i); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI1IPROC, glVertexAttribI1i, glVertexAttribI1iEXT); \
    HookExtension(PFNGLVERTEXATTRIBI2IPROC, glVertexAttribI2i); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI2IPROC, glVertexAttribI2i, glVertexAttribI2iEXT); \
    HookExtension(PFNGLVERTEXATTRIBI3IPROC, glVertexAttribI3i); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI3IPROC, glVertexAttribI3i, glVertexAttribI3iEXT); \
    HookExtension(PFNGLVERTEXATTRIBI4IPROC, glVertexAttribI4i); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI4IPROC, glVertexAttribI4i, glVertexAttribI4iEXT); \
    HookExtension(PFNGLVERTEXATTRIBI1UIPROC, glVertexAttribI1ui); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI1UIPROC, glVertexAttribI1ui, glVertexAttribI1uiEXT); \
    HookExtension(PFNGLVERTEXATTRIBI2UIPROC, glVertexAttribI2ui); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI2UIPROC, glVertexAttribI2ui, glVertexAttribI2uiEXT); \
    HookExtension(PFNGLVERTEXATTRIBI3UIPROC, glVertexAttribI3ui); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI3UIPROC, glVertexAttribI3ui, glVertexAttribI3uiEXT); \
    HookExtension(PFNGLVERTEXATTRIBI4UIPROC, glVertexAttribI4ui); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI4UIPROC, glVertexAttribI4ui, glVertexAttribI4uiEXT); \
    HookExtension(PFNGLVERTEXATTRIBI1IVPROC, glVertexAttribI1iv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI1IVPROC, glVertexAttribI1iv, glVertexAttribI1ivEXT); \
    HookExtension(PFNGLVERTEXATTRIBI2IVPROC, glVertexAttribI2iv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI2IVPROC, glVertexAttribI2iv, glVertexAttribI2ivEXT); \
    HookExtension(PFNGLVERTEXATTRIBI3IVPROC, glVertexAttribI3iv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI3IVPROC, glVertexAttribI3iv, glVertexAttribI3ivEXT); \
    HookExtension(PFNGLVERTEXATTRIBI4IVPROC, glVertexAttribI4iv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI4IVPROC, glVertexAttribI4iv, glVertexAttribI4ivEXT); \
    HookExtension(PFNGLVERTEXATTRIBI1UIVPROC, glVertexAttribI1uiv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI1UIVPROC, glVertexAttribI1uiv, glVertexAttribI1uivEXT); \
    HookExtension(PFNGLVERTEXATTRIBI2UIVPROC, glVertexAttribI2uiv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI2UIVPROC, glVertexAttribI2uiv, glVertexAttribI2uivEXT); \
    HookExtension(PFNGLVERTEXATTRIBI3UIVPROC, glVertexAttribI3uiv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI3UIVPROC, glVertexAttribI3uiv, glVertexAttribI3uivEXT); \
    HookExtension(PFNGLVERTEXATTRIBI4UIVPROC, glVertexAttribI4uiv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI4UIVPROC, glVertexAttribI4uiv, glVertexAttribI4uivEXT); \
    HookExtension(PFNGLVERTEXATTRIBI4BVPROC, glVertexAttribI4bv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI4BVPROC, glVertexAttribI4bv, glVertexAttribI4bvEXT); \
    HookExtension(PFNGLVERTEXATTRIBI4SVPROC, glVertexAttribI4sv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI4SVPROC, glVertexAttribI4sv, glVertexAttribI4svEXT); \
    HookExtension(PFNGLVERTEXATTRIBI4UBVPROC, glVertexAttribI4ubv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI4UBVPROC, glVertexAttribI4ubv, glVertexAttribI4ubvEXT); \
    HookExtension(PFNGLVERTEXATTRIBI4USVPROC, glVertexAttribI4usv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBI4USVPROC, glVertexAttribI4usv, glVertexAttribI4usvEXT); \
    HookExtension(PFNGLGETUNIFORMUIVPROC, glGetUniformuiv); \
    HookExtensionAlias(PFNGLGETUNIFORMUIVPROC, glGetUniformuiv, glGetUniformuivEXT); \
    HookExtension(PFNGLBINDFRAGDATALOCATIONPROC, glBindFragDataLocation); \
    HookExtensionAlias(PFNGLBINDFRAGDATALOCATIONPROC, glBindFragDataLocation, glBindFragDataLocationEXT); \
    HookExtension(PFNGLGETFRAGDATALOCATIONPROC, glGetFragDataLocation); \
    HookExtensionAlias(PFNGLGETFRAGDATALOCATIONPROC, glGetFragDataLocation, glGetFragDataLocationEXT); \
    HookExtension(PFNGLUNIFORM1UIPROC,  glUniform1ui); \
    HookExtensionAlias(PFNGLUNIFORM1UIPROC,  glUniform1ui, glUniform1uiEXT); \
    HookExtension(PFNGLUNIFORM2UIPROC,  glUniform2ui); \
    HookExtensionAlias(PFNGLUNIFORM2UIPROC,  glUniform2ui, glUniform2uiEXT); \
    HookExtension(PFNGLUNIFORM3UIPROC,  glUniform3ui); \
    HookExtensionAlias(PFNGLUNIFORM3UIPROC,  glUniform3ui, glUniform3uiEXT); \
    HookExtension(PFNGLUNIFORM4UIPROC,  glUniform4ui); \
    HookExtensionAlias(PFNGLUNIFORM4UIPROC,  glUniform4ui, glUniform4uiEXT); \
    HookExtension(PFNGLUNIFORM1UIVPROC, glUniform1uiv); \
    HookExtensionAlias(PFNGLUNIFORM1UIVPROC, glUniform1uiv, glUniform1uivEXT); \
    HookExtension(PFNGLUNIFORM2UIVPROC, glUniform2uiv); \
    HookExtensionAlias(PFNGLUNIFORM2UIVPROC, glUniform2uiv, glUniform2uivEXT); \
    HookExtension(PFNGLUNIFORM3UIVPROC, glUniform3uiv); \
    HookExtensionAlias(PFNGLUNIFORM3UIVPROC, glUniform3uiv, glUniform3uivEXT); \
    HookExtension(PFNGLUNIFORM4UIVPROC, glUniform4uiv); \
    HookExtensionAlias(PFNGLUNIFORM4UIVPROC, glUniform4uiv, glUniform4uivEXT); \
    HookExtension(PFNGLTEXPARAMETERIIVPROC, glTexParameterIiv); \
    HookExtensionAlias(PFNGLTEXPARAMETERIIVPROC, glTexParameterIiv, glTexParameterIivEXT); \
    HookExtension(PFNGLTEXPARAMETERIUIVPROC, glTexParameterIuiv); \
    HookExtensionAlias(PFNGLTEXPARAMETERIUIVPROC, glTexParameterIuiv, glTexParameterIuivEXT); \
    HookExtension(PFNGLGETTEXPARAMETERIIVPROC, glGetTexParameterIiv); \
    HookExtensionAlias(PFNGLGETTEXPARAMETERIIVPROC, glGetTexParameterIiv, glGetTexParameterIivEXT); \
    HookExtension(PFNGLGETTEXPARAMETERIUIVPROC, glGetTexParameterIuiv); \
    HookExtensionAlias(PFNGLGETTEXPARAMETERIUIVPROC, glGetTexParameterIuiv, glGetTexParameterIuivEXT); \
    HookExtension(PFNGLCLEARBUFFERIVPROC, glClearBufferiv); \
    HookExtension(PFNGLCLEARBUFFERUIVPROC, glClearBufferuiv); \
    HookExtension(PFNGLCLEARBUFFERFVPROC, glClearBufferfv); \
    HookExtension(PFNGLCLEARBUFFERFIPROC, glClearBufferfi); \
    HookExtension(PFNGLGETSTRINGIPROC, glGetStringi); \
    HookExtension(PFNGLISRENDERBUFFERPROC, glIsRenderbuffer); \
    HookExtensionAlias(PFNGLISRENDERBUFFERPROC, glIsRenderbuffer, glIsRenderbufferEXT); \
    HookExtension(PFNGLBINDRENDERBUFFERPROC, glBindRenderbuffer); \
    HookExtensionAlias(PFNGLBINDRENDERBUFFERPROC, glBindRenderbuffer, glBindRenderbufferEXT); \
    HookExtension(PFNGLDELETERENDERBUFFERSPROC, glDeleteRenderbuffers); \
    HookExtensionAlias(PFNGLDELETERENDERBUFFERSPROC, glDeleteRenderbuffers, glDeleteRenderbuffersEXT); \
    HookExtension(PFNGLGENRENDERBUFFERSPROC, glGenRenderbuffers); \
    HookExtensionAlias(PFNGLGENRENDERBUFFERSPROC, glGenRenderbuffers, glGenRenderbuffersEXT); \
    HookExtension(PFNGLRENDERBUFFERSTORAGEPROC, glRenderbufferStorage); \
    HookExtensionAlias(PFNGLRENDERBUFFERSTORAGEPROC, glRenderbufferStorage, glRenderbufferStorageEXT); \
    HookExtension(PFNGLGETRENDERBUFFERPARAMETERIVPROC, glGetRenderbufferParameteriv); \
    HookExtensionAlias(PFNGLGETRENDERBUFFERPARAMETERIVPROC, glGetRenderbufferParameteriv, glGetRenderbufferParameterivEXT); \
    HookExtension(PFNGLISFRAMEBUFFERPROC, glIsFramebuffer); \
    HookExtensionAlias(PFNGLISFRAMEBUFFERPROC, glIsFramebuffer, glIsFramebufferEXT); \
    HookExtension(PFNGLBINDFRAMEBUFFERPROC, glBindFramebuffer); \
    HookExtensionAlias(PFNGLBINDFRAMEBUFFERPROC, glBindFramebuffer, glBindFramebufferEXT); \
    HookExtension(PFNGLDELETEFRAMEBUFFERSPROC, glDeleteFramebuffers); \
    HookExtensionAlias(PFNGLDELETEFRAMEBUFFERSPROC, glDeleteFramebuffers, glDeleteFramebuffersEXT); \
    HookExtension(PFNGLGENFRAMEBUFFERSPROC, glGenFramebuffers); \
    HookExtensionAlias(PFNGLGENFRAMEBUFFERSPROC, glGenFramebuffers, glGenFramebuffersEXT); \
    HookExtension(PFNGLCHECKFRAMEBUFFERSTATUSPROC, glCheckFramebufferStatus); \
    HookExtensionAlias(PFNGLCHECKFRAMEBUFFERSTATUSPROC, glCheckFramebufferStatus, glCheckFramebufferStatusEXT); \
    HookExtension(PFNGLFRAMEBUFFERTEXTURE1DPROC, glFramebufferTexture1D); \
    HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURE1DPROC, glFramebufferTexture1D, glFramebufferTexture1DEXT); \
    HookExtension(PFNGLFRAMEBUFFERTEXTURE2DPROC, glFramebufferTexture2D); \
    HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURE2DPROC, glFramebufferTexture2D, glFramebufferTexture2DEXT); \
    HookExtension(PFNGLFRAMEBUFFERTEXTURE3DPROC, glFramebufferTexture3D); \
    HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURE3DPROC, glFramebufferTexture3D, glFramebufferTexture3DEXT); \
    HookExtension(PFNGLFRAMEBUFFERRENDERBUFFERPROC, glFramebufferRenderbuffer); \
    HookExtensionAlias(PFNGLFRAMEBUFFERRENDERBUFFERPROC, glFramebufferRenderbuffer, glFramebufferRenderbufferEXT); \
    HookExtension(PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetFramebufferAttachmentParameteriv); \
    HookExtensionAlias(PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetFramebufferAttachmentParameteriv, glGetFramebufferAttachmentParameterivEXT); \
    HookExtension(PFNGLGENERATEMIPMAPPROC, glGenerateMipmap); \
    HookExtensionAlias(PFNGLGENERATEMIPMAPPROC, glGenerateMipmap, glGenerateMipmapEXT); \
    HookExtension(PFNGLBLITFRAMEBUFFERPROC, glBlitFramebuffer); \
    HookExtensionAlias(PFNGLBLITFRAMEBUFFERPROC, glBlitFramebuffer, glBlitFramebufferEXT); \
    HookExtension(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC, glRenderbufferStorageMultisample); \
    HookExtensionAlias(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC, glRenderbufferStorageMultisample, glRenderbufferStorageMultisampleEXT); \
    HookExtension(PFNGLFRAMEBUFFERTEXTURELAYERPROC, glFramebufferTextureLayer); \
    HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURELAYERPROC, glFramebufferTextureLayer, glFramebufferTextureLayerARB); \
    HookExtensionAlias(PFNGLFRAMEBUFFERTEXTURELAYERPROC, glFramebufferTextureLayer, glFramebufferTextureLayerEXT); \
    HookExtension(PFNGLMAPBUFFERRANGEPROC, glMapBufferRange); \
    HookExtension(PFNGLFLUSHMAPPEDBUFFERRANGEPROC, glFlushMappedBufferRange); \
    HookExtension(PFNGLBINDVERTEXARRAYPROC, glBindVertexArray); \
    HookExtension(PFNGLDELETEVERTEXARRAYSPROC, glDeleteVertexArrays); \
    HookExtension(PFNGLGENVERTEXARRAYSPROC, glGenVertexArrays); \
    HookExtension(PFNGLISVERTEXARRAYPROC, glIsVertexArray); \
    HookExtension(PFNGLDRAWARRAYSINSTANCEDPROC, glDrawArraysInstanced); \
    HookExtensionAlias(PFNGLDRAWARRAYSINSTANCEDPROC, glDrawArraysInstanced, glDrawArraysInstancedARB); \
    HookExtensionAlias(PFNGLDRAWARRAYSINSTANCEDPROC, glDrawArraysInstanced, glDrawArraysInstancedEXT); \
    HookExtension(PFNGLDRAWELEMENTSINSTANCEDPROC, glDrawElementsInstanced); \
    HookExtensionAlias(PFNGLDRAWELEMENTSINSTANCEDPROC, glDrawElementsInstanced, glDrawElementsInstancedARB); \
    HookExtensionAlias(PFNGLDRAWELEMENTSINSTANCEDPROC, glDrawElementsInstanced, glDrawElementsInstancedEXT); \
    HookExtension(PFNGLTEXBUFFERPROC, glTexBuffer); \
    HookExtensionAlias(PFNGLTEXBUFFERPROC, glTexBuffer, glTexBufferARB); \
    HookExtensionAlias(PFNGLTEXBUFFERPROC, glTexBuffer, glTexBufferEXT); \
    HookExtension(PFNGLPRIMITIVERESTARTINDEXPROC, glPrimitiveRestartIndex); \
    HookExtension(PFNGLCOPYBUFFERSUBDATAPROC, glCopyBufferSubData); \
    HookExtension(PFNGLGETUNIFORMINDICESPROC, glGetUniformIndices); \
    HookExtension(PFNGLGETACTIVEUNIFORMSIVPROC, glGetActiveUniformsiv); \
    HookExtension(PFNGLGETACTIVEUNIFORMNAMEPROC, glGetActiveUniformName); \
    HookExtension(PFNGLGETUNIFORMBLOCKINDEXPROC, glGetUniformBlockIndex); \
    HookExtension(PFNGLGETACTIVEUNIFORMBLOCKIVPROC, glGetActiveUniformBlockiv); \
    HookExtension(PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC, glGetActiveUniformBlockName); \
    HookExtension(PFNGLUNIFORMBLOCKBINDINGPROC, glUniformBlockBinding); \
    HookExtension(PFNGLDRAWELEMENTSBASEVERTEXPROC, glDrawElementsBaseVertex); \
    HookExtension(PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC, glDrawRangeElementsBaseVertex); \
    HookExtension(PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC, glDrawElementsInstancedBaseVertex); \
    HookExtension(PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC, glMultiDrawElementsBaseVertex); \
    HookExtension(PFNGLPROVOKINGVERTEXPROC, glProvokingVertex); \
    HookExtensionAlias(PFNGLPROVOKINGVERTEXPROC, glProvokingVertex, glProvokingVertexEXT); \
    HookExtension(PFNGLFENCESYNCPROC, glFenceSync); \
    HookExtension(PFNGLISSYNCPROC, glIsSync); \
    HookExtension(PFNGLDELETESYNCPROC, glDeleteSync); \
    HookExtension(PFNGLCLIENTWAITSYNCPROC, glClientWaitSync); \
    HookExtension(PFNGLWAITSYNCPROC, glWaitSync); \
    HookExtension(PFNGLGETINTEGER64VPROC, glGetInteger64v); \
    HookExtension(PFNGLGETSYNCIVPROC, glGetSynciv); \
    HookExtension(PFNGLGETINTEGER64I_VPROC, glGetInteger64i_v); \
    HookExtension(PFNGLGETBUFFERPARAMETERI64VPROC, glGetBufferParameteri64v); \
    HookExtension(PFNGLFRAMEBUFFERTEXTUREPROC, glFramebufferTexture); \
    HookExtensionAlias(PFNGLFRAMEBUFFERTEXTUREPROC, glFramebufferTexture, glFramebufferTextureARB); \
    HookExtension(PFNGLTEXIMAGE2DMULTISAMPLEPROC, glTexImage2DMultisample); \
    HookExtension(PFNGLTEXIMAGE3DMULTISAMPLEPROC, glTexImage3DMultisample); \
    HookExtension(PFNGLGETMULTISAMPLEFVPROC, glGetMultisamplefv); \
    HookExtension(PFNGLSAMPLEMASKIPROC, glSampleMaski); \
    HookExtension(PFNGLBINDFRAGDATALOCATIONINDEXEDPROC, glBindFragDataLocationIndexed); \
    HookExtension(PFNGLGETFRAGDATAINDEXPROC, glGetFragDataIndex); \
    HookExtension(PFNGLGENSAMPLERSPROC, glGenSamplers); \
    HookExtension(PFNGLDELETESAMPLERSPROC, glDeleteSamplers); \
    HookExtension(PFNGLISSAMPLERPROC, glIsSampler); \
    HookExtension(PFNGLBINDSAMPLERPROC, glBindSampler); \
    HookExtension(PFNGLSAMPLERPARAMETERIPROC, glSamplerParameteri); \
    HookExtension(PFNGLSAMPLERPARAMETERIVPROC, glSamplerParameteriv); \
    HookExtension(PFNGLSAMPLERPARAMETERFPROC, glSamplerParameterf); \
    HookExtension(PFNGLSAMPLERPARAMETERFVPROC, glSamplerParameterfv); \
    HookExtension(PFNGLSAMPLERPARAMETERIIVPROC, glSamplerParameterIiv); \
    HookExtension(PFNGLSAMPLERPARAMETERIUIVPROC, glSamplerParameterIuiv); \
    HookExtension(PFNGLGETSAMPLERPARAMETERIVPROC, glGetSamplerParameteriv); \
    HookExtension(PFNGLGETSAMPLERPARAMETERIIVPROC, glGetSamplerParameterIiv); \
    HookExtension(PFNGLGETSAMPLERPARAMETERFVPROC, glGetSamplerParameterfv); \
    HookExtension(PFNGLGETSAMPLERPARAMETERIUIVPROC, glGetSamplerParameterIuiv); \
    HookExtension(PFNGLQUERYCOUNTERPROC, glQueryCounter); \
    HookExtension(PFNGLGETQUERYOBJECTI64VPROC, glGetQueryObjecti64v); \
    HookExtensionAlias(PFNGLGETQUERYOBJECTI64VPROC, glGetQueryObjecti64v, glGetQueryObjecti64vEXT); \
    HookExtension(PFNGLGETQUERYOBJECTUI64VPROC, glGetQueryObjectui64v); \
    HookExtensionAlias(PFNGLGETQUERYOBJECTUI64VPROC, glGetQueryObjectui64v, glGetQueryObjectui64vEXT); \
    HookExtension(PFNGLVERTEXATTRIBDIVISORPROC, glVertexAttribDivisor); \
    HookExtensionAlias(PFNGLVERTEXATTRIBDIVISORPROC, glVertexAttribDivisor, glVertexAttribDivisorARB); \
    HookExtension(PFNGLVERTEXATTRIBP1UIPROC, glVertexAttribP1ui); \
    HookExtension(PFNGLVERTEXATTRIBP1UIVPROC, glVertexAttribP1uiv); \
    HookExtension(PFNGLVERTEXATTRIBP2UIPROC, glVertexAttribP2ui); \
    HookExtension(PFNGLVERTEXATTRIBP2UIVPROC, glVertexAttribP2uiv); \
    HookExtension(PFNGLVERTEXATTRIBP3UIPROC, glVertexAttribP3ui); \
    HookExtension(PFNGLVERTEXATTRIBP3UIVPROC, glVertexAttribP3uiv); \
    HookExtension(PFNGLVERTEXATTRIBP4UIPROC, glVertexAttribP4ui); \
    HookExtension(PFNGLVERTEXATTRIBP4UIVPROC, glVertexAttribP4uiv); \
    HookExtension(PFNGLMINSAMPLESHADINGPROC, glMinSampleShading); \
    HookExtensionAlias(PFNGLMINSAMPLESHADINGPROC, glMinSampleShading, glMinSampleShadingARB); \
    HookExtension(PFNGLBLENDEQUATIONIPROC, glBlendEquationi); \
    HookExtensionAlias(PFNGLBLENDEQUATIONIPROC, glBlendEquationi, glBlendEquationiARB); \
    HookExtension(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei); \
    HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei, glBlendEquationSeparateiARB); \
    HookExtension(PFNGLBLENDFUNCIPROC, glBlendFunci); \
    HookExtensionAlias(PFNGLBLENDFUNCIPROC, glBlendFunci, glBlendFunciARB); \
    HookExtension(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei); \
    HookExtensionAlias(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei, glBlendFuncSeparateiARB); \
    HookExtension(PFNGLDRAWARRAYSINDIRECTPROC, glDrawArraysIndirect); \
    HookExtension(PFNGLDRAWELEMENTSINDIRECTPROC, glDrawElementsIndirect); \
    HookExtension(PFNGLUNIFORM1DPROC,   glUniform1d); \
    HookExtension(PFNGLUNIFORM2DPROC,   glUniform2d); \
    HookExtension(PFNGLUNIFORM3DPROC,   glUniform3d); \
    HookExtension(PFNGLUNIFORM4DPROC,   glUniform4d); \
    HookExtension(PFNGLUNIFORM1DVPROC,  glUniform1dv); \
    HookExtension(PFNGLUNIFORM2DVPROC,  glUniform2dv); \
    HookExtension(PFNGLUNIFORM3DVPROC,  glUniform3dv); \
    HookExtension(PFNGLUNIFORM4DVPROC,  glUniform4dv); \
    HookExtension(PFNGLUNIFORMMATRIX2DVPROC,   glUniformMatrix2dv); \
    HookExtension(PFNGLUNIFORMMATRIX3DVPROC,   glUniformMatrix3dv); \
    HookExtension(PFNGLUNIFORMMATRIX4DVPROC,   glUniformMatrix4dv); \
    HookExtension(PFNGLUNIFORMMATRIX2X3DVPROC, glUniformMatrix2x3dv); \
    HookExtension(PFNGLUNIFORMMATRIX2X4DVPROC, glUniformMatrix2x4dv); \
    HookExtension(PFNGLUNIFORMMATRIX3X2DVPROC, glUniformMatrix3x2dv); \
    HookExtension(PFNGLUNIFORMMATRIX3X4DVPROC, glUniformMatrix3x4dv); \
    HookExtension(PFNGLUNIFORMMATRIX4X2DVPROC, glUniformMatrix4x2dv); \
    HookExtension(PFNGLUNIFORMMATRIX4X3DVPROC, glUniformMatrix4x3dv); \
    HookExtension(PFNGLGETUNIFORMDVPROC, glGetUniformdv); \
    HookExtension(PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC, glGetSubroutineUniformLocation); \
    HookExtension(PFNGLGETSUBROUTINEINDEXPROC, glGetSubroutineIndex); \
    HookExtension(PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC, glGetActiveSubroutineUniformiv); \
    HookExtension(PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC, glGetActiveSubroutineUniformName); \
    HookExtension(PFNGLGETACTIVESUBROUTINENAMEPROC, glGetActiveSubroutineName); \
    HookExtension(PFNGLUNIFORMSUBROUTINESUIVPROC, glUniformSubroutinesuiv); \
    HookExtension(PFNGLGETUNIFORMSUBROUTINEUIVPROC, glGetUniformSubroutineuiv); \
    HookExtension(PFNGLGETPROGRAMSTAGEIVPROC, glGetProgramStageiv); \
    HookExtension(PFNGLPATCHPARAMETERIPROC, glPatchParameteri); \
    HookExtension(PFNGLPATCHPARAMETERFVPROC, glPatchParameterfv); \
    HookExtension(PFNGLBINDTRANSFORMFEEDBACKPROC, glBindTransformFeedback); \
    HookExtension(PFNGLDELETETRANSFORMFEEDBACKSPROC, glDeleteTransformFeedbacks); \
    HookExtension(PFNGLGENTRANSFORMFEEDBACKSPROC, glGenTransformFeedbacks); \
    HookExtension(PFNGLISTRANSFORMFEEDBACKPROC, glIsTransformFeedback); \
    HookExtension(PFNGLPAUSETRANSFORMFEEDBACKPROC, glPauseTransformFeedback); \
    HookExtension(PFNGLRESUMETRANSFORMFEEDBACKPROC, glResumeTransformFeedback); \
    HookExtension(PFNGLDRAWTRANSFORMFEEDBACKPROC, glDrawTransformFeedback); \
    HookExtension(PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC, glDrawTransformFeedbackStream); \
    HookExtension(PFNGLBEGINQUERYINDEXEDPROC, glBeginQueryIndexed); \
    HookExtension(PFNGLENDQUERYINDEXEDPROC, glEndQueryIndexed); \
    HookExtension(PFNGLGETQUERYINDEXEDIVPROC, glGetQueryIndexediv); \
    HookExtension(PFNGLRELEASESHADERCOMPILERPROC, glReleaseShaderCompiler); \
    HookExtension(PFNGLSHADERBINARYPROC, glShaderBinary); \
    HookExtension(PFNGLGETSHADERPRECISIONFORMATPROC, glGetShaderPrecisionFormat); \
    HookExtension(PFNGLDEPTHRANGEFPROC, glDepthRangef); \
    HookExtension(PFNGLCLEARDEPTHFPROC, glClearDepthf); \
    HookExtension(PFNGLGETPROGRAMBINARYPROC, glGetProgramBinary); \
    HookExtension(PFNGLPROGRAMBINARYPROC, glProgramBinary); \
    HookExtension(PFNGLPROGRAMPARAMETERIPROC, glProgramParameteri); \
    HookExtensionAlias(PFNGLPROGRAMPARAMETERIPROC, glProgramParameteri, glProgramParameteriARB); \
    HookExtension(PFNGLUSEPROGRAMSTAGESPROC, glUseProgramStages); \
    HookExtension(PFNGLACTIVESHADERPROGRAMPROC, glActiveShaderProgram); \
    HookExtension(PFNGLCREATESHADERPROGRAMVPROC, glCreateShaderProgramv); \
    HookExtension(PFNGLBINDPROGRAMPIPELINEPROC, glBindProgramPipeline); \
    HookExtension(PFNGLDELETEPROGRAMPIPELINESPROC, glDeleteProgramPipelines); \
    HookExtension(PFNGLGENPROGRAMPIPELINESPROC, glGenProgramPipelines); \
    HookExtension(PFNGLISPROGRAMPIPELINEPROC, glIsProgramPipeline); \
    HookExtension(PFNGLGETPROGRAMPIPELINEIVPROC, glGetProgramPipelineiv); \
    HookExtension(PFNGLPROGRAMUNIFORM1IPROC,   glProgramUniform1i); \
    HookExtension(PFNGLPROGRAMUNIFORM1IVPROC,  glProgramUniform1iv); \
    HookExtension(PFNGLPROGRAMUNIFORM1FPROC,   glProgramUniform1f); \
    HookExtension(PFNGLPROGRAMUNIFORM1FVPROC,  glProgramUniform1fv); \
    HookExtension(PFNGLPROGRAMUNIFORM1DPROC,   glProgramUniform1d); \
    HookExtension(PFNGLPROGRAMUNIFORM1DVPROC,  glProgramUniform1dv); \
    HookExtension(PFNGLPROGRAMUNIFORM1UIPROC,  glProgramUniform1ui); \
    HookExtension(PFNGLPROGRAMUNIFORM1UIVPROC, glProgramUniform1uiv); \
    HookExtension(PFNGLPROGRAMUNIFORM2IPROC,   glProgramUniform2i); \
    HookExtension(PFNGLPROGRAMUNIFORM2IVPROC,  glProgramUniform2iv); \
    HookExtension(PFNGLPROGRAMUNIFORM2FPROC,   glProgramUniform2f); \
    HookExtension(PFNGLPROGRAMUNIFORM2FVPROC,  glProgramUniform2fv); \
    HookExtension(PFNGLPROGRAMUNIFORM2DPROC,   glProgramUniform2d); \
    HookExtension(PFNGLPROGRAMUNIFORM2DVPROC,  glProgramUniform2dv); \
    HookExtension(PFNGLPROGRAMUNIFORM2UIPROC,  glProgramUniform2ui); \
    HookExtension(PFNGLPROGRAMUNIFORM2UIVPROC, glProgramUniform2uiv); \
    HookExtension(PFNGLPROGRAMUNIFORM3IPROC,   glProgramUniform3i); \
    HookExtension(PFNGLPROGRAMUNIFORM3IVPROC,  glProgramUniform3iv); \
    HookExtension(PFNGLPROGRAMUNIFORM3FPROC,   glProgramUniform3f); \
    HookExtension(PFNGLPROGRAMUNIFORM3FVPROC,  glProgramUniform3fv); \
    HookExtension(PFNGLPROGRAMUNIFORM3DPROC,   glProgramUniform3d); \
    HookExtension(PFNGLPROGRAMUNIFORM3DVPROC,  glProgramUniform3dv); \
    HookExtension(PFNGLPROGRAMUNIFORM3UIPROC,  glProgramUniform3ui); \
    HookExtension(PFNGLPROGRAMUNIFORM3UIVPROC, glProgramUniform3uiv); \
    HookExtension(PFNGLPROGRAMUNIFORM4IPROC,   glProgramUniform4i); \
    HookExtension(PFNGLPROGRAMUNIFORM4IVPROC,  glProgramUniform4iv); \
    HookExtension(PFNGLPROGRAMUNIFORM4FPROC,   glProgramUniform4f); \
    HookExtension(PFNGLPROGRAMUNIFORM4FVPROC,  glProgramUniform4fv); \
    HookExtension(PFNGLPROGRAMUNIFORM4DPROC,   glProgramUniform4d); \
    HookExtension(PFNGLPROGRAMUNIFORM4DVPROC,  glProgramUniform4dv); \
    HookExtension(PFNGLPROGRAMUNIFORM4UIPROC,  glProgramUniform4ui); \
    HookExtension(PFNGLPROGRAMUNIFORM4UIVPROC, glProgramUniform4uiv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX2FVPROC,   glProgramUniformMatrix2fv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX3FVPROC,   glProgramUniformMatrix3fv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX4FVPROC,   glProgramUniformMatrix4fv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX2DVPROC,   glProgramUniformMatrix2dv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX3DVPROC,   glProgramUniformMatrix3dv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX4DVPROC,   glProgramUniformMatrix4dv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC, glProgramUniformMatrix2x3fv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC, glProgramUniformMatrix3x2fv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC, glProgramUniformMatrix2x4fv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC, glProgramUniformMatrix4x2fv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC, glProgramUniformMatrix3x4fv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC, glProgramUniformMatrix4x3fv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC, glProgramUniformMatrix2x3dv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC, glProgramUniformMatrix3x2dv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC, glProgramUniformMatrix2x4dv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC, glProgramUniformMatrix4x2dv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC, glProgramUniformMatrix3x4dv); \
    HookExtension(PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC, glProgramUniformMatrix4x3dv); \
    HookExtension(PFNGLVALIDATEPROGRAMPIPELINEPROC, glValidateProgramPipeline); \
    HookExtension(PFNGLGETPROGRAMPIPELINEINFOLOGPROC, glGetProgramPipelineInfoLog); \
    HookExtension(PFNGLVERTEXATTRIBL1DPROC, glVertexAttribL1d); \
    HookExtensionAlias(PFNGLVERTEXATTRIBL1DPROC, glVertexAttribL1d, glVertexAttribL1dEXT); \
    HookExtension(PFNGLVERTEXATTRIBL2DPROC, glVertexAttribL2d); \
    HookExtensionAlias(PFNGLVERTEXATTRIBL2DPROC, glVertexAttribL2d, glVertexAttribL2dEXT); \
    HookExtension(PFNGLVERTEXATTRIBL3DPROC, glVertexAttribL3d); \
    HookExtensionAlias(PFNGLVERTEXATTRIBL3DPROC, glVertexAttribL3d, glVertexAttribL3dEXT); \
    HookExtension(PFNGLVERTEXATTRIBL4DPROC, glVertexAttribL4d); \
    HookExtensionAlias(PFNGLVERTEXATTRIBL4DPROC, glVertexAttribL4d, glVertexAttribL4dEXT); \
    HookExtension(PFNGLVERTEXATTRIBL1DVPROC, glVertexAttribL1dv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBL1DVPROC, glVertexAttribL1dv, glVertexAttribL1dvEXT); \
    HookExtension(PFNGLVERTEXATTRIBL2DVPROC, glVertexAttribL2dv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBL2DVPROC, glVertexAttribL2dv, glVertexAttribL2dvEXT); \
    HookExtension(PFNGLVERTEXATTRIBL3DVPROC, glVertexAttribL3dv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBL3DVPROC, glVertexAttribL3dv, glVertexAttribL3dvEXT); \
    HookExtension(PFNGLVERTEXATTRIBL4DVPROC, glVertexAttribL4dv); \
    HookExtensionAlias(PFNGLVERTEXATTRIBL4DVPROC, glVertexAttribL4dv, glVertexAttribL4dvEXT); \
    HookExtension(PFNGLVERTEXATTRIBLPOINTERPROC, glVertexAttribLPointer); \
    HookExtensionAlias(PFNGLVERTEXATTRIBLPOINTERPROC, glVertexAttribLPointer, glVertexAttribLPointerEXT); \
    HookExtension(PFNGLGETVERTEXATTRIBLDVPROC, glGetVertexAttribLdv); \
    HookExtensionAlias(PFNGLGETVERTEXATTRIBLDVPROC, glGetVertexAttribLdv, glGetVertexAttribLdvEXT); \
    HookExtension(PFNGLVIEWPORTARRAYVPROC, glViewportArrayv); \
    HookExtension(PFNGLVIEWPORTINDEXEDFPROC, glViewportIndexedf); \
    HookExtension(PFNGLVIEWPORTINDEXEDFVPROC, glViewportIndexedfv); \
    HookExtension(PFNGLSCISSORARRAYVPROC, glScissorArrayv); \
    HookExtension(PFNGLSCISSORINDEXEDPROC, glScissorIndexed); \
    HookExtension(PFNGLSCISSORINDEXEDVPROC, glScissorIndexedv); \
    HookExtension(PFNGLDEPTHRANGEARRAYVPROC, glDepthRangeArrayv); \
    HookExtension(PFNGLDEPTHRANGEINDEXEDPROC, glDepthRangeIndexed); \
    HookExtension(PFNGLGETFLOATI_VPROC, glGetFloati_v); \
    HookExtensionAlias(PFNGLGETFLOATI_VPROC, glGetFloati_v, glGetFloati_vEXT); \
    HookExtension(PFNGLGETDOUBLEI_VPROC, glGetDoublei_v); \
    HookExtensionAlias(PFNGLGETDOUBLEI_VPROC, glGetDoublei_v, glGetDoublei_vEXT); \
    HookExtension(PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC, glDrawArraysInstancedBaseInstance); \
    HookExtension(PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC, glDrawElementsInstancedBaseInstance); \
    HookExtension(PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC, glDrawElementsInstancedBaseVertexBaseInstance); \
    HookExtension(PFNGLGETINTERNALFORMATIVPROC, glGetInternalformativ); \
    HookExtension(PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC, glGetActiveAtomicCounterBufferiv); \
    HookExtension(PFNGLBINDIMAGETEXTUREPROC, glBindImageTexture); \
    HookExtensionAlias(PFNGLBINDIMAGETEXTUREPROC, glBindImageTexture, glBindImageTextureEXT); \
    HookExtension(PFNGLMEMORYBARRIERPROC, glMemoryBarrier); \
    HookExtensionAlias(PFNGLMEMORYBARRIERPROC, glMemoryBarrier, glMemoryBarrierEXT); \
    HookExtension(PFNGLTEXSTORAGE1DPROC, glTexStorage1D); \
    HookExtension(PFNGLTEXSTORAGE2DPROC, glTexStorage2D); \
    HookExtension(PFNGLTEXSTORAGE3DPROC, glTexStorage3D); \
    HookExtension(PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC, glDrawTransformFeedbackInstanced); \
    HookExtension(PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC, glDrawTransformFeedbackStreamInstanced); \
    HookExtension(PFNGLCLEARBUFFERDATAPROC, glClearBufferData); \
    HookExtension(PFNGLCLEARBUFFERSUBDATAPROC, glClearBufferSubData); \
    HookExtension(PFNGLDISPATCHCOMPUTEPROC, glDispatchCompute); \
    HookExtension(PFNGLDISPATCHCOMPUTEINDIRECTPROC, glDispatchComputeIndirect); \
    HookExtension(PFNGLCOPYIMAGESUBDATAPROC, glCopyImageSubData); \
    HookExtension(PFNGLFRAMEBUFFERPARAMETERIPROC, glFramebufferParameteri); \
    HookExtension(PFNGLGETFRAMEBUFFERPARAMETERIVPROC, glGetFramebufferParameteriv); \
    HookExtension(PFNGLGETINTERNALFORMATI64VPROC, glGetInternalformati64v); \
    HookExtension(PFNGLINVALIDATETEXSUBIMAGEPROC, glInvalidateTexSubImage); \
    HookExtension(PFNGLINVALIDATETEXIMAGEPROC, glInvalidateTexImage); \
    HookExtension(PFNGLINVALIDATEBUFFERSUBDATAPROC, glInvalidateBufferSubData); \
    HookExtension(PFNGLINVALIDATEBUFFERDATAPROC, glInvalidateBufferData); \
    HookExtension(PFNGLINVALIDATEFRAMEBUFFERPROC, glInvalidateFramebuffer); \
    HookExtension(PFNGLINVALIDATESUBFRAMEBUFFERPROC, glInvalidateSubFramebuffer); \
    HookExtension(PFNGLMULTIDRAWARRAYSINDIRECTPROC, glMultiDrawArraysIndirect); \
    HookExtension(PFNGLMULTIDRAWELEMENTSINDIRECTPROC, glMultiDrawElementsIndirect); \
    HookExtension(PFNGLGETPROGRAMINTERFACEIVPROC, glGetProgramInterfaceiv); \
    HookExtension(PFNGLGETPROGRAMRESOURCEINDEXPROC, glGetProgramResourceIndex); \
    HookExtension(PFNGLGETPROGRAMRESOURCENAMEPROC, glGetProgramResourceName); \
    HookExtension(PFNGLGETPROGRAMRESOURCEIVPROC, glGetProgramResourceiv); \
    HookExtension(PFNGLGETPROGRAMRESOURCELOCATIONPROC, glGetProgramResourceLocation); \
    HookExtension(PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC, glGetProgramResourceLocationIndex); \
    HookExtension(PFNGLSHADERSTORAGEBLOCKBINDINGPROC, glShaderStorageBlockBinding); \
    HookExtension(PFNGLTEXBUFFERRANGEPROC, glTexBufferRange); \
    HookExtension(PFNGLTEXSTORAGE2DMULTISAMPLEPROC, glTexStorage2DMultisample); \
    HookExtension(PFNGLTEXSTORAGE3DMULTISAMPLEPROC, glTexStorage3DMultisample); \
    HookExtension(PFNGLTEXTUREVIEWPROC, glTextureView); \
    HookExtension(PFNGLBINDVERTEXBUFFERPROC, glBindVertexBuffer); \
    HookExtension(PFNGLVERTEXATTRIBFORMATPROC, glVertexAttribFormat); \
    HookExtension(PFNGLVERTEXATTRIBIFORMATPROC, glVertexAttribIFormat); \
    HookExtension(PFNGLVERTEXATTRIBLFORMATPROC, glVertexAttribLFormat); \
    HookExtension(PFNGLVERTEXATTRIBBINDINGPROC, glVertexAttribBinding); \
    HookExtension(PFNGLVERTEXBINDINGDIVISORPROC, glVertexBindingDivisor); \
    HookExtension(PFNGLDEBUGMESSAGECONTROLPROC, glDebugMessageControl); \
    HookExtensionAlias(PFNGLDEBUGMESSAGECONTROLPROC, glDebugMessageControl, glDebugMessageControlARB); \
    HookExtension(PFNGLDEBUGMESSAGEINSERTPROC, glDebugMessageInsert); \
    HookExtensionAlias(PFNGLDEBUGMESSAGEINSERTPROC, glDebugMessageInsert, glDebugMessageInsertARB); \
    HookExtension(PFNGLDEBUGMESSAGECALLBACKPROC, glDebugMessageCallback); \
    HookExtensionAlias(PFNGLDEBUGMESSAGECALLBACKPROC, glDebugMessageCallback, glDebugMessageCallbackARB); \
    HookExtension(PFNGLGETDEBUGMESSAGELOGPROC, glGetDebugMessageLog); \
    HookExtensionAlias(PFNGLGETDEBUGMESSAGELOGPROC, glGetDebugMessageLog, glGetDebugMessageLogARB); \
    HookExtension(PFNGLPUSHDEBUGGROUPPROC, glPushDebugGroup); \
    HookExtension(PFNGLPOPDEBUGGROUPPROC, glPopDebugGroup); \
    HookExtension(PFNGLOBJECTLABELPROC, glObjectLabel); \
    HookExtensionAlias(PFNGLOBJECTLABELPROC, glObjectLabel, glLabelObjectEXT); \
    HookExtension(PFNGLGETOBJECTLABELPROC, glGetObjectLabel); \
    HookExtensionAlias(PFNGLGETOBJECTLABELPROC, glGetObjectLabel, glGetObjectLabelEXT); \
    HookExtension(PFNGLOBJECTPTRLABELPROC, glObjectPtrLabel); \
    HookExtension(PFNGLGETOBJECTPTRLABELPROC, glGetObjectPtrLabel); \
    HookExtension(PFNGLBUFFERSTORAGEPROC, glBufferStorage); \
    HookExtension(PFNGLCLEARTEXIMAGEPROC, glClearTexImage); \
    HookExtension(PFNGLCLEARTEXSUBIMAGEPROC, glClearTexSubImage); \
    HookExtension(PFNGLBINDBUFFERSBASEPROC, glBindBuffersBase); \
    HookExtension(PFNGLBINDBUFFERSRANGEPROC, glBindBuffersRange); \
    HookExtension(PFNGLBINDTEXTURESPROC, glBindTextures); \
    HookExtension(PFNGLBINDSAMPLERSPROC, glBindSamplers); \
    HookExtension(PFNGLBINDIMAGETEXTURESPROC, glBindImageTextures); \
    HookExtension(PFNGLBINDVERTEXBUFFERSPROC, glBindVertexBuffers); \
    HookExtension(PFNGLCLIPCONTROLPROC, glClipControl); \
    HookExtension(PFNGLCREATETRANSFORMFEEDBACKSPROC, glCreateTransformFeedbacks); \
    HookExtension(PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC, glTransformFeedbackBufferBase); \
    HookExtension(PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC, glTransformFeedbackBufferRange); \
    HookExtension(PFNGLGETTRANSFORMFEEDBACKIVPROC, glGetTransformFeedbackiv); \
    HookExtension(PFNGLGETTRANSFORMFEEDBACKI_VPROC, glGetTransformFeedbacki_v); \
    HookExtension(PFNGLGETTRANSFORMFEEDBACKI64_VPROC, glGetTransformFeedbacki64_v); \
    HookExtension(PFNGLCREATEBUFFERSPROC, glCreateBuffers); \
    HookExtension(PFNGLNAMEDBUFFERSTORAGEPROC, glNamedBufferStorage); \
    HookExtension(PFNGLNAMEDBUFFERDATAPROC, glNamedBufferData); \
    HookExtension(PFNGLNAMEDBUFFERSUBDATAPROC, glNamedBufferSubData); \
    HookExtension(PFNGLCOPYNAMEDBUFFERSUBDATAPROC, glCopyNamedBufferSubData); \
    HookExtension(PFNGLCLEARNAMEDBUFFERDATAPROC, glClearNamedBufferDataEXT); \
    HookExtensionAlias(PFNGLCLEARNAMEDBUFFERDATAPROC, glClearNamedBufferDataEXT, glClearNamedBufferData); \
    HookExtension(PFNGLCLEARNAMEDBUFFERSUBDATAPROC, glClearNamedBufferSubData); \
    HookExtension(PFNGLMAPNAMEDBUFFERPROC, glMapNamedBufferEXT); \
    HookExtensionAlias(PFNGLMAPNAMEDBUFFERPROC, glMapNamedBufferEXT, glMapNamedBuffer); \
    HookExtension(PFNGLMAPNAMEDBUFFERRANGEPROC, glMapNamedBufferRange); \
    HookExtension(PFNGLUNMAPNAMEDBUFFERPROC, glUnmapNamedBufferEXT); \
    HookExtensionAlias(PFNGLUNMAPNAMEDBUFFERPROC, glUnmapNamedBufferEXT, glUnmapNamedBuffer); \
    HookExtension(PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC, glFlushMappedNamedBufferRange); \
    HookExtension(PFNGLGETNAMEDBUFFERPARAMETERIVPROC, glGetNamedBufferParameterivEXT); \
    HookExtensionAlias(PFNGLGETNAMEDBUFFERPARAMETERIVPROC, glGetNamedBufferParameterivEXT, glGetNamedBufferParameteriv); \
    HookExtension(PFNGLGETNAMEDBUFFERPARAMETERI64VPROC, glGetNamedBufferParameteri64v); \
    HookExtension(PFNGLGETNAMEDBUFFERPOINTERVPROC, glGetNamedBufferPointervEXT); \
    HookExtensionAlias(PFNGLGETNAMEDBUFFERPOINTERVPROC, glGetNamedBufferPointervEXT, glGetNamedBufferPointerv); \
    HookExtension(PFNGLGETNAMEDBUFFERSUBDATAPROC, glGetNamedBufferSubData); \
    HookExtension(PFNGLCREATEFRAMEBUFFERSPROC, glCreateFramebuffers); \
    HookExtension(PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC, glNamedFramebufferRenderbufferEXT); \
    HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC, glNamedFramebufferRenderbufferEXT, glNamedFramebufferRenderbuffer); \
    HookExtension(PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC, glNamedFramebufferParameteriEXT); \
    HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC, glNamedFramebufferParameteriEXT, glNamedFramebufferParameteri); \
    HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTUREPROC, glNamedFramebufferTextureEXT); \
    HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERTEXTUREPROC, glNamedFramebufferTextureEXT, glNamedFramebufferTexture); \
    HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC, glNamedFramebufferTextureLayerEXT); \
    HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC, glNamedFramebufferTextureLayerEXT, glNamedFramebufferTextureLayer); \
    HookExtension(PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC, glFramebufferDrawBufferEXT); \
    HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC, glFramebufferDrawBufferEXT, glNamedFramebufferDrawBuffer); \
    HookExtension(PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC, glFramebufferDrawBuffersEXT); \
    HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC, glFramebufferDrawBuffersEXT, glNamedFramebufferDrawBuffers); \
    HookExtension(PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC, glFramebufferReadBufferEXT); \
    HookExtensionAlias(PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC, glFramebufferReadBufferEXT, glNamedFramebufferReadBuffer); \
    HookExtension(PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC, glInvalidateNamedFramebufferData); \
    HookExtension(PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC, glInvalidateNamedFramebufferSubData); \
    HookExtension(PFNGLCLEARNAMEDFRAMEBUFFERIVPROC, glClearNamedFramebufferiv); \
    HookExtension(PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC, glClearNamedFramebufferuiv); \
    HookExtension(PFNGLCLEARNAMEDFRAMEBUFFERFVPROC, glClearNamedFramebufferfv); \
    HookExtension(PFNGLCLEARNAMEDFRAMEBUFFERFIPROC, glClearNamedFramebufferfi); \
    HookExtension(PFNGLBLITNAMEDFRAMEBUFFERPROC, glBlitNamedFramebuffer); \
    HookExtension(PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC, glCheckNamedFramebufferStatusEXT); \
    HookExtensionAlias(PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC, glCheckNamedFramebufferStatusEXT, glCheckNamedFramebufferStatus); \
    HookExtension(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC, glGetNamedFramebufferParameterivEXT); \
    HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC, glGetNamedFramebufferParameterivEXT, glGetFramebufferParameterivEXT); \
    HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC, glGetNamedFramebufferParameterivEXT, glGetNamedFramebufferParameteriv); \
    HookExtension(PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetNamedFramebufferAttachmentParameterivEXT); \
    HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetNamedFramebufferAttachmentParameterivEXT, glGetNamedFramebufferAttachmentParameteriv); \
    HookExtension(PFNGLCREATERENDERBUFFERSPROC, glCreateRenderbuffers); \
    HookExtension(PFNGLNAMEDRENDERBUFFERSTORAGEPROC, glNamedRenderbufferStorageEXT); \
    HookExtensionAlias(PFNGLNAMEDRENDERBUFFERSTORAGEPROC, glNamedRenderbufferStorageEXT, glNamedRenderbufferStorage); \
    HookExtension(PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC, glNamedRenderbufferStorageMultisampleEXT); \
    HookExtensionAlias(PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC, glNamedRenderbufferStorageMultisampleEXT, glNamedRenderbufferStorageMultisample); \
    HookExtension(PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC, glGetNamedRenderbufferParameterivEXT); \
    HookExtensionAlias(PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC, glGetNamedRenderbufferParameterivEXT, glGetNamedRenderbufferParameteriv); \
    HookExtension(PFNGLCREATETEXTURESPROC, glCreateTextures); \
    HookExtension(PFNGLTEXTUREBUFFERPROC, glTextureBuffer); \
    HookExtension(PFNGLTEXTUREBUFFERRANGEPROC, glTextureBufferRange); \
    HookExtension(PFNGLTEXTURESTORAGE1DPROC, glTextureStorage1D); \
    HookExtension(PFNGLTEXTURESTORAGE2DPROC, glTextureStorage2D); \
    HookExtension(PFNGLTEXTURESTORAGE3DPROC, glTextureStorage3D); \
    HookExtension(PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC, glTextureStorage2DMultisample); \
    HookExtension(PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC, glTextureStorage3DMultisample); \
    HookExtension(PFNGLTEXTURESUBIMAGE1DPROC, glTextureSubImage1D); \
    HookExtension(PFNGLTEXTURESUBIMAGE2DPROC, glTextureSubImage2D); \
    HookExtension(PFNGLTEXTURESUBIMAGE3DPROC, glTextureSubImage3D); \
    HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC, glCompressedTextureSubImage1D); \
    HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC, glCompressedTextureSubImage2D); \
    HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC, glCompressedTextureSubImage3D); \
    HookExtension(PFNGLCOPYTEXTURESUBIMAGE1DPROC, glCopyTextureSubImage1D); \
    HookExtension(PFNGLCOPYTEXTURESUBIMAGE2DPROC, glCopyTextureSubImage2D); \
    HookExtension(PFNGLCOPYTEXTURESUBIMAGE3DPROC, glCopyTextureSubImage3D); \
    HookExtension(PFNGLTEXTUREPARAMETERFPROC, glTextureParameterf); \
    HookExtension(PFNGLTEXTUREPARAMETERFVPROC, glTextureParameterfv); \
    HookExtension(PFNGLTEXTUREPARAMETERIPROC, glTextureParameteri); \
    HookExtension(PFNGLTEXTUREPARAMETERIIVPROC, glTextureParameterIiv); \
    HookExtension(PFNGLTEXTUREPARAMETERIUIVPROC, glTextureParameterIuiv); \
    HookExtension(PFNGLTEXTUREPARAMETERIVPROC, glTextureParameteriv); \
    HookExtension(PFNGLGENERATETEXTUREMIPMAPPROC, glGenerateTextureMipmap); \
    HookExtension(PFNGLBINDTEXTUREUNITPROC, glBindTextureUnit); \
    HookExtension(PFNGLGETTEXTUREIMAGEPROC, glGetTextureImage); \
    HookExtension(PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC, glGetCompressedTextureImage); \
    HookExtension(PFNGLGETTEXTURELEVELPARAMETERFVPROC, glGetTextureLevelParameterfv); \
    HookExtension(PFNGLGETTEXTURELEVELPARAMETERIVPROC, glGetTextureLevelParameteriv); \
    HookExtension(PFNGLGETTEXTUREPARAMETERFVPROC, glGetTextureParameterfv); \
    HookExtension(PFNGLGETTEXTUREPARAMETERIIVPROC, glGetTextureParameterIiv); \
    HookExtension(PFNGLGETTEXTUREPARAMETERIUIVPROC, glGetTextureParameterIuiv); \
    HookExtension(PFNGLGETTEXTUREPARAMETERIVPROC, glGetTextureParameteriv); \
    HookExtension(PFNGLCREATEVERTEXARRAYSPROC, glCreateVertexArrays); \
    HookExtension(PFNGLDISABLEVERTEXARRAYATTRIBPROC, glDisableVertexArrayAttribEXT); \
    HookExtensionAlias(PFNGLDISABLEVERTEXARRAYATTRIBPROC, glDisableVertexArrayAttribEXT, glDisableVertexArrayAttrib); \
    HookExtension(PFNGLENABLEVERTEXARRAYATTRIBPROC, glEnableVertexArrayAttribEXT); \
    HookExtensionAlias(PFNGLENABLEVERTEXARRAYATTRIBPROC, glEnableVertexArrayAttribEXT, glEnableVertexArrayAttrib); \
    HookExtension(PFNGLVERTEXARRAYELEMENTBUFFERPROC, glVertexArrayElementBuffer); \
    HookExtension(PFNGLVERTEXARRAYVERTEXBUFFERPROC, glVertexArrayBindVertexBufferEXT); \
    HookExtensionAlias(PFNGLVERTEXARRAYVERTEXBUFFERPROC, glVertexArrayBindVertexBufferEXT, glVertexArrayVertexBuffer); \
    HookExtension(PFNGLVERTEXARRAYVERTEXBUFFERSPROC, glVertexArrayVertexBuffers); \
    HookExtension(PFNGLVERTEXARRAYATTRIBBINDINGPROC, glVertexArrayVertexAttribBindingEXT); \
    HookExtensionAlias(PFNGLVERTEXARRAYATTRIBBINDINGPROC, glVertexArrayVertexAttribBindingEXT, glVertexArrayAttribBinding); \
    HookExtension(PFNGLVERTEXARRAYATTRIBFORMATPROC, glVertexArrayVertexAttribFormatEXT); \
    HookExtensionAlias(PFNGLVERTEXARRAYATTRIBFORMATPROC, glVertexArrayVertexAttribFormatEXT, glVertexArrayAttribFormat); \
    HookExtension(PFNGLVERTEXARRAYATTRIBIFORMATPROC, glVertexArrayVertexAttribIFormatEXT); \
    HookExtensionAlias(PFNGLVERTEXARRAYATTRIBIFORMATPROC, glVertexArrayVertexAttribIFormatEXT, glVertexArrayAttribIFormat); \
    HookExtension(PFNGLVERTEXARRAYATTRIBLFORMATPROC, glVertexArrayVertexAttribLFormatEXT); \
    HookExtensionAlias(PFNGLVERTEXARRAYATTRIBLFORMATPROC, glVertexArrayVertexAttribLFormatEXT, glVertexArrayAttribLFormat); \
    HookExtension(PFNGLVERTEXARRAYBINDINGDIVISORPROC, glVertexArrayVertexBindingDivisorEXT); \
    HookExtensionAlias(PFNGLVERTEXARRAYBINDINGDIVISORPROC, glVertexArrayVertexBindingDivisorEXT, glVertexArrayBindingDivisor); \
    HookExtension(PFNGLGETVERTEXARRAYIVPROC, glGetVertexArrayiv); \
    HookExtension(PFNGLGETVERTEXARRAYINDEXEDIVPROC, glGetVertexArrayIndexediv); \
    HookExtension(PFNGLGETVERTEXARRAYINDEXED64IVPROC, glGetVertexArrayIndexed64iv); \
    HookExtension(PFNGLCREATESAMPLERSPROC, glCreateSamplers); \
    HookExtension(PFNGLCREATEPROGRAMPIPELINESPROC, glCreateProgramPipelines); \
    HookExtension(PFNGLCREATEQUERIESPROC, glCreateQueries); \
    HookExtension(PFNGLGETQUERYBUFFEROBJECTI64VPROC, glGetQueryBufferObjecti64v); \
    HookExtension(PFNGLGETQUERYBUFFEROBJECTIVPROC, glGetQueryBufferObjectiv); \
    HookExtension(PFNGLGETQUERYBUFFEROBJECTUI64VPROC, glGetQueryBufferObjectui64v); \
    HookExtension(PFNGLGETQUERYBUFFEROBJECTUIVPROC, glGetQueryBufferObjectuiv); \
    HookExtension(PFNGLMEMORYBARRIERBYREGIONPROC, glMemoryBarrierByRegion); \
    HookExtension(PFNGLGETTEXTURESUBIMAGEPROC, glGetTextureSubImage); \
    HookExtension(PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC, glGetCompressedTextureSubImage); \
    HookExtension(PFNGLGETGRAPHICSRESETSTATUSPROC, glGetGraphicsResetStatus); \
    HookExtensionAlias(PFNGLGETGRAPHICSRESETSTATUSPROC, glGetGraphicsResetStatus, glGetGraphicsResetStatusARB); \
    HookExtension(PFNGLGETNCOMPRESSEDTEXIMAGEPROC, glGetnCompressedTexImage); \
    HookExtensionAlias(PFNGLGETNCOMPRESSEDTEXIMAGEPROC, glGetnCompressedTexImage, glGetnCompressedTexImageARB); \
    HookExtension(PFNGLGETNTEXIMAGEPROC, glGetnTexImage); \
    HookExtensionAlias(PFNGLGETNTEXIMAGEPROC, glGetnTexImage, glGetnTexImageARB); \
    HookExtension(PFNGLGETNUNIFORMDVPROC, glGetnUniformdv); \
    HookExtensionAlias(PFNGLGETNUNIFORMDVPROC, glGetnUniformdv, glGetnUniformdvARB); \
    HookExtension(PFNGLGETNUNIFORMFVPROC, glGetnUniformfv); \
    HookExtensionAlias(PFNGLGETNUNIFORMFVPROC, glGetnUniformfv, glGetnUniformfvARB); \
    HookExtension(PFNGLGETNUNIFORMIVPROC, glGetnUniformiv); \
    HookExtensionAlias(PFNGLGETNUNIFORMIVPROC, glGetnUniformiv, glGetnUniformivARB); \
    HookExtension(PFNGLGETNUNIFORMUIVPROC, glGetnUniformuiv); \
    HookExtensionAlias(PFNGLGETNUNIFORMUIVPROC, glGetnUniformuiv, glGetnUniformuivARB); \
    HookExtension(PFNGLREADNPIXELSPROC, glReadnPixels); \
    HookExtensionAlias(PFNGLREADNPIXELSPROC, glReadnPixels, glReadnPixelsARB); \
    HookExtension(PFNGLTEXTUREBARRIERPROC, glTextureBarrier); \
    HookExtension(PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC, glDispatchComputeGroupSizeARB); \
    HookExtension(PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC, glMultiDrawArraysIndirectCountARB); \
    HookExtension(PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC, glMultiDrawElementsIndirectCountARB); \
    HookExtension(PFNGLNAMEDSTRINGARBPROC, glNamedStringARB); \
    HookExtension(PFNGLDELETENAMEDSTRINGARBPROC, glDeleteNamedStringARB); \
    HookExtension(PFNGLCOMPILESHADERINCLUDEARBPROC, glCompileShaderIncludeARB); \
    HookExtension(PFNGLISNAMEDSTRINGARBPROC, glIsNamedStringARB); \
    HookExtension(PFNGLGETNAMEDSTRINGARBPROC, glGetNamedStringARB); \
    HookExtension(PFNGLGETNAMEDSTRINGIVARBPROC, glGetNamedStringivARB); \
    HookExtension(PFNGLBLENDBARRIERKHRPROC, glBlendBarrierKHR); \
    HookExtension(PFNGLINSERTEVENTMARKEREXTPROC, glInsertEventMarkerEXT); \
    HookExtension(PFNGLPUSHGROUPMARKEREXTPROC, glPushGroupMarkerEXT); \
    HookExtension(PFNGLPOPGROUPMARKEREXTPROC, glPopGroupMarkerEXT); \
    HookExtension(PFNGLDEPTHBOUNDSEXTPROC, glDepthBoundsEXT); \
    HookExtension(PFNGLTEXTUREPARAMETERFEXTPROC, glTextureParameterfEXT); \
    HookExtension(PFNGLTEXTUREPARAMETERFVEXTPROC, glTextureParameterfvEXT); \
    HookExtension(PFNGLTEXTUREPARAMETERIEXTPROC, glTextureParameteriEXT); \
    HookExtension(PFNGLTEXTUREPARAMETERIVEXTPROC, glTextureParameterivEXT); \
    HookExtension(PFNGLTEXTUREIMAGE1DEXTPROC, glTextureImage1DEXT); \
    HookExtension(PFNGLTEXTUREIMAGE2DEXTPROC, glTextureImage2DEXT); \
    HookExtension(PFNGLTEXTURESUBIMAGE1DEXTPROC, glTextureSubImage1DEXT); \
    HookExtension(PFNGLTEXTURESUBIMAGE2DEXTPROC, glTextureSubImage2DEXT); \
    HookExtension(PFNGLCOPYTEXTUREIMAGE1DEXTPROC, glCopyTextureImage1DEXT); \
    HookExtension(PFNGLCOPYTEXTUREIMAGE2DEXTPROC, glCopyTextureImage2DEXT); \
    HookExtension(PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC, glCopyTextureSubImage1DEXT); \
    HookExtension(PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC, glCopyTextureSubImage2DEXT); \
    HookExtension(PFNGLGETTEXTUREIMAGEEXTPROC, glGetTextureImageEXT); \
    HookExtension(PFNGLGETTEXTUREPARAMETERFVEXTPROC, glGetTextureParameterfvEXT); \
    HookExtension(PFNGLGETTEXTUREPARAMETERIVEXTPROC, glGetTextureParameterivEXT); \
    HookExtension(PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC, glGetTextureLevelParameterfvEXT); \
    HookExtension(PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC, glGetTextureLevelParameterivEXT); \
    HookExtension(PFNGLTEXTUREIMAGE3DEXTPROC, glTextureImage3DEXT); \
    HookExtension(PFNGLTEXTURESUBIMAGE3DEXTPROC, glTextureSubImage3DEXT); \
    HookExtension(PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC, glCopyTextureSubImage3DEXT); \
    HookExtension(PFNGLBINDMULTITEXTUREEXTPROC, glBindMultiTextureEXT); \
    HookExtension(PFNGLMULTITEXPARAMETERIEXTPROC, glMultiTexParameteriEXT); \
    HookExtension(PFNGLMULTITEXPARAMETERIVEXTPROC, glMultiTexParameterivEXT); \
    HookExtension(PFNGLMULTITEXPARAMETERFEXTPROC, glMultiTexParameterfEXT); \
    HookExtension(PFNGLMULTITEXPARAMETERFVEXTPROC, glMultiTexParameterfvEXT); \
    HookExtension(PFNGLMULTITEXIMAGE1DEXTPROC, glMultiTexImage1DEXT); \
    HookExtension(PFNGLMULTITEXIMAGE2DEXTPROC, glMultiTexImage2DEXT); \
    HookExtension(PFNGLMULTITEXSUBIMAGE1DEXTPROC, glMultiTexSubImage1DEXT); \
    HookExtension(PFNGLMULTITEXSUBIMAGE2DEXTPROC, glMultiTexSubImage2DEXT); \
    HookExtension(PFNGLCOPYMULTITEXIMAGE1DEXTPROC, glCopyMultiTexImage1DEXT); \
    HookExtension(PFNGLCOPYMULTITEXIMAGE2DEXTPROC, glCopyMultiTexImage2DEXT); \
    HookExtension(PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC, glCopyMultiTexSubImage1DEXT); \
    HookExtension(PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC, glCopyMultiTexSubImage2DEXT); \
    HookExtension(PFNGLGETMULTITEXIMAGEEXTPROC, glGetMultiTexImageEXT); \
    HookExtension(PFNGLGETMULTITEXPARAMETERFVEXTPROC, glGetMultiTexParameterfvEXT); \
    HookExtension(PFNGLGETMULTITEXPARAMETERIVEXTPROC, glGetMultiTexParameterivEXT); \
    HookExtension(PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC, glGetMultiTexLevelParameterfvEXT); \
    HookExtension(PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC, glGetMultiTexLevelParameterivEXT); \
    HookExtension(PFNGLMULTITEXIMAGE3DEXTPROC, glMultiTexImage3DEXT); \
    HookExtension(PFNGLMULTITEXSUBIMAGE3DEXTPROC, glMultiTexSubImage3DEXT); \
    HookExtension(PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC, glCopyMultiTexSubImage3DEXT); \
    HookExtension(PFNGLGETFLOATINDEXEDVEXTPROC, glGetFloatIndexedvEXT); \
    HookExtension(PFNGLGETDOUBLEINDEXEDVEXTPROC, glGetDoubleIndexedvEXT); \
    HookExtension(PFNGLGETPOINTERINDEXEDVEXTPROC, glGetPointerIndexedvEXT); \
    HookExtension(PFNGLGETINTEGERINDEXEDVEXTPROC, glGetIntegerIndexedvEXT); \
    HookExtension(PFNGLGETBOOLEANINDEXEDVEXTPROC, glGetBooleanIndexedvEXT); \
    HookExtension(PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC, glCompressedTextureImage3DEXT); \
    HookExtension(PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC, glCompressedTextureImage2DEXT); \
    HookExtension(PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC, glCompressedTextureImage1DEXT); \
    HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC, glCompressedTextureSubImage3DEXT); \
    HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC, glCompressedTextureSubImage2DEXT); \
    HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC, glCompressedTextureSubImage1DEXT); \
    HookExtension(PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC, glGetCompressedTextureImageEXT); \
    HookExtension(PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC, glCompressedMultiTexImage3DEXT); \
    HookExtension(PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC, glCompressedMultiTexImage2DEXT); \
    HookExtension(PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC, glCompressedMultiTexImage1DEXT); \
    HookExtension(PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC, glCompressedMultiTexSubImage3DEXT); \
    HookExtension(PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC, glCompressedMultiTexSubImage2DEXT); \
    HookExtension(PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC, glCompressedMultiTexSubImage1DEXT); \
    HookExtension(PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC, glGetCompressedMultiTexImageEXT); \
    HookExtension(PFNGLNAMEDBUFFERDATAEXTPROC, glNamedBufferDataEXT); \
    HookExtension(PFNGLNAMEDBUFFERSUBDATAEXTPROC, glNamedBufferSubDataEXT); \
    HookExtension(PFNGLGETNAMEDBUFFERSUBDATAEXTPROC, glGetNamedBufferSubDataEXT); \
    HookExtension(PFNGLTEXTUREBUFFEREXTPROC, glTextureBufferEXT); \
    HookExtension(PFNGLMULTITEXBUFFEREXTPROC, glMultiTexBufferEXT); \
    HookExtension(PFNGLTEXTUREPARAMETERIIVEXTPROC, glTextureParameterIivEXT); \
    HookExtension(PFNGLTEXTUREPARAMETERIUIVEXTPROC, glTextureParameterIuivEXT); \
    HookExtension(PFNGLGETTEXTUREPARAMETERIIVEXTPROC, glGetTextureParameterIivEXT); \
    HookExtension(PFNGLGETTEXTUREPARAMETERIUIVEXTPROC, glGetTextureParameterIuivEXT); \
    HookExtension(PFNGLMULTITEXPARAMETERIIVEXTPROC, glMultiTexParameterIivEXT); \
    HookExtension(PFNGLMULTITEXPARAMETERIUIVEXTPROC, glMultiTexParameterIuivEXT); \
    HookExtension(PFNGLGETMULTITEXPARAMETERIIVEXTPROC, glGetMultiTexParameterIivEXT); \
    HookExtension(PFNGLGETMULTITEXPARAMETERIUIVEXTPROC, glGetMultiTexParameterIuivEXT); \
    HookExtension(PFNGLGETPOINTERI_VEXTPROC, glGetPointeri_vEXT); \
    HookExtension(PFNGLGETNAMEDPROGRAMIVEXTPROC, glGetNamedProgramivEXT); \
    HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC, glNamedFramebufferTexture1DEXT); \
    HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC, glNamedFramebufferTexture2DEXT); \
    HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC, glNamedFramebufferTexture3DEXT); \
    HookExtension(PFNGLGENERATETEXTUREMIPMAPEXTPROC, glGenerateTextureMipmapEXT); \
    HookExtension(PFNGLGENERATEMULTITEXMIPMAPEXTPROC, glGenerateMultiTexMipmapEXT); \
    HookExtension(PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC, glNamedCopyBufferSubDataEXT); \
    HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC, glVertexArrayVertexAttribOffsetEXT); \
    HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC, glVertexArrayVertexAttribIOffsetEXT); \
    HookExtension(PFNGLGETVERTEXARRAYINTEGERVEXTPROC, glGetVertexArrayIntegervEXT); \
    HookExtension(PFNGLGETVERTEXARRAYPOINTERVEXTPROC, glGetVertexArrayPointervEXT); \
    HookExtension(PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC, glGetVertexArrayIntegeri_vEXT); \
    HookExtension(PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC, glGetVertexArrayPointeri_vEXT); \
    HookExtension(PFNGLMAPNAMEDBUFFERRANGEEXTPROC, glMapNamedBufferRangeEXT); \
    HookExtension(PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC, glFlushMappedNamedBufferRangeEXT); \
    HookExtension(PFNGLNAMEDBUFFERSTORAGEEXTPROC, glNamedBufferStorageEXT); \
    HookExtension(PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC, glClearNamedBufferSubDataEXT); \
    HookExtension(PFNGLTEXTUREBUFFERRANGEEXTPROC, glTextureBufferRangeEXT); \
    HookExtension(PFNGLTEXTURESTORAGE1DEXTPROC, glTextureStorage1DEXT); \
    HookExtension(PFNGLTEXTURESTORAGE2DEXTPROC, glTextureStorage2DEXT); \
    HookExtension(PFNGLTEXTURESTORAGE3DEXTPROC, glTextureStorage3DEXT); \
    HookExtension(PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC, glTextureStorage2DMultisampleEXT); \
    HookExtension(PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC, glTextureStorage3DMultisampleEXT); \
    HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC, glVertexArrayVertexAttribLOffsetEXT); \
    HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC, glVertexArrayVertexAttribDivisorEXT); \
    HookExtension(PFNGLPOLYGONOFFSETCLAMPEXTPROC, glPolygonOffsetClampEXT); \
    HookExtension(PFNGLRASTERSAMPLESEXTPROC, glRasterSamplesEXT); \
    HookExtension(PFNGLFRAMETERMINATORGREMEDYPROC, glFrameTerminatorGREMEDY); \
    HookExtension(PFNGLSTRINGMARKERGREMEDYPROC, glStringMarkerGREMEDY); \
    HookExtension(PFNGLCULLFACEPROC, glCullFace); \
    HookExtension(PFNGLFRONTFACEPROC, glFrontFace); \
    HookExtension(PFNGLHINTPROC, glHint); \
    HookExtension(PFNGLLINEWIDTHPROC, glLineWidth); \
    HookExtension(PFNGLPOINTSIZEPROC, glPointSize); \
    HookExtension(PFNGLPOLYGONMODEPROC, glPolygonMode); \
    HookExtension(PFNGLSCISSORPROC, glScissor); \
    HookExtension(PFNGLTEXPARAMETERFPROC, glTexParameterf); \
    HookExtension(PFNGLTEXPARAMETERFVPROC, glTexParameterfv); \
    HookExtension(PFNGLTEXPARAMETERIPROC, glTexParameteri); \
    HookExtension(PFNGLTEXPARAMETERIVPROC, glTexParameteriv); \
    HookExtension(PFNGLTEXIMAGE1DPROC, glTexImage1D); \
    HookExtension(PFNGLTEXIMAGE2DPROC, glTexImage2D); \
    HookExtension(PFNGLDRAWBUFFERPROC, glDrawBuffer); \
    HookExtension(PFNGLCLEARPROC, glClear); \
    HookExtension(PFNGLCLEARCOLORPROC, glClearColor); \
    HookExtension(PFNGLCLEARSTENCILPROC, glClearStencil); \
    HookExtension(PFNGLCLEARDEPTHPROC, glClearDepth); \
    HookExtension(PFNGLSTENCILMASKPROC, glStencilMask); \
    HookExtension(PFNGLCOLORMASKPROC, glColorMask); \
    HookExtension(PFNGLDEPTHMASKPROC, glDepthMask); \
    HookExtension(PFNGLDISABLEPROC, glDisable); \
    HookExtension(PFNGLENABLEPROC, glEnable); \
    HookExtension(PFNGLFINISHPROC, glFinish); \
    HookExtension(PFNGLFLUSHPROC, glFlush); \
    HookExtension(PFNGLBLENDFUNCPROC, glBlendFunc); \
    HookExtension(PFNGLLOGICOPPROC, glLogicOp); \
    HookExtension(PFNGLSTENCILFUNCPROC, glStencilFunc); \
    HookExtension(PFNGLSTENCILOPPROC, glStencilOp); \
    HookExtension(PFNGLDEPTHFUNCPROC, glDepthFunc); \
    HookExtension(PFNGLPIXELSTOREFPROC, glPixelStoref); \
    HookExtension(PFNGLPIXELSTOREIPROC, glPixelStorei); \
    HookExtension(PFNGLREADBUFFERPROC, glReadBuffer); \
    HookExtension(PFNGLREADPIXELSPROC, glReadPixels); \
    HookExtension(PFNGLGETBOOLEANVPROC, glGetBooleanv); \
    HookExtension(PFNGLGETDOUBLEVPROC, glGetDoublev); \
    HookExtension(PFNGLGETERRORPROC, glGetError); \
    HookExtension(PFNGLGETFLOATVPROC, glGetFloatv); \
    HookExtension(PFNGLGETINTEGERVPROC, glGetIntegerv); \
    HookExtension(PFNGLGETSTRINGPROC, glGetString); \
    HookExtension(PFNGLGETTEXIMAGEPROC, glGetTexImage); \
    HookExtension(PFNGLGETTEXPARAMETERFVPROC, glGetTexParameterfv); \
    HookExtension(PFNGLGETTEXPARAMETERIVPROC, glGetTexParameteriv); \
    HookExtension(PFNGLGETTEXLEVELPARAMETERFVPROC, glGetTexLevelParameterfv); \
    HookExtension(PFNGLGETTEXLEVELPARAMETERIVPROC, glGetTexLevelParameteriv); \
    HookExtension(PFNGLISENABLEDPROC, glIsEnabled); \
    HookExtension(PFNGLDEPTHRANGEPROC, glDepthRange); \
    HookExtension(PFNGLVIEWPORTPROC, glViewport); \
    HookExtension(PFNGLDRAWARRAYSPROC, glDrawArrays); \
    HookExtension(PFNGLDRAWELEMENTSPROC, glDrawElements); \
    HookExtension(PFNGLGETPOINTERVPROC, glGetPointerv); \
    HookExtension(PFNGLPOLYGONOFFSETPROC, glPolygonOffset); \
    HookExtension(PFNGLCOPYTEXIMAGE1DPROC, glCopyTexImage1D); \
    HookExtension(PFNGLCOPYTEXIMAGE2DPROC, glCopyTexImage2D); \
    HookExtension(PFNGLCOPYTEXSUBIMAGE1DPROC, glCopyTexSubImage1D); \
    HookExtension(PFNGLCOPYTEXSUBIMAGE2DPROC, glCopyTexSubImage2D); \
    HookExtension(PFNGLTEXSUBIMAGE1DPROC, glTexSubImage1D); \
    HookExtension(PFNGLTEXSUBIMAGE2DPROC, glTexSubImage2D); \
    HookExtension(PFNGLBINDTEXTUREPROC, glBindTexture); \
    HookExtension(PFNGLDELETETEXTURESPROC, glDeleteTextures); \
    HookExtension(PFNGLGENTEXTURESPROC, glGenTextures); \
    HookExtension(PFNGLISTEXTUREPROC, glIsTexture); \



// dllexport functions
#define DefineDLLExportHooks() \
    HookWrapper1(void, glCullFace, GLenum, mode); \
    HookWrapper1(void, glFrontFace, GLenum, mode); \
    HookWrapper2(void, glHint, GLenum, target, GLenum, mode); \
    HookWrapper1(void, glLineWidth, GLfloat, width); \
    HookWrapper1(void, glPointSize, GLfloat, size); \
    HookWrapper2(void, glPolygonMode, GLenum, face, GLenum, mode); \
    HookWrapper4(void, glScissor, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glTexParameterf, GLenum, target, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glTexParameterfv, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glTexParameteri, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper3(void, glTexParameteriv, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper8(void, glTexImage1D, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper9(void, glTexImage2D, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper1(void, glDrawBuffer, GLenum, buf); \
    HookWrapper1(void, glClear, GLbitfield, mask); \
    HookWrapper4(void, glClearColor, GLfloat, red, GLfloat, green, GLfloat, blue, GLfloat, alpha); \
    HookWrapper1(void, glClearStencil, GLint, s); \
    HookWrapper1(void, glClearDepth, GLdouble, depth); \
    HookWrapper1(void, glStencilMask, GLuint, mask); \
    HookWrapper4(void, glColorMask, GLboolean, red, GLboolean, green, GLboolean, blue, GLboolean, alpha); \
    HookWrapper1(void, glDepthMask, GLboolean, flag); \
    HookWrapper1(void, glDisable, GLenum, cap); \
    HookWrapper1(void, glEnable, GLenum, cap); \
    HookWrapper0(void, glFinish); \
    HookWrapper0(void, glFlush); \
    HookWrapper2(void, glBlendFunc, GLenum, sfactor, GLenum, dfactor); \
    HookWrapper1(void, glLogicOp, GLenum, opcode); \
    HookWrapper3(void, glStencilFunc, GLenum, func, GLint, ref, GLuint, mask); \
    HookWrapper3(void, glStencilOp, GLenum, fail, GLenum, zfail, GLenum, zpass); \
    HookWrapper1(void, glDepthFunc, GLenum, func); \
    HookWrapper2(void, glPixelStoref, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glPixelStorei, GLenum, pname, GLint, param); \
    HookWrapper1(void, glReadBuffer, GLenum, src); \
    HookWrapper7(void, glReadPixels, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, void *, pixels); \
    HookWrapper2(void, glGetBooleanv, GLenum, pname, GLboolean *, data); \
    HookWrapper2(void, glGetDoublev, GLenum, pname, GLdouble *, data); \
    HookWrapper0(GLenum, glGetError); \
    HookWrapper2(void, glGetFloatv, GLenum, pname, GLfloat *, data); \
    HookWrapper2(void, glGetIntegerv, GLenum, pname, GLint *, data); \
    HookWrapper1(const GLubyte *, glGetString, GLenum, name); \
    HookWrapper5(void, glGetTexImage, GLenum, target, GLint, level, GLenum, format, GLenum, type, void *, pixels); \
    HookWrapper3(void, glGetTexParameterfv, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glGetTexParameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glGetTexLevelParameterfv, GLenum, target, GLint, level, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glGetTexLevelParameteriv, GLenum, target, GLint, level, GLenum, pname, GLint *, params); \
    HookWrapper1(GLboolean, glIsEnabled, GLenum, cap); \
    HookWrapper2(void, glDepthRange, GLdouble, near, GLdouble, far); \
    HookWrapper4(void, glViewport, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glDrawArrays, GLenum, mode, GLint, first, GLsizei, count); \
    HookWrapper4(void, glDrawElements, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices); \
    HookWrapper2(void, glGetPointerv, GLenum, pname, void **, params); \
    HookWrapper2(void, glPolygonOffset, GLfloat, factor, GLfloat, units); \
    HookWrapper7(void, glCopyTexImage1D, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLint, border); \
    HookWrapper8(void, glCopyTexImage2D, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLint, border); \
    HookWrapper6(void, glCopyTexSubImage1D, GLenum, target, GLint, level, GLint, xoffset, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper8(void, glCopyTexSubImage2D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper7(void, glTexSubImage1D, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper9(void, glTexSubImage2D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper2(void, glBindTexture, GLenum, target, GLuint, texture); \
    HookWrapper2(void, glDeleteTextures, GLsizei, n, const GLuint *, textures); \
    HookWrapper2(void, glGenTextures, GLsizei, n, GLuint *, textures); \
    HookWrapper1(GLboolean, glIsTexture, GLuint, texture); \



// gl extensions
#define DefineGLExtensionHooks() \
    HookWrapper6(void, glDrawRangeElements, GLenum, mode, GLuint, start, GLuint, end, GLsizei, count, GLenum, type, const void *, indices); \
    HookWrapper10(void, glTexImage3D, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper11(void, glTexSubImage3D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper9(void, glCopyTexSubImage3D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper1(void, glActiveTexture, GLenum, texture); \
    HookWrapper2(void, glSampleCoverage, GLfloat, value, GLboolean, invert); \
    HookWrapper9(void, glCompressedTexImage3D, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLsizei, imageSize, const void *, data); \
    HookWrapper8(void, glCompressedTexImage2D, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLsizei, imageSize, const void *, data); \
    HookWrapper7(void, glCompressedTexImage1D, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLint, border, GLsizei, imageSize, const void *, data); \
    HookWrapper11(void, glCompressedTexSubImage3D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLsizei, imageSize, const void *, data); \
    HookWrapper9(void, glCompressedTexSubImage2D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLsizei, imageSize, const void *, data); \
    HookWrapper7(void, glCompressedTexSubImage1D, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLsizei, imageSize, const void *, data); \
    HookWrapper3(void, glGetCompressedTexImage, GLenum, target, GLint, level, void *, img); \
    HookWrapper4(void, glBlendFuncSeparate, GLenum, sfactorRGB, GLenum, dfactorRGB, GLenum, sfactorAlpha, GLenum, dfactorAlpha); \
    HookWrapper4(void, glMultiDrawArrays, GLenum, mode, const GLint *, first, const GLsizei *, count, GLsizei, drawcount); \
    HookWrapper5(void, glMultiDrawElements, GLenum, mode, const GLsizei *, count, GLenum, type, const void *const*, indices, GLsizei, drawcount); \
    HookWrapper2(void, glPointParameterf, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glPointParameterfv, GLenum, pname, const GLfloat *, params); \
    HookWrapper2(void, glPointParameteri, GLenum, pname, GLint, param); \
    HookWrapper2(void, glPointParameteriv, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glBlendColor, GLfloat, red, GLfloat, green, GLfloat, blue, GLfloat, alpha); \
    HookWrapper1(void, glBlendEquation, GLenum, mode); \
    HookWrapper2(void, glGenQueries, GLsizei, n, GLuint *, ids); \
    HookWrapper2(void, glDeleteQueries, GLsizei, n, const GLuint *, ids); \
    HookWrapper1(GLboolean, glIsQuery, GLuint, id); \
    HookWrapper2(void, glBeginQuery, GLenum, target, GLuint, id); \
    HookWrapper1(void, glEndQuery, GLenum, target); \
    HookWrapper3(void, glGetQueryiv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetQueryObjectiv, GLuint, id, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetQueryObjectuiv, GLuint, id, GLenum, pname, GLuint *, params); \
    HookWrapper2(void, glBindBuffer, GLenum, target, GLuint, buffer); \
    HookWrapper2(void, glDeleteBuffers, GLsizei, n, const GLuint *, buffers); \
    HookWrapper2(void, glGenBuffers, GLsizei, n, GLuint *, buffers); \
    HookWrapper1(GLboolean, glIsBuffer, GLuint, buffer); \
    HookWrapper4(void, glBufferData, GLenum, target, GLsizeiptr, size, const void *, data, GLenum, usage); \
    HookWrapper4(void, glBufferSubData, GLenum, target, GLintptr, offset, GLsizeiptr, size, const void *, data); \
    HookWrapper4(void, glGetBufferSubData, GLenum, target, GLintptr, offset, GLsizeiptr, size, void *, data); \
    HookWrapper2(void *, glMapBuffer, GLenum, target, GLenum, access); \
    HookWrapper1(GLboolean, glUnmapBuffer, GLenum, target); \
    HookWrapper3(void, glGetBufferParameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetBufferPointerv, GLenum, target, GLenum, pname, void **, params); \
    HookWrapper2(void, glBlendEquationSeparate, GLenum, modeRGB, GLenum, modeAlpha); \
    HookWrapper2(void, glDrawBuffers, GLsizei, n, const GLenum *, bufs); \
    HookWrapper4(void, glStencilOpSeparate, GLenum, face, GLenum, sfail, GLenum, dpfail, GLenum, dppass); \
    HookWrapper4(void, glStencilFuncSeparate, GLenum, face, GLenum, func, GLint, ref, GLuint, mask); \
    HookWrapper2(void, glStencilMaskSeparate, GLenum, face, GLuint, mask); \
    HookWrapper2(void, glAttachShader, GLuint, program, GLuint, shader); \
    HookWrapper3(void, glBindAttribLocation, GLuint, program, GLuint, index, const GLchar *, name); \
    HookWrapper1(void, glCompileShader, GLuint, shader); \
    HookWrapper0(GLuint, glCreateProgram); \
    HookWrapper1(GLuint, glCreateShader, GLenum, type); \
    HookWrapper1(void, glDeleteProgram, GLuint, program); \
    HookWrapper1(void, glDeleteShader, GLuint, shader); \
    HookWrapper2(void, glDetachShader, GLuint, program, GLuint, shader); \
    HookWrapper1(void, glDisableVertexAttribArray, GLuint, index); \
    HookWrapper1(void, glEnableVertexAttribArray, GLuint, index); \
    HookWrapper7(void, glGetActiveAttrib, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLint *, size, GLenum *, type, GLchar *, name); \
    HookWrapper7(void, glGetActiveUniform, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLint *, size, GLenum *, type, GLchar *, name); \
    HookWrapper4(void, glGetAttachedShaders, GLuint, program, GLsizei, maxCount, GLsizei *, count, GLuint *, shaders); \
    HookWrapper2(GLint, glGetAttribLocation, GLuint, program, const GLchar *, name); \
    HookWrapper3(void, glGetProgramiv, GLuint, program, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glGetProgramInfoLog, GLuint, program, GLsizei, bufSize, GLsizei *, length, GLchar *, infoLog); \
    HookWrapper3(void, glGetShaderiv, GLuint, shader, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glGetShaderInfoLog, GLuint, shader, GLsizei, bufSize, GLsizei *, length, GLchar *, infoLog); \
    HookWrapper4(void, glGetShaderSource, GLuint, shader, GLsizei, bufSize, GLsizei *, length, GLchar *, source); \
    HookWrapper2(GLint, glGetUniformLocation, GLuint, program, const GLchar *, name); \
    HookWrapper3(void, glGetUniformfv, GLuint, program, GLint, location, GLfloat *, params); \
    HookWrapper3(void, glGetUniformiv, GLuint, program, GLint, location, GLint *, params); \
    HookWrapper3(void, glGetVertexAttribdv, GLuint, index, GLenum, pname, GLdouble *, params); \
    HookWrapper3(void, glGetVertexAttribfv, GLuint, index, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glGetVertexAttribiv, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetVertexAttribPointerv, GLuint, index, GLenum, pname, void **, pointer); \
    HookWrapper1(GLboolean, glIsProgram, GLuint, program); \
    HookWrapper1(GLboolean, glIsShader, GLuint, shader); \
    HookWrapper1(void, glLinkProgram, GLuint, program); \
    HookWrapper4(void, glShaderSource, GLuint, shader, GLsizei, count, const GLchar *const*, string, const GLint *, length); \
    HookWrapper1(void, glUseProgram, GLuint, program); \
    HookWrapper2(void,   glUniform1f, GLint, location, GLfloat, v0); \
    HookWrapper3(void,   glUniform2f, GLint, location, GLfloat, v0, GLfloat, v1); \
    HookWrapper4(void,   glUniform3f, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2); \
    HookWrapper5(void,   glUniform4f, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2, GLfloat, v3); \
    HookWrapper2(void,   glUniform1i, GLint, location, GLint, v0); \
    HookWrapper3(void,   glUniform2i, GLint, location, GLint, v0, GLint, v1); \
    HookWrapper4(void,   glUniform3i, GLint, location, GLint, v0, GLint, v1, GLint, v2); \
    HookWrapper5(void,   glUniform4i, GLint, location, GLint, v0, GLint, v1, GLint, v2, GLint, v3); \
    HookWrapper3(void,  glUniform1fv, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void,  glUniform2fv, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void,  glUniform3fv, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void,  glUniform4fv, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void,  glUniform1iv, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void,  glUniform2iv, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void,  glUniform3iv, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void,  glUniform4iv, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper4(void,   glUniformMatrix2fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void,   glUniformMatrix3fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void,   glUniformMatrix4fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper1(void, glValidateProgram, GLuint, program); \
    HookWrapper2(void, glVertexAttrib1d, GLuint, index, GLdouble, x); \
    HookWrapper2(void, glVertexAttrib1dv, GLuint, index, const GLdouble *, v); \
    HookWrapper2(void, glVertexAttrib1f, GLuint, index, GLfloat, x); \
    HookWrapper2(void, glVertexAttrib1fv, GLuint, index, const GLfloat *, v); \
    HookWrapper2(void, glVertexAttrib1s, GLuint, index, GLshort, x); \
    HookWrapper2(void, glVertexAttrib1sv, GLuint, index, const GLshort *, v); \
    HookWrapper3(void, glVertexAttrib2d, GLuint, index, GLdouble, x, GLdouble, y); \
    HookWrapper2(void, glVertexAttrib2dv, GLuint, index, const GLdouble *, v); \
    HookWrapper3(void, glVertexAttrib2f, GLuint, index, GLfloat, x, GLfloat, y); \
    HookWrapper2(void, glVertexAttrib2fv, GLuint, index, const GLfloat *, v); \
    HookWrapper3(void, glVertexAttrib2s, GLuint, index, GLshort, x, GLshort, y); \
    HookWrapper2(void, glVertexAttrib2sv, GLuint, index, const GLshort *, v); \
    HookWrapper4(void, glVertexAttrib3d, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper2(void, glVertexAttrib3dv, GLuint, index, const GLdouble *, v); \
    HookWrapper4(void, glVertexAttrib3f, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glVertexAttrib3fv, GLuint, index, const GLfloat *, v); \
    HookWrapper4(void, glVertexAttrib3s, GLuint, index, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper2(void, glVertexAttrib3sv, GLuint, index, const GLshort *, v); \
    HookWrapper2(void, glVertexAttrib4Nbv, GLuint, index, const GLbyte *, v); \
    HookWrapper2(void, glVertexAttrib4Niv, GLuint, index, const GLint *, v); \
    HookWrapper2(void, glVertexAttrib4Nsv, GLuint, index, const GLshort *, v); \
    HookWrapper5(void, glVertexAttrib4Nub, GLuint, index, GLubyte, x, GLubyte, y, GLubyte, z, GLubyte, w); \
    HookWrapper2(void, glVertexAttrib4Nubv, GLuint, index, const GLubyte *, v); \
    HookWrapper2(void, glVertexAttrib4Nuiv, GLuint, index, const GLuint *, v); \
    HookWrapper2(void, glVertexAttrib4Nusv, GLuint, index, const GLushort *, v); \
    HookWrapper2(void, glVertexAttrib4bv, GLuint, index, const GLbyte *, v); \
    HookWrapper5(void, glVertexAttrib4d, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper2(void, glVertexAttrib4dv, GLuint, index, const GLdouble *, v); \
    HookWrapper5(void, glVertexAttrib4f, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper2(void, glVertexAttrib4fv, GLuint, index, const GLfloat *, v); \
    HookWrapper2(void, glVertexAttrib4iv, GLuint, index, const GLint *, v); \
    HookWrapper5(void, glVertexAttrib4s, GLuint, index, GLshort, x, GLshort, y, GLshort, z, GLshort, w); \
    HookWrapper2(void, glVertexAttrib4sv, GLuint, index, const GLshort *, v); \
    HookWrapper2(void, glVertexAttrib4ubv, GLuint, index, const GLubyte *, v); \
    HookWrapper2(void, glVertexAttrib4uiv, GLuint, index, const GLuint *, v); \
    HookWrapper2(void, glVertexAttrib4usv, GLuint, index, const GLushort *, v); \
    HookWrapper6(void, glVertexAttribPointer, GLuint, index, GLint, size, GLenum, type, GLboolean, normalized, GLsizei, stride, const void *, pointer); \
    HookWrapper4(void, glUniformMatrix2x3fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, glUniformMatrix3x2fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, glUniformMatrix2x4fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, glUniformMatrix4x2fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, glUniformMatrix3x4fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, glUniformMatrix4x3fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glColorMaski, GLuint, index, GLboolean, r, GLboolean, g, GLboolean, b, GLboolean, a); \
    HookWrapper3(void, glGetBooleani_v, GLenum, target, GLuint, index, GLboolean *, data); \
    HookWrapper3(void, glGetIntegeri_v, GLenum, target, GLuint, index, GLint *, data); \
    HookWrapper2(void, glEnablei, GLenum, target, GLuint, index); \
    HookWrapper2(void, glDisablei, GLenum, target, GLuint, index); \
    HookWrapper2(GLboolean, glIsEnabledi, GLenum, target, GLuint, index); \
    HookWrapper1(void, glBeginTransformFeedback, GLenum, primitiveMode); \
    HookWrapper0(void, glEndTransformFeedback); \
    HookWrapper5(void, glBindBufferRange, GLenum, target, GLuint, index, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \
    HookWrapper3(void, glBindBufferBase, GLenum, target, GLuint, index, GLuint, buffer); \
    HookWrapper4(void, glTransformFeedbackVaryings, GLuint, program, GLsizei, count, const GLchar *const*, varyings, GLenum, bufferMode); \
    HookWrapper7(void, glGetTransformFeedbackVarying, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLsizei *, size, GLenum *, type, GLchar *, name); \
    HookWrapper2(void, glClampColor, GLenum, target, GLenum, clamp); \
    HookWrapper2(void, glBeginConditionalRender, GLuint, id, GLenum, mode); \
    HookWrapper0(void, glEndConditionalRender); \
    HookWrapper5(void, glVertexAttribIPointer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(void, glGetVertexAttribIiv, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetVertexAttribIuiv, GLuint, index, GLenum, pname, GLuint *, params); \
    HookWrapper2(void, glVertexAttribI1i, GLuint, index, GLint, x); \
    HookWrapper3(void, glVertexAttribI2i, GLuint, index, GLint, x, GLint, y); \
    HookWrapper4(void, glVertexAttribI3i, GLuint, index, GLint, x, GLint, y, GLint, z); \
    HookWrapper5(void, glVertexAttribI4i, GLuint, index, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper2(void, glVertexAttribI1ui, GLuint, index, GLuint, x); \
    HookWrapper3(void, glVertexAttribI2ui, GLuint, index, GLuint, x, GLuint, y); \
    HookWrapper4(void, glVertexAttribI3ui, GLuint, index, GLuint, x, GLuint, y, GLuint, z); \
    HookWrapper5(void, glVertexAttribI4ui, GLuint, index, GLuint, x, GLuint, y, GLuint, z, GLuint, w); \
    HookWrapper2(void, glVertexAttribI1iv, GLuint, index, const GLint *, v); \
    HookWrapper2(void, glVertexAttribI2iv, GLuint, index, const GLint *, v); \
    HookWrapper2(void, glVertexAttribI3iv, GLuint, index, const GLint *, v); \
    HookWrapper2(void, glVertexAttribI4iv, GLuint, index, const GLint *, v); \
    HookWrapper2(void, glVertexAttribI1uiv, GLuint, index, const GLuint *, v); \
    HookWrapper2(void, glVertexAttribI2uiv, GLuint, index, const GLuint *, v); \
    HookWrapper2(void, glVertexAttribI3uiv, GLuint, index, const GLuint *, v); \
    HookWrapper2(void, glVertexAttribI4uiv, GLuint, index, const GLuint *, v); \
    HookWrapper2(void, glVertexAttribI4bv, GLuint, index, const GLbyte *, v); \
    HookWrapper2(void, glVertexAttribI4sv, GLuint, index, const GLshort *, v); \
    HookWrapper2(void, glVertexAttribI4ubv, GLuint, index, const GLubyte *, v); \
    HookWrapper2(void, glVertexAttribI4usv, GLuint, index, const GLushort *, v); \
    HookWrapper3(void, glGetUniformuiv, GLuint, program, GLint, location, GLuint *, params); \
    HookWrapper3(void, glBindFragDataLocation, GLuint, program, GLuint, color, const GLchar *, name); \
    HookWrapper2(GLint, glGetFragDataLocation, GLuint, program, const GLchar *, name); \
    HookWrapper2(void,  glUniform1ui, GLint, location, GLuint, v0); \
    HookWrapper3(void,  glUniform2ui, GLint, location, GLuint, v0, GLuint, v1); \
    HookWrapper4(void,  glUniform3ui, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2); \
    HookWrapper5(void,  glUniform4ui, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2, GLuint, v3); \
    HookWrapper3(void, glUniform1uiv, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper3(void, glUniform2uiv, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper3(void, glUniform3uiv, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper3(void, glUniform4uiv, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper3(void, glTexParameterIiv, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glTexParameterIuiv, GLenum, target, GLenum, pname, const GLuint *, params); \
    HookWrapper3(void, glGetTexParameterIiv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetTexParameterIuiv, GLenum, target, GLenum, pname, GLuint *, params); \
    HookWrapper3(void, glClearBufferiv, GLenum, buffer, GLint, drawbuffer, const GLint *, value); \
    HookWrapper3(void, glClearBufferuiv, GLenum, buffer, GLint, drawbuffer, const GLuint *, value); \
    HookWrapper3(void, glClearBufferfv, GLenum, buffer, GLint, drawbuffer, const GLfloat *, value); \
    HookWrapper4(void, glClearBufferfi, GLenum, buffer, GLint, drawbuffer, GLfloat, depth, GLint, stencil); \
    HookWrapper2(const GLubyte *, glGetStringi, GLenum, name, GLuint, index); \
    HookWrapper1(GLboolean, glIsRenderbuffer, GLuint, renderbuffer); \
    HookWrapper2(void, glBindRenderbuffer, GLenum, target, GLuint, renderbuffer); \
    HookWrapper2(void, glDeleteRenderbuffers, GLsizei, n, const GLuint *, renderbuffers); \
    HookWrapper2(void, glGenRenderbuffers, GLsizei, n, GLuint *, renderbuffers); \
    HookWrapper4(void, glRenderbufferStorage, GLenum, target, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glGetRenderbufferParameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper1(GLboolean, glIsFramebuffer, GLuint, framebuffer); \
    HookWrapper2(void, glBindFramebuffer, GLenum, target, GLuint, framebuffer); \
    HookWrapper2(void, glDeleteFramebuffers, GLsizei, n, const GLuint *, framebuffers); \
    HookWrapper2(void, glGenFramebuffers, GLsizei, n, GLuint *, framebuffers); \
    HookWrapper1(GLenum, glCheckFramebufferStatus, GLenum, target); \
    HookWrapper5(void, glFramebufferTexture1D, GLenum, target, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level); \
    HookWrapper5(void, glFramebufferTexture2D, GLenum, target, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level); \
    HookWrapper6(void, glFramebufferTexture3D, GLenum, target, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level, GLint, zoffset); \
    HookWrapper4(void, glFramebufferRenderbuffer, GLenum, target, GLenum, attachment, GLenum, renderbuffertarget, GLuint, renderbuffer); \
    HookWrapper4(void, glGetFramebufferAttachmentParameteriv, GLenum, target, GLenum, attachment, GLenum, pname, GLint *, params); \
    HookWrapper1(void, glGenerateMipmap, GLenum, target); \
    HookWrapper10(void, glBlitFramebuffer, GLint, srcX0, GLint, srcY0, GLint, srcX1, GLint, srcY1, GLint, dstX0, GLint, dstY0, GLint, dstX1, GLint, dstY1, GLbitfield, mask, GLenum, filter); \
    HookWrapper5(void, glRenderbufferStorageMultisample, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper5(void, glFramebufferTextureLayer, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLint, layer); \
    HookWrapper4(void *, glMapBufferRange, GLenum, target, GLintptr, offset, GLsizeiptr, length, GLbitfield, access); \
    HookWrapper3(void, glFlushMappedBufferRange, GLenum, target, GLintptr, offset, GLsizeiptr, length); \
    HookWrapper1(void, glBindVertexArray, GLuint, array); \
    HookWrapper2(void, glDeleteVertexArrays, GLsizei, n, const GLuint *, arrays); \
    HookWrapper2(void, glGenVertexArrays, GLsizei, n, GLuint *, arrays); \
    HookWrapper1(GLboolean, glIsVertexArray, GLuint, array); \
    HookWrapper4(void, glDrawArraysInstanced, GLenum, mode, GLint, first, GLsizei, count, GLsizei, instancecount); \
    HookWrapper5(void, glDrawElementsInstanced, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount); \
    HookWrapper3(void, glTexBuffer, GLenum, target, GLenum, internalformat, GLuint, buffer); \
    HookWrapper1(void, glPrimitiveRestartIndex, GLuint, index); \
    HookWrapper5(void, glCopyBufferSubData, GLenum, readTarget, GLenum, writeTarget, GLintptr, readOffset, GLintptr, writeOffset, GLsizeiptr, size); \
    HookWrapper4(void, glGetUniformIndices, GLuint, program, GLsizei, uniformCount, const GLchar *const*, uniformNames, GLuint *, uniformIndices); \
    HookWrapper5(void, glGetActiveUniformsiv, GLuint, program, GLsizei, uniformCount, const GLuint *, uniformIndices, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glGetActiveUniformName, GLuint, program, GLuint, uniformIndex, GLsizei, bufSize, GLsizei *, length, GLchar *, uniformName); \
    HookWrapper2(GLuint, glGetUniformBlockIndex, GLuint, program, const GLchar *, uniformBlockName); \
    HookWrapper4(void, glGetActiveUniformBlockiv, GLuint, program, GLuint, uniformBlockIndex, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glGetActiveUniformBlockName, GLuint, program, GLuint, uniformBlockIndex, GLsizei, bufSize, GLsizei *, length, GLchar *, uniformBlockName); \
    HookWrapper3(void, glUniformBlockBinding, GLuint, program, GLuint, uniformBlockIndex, GLuint, uniformBlockBinding); \
    HookWrapper5(void, glDrawElementsBaseVertex, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLint, basevertex); \
    HookWrapper7(void, glDrawRangeElementsBaseVertex, GLenum, mode, GLuint, start, GLuint, end, GLsizei, count, GLenum, type, const void *, indices, GLint, basevertex); \
    HookWrapper6(void, glDrawElementsInstancedBaseVertex, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount, GLint, basevertex); \
    HookWrapper6(void, glMultiDrawElementsBaseVertex, GLenum, mode, const GLsizei *, count, GLenum, type, const void *const*, indices, GLsizei, drawcount, const GLint *, basevertex); \
    HookWrapper1(void, glProvokingVertex, GLenum, mode); \
    HookWrapper2(GLsync, glFenceSync, GLenum, condition, GLbitfield, flags); \
    HookWrapper1(GLboolean, glIsSync, GLsync, sync); \
    HookWrapper1(void, glDeleteSync, GLsync, sync); \
    HookWrapper3(GLenum, glClientWaitSync, GLsync, sync, GLbitfield, flags, GLuint64, timeout); \
    HookWrapper3(void, glWaitSync, GLsync, sync, GLbitfield, flags, GLuint64, timeout); \
    HookWrapper2(void, glGetInteger64v, GLenum, pname, GLint64 *, data); \
    HookWrapper5(void, glGetSynciv, GLsync, sync, GLenum, pname, GLsizei, bufSize, GLsizei *, length, GLint *, values); \
    HookWrapper3(void, glGetInteger64i_v, GLenum, target, GLuint, index, GLint64 *, data); \
    HookWrapper3(void, glGetBufferParameteri64v, GLenum, target, GLenum, pname, GLint64 *, params); \
    HookWrapper4(void, glFramebufferTexture, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level); \
    HookWrapper6(void, glTexImage2DMultisample, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLboolean, fixedsamplelocations); \
    HookWrapper7(void, glTexImage3DMultisample, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedsamplelocations); \
    HookWrapper3(void, glGetMultisamplefv, GLenum, pname, GLuint, index, GLfloat *, val); \
    HookWrapper2(void, glSampleMaski, GLuint, maskNumber, GLbitfield, mask); \
    HookWrapper4(void, glBindFragDataLocationIndexed, GLuint, program, GLuint, colorNumber, GLuint, index, const GLchar *, name); \
    HookWrapper2(GLint, glGetFragDataIndex, GLuint, program, const GLchar *, name); \
    HookWrapper2(void, glGenSamplers, GLsizei, count, GLuint *, samplers); \
    HookWrapper2(void, glDeleteSamplers, GLsizei, count, const GLuint *, samplers); \
    HookWrapper1(GLboolean, glIsSampler, GLuint, sampler); \
    HookWrapper2(void, glBindSampler, GLuint, unit, GLuint, sampler); \
    HookWrapper3(void, glSamplerParameteri, GLuint, sampler, GLenum, pname, GLint, param); \
    HookWrapper3(void, glSamplerParameteriv, GLuint, sampler, GLenum, pname, const GLint *, param); \
    HookWrapper3(void, glSamplerParameterf, GLuint, sampler, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glSamplerParameterfv, GLuint, sampler, GLenum, pname, const GLfloat *, param); \
    HookWrapper3(void, glSamplerParameterIiv, GLuint, sampler, GLenum, pname, const GLint *, param); \
    HookWrapper3(void, glSamplerParameterIuiv, GLuint, sampler, GLenum, pname, const GLuint *, param); \
    HookWrapper3(void, glGetSamplerParameteriv, GLuint, sampler, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetSamplerParameterIiv, GLuint, sampler, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetSamplerParameterfv, GLuint, sampler, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glGetSamplerParameterIuiv, GLuint, sampler, GLenum, pname, GLuint *, params); \
    HookWrapper2(void, glQueryCounter, GLuint, id, GLenum, target); \
    HookWrapper3(void, glGetQueryObjecti64v, GLuint, id, GLenum, pname, GLint64 *, params); \
    HookWrapper3(void, glGetQueryObjectui64v, GLuint, id, GLenum, pname, GLuint64 *, params); \
    HookWrapper2(void, glVertexAttribDivisor, GLuint, index, GLuint, divisor); \
    HookWrapper4(void, glVertexAttribP1ui, GLuint, index, GLenum, type, GLboolean, normalized, GLuint, value); \
    HookWrapper4(void, glVertexAttribP1uiv, GLuint, index, GLenum, type, GLboolean, normalized, const GLuint *, value); \
    HookWrapper4(void, glVertexAttribP2ui, GLuint, index, GLenum, type, GLboolean, normalized, GLuint, value); \
    HookWrapper4(void, glVertexAttribP2uiv, GLuint, index, GLenum, type, GLboolean, normalized, const GLuint *, value); \
    HookWrapper4(void, glVertexAttribP3ui, GLuint, index, GLenum, type, GLboolean, normalized, GLuint, value); \
    HookWrapper4(void, glVertexAttribP3uiv, GLuint, index, GLenum, type, GLboolean, normalized, const GLuint *, value); \
    HookWrapper4(void, glVertexAttribP4ui, GLuint, index, GLenum, type, GLboolean, normalized, GLuint, value); \
    HookWrapper4(void, glVertexAttribP4uiv, GLuint, index, GLenum, type, GLboolean, normalized, const GLuint *, value); \
    HookWrapper1(void, glMinSampleShading, GLfloat, value); \
    HookWrapper2(void, glBlendEquationi, GLuint, buf, GLenum, mode); \
    HookWrapper3(void, glBlendEquationSeparatei, GLuint, buf, GLenum, modeRGB, GLenum, modeAlpha); \
    HookWrapper3(void, glBlendFunci, GLuint, buf, GLenum, src, GLenum, dst); \
    HookWrapper5(void, glBlendFuncSeparatei, GLuint, buf, GLenum, srcRGB, GLenum, dstRGB, GLenum, srcAlpha, GLenum, dstAlpha); \
    HookWrapper2(void, glDrawArraysIndirect, GLenum, mode, const void *, indirect); \
    HookWrapper3(void, glDrawElementsIndirect, GLenum, mode, GLenum, type, const void *, indirect); \
    HookWrapper2(void,   glUniform1d, GLint, location, GLdouble, x); \
    HookWrapper3(void,   glUniform2d, GLint, location, GLdouble, x, GLdouble, y); \
    HookWrapper4(void,   glUniform3d, GLint, location, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper5(void,   glUniform4d, GLint, location, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper3(void,  glUniform1dv, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper3(void,  glUniform2dv, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper3(void,  glUniform3dv, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper3(void,  glUniform4dv, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper4(void,   glUniformMatrix2dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void,   glUniformMatrix3dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void,   glUniformMatrix4dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix2x3dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix2x4dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix3x2dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix3x4dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix4x2dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper4(void, glUniformMatrix4x3dv, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper3(void, glGetUniformdv, GLuint, program, GLint, location, GLdouble *, params); \
    HookWrapper3(GLint, glGetSubroutineUniformLocation, GLuint, program, GLenum, shadertype, const GLchar *, name); \
    HookWrapper3(GLuint, glGetSubroutineIndex, GLuint, program, GLenum, shadertype, const GLchar *, name); \
    HookWrapper5(void, glGetActiveSubroutineUniformiv, GLuint, program, GLenum, shadertype, GLuint, index, GLenum, pname, GLint *, values); \
    HookWrapper6(void, glGetActiveSubroutineUniformName, GLuint, program, GLenum, shadertype, GLuint, index, GLsizei, bufsize, GLsizei *, length, GLchar *, name); \
    HookWrapper6(void, glGetActiveSubroutineName, GLuint, program, GLenum, shadertype, GLuint, index, GLsizei, bufsize, GLsizei *, length, GLchar *, name); \
    HookWrapper3(void, glUniformSubroutinesuiv, GLenum, shadertype, GLsizei, count, const GLuint *, indices); \
    HookWrapper3(void, glGetUniformSubroutineuiv, GLenum, shadertype, GLint, location, GLuint *, params); \
    HookWrapper4(void, glGetProgramStageiv, GLuint, program, GLenum, shadertype, GLenum, pname, GLint *, values); \
    HookWrapper2(void, glPatchParameteri, GLenum, pname, GLint, value); \
    HookWrapper2(void, glPatchParameterfv, GLenum, pname, const GLfloat *, values); \
    HookWrapper2(void, glBindTransformFeedback, GLenum, target, GLuint, id); \
    HookWrapper2(void, glDeleteTransformFeedbacks, GLsizei, n, const GLuint *, ids); \
    HookWrapper2(void, glGenTransformFeedbacks, GLsizei, n, GLuint *, ids); \
    HookWrapper1(GLboolean, glIsTransformFeedback, GLuint, id); \
    HookWrapper0(void, glPauseTransformFeedback); \
    HookWrapper0(void, glResumeTransformFeedback); \
    HookWrapper2(void, glDrawTransformFeedback, GLenum, mode, GLuint, id); \
    HookWrapper3(void, glDrawTransformFeedbackStream, GLenum, mode, GLuint, id, GLuint, stream); \
    HookWrapper3(void, glBeginQueryIndexed, GLenum, target, GLuint, index, GLuint, id); \
    HookWrapper2(void, glEndQueryIndexed, GLenum, target, GLuint, index); \
    HookWrapper4(void, glGetQueryIndexediv, GLenum, target, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper0(void, glReleaseShaderCompiler); \
    HookWrapper5(void, glShaderBinary, GLsizei, count, const GLuint *, shaders, GLenum, binaryformat, const void *, binary, GLsizei, length); \
    HookWrapper4(void, glGetShaderPrecisionFormat, GLenum, shadertype, GLenum, precisiontype, GLint *, range, GLint *, precision); \
    HookWrapper2(void, glDepthRangef, GLfloat, n, GLfloat, f); \
    HookWrapper1(void, glClearDepthf, GLfloat, d); \
    HookWrapper5(void, glGetProgramBinary, GLuint, program, GLsizei, bufSize, GLsizei *, length, GLenum *, binaryFormat, void *, binary); \
    HookWrapper4(void, glProgramBinary, GLuint, program, GLenum, binaryFormat, const void *, binary, GLsizei, length); \
    HookWrapper3(void, glProgramParameteri, GLuint, program, GLenum, pname, GLint, value); \
    HookWrapper3(void, glUseProgramStages, GLuint, pipeline, GLbitfield, stages, GLuint, program); \
    HookWrapper2(void, glActiveShaderProgram, GLuint, pipeline, GLuint, program); \
    HookWrapper3(GLuint, glCreateShaderProgramv, GLenum, type, GLsizei, count, const GLchar *const*, strings); \
    HookWrapper1(void, glBindProgramPipeline, GLuint, pipeline); \
    HookWrapper2(void, glDeleteProgramPipelines, GLsizei, n, const GLuint *, pipelines); \
    HookWrapper2(void, glGenProgramPipelines, GLsizei, n, GLuint *, pipelines); \
    HookWrapper1(GLboolean, glIsProgramPipeline, GLuint, pipeline); \
    HookWrapper3(void, glGetProgramPipelineiv, GLuint, pipeline, GLenum, pname, GLint *, params); \
    HookWrapper3(void,   glProgramUniform1i, GLuint, program, GLint, location, GLint, v0); \
    HookWrapper4(void,  glProgramUniform1iv, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void,   glProgramUniform1f, GLuint, program, GLint, location, GLfloat, v0); \
    HookWrapper4(void,  glProgramUniform1fv, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void,   glProgramUniform1d, GLuint, program, GLint, location, GLdouble, v0); \
    HookWrapper4(void,  glProgramUniform1dv, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper3(void,  glProgramUniform1ui, GLuint, program, GLint, location, GLuint, v0); \
    HookWrapper4(void, glProgramUniform1uiv, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper4(void,   glProgramUniform2i, GLuint, program, GLint, location, GLint, v0, GLint, v1); \
    HookWrapper4(void,  glProgramUniform2iv, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper4(void,   glProgramUniform2f, GLuint, program, GLint, location, GLfloat, v0, GLfloat, v1); \
    HookWrapper4(void,  glProgramUniform2fv, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper4(void,   glProgramUniform2d, GLuint, program, GLint, location, GLdouble, v0, GLdouble, v1); \
    HookWrapper4(void,  glProgramUniform2dv, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper4(void,  glProgramUniform2ui, GLuint, program, GLint, location, GLuint, v0, GLuint, v1); \
    HookWrapper4(void, glProgramUniform2uiv, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper5(void,   glProgramUniform3i, GLuint, program, GLint, location, GLint, v0, GLint, v1, GLint, v2); \
    HookWrapper4(void,  glProgramUniform3iv, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper5(void,   glProgramUniform3f, GLuint, program, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2); \
    HookWrapper4(void,  glProgramUniform3fv, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper5(void,   glProgramUniform3d, GLuint, program, GLint, location, GLdouble, v0, GLdouble, v1, GLdouble, v2); \
    HookWrapper4(void,  glProgramUniform3dv, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper5(void,  glProgramUniform3ui, GLuint, program, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2); \
    HookWrapper4(void, glProgramUniform3uiv, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper6(void,   glProgramUniform4i, GLuint, program, GLint, location, GLint, v0, GLint, v1, GLint, v2, GLint, v3); \
    HookWrapper4(void,  glProgramUniform4iv, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper6(void,   glProgramUniform4f, GLuint, program, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2, GLfloat, v3); \
    HookWrapper4(void,  glProgramUniform4fv, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper6(void,   glProgramUniform4d, GLuint, program, GLint, location, GLdouble, v0, GLdouble, v1, GLdouble, v2, GLdouble, v3); \
    HookWrapper4(void,  glProgramUniform4dv, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper6(void,  glProgramUniform4ui, GLuint, program, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2, GLuint, v3); \
    HookWrapper4(void, glProgramUniform4uiv, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper5(void,   glProgramUniformMatrix2fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void,   glProgramUniformMatrix3fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void,   glProgramUniformMatrix4fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void,   glProgramUniformMatrix2dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void,   glProgramUniformMatrix3dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void,   glProgramUniformMatrix4dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix2x3fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix3x2fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix2x4fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix4x2fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix3x4fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix4x3fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glProgramUniformMatrix2x3dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix3x2dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix2x4dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix4x2dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix3x4dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glProgramUniformMatrix4x3dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper1(void, glValidateProgramPipeline, GLuint, pipeline); \
    HookWrapper4(void, glGetProgramPipelineInfoLog, GLuint, pipeline, GLsizei, bufSize, GLsizei *, length, GLchar *, infoLog); \
    HookWrapper2(void, glVertexAttribL1d, GLuint, index, GLdouble, x); \
    HookWrapper3(void, glVertexAttribL2d, GLuint, index, GLdouble, x, GLdouble, y); \
    HookWrapper4(void, glVertexAttribL3d, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper5(void, glVertexAttribL4d, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper2(void, glVertexAttribL1dv, GLuint, index, const GLdouble *, v); \
    HookWrapper2(void, glVertexAttribL2dv, GLuint, index, const GLdouble *, v); \
    HookWrapper2(void, glVertexAttribL3dv, GLuint, index, const GLdouble *, v); \
    HookWrapper2(void, glVertexAttribL4dv, GLuint, index, const GLdouble *, v); \
    HookWrapper5(void, glVertexAttribLPointer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(void, glGetVertexAttribLdv, GLuint, index, GLenum, pname, GLdouble *, params); \
    HookWrapper3(void, glViewportArrayv, GLuint, first, GLsizei, count, const GLfloat *, v); \
    HookWrapper5(void, glViewportIndexedf, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, w, GLfloat, h); \
    HookWrapper2(void, glViewportIndexedfv, GLuint, index, const GLfloat *, v); \
    HookWrapper3(void, glScissorArrayv, GLuint, first, GLsizei, count, const GLint *, v); \
    HookWrapper5(void, glScissorIndexed, GLuint, index, GLint, left, GLint, bottom, GLsizei, width, GLsizei, height); \
    HookWrapper2(void, glScissorIndexedv, GLuint, index, const GLint *, v); \
    HookWrapper3(void, glDepthRangeArrayv, GLuint, first, GLsizei, count, const GLdouble *, v); \
    HookWrapper3(void, glDepthRangeIndexed, GLuint, index, GLdouble, n, GLdouble, f); \
    HookWrapper3(void, glGetFloati_v, GLenum, target, GLuint, index, GLfloat *, data); \
    HookWrapper3(void, glGetDoublei_v, GLenum, target, GLuint, index, GLdouble *, data); \
    HookWrapper5(void, glDrawArraysInstancedBaseInstance, GLenum, mode, GLint, first, GLsizei, count, GLsizei, instancecount, GLuint, baseinstance); \
    HookWrapper6(void, glDrawElementsInstancedBaseInstance, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount, GLuint, baseinstance); \
    HookWrapper7(void, glDrawElementsInstancedBaseVertexBaseInstance, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount, GLint, basevertex, GLuint, baseinstance); \
    HookWrapper5(void, glGetInternalformativ, GLenum, target, GLenum, internalformat, GLenum, pname, GLsizei, bufSize, GLint *, params); \
    HookWrapper4(void, glGetActiveAtomicCounterBufferiv, GLuint, program, GLuint, bufferIndex, GLenum, pname, GLint *, params); \
    HookWrapper7(void, glBindImageTexture, GLuint, unit, GLuint, texture, GLint, level, GLboolean, layered, GLint, layer, GLenum, access, GLenum, format); \
    HookWrapper1(void, glMemoryBarrier, GLbitfield, barriers); \
    HookWrapper4(void, glTexStorage1D, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width); \
    HookWrapper5(void, glTexStorage2D, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper6(void, glTexStorage3D, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth); \
    HookWrapper3(void, glDrawTransformFeedbackInstanced, GLenum, mode, GLuint, id, GLsizei, instancecount); \
    HookWrapper4(void, glDrawTransformFeedbackStreamInstanced, GLenum, mode, GLuint, id, GLuint, stream, GLsizei, instancecount); \
    HookWrapper5(void, glClearBufferData, GLenum, target, GLenum, internalformat, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper7(void, glClearBufferSubData, GLenum, target, GLenum, internalformat, GLintptr, offset, GLsizeiptr, size, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper3(void, glDispatchCompute, GLuint, num_groups_x, GLuint, num_groups_y, GLuint, num_groups_z); \
    HookWrapper1(void, glDispatchComputeIndirect, GLintptr, indirect); \
    HookWrapper15(void, glCopyImageSubData, GLuint, srcName, GLenum, srcTarget, GLint, srcLevel, GLint, srcX, GLint, srcY, GLint, srcZ, GLuint, dstName, GLenum, dstTarget, GLint, dstLevel, GLint, dstX, GLint, dstY, GLint, dstZ, GLsizei, srcWidth, GLsizei, srcHeight, GLsizei, srcDepth); \
    HookWrapper3(void, glFramebufferParameteri, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper3(void, glGetFramebufferParameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glGetInternalformati64v, GLenum, target, GLenum, internalformat, GLenum, pname, GLsizei, bufSize, GLint64 *, params); \
    HookWrapper8(void, glInvalidateTexSubImage, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth); \
    HookWrapper2(void, glInvalidateTexImage, GLuint, texture, GLint, level); \
    HookWrapper3(void, glInvalidateBufferSubData, GLuint, buffer, GLintptr, offset, GLsizeiptr, length); \
    HookWrapper1(void, glInvalidateBufferData, GLuint, buffer); \
    HookWrapper3(void, glInvalidateFramebuffer, GLenum, target, GLsizei, numAttachments, const GLenum *, attachments); \
    HookWrapper7(void, glInvalidateSubFramebuffer, GLenum, target, GLsizei, numAttachments, const GLenum *, attachments, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper4(void, glMultiDrawArraysIndirect, GLenum, mode, const void *, indirect, GLsizei, drawcount, GLsizei, stride); \
    HookWrapper5(void, glMultiDrawElementsIndirect, GLenum, mode, GLenum, type, const void *, indirect, GLsizei, drawcount, GLsizei, stride); \
    HookWrapper4(void, glGetProgramInterfaceiv, GLuint, program, GLenum, programInterface, GLenum, pname, GLint *, params); \
    HookWrapper3(GLuint, glGetProgramResourceIndex, GLuint, program, GLenum, programInterface, const GLchar *, name); \
    HookWrapper6(void, glGetProgramResourceName, GLuint, program, GLenum, programInterface, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLchar *, name); \
    HookWrapper8(void, glGetProgramResourceiv, GLuint, program, GLenum, programInterface, GLuint, index, GLsizei, propCount, const GLenum *, props, GLsizei, bufSize, GLsizei *, length, GLint *, params); \
    HookWrapper3(GLint, glGetProgramResourceLocation, GLuint, program, GLenum, programInterface, const GLchar *, name); \
    HookWrapper3(GLint, glGetProgramResourceLocationIndex, GLuint, program, GLenum, programInterface, const GLchar *, name); \
    HookWrapper3(void, glShaderStorageBlockBinding, GLuint, program, GLuint, storageBlockIndex, GLuint, storageBlockBinding); \
    HookWrapper5(void, glTexBufferRange, GLenum, target, GLenum, internalformat, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \
    HookWrapper6(void, glTexStorage2DMultisample, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLboolean, fixedsamplelocations); \
    HookWrapper7(void, glTexStorage3DMultisample, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedsamplelocations); \
    HookWrapper8(void, glTextureView, GLuint, texture, GLenum, target, GLuint, origtexture, GLenum, internalformat, GLuint, minlevel, GLuint, numlevels, GLuint, minlayer, GLuint, numlayers); \
    HookWrapper4(void, glBindVertexBuffer, GLuint, bindingindex, GLuint, buffer, GLintptr, offset, GLsizei, stride); \
    HookWrapper5(void, glVertexAttribFormat, GLuint, attribindex, GLint, size, GLenum, type, GLboolean, normalized, GLuint, relativeoffset); \
    HookWrapper4(void, glVertexAttribIFormat, GLuint, attribindex, GLint, size, GLenum, type, GLuint, relativeoffset); \
    HookWrapper4(void, glVertexAttribLFormat, GLuint, attribindex, GLint, size, GLenum, type, GLuint, relativeoffset); \
    HookWrapper2(void, glVertexAttribBinding, GLuint, attribindex, GLuint, bindingindex); \
    HookWrapper2(void, glVertexBindingDivisor, GLuint, bindingindex, GLuint, divisor); \
    HookWrapper6(void, glDebugMessageControl, GLenum, source, GLenum, type, GLenum, severity, GLsizei, count, const GLuint *, ids, GLboolean, enabled); \
    HookWrapper6(void, glDebugMessageInsert, GLenum, source, GLenum, type, GLuint, id, GLenum, severity, GLsizei, length, const GLchar *, buf); \
    HookWrapper2(void, glDebugMessageCallback, GLDEBUGPROC, callback, const void *, userParam); \
    HookWrapper8(GLuint, glGetDebugMessageLog, GLuint, count, GLsizei, bufSize, GLenum *, sources, GLenum *, types, GLuint *, ids, GLenum *, severities, GLsizei *, lengths, GLchar *, messageLog); \
    HookWrapper4(void, glPushDebugGroup, GLenum, source, GLuint, id, GLsizei, length, const GLchar *, message); \
    HookWrapper0(void, glPopDebugGroup); \
    HookWrapper4(void, glObjectLabel, GLenum, identifier, GLuint, name, GLsizei, length, const GLchar *, label); \
    HookWrapper5(void, glGetObjectLabel, GLenum, identifier, GLuint, name, GLsizei, bufSize, GLsizei *, length, GLchar *, label); \
    HookWrapper3(void, glObjectPtrLabel, const void *, ptr, GLsizei, length, const GLchar *, label); \
    HookWrapper4(void, glGetObjectPtrLabel, const void *, ptr, GLsizei, bufSize, GLsizei *, length, GLchar *, label); \
    HookWrapper4(void, glBufferStorage, GLenum, target, GLsizeiptr, size, const void *, data, GLbitfield, flags); \
    HookWrapper5(void, glClearTexImage, GLuint, texture, GLint, level, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper11(void, glClearTexSubImage, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper4(void, glBindBuffersBase, GLenum, target, GLuint, first, GLsizei, count, const GLuint *, buffers); \
    HookWrapper6(void, glBindBuffersRange, GLenum, target, GLuint, first, GLsizei, count, const GLuint *, buffers, const GLintptr *, offsets, const GLsizeiptr *, sizes); \
    HookWrapper3(void, glBindTextures, GLuint, first, GLsizei, count, const GLuint *, textures); \
    HookWrapper3(void, glBindSamplers, GLuint, first, GLsizei, count, const GLuint *, samplers); \
    HookWrapper3(void, glBindImageTextures, GLuint, first, GLsizei, count, const GLuint *, textures); \
    HookWrapper5(void, glBindVertexBuffers, GLuint, first, GLsizei, count, const GLuint *, buffers, const GLintptr *, offsets, const GLsizei *, strides); \
    HookWrapper2(void, glClipControl, GLenum, origin, GLenum, depth); \
    HookWrapper2(void, glCreateTransformFeedbacks, GLsizei, n, GLuint *, ids); \
    HookWrapper3(void, glTransformFeedbackBufferBase, GLuint, xfb, GLuint, index, GLuint, buffer); \
    HookWrapper5(void, glTransformFeedbackBufferRange, GLuint, xfb, GLuint, index, GLuint, buffer, GLintptr, offset, GLsizei, size); \
    HookWrapper3(void, glGetTransformFeedbackiv, GLuint, xfb, GLenum, pname, GLint *, param); \
    HookWrapper4(void, glGetTransformFeedbacki_v, GLuint, xfb, GLenum, pname, GLuint, index, GLint *, param); \
    HookWrapper4(void, glGetTransformFeedbacki64_v, GLuint, xfb, GLenum, pname, GLuint, index, GLint64 *, param); \
    HookWrapper2(void, glCreateBuffers, GLsizei, n, GLuint *, buffers); \
    HookWrapper4(void, glNamedBufferStorage, GLuint, buffer, GLsizei, size, const void *, data, GLbitfield, flags); \
    HookWrapper4(void, glNamedBufferData, GLuint, buffer, GLsizei, size, const void *, data, GLenum, usage); \
    HookWrapper4(void, glNamedBufferSubData, GLuint, buffer, GLintptr, offset, GLsizei, size, const void *, data); \
    HookWrapper5(void, glCopyNamedBufferSubData, GLuint, readBuffer, GLuint, writeBuffer, GLintptr, readOffset, GLintptr, writeOffset, GLsizei, size); \
    HookWrapper5(void, glClearNamedBufferDataEXT, GLuint, buffer, GLenum, internalformat, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper7(void, glClearNamedBufferSubData, GLuint, buffer, GLenum, internalformat, GLintptr, offset, GLsizei, size, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper2(void *, glMapNamedBufferEXT, GLuint, buffer, GLenum, access); \
    HookWrapper4(void *, glMapNamedBufferRange, GLuint, buffer, GLintptr, offset, GLsizei, length, GLbitfield, access); \
    HookWrapper1(GLboolean, glUnmapNamedBufferEXT, GLuint, buffer); \
    HookWrapper3(void, glFlushMappedNamedBufferRange, GLuint, buffer, GLintptr, offset, GLsizei, length); \
    HookWrapper3(void, glGetNamedBufferParameterivEXT, GLuint, buffer, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetNamedBufferParameteri64v, GLuint, buffer, GLenum, pname, GLint64 *, params); \
    HookWrapper3(void, glGetNamedBufferPointervEXT, GLuint, buffer, GLenum, pname, void **, params); \
    HookWrapper4(void, glGetNamedBufferSubData, GLuint, buffer, GLintptr, offset, GLsizei, size, void *, data); \
    HookWrapper2(void, glCreateFramebuffers, GLsizei, n, GLuint *, framebuffers); \
    HookWrapper4(void, glNamedFramebufferRenderbufferEXT, GLuint, framebuffer, GLenum, attachment, GLenum, renderbuffertarget, GLuint, renderbuffer); \
    HookWrapper3(void, glNamedFramebufferParameteriEXT, GLuint, framebuffer, GLenum, pname, GLint, param); \
    HookWrapper4(void, glNamedFramebufferTextureEXT, GLuint, framebuffer, GLenum, attachment, GLuint, texture, GLint, level); \
    HookWrapper5(void, glNamedFramebufferTextureLayerEXT, GLuint, framebuffer, GLenum, attachment, GLuint, texture, GLint, level, GLint, layer); \
    HookWrapper2(void, glFramebufferDrawBufferEXT, GLuint, framebuffer, GLenum, buf); \
    HookWrapper3(void, glFramebufferDrawBuffersEXT, GLuint, framebuffer, GLsizei, n, const GLenum *, bufs); \
    HookWrapper2(void, glFramebufferReadBufferEXT, GLuint, framebuffer, GLenum, src); \
    HookWrapper3(void, glInvalidateNamedFramebufferData, GLuint, framebuffer, GLsizei, numAttachments, const GLenum *, attachments); \
    HookWrapper7(void, glInvalidateNamedFramebufferSubData, GLuint, framebuffer, GLsizei, numAttachments, const GLenum *, attachments, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper4(void, glClearNamedFramebufferiv, GLuint, framebuffer, GLenum, buffer, GLint, drawbuffer, const GLint *, value); \
    HookWrapper4(void, glClearNamedFramebufferuiv, GLuint, framebuffer, GLenum, buffer, GLint, drawbuffer, const GLuint *, value); \
    HookWrapper4(void, glClearNamedFramebufferfv, GLuint, framebuffer, GLenum, buffer, GLint, drawbuffer, const GLfloat *, value); \
    HookWrapper4(void, glClearNamedFramebufferfi, GLuint, framebuffer, GLenum, buffer, const GLfloat, depth, GLint, stencil); \
    HookWrapper12(void, glBlitNamedFramebuffer, GLuint, readFramebuffer, GLuint, drawFramebuffer, GLint, srcX0, GLint, srcY0, GLint, srcX1, GLint, srcY1, GLint, dstX0, GLint, dstY0, GLint, dstX1, GLint, dstY1, GLbitfield, mask, GLenum, filter); \
    HookWrapper2(GLenum, glCheckNamedFramebufferStatusEXT, GLuint, framebuffer, GLenum, target); \
    HookWrapper3(void, glGetNamedFramebufferParameterivEXT, GLuint, framebuffer, GLenum, pname, GLint *, param); \
    HookWrapper4(void, glGetNamedFramebufferAttachmentParameterivEXT, GLuint, framebuffer, GLenum, attachment, GLenum, pname, GLint *, params); \
    HookWrapper2(void, glCreateRenderbuffers, GLsizei, n, GLuint *, renderbuffers); \
    HookWrapper4(void, glNamedRenderbufferStorageEXT, GLuint, renderbuffer, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper5(void, glNamedRenderbufferStorageMultisampleEXT, GLuint, renderbuffer, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glGetNamedRenderbufferParameterivEXT, GLuint, renderbuffer, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glCreateTextures, GLenum, target, GLsizei, n, GLuint *, textures); \
    HookWrapper3(void, glTextureBuffer, GLuint, texture, GLenum, internalformat, GLuint, buffer); \
    HookWrapper5(void, glTextureBufferRange, GLuint, texture, GLenum, internalformat, GLuint, buffer, GLintptr, offset, GLsizei, size); \
    HookWrapper4(void, glTextureStorage1D, GLuint, texture, GLsizei, levels, GLenum, internalformat, GLsizei, width); \
    HookWrapper5(void, glTextureStorage2D, GLuint, texture, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper6(void, glTextureStorage3D, GLuint, texture, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth); \
    HookWrapper6(void, glTextureStorage2DMultisample, GLuint, texture, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLboolean, fixedsamplelocations); \
    HookWrapper7(void, glTextureStorage3DMultisample, GLuint, texture, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedsamplelocations); \
    HookWrapper7(void, glTextureSubImage1D, GLuint, texture, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper9(void, glTextureSubImage2D, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper11(void, glTextureSubImage3D, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper7(void, glCompressedTextureSubImage1D, GLuint, texture, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLsizei, imageSize, const void *, data); \
    HookWrapper9(void, glCompressedTextureSubImage2D, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLsizei, imageSize, const void *, data); \
    HookWrapper11(void, glCompressedTextureSubImage3D, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLsizei, imageSize, const void *, data); \
    HookWrapper6(void, glCopyTextureSubImage1D, GLuint, texture, GLint, level, GLint, xoffset, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper8(void, glCopyTextureSubImage2D, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper9(void, glCopyTextureSubImage3D, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glTextureParameterf, GLuint, texture, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glTextureParameterfv, GLuint, texture, GLenum, pname, const GLfloat *, param); \
    HookWrapper3(void, glTextureParameteri, GLuint, texture, GLenum, pname, GLint, param); \
    HookWrapper3(void, glTextureParameterIiv, GLuint, texture, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glTextureParameterIuiv, GLuint, texture, GLenum, pname, const GLuint *, params); \
    HookWrapper3(void, glTextureParameteriv, GLuint, texture, GLenum, pname, const GLint *, param); \
    HookWrapper1(void, glGenerateTextureMipmap, GLuint, texture); \
    HookWrapper2(void, glBindTextureUnit, GLuint, unit, GLuint, texture); \
    HookWrapper6(void, glGetTextureImage, GLuint, texture, GLint, level, GLenum, format, GLenum, type, GLsizei, bufSize, void *, pixels); \
    HookWrapper4(void, glGetCompressedTextureImage, GLuint, texture, GLint, level, GLsizei, bufSize, void *, pixels); \
    HookWrapper4(void, glGetTextureLevelParameterfv, GLuint, texture, GLint, level, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glGetTextureLevelParameteriv, GLuint, texture, GLint, level, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetTextureParameterfv, GLuint, texture, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glGetTextureParameterIiv, GLuint, texture, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glGetTextureParameterIuiv, GLuint, texture, GLenum, pname, GLuint *, params); \
    HookWrapper3(void, glGetTextureParameteriv, GLuint, texture, GLenum, pname, GLint *, params); \
    HookWrapper2(void, glCreateVertexArrays, GLsizei, n, GLuint *, arrays); \
    HookWrapper2(void, glDisableVertexArrayAttribEXT, GLuint, vaobj, GLuint, index); \
    HookWrapper2(void, glEnableVertexArrayAttribEXT, GLuint, vaobj, GLuint, index); \
    HookWrapper2(void, glVertexArrayElementBuffer, GLuint, vaobj, GLuint, buffer); \
    HookWrapper5(void, glVertexArrayBindVertexBufferEXT, GLuint, vaobj, GLuint, bindingindex, GLuint, buffer, GLintptr, offset, GLsizei, stride); \
    HookWrapper6(void, glVertexArrayVertexBuffers, GLuint, vaobj, GLuint, first, GLsizei, count, const GLuint *, buffers, const GLintptr *, offsets, const GLsizei *, strides); \
    HookWrapper3(void, glVertexArrayVertexAttribBindingEXT, GLuint, vaobj, GLuint, attribindex, GLuint, bindingindex); \
    HookWrapper6(void, glVertexArrayVertexAttribFormatEXT, GLuint, vaobj, GLuint, attribindex, GLint, size, GLenum, type, GLboolean, normalized, GLuint, relativeoffset); \
    HookWrapper5(void, glVertexArrayVertexAttribIFormatEXT, GLuint, vaobj, GLuint, attribindex, GLint, size, GLenum, type, GLuint, relativeoffset); \
    HookWrapper5(void, glVertexArrayVertexAttribLFormatEXT, GLuint, vaobj, GLuint, attribindex, GLint, size, GLenum, type, GLuint, relativeoffset); \
    HookWrapper3(void, glVertexArrayVertexBindingDivisorEXT, GLuint, vaobj, GLuint, bindingindex, GLuint, divisor); \
    HookWrapper3(void, glGetVertexArrayiv, GLuint, vaobj, GLenum, pname, GLint *, param); \
    HookWrapper4(void, glGetVertexArrayIndexediv, GLuint, vaobj, GLuint, index, GLenum, pname, GLint *, param); \
    HookWrapper4(void, glGetVertexArrayIndexed64iv, GLuint, vaobj, GLuint, index, GLenum, pname, GLint64 *, param); \
    HookWrapper2(void, glCreateSamplers, GLsizei, n, GLuint *, samplers); \
    HookWrapper2(void, glCreateProgramPipelines, GLsizei, n, GLuint *, pipelines); \
    HookWrapper3(void, glCreateQueries, GLenum, target, GLsizei, n, GLuint *, ids); \
    HookWrapper4(void, glGetQueryBufferObjecti64v, GLuint, id, GLuint, buffer, GLenum, pname, GLintptr, offset); \
    HookWrapper4(void, glGetQueryBufferObjectiv, GLuint, id, GLuint, buffer, GLenum, pname, GLintptr, offset); \
    HookWrapper4(void, glGetQueryBufferObjectui64v, GLuint, id, GLuint, buffer, GLenum, pname, GLintptr, offset); \
    HookWrapper4(void, glGetQueryBufferObjectuiv, GLuint, id, GLuint, buffer, GLenum, pname, GLintptr, offset); \
    HookWrapper1(void, glMemoryBarrierByRegion, GLbitfield, barriers); \
    HookWrapper12(void, glGetTextureSubImage, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, GLsizei, bufSize, void *, pixels); \
    HookWrapper10(void, glGetCompressedTextureSubImage, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLsizei, bufSize, void *, pixels); \
    HookWrapper0(GLenum, glGetGraphicsResetStatus); \
    HookWrapper4(void, glGetnCompressedTexImage, GLenum, target, GLint, lod, GLsizei, bufSize, void *, pixels); \
    HookWrapper6(void, glGetnTexImage, GLenum, target, GLint, level, GLenum, format, GLenum, type, GLsizei, bufSize, void *, pixels); \
    HookWrapper4(void, glGetnUniformdv, GLuint, program, GLint, location, GLsizei, bufSize, GLdouble *, params); \
    HookWrapper4(void, glGetnUniformfv, GLuint, program, GLint, location, GLsizei, bufSize, GLfloat *, params); \
    HookWrapper4(void, glGetnUniformiv, GLuint, program, GLint, location, GLsizei, bufSize, GLint *, params); \
    HookWrapper4(void, glGetnUniformuiv, GLuint, program, GLint, location, GLsizei, bufSize, GLuint *, params); \
    HookWrapper8(void, glReadnPixels, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, GLsizei, bufSize, void *, data); \
    HookWrapper0(void, glTextureBarrier); \
    HookWrapper6(void, glDispatchComputeGroupSizeARB, GLuint, num_groups_x, GLuint, num_groups_y, GLuint, num_groups_z, GLuint, group_size_x, GLuint, group_size_y, GLuint, group_size_z); \
    HookWrapper5(void, glMultiDrawArraysIndirectCountARB, GLenum, mode, GLintptr, indirect, GLintptr, drawcount, GLsizei, maxdrawcount, GLsizei, stride); \
    HookWrapper6(void, glMultiDrawElementsIndirectCountARB, GLenum, mode, GLenum, type, GLintptr, indirect, GLintptr, drawcount, GLsizei, maxdrawcount, GLsizei, stride); \
    HookWrapper5(void, glNamedStringARB, GLenum, type, GLint, namelen, const GLchar *, name, GLint, stringlen, const GLchar *, string); \
    HookWrapper2(void, glDeleteNamedStringARB, GLint, namelen, const GLchar *, name); \
    HookWrapper4(void, glCompileShaderIncludeARB, GLuint, shader, GLsizei, count, const GLchar *const*, path, const GLint *, length); \
    HookWrapper2(GLboolean, glIsNamedStringARB, GLint, namelen, const GLchar *, name); \
    HookWrapper5(void, glGetNamedStringARB, GLint, namelen, const GLchar *, name, GLsizei, bufSize, GLint *, stringlen, GLchar *, string); \
    HookWrapper4(void, glGetNamedStringivARB, GLint, namelen, const GLchar *, name, GLenum, pname, GLint *, params); \
    HookWrapper0(void, glBlendBarrierKHR); \
    HookWrapper2(void, glInsertEventMarkerEXT, GLsizei, length, const GLchar *, marker); \
    HookWrapper2(void, glPushGroupMarkerEXT, GLsizei, length, const GLchar *, marker); \
    HookWrapper0(void, glPopGroupMarkerEXT); \
    HookWrapper2(void, glDepthBoundsEXT, GLclampd, zmin, GLclampd, zmax); \
    HookWrapper4(void, glTextureParameterfEXT, GLuint, texture, GLenum, target, GLenum, pname, GLfloat, param); \
    HookWrapper4(void, glTextureParameterfvEXT, GLuint, texture, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper4(void, glTextureParameteriEXT, GLuint, texture, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper4(void, glTextureParameterivEXT, GLuint, texture, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper9(void, glTextureImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper10(void, glTextureImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper8(void, glTextureSubImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper10(void, glTextureSubImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper8(void, glCopyTextureImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLint, border); \
    HookWrapper9(void, glCopyTextureImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLint, border); \
    HookWrapper7(void, glCopyTextureSubImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper9(void, glCopyTextureSubImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper6(void, glGetTextureImageEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, format, GLenum, type, void *, pixels); \
    HookWrapper4(void, glGetTextureParameterfvEXT, GLuint, texture, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glGetTextureParameterivEXT, GLuint, texture, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glGetTextureLevelParameterfvEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, pname, GLfloat *, params); \
    HookWrapper5(void, glGetTextureLevelParameterivEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, pname, GLint *, params); \
    HookWrapper11(void, glTextureImage3DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper12(void, glTextureSubImage3DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper10(void, glCopyTextureSubImage3DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glBindMultiTextureEXT, GLenum, texunit, GLenum, target, GLuint, texture); \
    HookWrapper4(void, glMultiTexParameteriEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper4(void, glMultiTexParameterivEXT, GLenum, texunit, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glMultiTexParameterfEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLfloat, param); \
    HookWrapper4(void, glMultiTexParameterfvEXT, GLenum, texunit, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper9(void, glMultiTexImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper10(void, glMultiTexImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper8(void, glMultiTexSubImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper10(void, glMultiTexSubImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper8(void, glCopyMultiTexImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLint, border); \
    HookWrapper9(void, glCopyMultiTexImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLint, border); \
    HookWrapper7(void, glCopyMultiTexSubImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper9(void, glCopyMultiTexSubImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper6(void, glGetMultiTexImageEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, format, GLenum, type, void *, pixels); \
    HookWrapper4(void, glGetMultiTexParameterfvEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glGetMultiTexParameterivEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glGetMultiTexLevelParameterfvEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, pname, GLfloat *, params); \
    HookWrapper5(void, glGetMultiTexLevelParameterivEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, pname, GLint *, params); \
    HookWrapper11(void, glMultiTexImage3DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper12(void, glMultiTexSubImage3DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper10(void, glCopyMultiTexSubImage3DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper3(void, glGetFloatIndexedvEXT, GLenum, target, GLuint, index, GLfloat *, data); \
    HookWrapper3(void, glGetDoubleIndexedvEXT, GLenum, target, GLuint, index, GLdouble *, data); \
    HookWrapper3(void, glGetPointerIndexedvEXT, GLenum, target, GLuint, index, void **, data); \
    HookWrapper3(void, glGetIntegerIndexedvEXT, GLenum, target, GLuint, index, GLint *, data); \
    HookWrapper3(void, glGetBooleanIndexedvEXT, GLenum, target, GLuint, index, GLboolean *, data); \
    HookWrapper10(void, glCompressedTextureImage3DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLsizei, imageSize, const void *, bits); \
    HookWrapper9(void, glCompressedTextureImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLsizei, imageSize, const void *, bits); \
    HookWrapper8(void, glCompressedTextureImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLint, border, GLsizei, imageSize, const void *, bits); \
    HookWrapper12(void, glCompressedTextureSubImage3DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLsizei, imageSize, const void *, bits); \
    HookWrapper10(void, glCompressedTextureSubImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLsizei, imageSize, const void *, bits); \
    HookWrapper8(void, glCompressedTextureSubImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLsizei, imageSize, const void *, bits); \
    HookWrapper4(void, glGetCompressedTextureImageEXT, GLuint, texture, GLenum, target, GLint, lod, void *, img); \
    HookWrapper10(void, glCompressedMultiTexImage3DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLsizei, imageSize, const void *, bits); \
    HookWrapper9(void, glCompressedMultiTexImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLsizei, imageSize, const void *, bits); \
    HookWrapper8(void, glCompressedMultiTexImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLint, border, GLsizei, imageSize, const void *, bits); \
    HookWrapper12(void, glCompressedMultiTexSubImage3DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLsizei, imageSize, const void *, bits); \
    HookWrapper10(void, glCompressedMultiTexSubImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLsizei, imageSize, const void *, bits); \
    HookWrapper8(void, glCompressedMultiTexSubImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLsizei, imageSize, const void *, bits); \
    HookWrapper4(void, glGetCompressedMultiTexImageEXT, GLenum, texunit, GLenum, target, GLint, lod, void *, img); \
    HookWrapper4(void, glNamedBufferDataEXT, GLuint, buffer, GLsizeiptr, size, const void *, data, GLenum, usage); \
    HookWrapper4(void, glNamedBufferSubDataEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, const void *, data); \
    HookWrapper4(void, glGetNamedBufferSubDataEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, void *, data); \
    HookWrapper4(void, glTextureBufferEXT, GLuint, texture, GLenum, target, GLenum, internalformat, GLuint, buffer); \
    HookWrapper4(void, glMultiTexBufferEXT, GLenum, texunit, GLenum, target, GLenum, internalformat, GLuint, buffer); \
    HookWrapper4(void, glTextureParameterIivEXT, GLuint, texture, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glTextureParameterIuivEXT, GLuint, texture, GLenum, target, GLenum, pname, const GLuint *, params); \
    HookWrapper4(void, glGetTextureParameterIivEXT, GLuint, texture, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glGetTextureParameterIuivEXT, GLuint, texture, GLenum, target, GLenum, pname, GLuint *, params); \
    HookWrapper4(void, glMultiTexParameterIivEXT, GLenum, texunit, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glMultiTexParameterIuivEXT, GLenum, texunit, GLenum, target, GLenum, pname, const GLuint *, params); \
    HookWrapper4(void, glGetMultiTexParameterIivEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glGetMultiTexParameterIuivEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLuint *, params); \
    HookWrapper3(void, glGetPointeri_vEXT, GLenum, pname, GLuint, index, void **, params); \
    HookWrapper4(void, glGetNamedProgramivEXT, GLuint, program, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glNamedFramebufferTexture1DEXT, GLuint, framebuffer, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level); \
    HookWrapper5(void, glNamedFramebufferTexture2DEXT, GLuint, framebuffer, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level); \
    HookWrapper6(void, glNamedFramebufferTexture3DEXT, GLuint, framebuffer, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level, GLint, zoffset); \
    HookWrapper2(void, glGenerateTextureMipmapEXT, GLuint, texture, GLenum, target); \
    HookWrapper2(void, glGenerateMultiTexMipmapEXT, GLenum, texunit, GLenum, target); \
    HookWrapper5(void, glNamedCopyBufferSubDataEXT, GLuint, readBuffer, GLuint, writeBuffer, GLintptr, readOffset, GLintptr, writeOffset, GLsizeiptr, size); \
    HookWrapper8(void, glVertexArrayVertexAttribOffsetEXT, GLuint, vaobj, GLuint, buffer, GLuint, index, GLint, size, GLenum, type, GLboolean, normalized, GLsizei, stride, GLintptr, offset); \
    HookWrapper7(void, glVertexArrayVertexAttribIOffsetEXT, GLuint, vaobj, GLuint, buffer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper3(void, glGetVertexArrayIntegervEXT, GLuint, vaobj, GLenum, pname, GLint *, param); \
    HookWrapper3(void, glGetVertexArrayPointervEXT, GLuint, vaobj, GLenum, pname, void **, param); \
    HookWrapper4(void, glGetVertexArrayIntegeri_vEXT, GLuint, vaobj, GLuint, index, GLenum, pname, GLint *, param); \
    HookWrapper4(void, glGetVertexArrayPointeri_vEXT, GLuint, vaobj, GLuint, index, GLenum, pname, void **, param); \
    HookWrapper4(void *, glMapNamedBufferRangeEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, length, GLbitfield, access); \
    HookWrapper3(void, glFlushMappedNamedBufferRangeEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, length); \
    HookWrapper4(void, glNamedBufferStorageEXT, GLuint, buffer, GLsizeiptr, size, const void *, data, GLbitfield, flags); \
    HookWrapper7(void, glClearNamedBufferSubDataEXT, GLuint, buffer, GLenum, internalformat, GLsizeiptr, offset, GLsizeiptr, size, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper6(void, glTextureBufferRangeEXT, GLuint, texture, GLenum, target, GLenum, internalformat, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \
    HookWrapper5(void, glTextureStorage1DEXT, GLuint, texture, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width); \
    HookWrapper6(void, glTextureStorage2DEXT, GLuint, texture, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper7(void, glTextureStorage3DEXT, GLuint, texture, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth); \
    HookWrapper7(void, glTextureStorage2DMultisampleEXT, GLuint, texture, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLboolean, fixedsamplelocations); \
    HookWrapper8(void, glTextureStorage3DMultisampleEXT, GLuint, texture, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedsamplelocations); \
    HookWrapper7(void, glVertexArrayVertexAttribLOffsetEXT, GLuint, vaobj, GLuint, buffer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper3(void, glVertexArrayVertexAttribDivisorEXT, GLuint, vaobj, GLuint, index, GLuint, divisor); \
    HookWrapper3(void, glPolygonOffsetClampEXT, GLfloat, factor, GLfloat, units, GLfloat, clamp); \
    HookWrapper2(void, glRasterSamplesEXT, GLuint, samples, GLboolean, fixedsamplelocations); \
    HookWrapper0(void, glFrameTerminatorGREMEDY); \
    HookWrapper2(void, glStringMarkerGREMEDY, GLsizei, len, const void *, string); \



// unsupported entry points - used for dummy functions
#define DefineUnsupportedDummies() \
    HookWrapper1(GLuint64, glgettexturehandlearb, GLuint, texture); \
    HookWrapper2(GLuint64, glgettexturesamplerhandlearb, GLuint, texture, GLuint, sampler); \
    HookWrapper1(void, glmaketexturehandleresidentarb, GLuint64, handle); \
    HookWrapper1(void, glmaketexturehandlenonresidentarb, GLuint64, handle); \
    HookWrapper5(GLuint64, glgetimagehandlearb, GLuint, texture, GLint, level, GLboolean, layered, GLint, layer, GLenum, format); \
    HookWrapper2(void, glmakeimagehandleresidentarb, GLuint64, handle, GLenum, access); \
    HookWrapper1(void, glmakeimagehandlenonresidentarb, GLuint64, handle); \
    HookWrapper2(void, gluniformhandleui64arb, GLint, location, GLuint64, value); \
    HookWrapper3(void, gluniformhandleui64varb, GLint, location, GLsizei, count, const GLuint64 *, value); \
    HookWrapper3(void, glprogramuniformhandleui64arb, GLuint, program, GLint, location, GLuint64, value); \
    HookWrapper4(void, glprogramuniformhandleui64varb, GLuint, program, GLint, location, GLsizei, count, const GLuint64 *, values); \
    HookWrapper1(GLboolean, glistexturehandleresidentarb, GLuint64, handle); \
    HookWrapper1(GLboolean, glisimagehandleresidentarb, GLuint64, handle); \
    HookWrapper2(void, glvertexattribl1ui64arb, GLuint, index, GLuint64EXT, x); \
    HookWrapper2(void, glvertexattribl1ui64varb, GLuint, index, const GLuint64EXT *, v); \
    HookWrapper3(void, glgetvertexattriblui64varb, GLuint, index, GLenum, pname, GLuint64EXT *, params); \
    HookWrapper3(GLsync, glcreatesyncfromcleventarb, struct _cl_context *, context, struct _cl_event *, event, GLbitfield, flags); \
    HookWrapper4(void, glbufferpagecommitmentarb, GLenum, target, GLintptr, offset, GLsizeiptr, size, GLboolean, commit); \
    HookWrapper4(void, glnamedbufferpagecommitmentext, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, GLboolean, commit); \
    HookWrapper4(void, glnamedbufferpagecommitmentarb, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, GLboolean, commit); \
    HookWrapper9(void, gltexpagecommitmentarb, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, resident); \
    HookWrapper1(void, glclientactivetexture, GLenum, texture); \
    HookWrapper2(void, glmultitexcoord1d, GLenum, target, GLdouble, s); \
    HookWrapper2(void, glmultitexcoord1dv, GLenum, target, const GLdouble *, v); \
    HookWrapper2(void, glmultitexcoord1f, GLenum, target, GLfloat, s); \
    HookWrapper2(void, glmultitexcoord1fv, GLenum, target, const GLfloat *, v); \
    HookWrapper2(void, glmultitexcoord1i, GLenum, target, GLint, s); \
    HookWrapper2(void, glmultitexcoord1iv, GLenum, target, const GLint *, v); \
    HookWrapper2(void, glmultitexcoord1s, GLenum, target, GLshort, s); \
    HookWrapper2(void, glmultitexcoord1sv, GLenum, target, const GLshort *, v); \
    HookWrapper3(void, glmultitexcoord2d, GLenum, target, GLdouble, s, GLdouble, t); \
    HookWrapper2(void, glmultitexcoord2dv, GLenum, target, const GLdouble *, v); \
    HookWrapper3(void, glmultitexcoord2f, GLenum, target, GLfloat, s, GLfloat, t); \
    HookWrapper2(void, glmultitexcoord2fv, GLenum, target, const GLfloat *, v); \
    HookWrapper3(void, glmultitexcoord2i, GLenum, target, GLint, s, GLint, t); \
    HookWrapper2(void, glmultitexcoord2iv, GLenum, target, const GLint *, v); \
    HookWrapper3(void, glmultitexcoord2s, GLenum, target, GLshort, s, GLshort, t); \
    HookWrapper2(void, glmultitexcoord2sv, GLenum, target, const GLshort *, v); \
    HookWrapper4(void, glmultitexcoord3d, GLenum, target, GLdouble, s, GLdouble, t, GLdouble, r); \
    HookWrapper2(void, glmultitexcoord3dv, GLenum, target, const GLdouble *, v); \
    HookWrapper4(void, glmultitexcoord3f, GLenum, target, GLfloat, s, GLfloat, t, GLfloat, r); \
    HookWrapper2(void, glmultitexcoord3fv, GLenum, target, const GLfloat *, v); \
    HookWrapper4(void, glmultitexcoord3i, GLenum, target, GLint, s, GLint, t, GLint, r); \
    HookWrapper2(void, glmultitexcoord3iv, GLenum, target, const GLint *, v); \
    HookWrapper4(void, glmultitexcoord3s, GLenum, target, GLshort, s, GLshort, t, GLshort, r); \
    HookWrapper2(void, glmultitexcoord3sv, GLenum, target, const GLshort *, v); \
    HookWrapper5(void, glmultitexcoord4d, GLenum, target, GLdouble, s, GLdouble, t, GLdouble, r, GLdouble, q); \
    HookWrapper2(void, glmultitexcoord4dv, GLenum, target, const GLdouble *, v); \
    HookWrapper5(void, glmultitexcoord4f, GLenum, target, GLfloat, s, GLfloat, t, GLfloat, r, GLfloat, q); \
    HookWrapper2(void, glmultitexcoord4fv, GLenum, target, const GLfloat *, v); \
    HookWrapper5(void, glmultitexcoord4i, GLenum, target, GLint, s, GLint, t, GLint, r, GLint, q); \
    HookWrapper2(void, glmultitexcoord4iv, GLenum, target, const GLint *, v); \
    HookWrapper5(void, glmultitexcoord4s, GLenum, target, GLshort, s, GLshort, t, GLshort, r, GLshort, q); \
    HookWrapper2(void, glmultitexcoord4sv, GLenum, target, const GLshort *, v); \
    HookWrapper1(void, glloadtransposematrixf, const GLfloat *, m); \
    HookWrapper1(void, glloadtransposematrixd, const GLdouble *, m); \
    HookWrapper1(void, glmulttransposematrixf, const GLfloat *, m); \
    HookWrapper1(void, glmulttransposematrixd, const GLdouble *, m); \
    HookWrapper1(void, glfogcoordf, GLfloat, coord); \
    HookWrapper1(void, glfogcoordfv, const GLfloat *, coord); \
    HookWrapper1(void, glfogcoordd, GLdouble, coord); \
    HookWrapper1(void, glfogcoorddv, const GLdouble *, coord); \
    HookWrapper3(void, glfogcoordpointer, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(void, glsecondarycolor3b, GLbyte, red, GLbyte, green, GLbyte, blue); \
    HookWrapper1(void, glsecondarycolor3bv, const GLbyte *, v); \
    HookWrapper3(void, glsecondarycolor3d, GLdouble, red, GLdouble, green, GLdouble, blue); \
    HookWrapper1(void, glsecondarycolor3dv, const GLdouble *, v); \
    HookWrapper3(void, glsecondarycolor3f, GLfloat, red, GLfloat, green, GLfloat, blue); \
    HookWrapper1(void, glsecondarycolor3fv, const GLfloat *, v); \
    HookWrapper3(void, glsecondarycolor3i, GLint, red, GLint, green, GLint, blue); \
    HookWrapper1(void, glsecondarycolor3iv, const GLint *, v); \
    HookWrapper3(void, glsecondarycolor3s, GLshort, red, GLshort, green, GLshort, blue); \
    HookWrapper1(void, glsecondarycolor3sv, const GLshort *, v); \
    HookWrapper3(void, glsecondarycolor3ub, GLubyte, red, GLubyte, green, GLubyte, blue); \
    HookWrapper1(void, glsecondarycolor3ubv, const GLubyte *, v); \
    HookWrapper3(void, glsecondarycolor3ui, GLuint, red, GLuint, green, GLuint, blue); \
    HookWrapper1(void, glsecondarycolor3uiv, const GLuint *, v); \
    HookWrapper3(void, glsecondarycolor3us, GLushort, red, GLushort, green, GLushort, blue); \
    HookWrapper1(void, glsecondarycolor3usv, const GLushort *, v); \
    HookWrapper4(void, glsecondarycolorpointer, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper2(void, glwindowpos2d, GLdouble, x, GLdouble, y); \
    HookWrapper1(void, glwindowpos2dv, const GLdouble *, v); \
    HookWrapper2(void, glwindowpos2f, GLfloat, x, GLfloat, y); \
    HookWrapper1(void, glwindowpos2fv, const GLfloat *, v); \
    HookWrapper2(void, glwindowpos2i, GLint, x, GLint, y); \
    HookWrapper1(void, glwindowpos2iv, const GLint *, v); \
    HookWrapper2(void, glwindowpos2s, GLshort, x, GLshort, y); \
    HookWrapper1(void, glwindowpos2sv, const GLshort *, v); \
    HookWrapper3(void, glwindowpos3d, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper1(void, glwindowpos3dv, const GLdouble *, v); \
    HookWrapper3(void, glwindowpos3f, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper1(void, glwindowpos3fv, const GLfloat *, v); \
    HookWrapper3(void, glwindowpos3i, GLint, x, GLint, y, GLint, z); \
    HookWrapper1(void, glwindowpos3iv, const GLint *, v); \
    HookWrapper3(void, glwindowpos3s, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper1(void, glwindowpos3sv, const GLshort *, v); \
    HookWrapper2(void, glvertexp2ui, GLenum, type, GLuint, value); \
    HookWrapper2(void, glvertexp2uiv, GLenum, type, const GLuint *, value); \
    HookWrapper2(void, glvertexp3ui, GLenum, type, GLuint, value); \
    HookWrapper2(void, glvertexp3uiv, GLenum, type, const GLuint *, value); \
    HookWrapper2(void, glvertexp4ui, GLenum, type, GLuint, value); \
    HookWrapper2(void, glvertexp4uiv, GLenum, type, const GLuint *, value); \
    HookWrapper2(void, gltexcoordp1ui, GLenum, type, GLuint, coords); \
    HookWrapper2(void, gltexcoordp1uiv, GLenum, type, const GLuint *, coords); \
    HookWrapper2(void, gltexcoordp2ui, GLenum, type, GLuint, coords); \
    HookWrapper2(void, gltexcoordp2uiv, GLenum, type, const GLuint *, coords); \
    HookWrapper2(void, gltexcoordp3ui, GLenum, type, GLuint, coords); \
    HookWrapper2(void, gltexcoordp3uiv, GLenum, type, const GLuint *, coords); \
    HookWrapper2(void, gltexcoordp4ui, GLenum, type, GLuint, coords); \
    HookWrapper2(void, gltexcoordp4uiv, GLenum, type, const GLuint *, coords); \
    HookWrapper3(void, glmultitexcoordp1ui, GLenum, texture, GLenum, type, GLuint, coords); \
    HookWrapper3(void, glmultitexcoordp1uiv, GLenum, texture, GLenum, type, const GLuint *, coords); \
    HookWrapper3(void, glmultitexcoordp2ui, GLenum, texture, GLenum, type, GLuint, coords); \
    HookWrapper3(void, glmultitexcoordp2uiv, GLenum, texture, GLenum, type, const GLuint *, coords); \
    HookWrapper3(void, glmultitexcoordp3ui, GLenum, texture, GLenum, type, GLuint, coords); \
    HookWrapper3(void, glmultitexcoordp3uiv, GLenum, texture, GLenum, type, const GLuint *, coords); \
    HookWrapper3(void, glmultitexcoordp4ui, GLenum, texture, GLenum, type, GLuint, coords); \
    HookWrapper3(void, glmultitexcoordp4uiv, GLenum, texture, GLenum, type, const GLuint *, coords); \
    HookWrapper2(void, glnormalp3ui, GLenum, type, GLuint, coords); \
    HookWrapper2(void, glnormalp3uiv, GLenum, type, const GLuint *, coords); \
    HookWrapper2(void, glcolorp3ui, GLenum, type, GLuint, color); \
    HookWrapper2(void, glcolorp3uiv, GLenum, type, const GLuint *, color); \
    HookWrapper2(void, glcolorp4ui, GLenum, type, GLuint, color); \
    HookWrapper2(void, glcolorp4uiv, GLenum, type, const GLuint *, color); \
    HookWrapper2(void, glsecondarycolorp3ui, GLenum, type, GLuint, color); \
    HookWrapper2(void, glsecondarycolorp3uiv, GLenum, type, const GLuint *, color); \
    HookWrapper4(void, glgetnmapdv, GLenum, target, GLenum, query, GLsizei, bufSize, GLdouble *, v); \
    HookWrapper4(void, glgetnmapfv, GLenum, target, GLenum, query, GLsizei, bufSize, GLfloat *, v); \
    HookWrapper4(void, glgetnmapiv, GLenum, target, GLenum, query, GLsizei, bufSize, GLint *, v); \
    HookWrapper3(void, glgetnpixelmapfv, GLenum, map, GLsizei, bufSize, GLfloat *, values); \
    HookWrapper3(void, glgetnpixelmapuiv, GLenum, map, GLsizei, bufSize, GLuint *, values); \
    HookWrapper3(void, glgetnpixelmapusv, GLenum, map, GLsizei, bufSize, GLushort *, values); \
    HookWrapper2(void, glgetnpolygonstipple, GLsizei, bufSize, GLubyte *, pattern); \
    HookWrapper5(void, glgetncolortable, GLenum, target, GLenum, format, GLenum, type, GLsizei, bufSize, void *, table); \
    HookWrapper5(void, glgetnconvolutionfilter, GLenum, target, GLenum, format, GLenum, type, GLsizei, bufSize, void *, image); \
    HookWrapper8(void, glgetnseparablefilter, GLenum, target, GLenum, format, GLenum, type, GLsizei, rowBufSize, void *, row, GLsizei, columnBufSize, void *, column, void *, span); \
    HookWrapper6(void, glgetnhistogram, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, GLsizei, bufSize, void *, values); \
    HookWrapper6(void, glgetnminmax, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, GLsizei, bufSize, void *, values); \
    HookWrapper4(void, glprogramstringarb, GLenum, target, GLenum, format, GLsizei, len, const void *, string); \
    HookWrapper2(void, glbindprogramarb, GLenum, target, GLuint, program); \
    HookWrapper2(void, gldeleteprogramsarb, GLsizei, n, const GLuint *, programs); \
    HookWrapper2(void, glgenprogramsarb, GLsizei, n, GLuint *, programs); \
    HookWrapper6(void, glprogramenvparameter4darb, GLenum, target, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper3(void, glprogramenvparameter4dvarb, GLenum, target, GLuint, index, const GLdouble *, params); \
    HookWrapper6(void, glprogramenvparameter4farb, GLenum, target, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper3(void, glprogramenvparameter4fvarb, GLenum, target, GLuint, index, const GLfloat *, params); \
    HookWrapper6(void, glprogramlocalparameter4darb, GLenum, target, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper3(void, glprogramlocalparameter4dvarb, GLenum, target, GLuint, index, const GLdouble *, params); \
    HookWrapper6(void, glprogramlocalparameter4farb, GLenum, target, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper3(void, glprogramlocalparameter4fvarb, GLenum, target, GLuint, index, const GLfloat *, params); \
    HookWrapper3(void, glgetprogramenvparameterdvarb, GLenum, target, GLuint, index, GLdouble *, params); \
    HookWrapper3(void, glgetprogramenvparameterfvarb, GLenum, target, GLuint, index, GLfloat *, params); \
    HookWrapper3(void, glgetprogramlocalparameterdvarb, GLenum, target, GLuint, index, GLdouble *, params); \
    HookWrapper3(void, glgetprogramlocalparameterfvarb, GLenum, target, GLuint, index, GLfloat *, params); \
    HookWrapper3(void, glgetprogramivarb, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetprogramstringarb, GLenum, target, GLenum, pname, void *, string); \
    HookWrapper1(GLboolean, glisprogramarb, GLuint, program); \
    HookWrapper5(void, glframebuffertexturefacearb, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLenum, face); \
    HookWrapper6(void, glcolortable, GLenum, target, GLenum, internalformat, GLsizei, width, GLenum, format, GLenum, type, const void *, table); \
    HookWrapper3(void, glcolortableparameterfv, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glcolortableparameteriv, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper5(void, glcopycolortable, GLenum, target, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper4(void, glgetcolortable, GLenum, target, GLenum, format, GLenum, type, void *, table); \
    HookWrapper3(void, glgetcolortableparameterfv, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetcolortableparameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper6(void, glcolorsubtable, GLenum, target, GLsizei, start, GLsizei, count, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper5(void, glcopycolorsubtable, GLenum, target, GLsizei, start, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper6(void, glconvolutionfilter1d, GLenum, target, GLenum, internalformat, GLsizei, width, GLenum, format, GLenum, type, const void *, image); \
    HookWrapper7(void, glconvolutionfilter2d, GLenum, target, GLenum, internalformat, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, image); \
    HookWrapper3(void, glconvolutionparameterf, GLenum, target, GLenum, pname, GLfloat, params); \
    HookWrapper3(void, glconvolutionparameterfv, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glconvolutionparameteri, GLenum, target, GLenum, pname, GLint, params); \
    HookWrapper3(void, glconvolutionparameteriv, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper5(void, glcopyconvolutionfilter1d, GLenum, target, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper6(void, glcopyconvolutionfilter2d, GLenum, target, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper4(void, glgetconvolutionfilter, GLenum, target, GLenum, format, GLenum, type, void *, image); \
    HookWrapper3(void, glgetconvolutionparameterfv, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetconvolutionparameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper6(void, glgetseparablefilter, GLenum, target, GLenum, format, GLenum, type, void *, row, void *, column, void *, span); \
    HookWrapper8(void, glseparablefilter2d, GLenum, target, GLenum, internalformat, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, row, const void *, column); \
    HookWrapper5(void, glgethistogram, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, void *, values); \
    HookWrapper3(void, glgethistogramparameterfv, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgethistogramparameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glgetminmax, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, void *, values); \
    HookWrapper3(void, glgetminmaxparameterfv, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetminmaxparameteriv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glhistogram, GLenum, target, GLsizei, width, GLenum, internalformat, GLboolean, sink); \
    HookWrapper3(void, glminmax, GLenum, target, GLenum, internalformat, GLboolean, sink); \
    HookWrapper1(void, glresethistogram, GLenum, target); \
    HookWrapper1(void, glresetminmax, GLenum, target); \
    HookWrapper1(void, glcurrentpalettematrixarb, GLint, index); \
    HookWrapper2(void, glmatrixindexubvarb, GLint, size, const GLubyte *, indices); \
    HookWrapper2(void, glmatrixindexusvarb, GLint, size, const GLushort *, indices); \
    HookWrapper2(void, glmatrixindexuivarb, GLint, size, const GLuint *, indices); \
    HookWrapper4(void, glmatrixindexpointerarb, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper1(void, glclientactivetexturearb, GLenum, texture); \
    HookWrapper2(void, glmultitexcoord1darb, GLenum, target, GLdouble, s); \
    HookWrapper2(void, glmultitexcoord1dvarb, GLenum, target, const GLdouble *, v); \
    HookWrapper2(void, glmultitexcoord1farb, GLenum, target, GLfloat, s); \
    HookWrapper2(void, glmultitexcoord1fvarb, GLenum, target, const GLfloat *, v); \
    HookWrapper2(void, glmultitexcoord1iarb, GLenum, target, GLint, s); \
    HookWrapper2(void, glmultitexcoord1ivarb, GLenum, target, const GLint *, v); \
    HookWrapper2(void, glmultitexcoord1sarb, GLenum, target, GLshort, s); \
    HookWrapper2(void, glmultitexcoord1svarb, GLenum, target, const GLshort *, v); \
    HookWrapper3(void, glmultitexcoord2darb, GLenum, target, GLdouble, s, GLdouble, t); \
    HookWrapper2(void, glmultitexcoord2dvarb, GLenum, target, const GLdouble *, v); \
    HookWrapper3(void, glmultitexcoord2farb, GLenum, target, GLfloat, s, GLfloat, t); \
    HookWrapper2(void, glmultitexcoord2fvarb, GLenum, target, const GLfloat *, v); \
    HookWrapper3(void, glmultitexcoord2iarb, GLenum, target, GLint, s, GLint, t); \
    HookWrapper2(void, glmultitexcoord2ivarb, GLenum, target, const GLint *, v); \
    HookWrapper3(void, glmultitexcoord2sarb, GLenum, target, GLshort, s, GLshort, t); \
    HookWrapper2(void, glmultitexcoord2svarb, GLenum, target, const GLshort *, v); \
    HookWrapper4(void, glmultitexcoord3darb, GLenum, target, GLdouble, s, GLdouble, t, GLdouble, r); \
    HookWrapper2(void, glmultitexcoord3dvarb, GLenum, target, const GLdouble *, v); \
    HookWrapper4(void, glmultitexcoord3farb, GLenum, target, GLfloat, s, GLfloat, t, GLfloat, r); \
    HookWrapper2(void, glmultitexcoord3fvarb, GLenum, target, const GLfloat *, v); \
    HookWrapper4(void, glmultitexcoord3iarb, GLenum, target, GLint, s, GLint, t, GLint, r); \
    HookWrapper2(void, glmultitexcoord3ivarb, GLenum, target, const GLint *, v); \
    HookWrapper4(void, glmultitexcoord3sarb, GLenum, target, GLshort, s, GLshort, t, GLshort, r); \
    HookWrapper2(void, glmultitexcoord3svarb, GLenum, target, const GLshort *, v); \
    HookWrapper5(void, glmultitexcoord4darb, GLenum, target, GLdouble, s, GLdouble, t, GLdouble, r, GLdouble, q); \
    HookWrapper2(void, glmultitexcoord4dvarb, GLenum, target, const GLdouble *, v); \
    HookWrapper5(void, glmultitexcoord4farb, GLenum, target, GLfloat, s, GLfloat, t, GLfloat, r, GLfloat, q); \
    HookWrapper2(void, glmultitexcoord4fvarb, GLenum, target, const GLfloat *, v); \
    HookWrapper5(void, glmultitexcoord4iarb, GLenum, target, GLint, s, GLint, t, GLint, r, GLint, q); \
    HookWrapper2(void, glmultitexcoord4ivarb, GLenum, target, const GLint *, v); \
    HookWrapper5(void, glmultitexcoord4sarb, GLenum, target, GLshort, s, GLshort, t, GLshort, r, GLshort, q); \
    HookWrapper2(void, glmultitexcoord4svarb, GLenum, target, const GLshort *, v); \
    HookWrapper4(void, glgetnmapdvarb, GLenum, target, GLenum, query, GLsizei, bufSize, GLdouble *, v); \
    HookWrapper4(void, glgetnmapfvarb, GLenum, target, GLenum, query, GLsizei, bufSize, GLfloat *, v); \
    HookWrapper4(void, glgetnmapivarb, GLenum, target, GLenum, query, GLsizei, bufSize, GLint *, v); \
    HookWrapper3(void, glgetnpixelmapfvarb, GLenum, map, GLsizei, bufSize, GLfloat *, values); \
    HookWrapper3(void, glgetnpixelmapuivarb, GLenum, map, GLsizei, bufSize, GLuint *, values); \
    HookWrapper3(void, glgetnpixelmapusvarb, GLenum, map, GLsizei, bufSize, GLushort *, values); \
    HookWrapper2(void, glgetnpolygonstipplearb, GLsizei, bufSize, GLubyte *, pattern); \
    HookWrapper5(void, glgetncolortablearb, GLenum, target, GLenum, format, GLenum, type, GLsizei, bufSize, void *, table); \
    HookWrapper5(void, glgetnconvolutionfilterarb, GLenum, target, GLenum, format, GLenum, type, GLsizei, bufSize, void *, image); \
    HookWrapper8(void, glgetnseparablefilterarb, GLenum, target, GLenum, format, GLenum, type, GLsizei, rowBufSize, void *, row, GLsizei, columnBufSize, void *, column, void *, span); \
    HookWrapper6(void, glgetnhistogramarb, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, GLsizei, bufSize, void *, values); \
    HookWrapper6(void, glgetnminmaxarb, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, GLsizei, bufSize, void *, values); \
    HookWrapper1(void, gldeleteobjectarb, GLhandleARB, obj); \
    HookWrapper1(GLhandleARB, glgethandlearb, GLenum, pname); \
    HookWrapper2(void, gldetachobjectarb, GLhandleARB, containerObj, GLhandleARB, attachedObj); \
    HookWrapper1(GLhandleARB, glcreateshaderobjectarb, GLenum, shaderType); \
    HookWrapper4(void, glshadersourcearb, GLhandleARB, shaderObj, GLsizei, count, const GLcharARB **, string, const GLint *, length); \
    HookWrapper1(void, glcompileshaderarb, GLhandleARB, shaderObj); \
    HookWrapper0(GLhandleARB, glcreateprogramobjectarb); \
    HookWrapper2(void, glattachobjectarb, GLhandleARB, containerObj, GLhandleARB, obj); \
    HookWrapper1(void, gllinkprogramarb, GLhandleARB, programObj); \
    HookWrapper1(void, gluseprogramobjectarb, GLhandleARB, programObj); \
    HookWrapper1(void, glvalidateprogramarb, GLhandleARB, programObj); \
    HookWrapper2(void, gluniform1farb, GLint, location, GLfloat, v0); \
    HookWrapper3(void, gluniform2farb, GLint, location, GLfloat, v0, GLfloat, v1); \
    HookWrapper4(void, gluniform3farb, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2); \
    HookWrapper5(void, gluniform4farb, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2, GLfloat, v3); \
    HookWrapper2(void, gluniform1iarb, GLint, location, GLint, v0); \
    HookWrapper3(void, gluniform2iarb, GLint, location, GLint, v0, GLint, v1); \
    HookWrapper4(void, gluniform3iarb, GLint, location, GLint, v0, GLint, v1, GLint, v2); \
    HookWrapper5(void, gluniform4iarb, GLint, location, GLint, v0, GLint, v1, GLint, v2, GLint, v3); \
    HookWrapper3(void, gluniform1fvarb, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void, gluniform2fvarb, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void, gluniform3fvarb, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void, gluniform4fvarb, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper3(void, gluniform1ivarb, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void, gluniform2ivarb, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void, gluniform3ivarb, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper3(void, gluniform4ivarb, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper4(void, gluniformmatrix2fvarb, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, gluniformmatrix3fvarb, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper4(void, gluniformmatrix4fvarb, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper3(void, glgetobjectparameterfvarb, GLhandleARB, obj, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetobjectparameterivarb, GLhandleARB, obj, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glgetinfologarb, GLhandleARB, obj, GLsizei, maxLength, GLsizei *, length, GLcharARB *, infoLog); \
    HookWrapper4(void, glgetattachedobjectsarb, GLhandleARB, containerObj, GLsizei, maxCount, GLsizei *, count, GLhandleARB *, obj); \
    HookWrapper2(GLint, glgetuniformlocationarb, GLhandleARB, programObj, const GLcharARB *, name); \
    HookWrapper7(void, glgetactiveuniformarb, GLhandleARB, programObj, GLuint, index, GLsizei, maxLength, GLsizei *, length, GLint *, size, GLenum *, type, GLcharARB *, name); \
    HookWrapper3(void, glgetuniformfvarb, GLhandleARB, programObj, GLint, location, GLfloat *, params); \
    HookWrapper3(void, glgetuniformivarb, GLhandleARB, programObj, GLint, location, GLint *, params); \
    HookWrapper4(void, glgetshadersourcearb, GLhandleARB, obj, GLsizei, maxLength, GLsizei *, length, GLcharARB *, source); \
    HookWrapper1(void, glloadtransposematrixfarb, const GLfloat *, m); \
    HookWrapper1(void, glloadtransposematrixdarb, const GLdouble *, m); \
    HookWrapper1(void, glmulttransposematrixfarb, const GLfloat *, m); \
    HookWrapper1(void, glmulttransposematrixdarb, const GLdouble *, m); \
    HookWrapper2(void, glweightbvarb, GLint, size, const GLbyte *, weights); \
    HookWrapper2(void, glweightsvarb, GLint, size, const GLshort *, weights); \
    HookWrapper2(void, glweightivarb, GLint, size, const GLint *, weights); \
    HookWrapper2(void, glweightfvarb, GLint, size, const GLfloat *, weights); \
    HookWrapper2(void, glweightdvarb, GLint, size, const GLdouble *, weights); \
    HookWrapper2(void, glweightubvarb, GLint, size, const GLubyte *, weights); \
    HookWrapper2(void, glweightusvarb, GLint, size, const GLushort *, weights); \
    HookWrapper2(void, glweightuivarb, GLint, size, const GLuint *, weights); \
    HookWrapper4(void, glweightpointerarb, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper1(void, glvertexblendarb, GLint, count); \
    HookWrapper5(void, glvertexattrib4nubarb, GLuint, index, GLubyte, x, GLubyte, y, GLubyte, z, GLubyte, w); \
    HookWrapper3(void, glgetvertexattribdvarb, GLuint, index, GLenum, pname, GLdouble *, params); \
    HookWrapper3(void, glgetvertexattribfvarb, GLuint, index, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetvertexattribivarb, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetvertexattribpointervarb, GLuint, index, GLenum, pname, void **, pointer); \
    HookWrapper3(void, glbindattriblocationarb, GLhandleARB, programObj, GLuint, index, const GLcharARB *, name); \
    HookWrapper7(void, glgetactiveattribarb, GLhandleARB, programObj, GLuint, index, GLsizei, maxLength, GLsizei *, length, GLint *, size, GLenum *, type, GLcharARB *, name); \
    HookWrapper2(GLint, glgetattriblocationarb, GLhandleARB, programObj, const GLcharARB *, name); \
    HookWrapper2(void, glwindowpos2darb, GLdouble, x, GLdouble, y); \
    HookWrapper1(void, glwindowpos2dvarb, const GLdouble *, v); \
    HookWrapper2(void, glwindowpos2farb, GLfloat, x, GLfloat, y); \
    HookWrapper1(void, glwindowpos2fvarb, const GLfloat *, v); \
    HookWrapper2(void, glwindowpos2iarb, GLint, x, GLint, y); \
    HookWrapper1(void, glwindowpos2ivarb, const GLint *, v); \
    HookWrapper2(void, glwindowpos2sarb, GLshort, x, GLshort, y); \
    HookWrapper1(void, glwindowpos2svarb, const GLshort *, v); \
    HookWrapper3(void, glwindowpos3darb, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper1(void, glwindowpos3dvarb, const GLdouble *, v); \
    HookWrapper3(void, glwindowpos3farb, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper1(void, glwindowpos3fvarb, const GLfloat *, v); \
    HookWrapper3(void, glwindowpos3iarb, GLint, x, GLint, y, GLint, z); \
    HookWrapper1(void, glwindowpos3ivarb, const GLint *, v); \
    HookWrapper3(void, glwindowpos3sarb, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper1(void, glwindowpos3svarb, const GLshort *, v); \
    HookWrapper2(void, glmultitexcoord1boes, GLenum, texture, GLbyte, s); \
    HookWrapper2(void, glmultitexcoord1bvoes, GLenum, texture, const GLbyte *, coords); \
    HookWrapper3(void, glmultitexcoord2boes, GLenum, texture, GLbyte, s, GLbyte, t); \
    HookWrapper2(void, glmultitexcoord2bvoes, GLenum, texture, const GLbyte *, coords); \
    HookWrapper4(void, glmultitexcoord3boes, GLenum, texture, GLbyte, s, GLbyte, t, GLbyte, r); \
    HookWrapper2(void, glmultitexcoord3bvoes, GLenum, texture, const GLbyte *, coords); \
    HookWrapper5(void, glmultitexcoord4boes, GLenum, texture, GLbyte, s, GLbyte, t, GLbyte, r, GLbyte, q); \
    HookWrapper2(void, glmultitexcoord4bvoes, GLenum, texture, const GLbyte *, coords); \
    HookWrapper1(void, gltexcoord1boes, GLbyte, s); \
    HookWrapper1(void, gltexcoord1bvoes, const GLbyte *, coords); \
    HookWrapper2(void, gltexcoord2boes, GLbyte, s, GLbyte, t); \
    HookWrapper1(void, gltexcoord2bvoes, const GLbyte *, coords); \
    HookWrapper3(void, gltexcoord3boes, GLbyte, s, GLbyte, t, GLbyte, r); \
    HookWrapper1(void, gltexcoord3bvoes, const GLbyte *, coords); \
    HookWrapper4(void, gltexcoord4boes, GLbyte, s, GLbyte, t, GLbyte, r, GLbyte, q); \
    HookWrapper1(void, gltexcoord4bvoes, const GLbyte *, coords); \
    HookWrapper2(void, glvertex2boes, GLbyte, x, GLbyte, y); \
    HookWrapper1(void, glvertex2bvoes, const GLbyte *, coords); \
    HookWrapper3(void, glvertex3boes, GLbyte, x, GLbyte, y, GLbyte, z); \
    HookWrapper1(void, glvertex3bvoes, const GLbyte *, coords); \
    HookWrapper4(void, glvertex4boes, GLbyte, x, GLbyte, y, GLbyte, z, GLbyte, w); \
    HookWrapper1(void, glvertex4bvoes, const GLbyte *, coords); \
    HookWrapper2(void, glalphafuncxoes, GLenum, func, GLfixed, ref); \
    HookWrapper4(void, glclearcolorxoes, GLfixed, red, GLfixed, green, GLfixed, blue, GLfixed, alpha); \
    HookWrapper1(void, glcleardepthxoes, GLfixed, depth); \
    HookWrapper2(void, glclipplanexoes, GLenum, plane, const GLfixed *, equation); \
    HookWrapper4(void, glcolor4xoes, GLfixed, red, GLfixed, green, GLfixed, blue, GLfixed, alpha); \
    HookWrapper2(void, gldepthrangexoes, GLfixed, n, GLfixed, f); \
    HookWrapper2(void, glfogxoes, GLenum, pname, GLfixed, param); \
    HookWrapper2(void, glfogxvoes, GLenum, pname, const GLfixed *, param); \
    HookWrapper6(void, glfrustumxoes, GLfixed, l, GLfixed, r, GLfixed, b, GLfixed, t, GLfixed, n, GLfixed, f); \
    HookWrapper2(void, glgetclipplanexoes, GLenum, plane, GLfixed *, equation); \
    HookWrapper2(void, glgetfixedvoes, GLenum, pname, GLfixed *, params); \
    HookWrapper3(void, glgettexenvxvoes, GLenum, target, GLenum, pname, GLfixed *, params); \
    HookWrapper3(void, glgettexparameterxvoes, GLenum, target, GLenum, pname, GLfixed *, params); \
    HookWrapper2(void, gllightmodelxoes, GLenum, pname, GLfixed, param); \
    HookWrapper2(void, gllightmodelxvoes, GLenum, pname, const GLfixed *, param); \
    HookWrapper3(void, gllightxoes, GLenum, light, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, gllightxvoes, GLenum, light, GLenum, pname, const GLfixed *, params); \
    HookWrapper1(void, gllinewidthxoes, GLfixed, width); \
    HookWrapper1(void, glloadmatrixxoes, const GLfixed *, m); \
    HookWrapper3(void, glmaterialxoes, GLenum, face, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, glmaterialxvoes, GLenum, face, GLenum, pname, const GLfixed *, param); \
    HookWrapper1(void, glmultmatrixxoes, const GLfixed *, m); \
    HookWrapper5(void, glmultitexcoord4xoes, GLenum, texture, GLfixed, s, GLfixed, t, GLfixed, r, GLfixed, q); \
    HookWrapper3(void, glnormal3xoes, GLfixed, nx, GLfixed, ny, GLfixed, nz); \
    HookWrapper6(void, glorthoxoes, GLfixed, l, GLfixed, r, GLfixed, b, GLfixed, t, GLfixed, n, GLfixed, f); \
    HookWrapper2(void, glpointparameterxvoes, GLenum, pname, const GLfixed *, params); \
    HookWrapper1(void, glpointsizexoes, GLfixed, size); \
    HookWrapper2(void, glpolygonoffsetxoes, GLfixed, factor, GLfixed, units); \
    HookWrapper4(void, glrotatexoes, GLfixed, angle, GLfixed, x, GLfixed, y, GLfixed, z); \
    HookWrapper2(void, glsamplecoverageoes, GLfixed, value, GLboolean, invert); \
    HookWrapper3(void, glscalexoes, GLfixed, x, GLfixed, y, GLfixed, z); \
    HookWrapper3(void, gltexenvxoes, GLenum, target, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, gltexenvxvoes, GLenum, target, GLenum, pname, const GLfixed *, params); \
    HookWrapper3(void, gltexparameterxoes, GLenum, target, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, gltexparameterxvoes, GLenum, target, GLenum, pname, const GLfixed *, params); \
    HookWrapper3(void, gltranslatexoes, GLfixed, x, GLfixed, y, GLfixed, z); \
    HookWrapper2(void, glaccumxoes, GLenum, op, GLfixed, value); \
    HookWrapper7(void, glbitmapxoes, GLsizei, width, GLsizei, height, GLfixed, xorig, GLfixed, yorig, GLfixed, xmove, GLfixed, ymove, const GLubyte *, bitmap); \
    HookWrapper4(void, glblendcolorxoes, GLfixed, red, GLfixed, green, GLfixed, blue, GLfixed, alpha); \
    HookWrapper4(void, glclearaccumxoes, GLfixed, red, GLfixed, green, GLfixed, blue, GLfixed, alpha); \
    HookWrapper3(void, glcolor3xoes, GLfixed, red, GLfixed, green, GLfixed, blue); \
    HookWrapper1(void, glcolor3xvoes, const GLfixed *, components); \
    HookWrapper1(void, glcolor4xvoes, const GLfixed *, components); \
    HookWrapper3(void, glconvolutionparameterxoes, GLenum, target, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, glconvolutionparameterxvoes, GLenum, target, GLenum, pname, const GLfixed *, params); \
    HookWrapper1(void, glevalcoord1xoes, GLfixed, u); \
    HookWrapper1(void, glevalcoord1xvoes, const GLfixed *, coords); \
    HookWrapper2(void, glevalcoord2xoes, GLfixed, u, GLfixed, v); \
    HookWrapper1(void, glevalcoord2xvoes, const GLfixed *, coords); \
    HookWrapper3(void, glfeedbackbufferxoes, GLsizei, n, GLenum, type, const GLfixed *, buffer); \
    HookWrapper3(void, glgetconvolutionparameterxvoes, GLenum, target, GLenum, pname, GLfixed *, params); \
    HookWrapper3(void, glgethistogramparameterxvoes, GLenum, target, GLenum, pname, GLfixed *, params); \
    HookWrapper3(void, glgetlightxoes, GLenum, light, GLenum, pname, GLfixed *, params); \
    HookWrapper3(void, glgetmapxvoes, GLenum, target, GLenum, query, GLfixed *, v); \
    HookWrapper3(void, glgetmaterialxoes, GLenum, face, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, glgetpixelmapxv, GLenum, map, GLint, size, GLfixed *, values); \
    HookWrapper3(void, glgettexgenxvoes, GLenum, coord, GLenum, pname, GLfixed *, params); \
    HookWrapper4(void, glgettexlevelparameterxvoes, GLenum, target, GLint, level, GLenum, pname, GLfixed *, params); \
    HookWrapper1(void, glindexxoes, GLfixed, component); \
    HookWrapper1(void, glindexxvoes, const GLfixed *, component); \
    HookWrapper1(void, glloadtransposematrixxoes, const GLfixed *, m); \
    HookWrapper6(void, glmap1xoes, GLenum, target, GLfixed, u1, GLfixed, u2, GLint, stride, GLint, order, GLfixed, points); \
    HookWrapper10(void, glmap2xoes, GLenum, target, GLfixed, u1, GLfixed, u2, GLint, ustride, GLint, uorder, GLfixed, v1, GLfixed, v2, GLint, vstride, GLint, vorder, GLfixed, points); \
    HookWrapper3(void, glmapgrid1xoes, GLint, n, GLfixed, u1, GLfixed, u2); \
    HookWrapper5(void, glmapgrid2xoes, GLint, n, GLfixed, u1, GLfixed, u2, GLfixed, v1, GLfixed, v2); \
    HookWrapper1(void, glmulttransposematrixxoes, const GLfixed *, m); \
    HookWrapper2(void, glmultitexcoord1xoes, GLenum, texture, GLfixed, s); \
    HookWrapper2(void, glmultitexcoord1xvoes, GLenum, texture, const GLfixed *, coords); \
    HookWrapper3(void, glmultitexcoord2xoes, GLenum, texture, GLfixed, s, GLfixed, t); \
    HookWrapper2(void, glmultitexcoord2xvoes, GLenum, texture, const GLfixed *, coords); \
    HookWrapper4(void, glmultitexcoord3xoes, GLenum, texture, GLfixed, s, GLfixed, t, GLfixed, r); \
    HookWrapper2(void, glmultitexcoord3xvoes, GLenum, texture, const GLfixed *, coords); \
    HookWrapper2(void, glmultitexcoord4xvoes, GLenum, texture, const GLfixed *, coords); \
    HookWrapper1(void, glnormal3xvoes, const GLfixed *, coords); \
    HookWrapper1(void, glpassthroughxoes, GLfixed, token); \
    HookWrapper3(void, glpixelmapx, GLenum, map, GLint, size, const GLfixed *, values); \
    HookWrapper2(void, glpixelstorex, GLenum, pname, GLfixed, param); \
    HookWrapper2(void, glpixeltransferxoes, GLenum, pname, GLfixed, param); \
    HookWrapper2(void, glpixelzoomxoes, GLfixed, xfactor, GLfixed, yfactor); \
    HookWrapper3(void, glprioritizetexturesxoes, GLsizei, n, const GLuint *, textures, const GLfixed *, priorities); \
    HookWrapper2(void, glrasterpos2xoes, GLfixed, x, GLfixed, y); \
    HookWrapper1(void, glrasterpos2xvoes, const GLfixed *, coords); \
    HookWrapper3(void, glrasterpos3xoes, GLfixed, x, GLfixed, y, GLfixed, z); \
    HookWrapper1(void, glrasterpos3xvoes, const GLfixed *, coords); \
    HookWrapper4(void, glrasterpos4xoes, GLfixed, x, GLfixed, y, GLfixed, z, GLfixed, w); \
    HookWrapper1(void, glrasterpos4xvoes, const GLfixed *, coords); \
    HookWrapper4(void, glrectxoes, GLfixed, x1, GLfixed, y1, GLfixed, x2, GLfixed, y2); \
    HookWrapper2(void, glrectxvoes, const GLfixed *, v1, const GLfixed *, v2); \
    HookWrapper1(void, gltexcoord1xoes, GLfixed, s); \
    HookWrapper1(void, gltexcoord1xvoes, const GLfixed *, coords); \
    HookWrapper2(void, gltexcoord2xoes, GLfixed, s, GLfixed, t); \
    HookWrapper1(void, gltexcoord2xvoes, const GLfixed *, coords); \
    HookWrapper3(void, gltexcoord3xoes, GLfixed, s, GLfixed, t, GLfixed, r); \
    HookWrapper1(void, gltexcoord3xvoes, const GLfixed *, coords); \
    HookWrapper4(void, gltexcoord4xoes, GLfixed, s, GLfixed, t, GLfixed, r, GLfixed, q); \
    HookWrapper1(void, gltexcoord4xvoes, const GLfixed *, coords); \
    HookWrapper3(void, gltexgenxoes, GLenum, coord, GLenum, pname, GLfixed, param); \
    HookWrapper3(void, gltexgenxvoes, GLenum, coord, GLenum, pname, const GLfixed *, params); \
    HookWrapper1(void, glvertex2xoes, GLfixed, x); \
    HookWrapper1(void, glvertex2xvoes, const GLfixed *, coords); \
    HookWrapper2(void, glvertex3xoes, GLfixed, x, GLfixed, y); \
    HookWrapper1(void, glvertex3xvoes, const GLfixed *, coords); \
    HookWrapper3(void, glvertex4xoes, GLfixed, x, GLfixed, y, GLfixed, z); \
    HookWrapper1(void, glvertex4xvoes, const GLfixed *, coords); \
    HookWrapper2(GLbitfield, glquerymatrixxoes, GLfixed *, mantissa, GLint *, exponent); \
    HookWrapper1(void, glcleardepthfoes, GLclampf, depth); \
    HookWrapper2(void, glclipplanefoes, GLenum, plane, const GLfloat *, equation); \
    HookWrapper2(void, gldepthrangefoes, GLclampf, n, GLclampf, f); \
    HookWrapper6(void, glfrustumfoes, GLfloat, l, GLfloat, r, GLfloat, b, GLfloat, t, GLfloat, n, GLfloat, f); \
    HookWrapper2(void, glgetclipplanefoes, GLenum, plane, GLfloat *, equation); \
    HookWrapper6(void, glorthofoes, GLfloat, l, GLfloat, r, GLfloat, b, GLfloat, t, GLfloat, n, GLfloat, f); \
    HookWrapper1(void, gltbuffermask3dfx, GLuint, mask); \
    HookWrapper5(void, gldebugmessageenableamd, GLenum, category, GLenum, severity, GLsizei, count, const GLuint *, ids, GLboolean, enabled); \
    HookWrapper5(void, gldebugmessageinsertamd, GLenum, category, GLenum, severity, GLuint, id, GLsizei, length, const GLchar *, buf); \
    HookWrapper2(void, gldebugmessagecallbackamd, GLDEBUGPROCAMD, callback, void *, userParam); \
    HookWrapper7(GLuint, glgetdebugmessagelogamd, GLuint, count, GLsizei, bufsize, GLenum *, categories, GLuint *, severities, GLuint *, ids, GLsizei *, lengths, GLchar *, message); \
    HookWrapper3(void, glblendfuncindexedamd, GLuint, buf, GLenum, src, GLenum, dst); \
    HookWrapper5(void, glblendfuncseparateindexedamd, GLuint, buf, GLenum, srcRGB, GLenum, dstRGB, GLenum, srcAlpha, GLenum, dstAlpha); \
    HookWrapper2(void, glblendequationindexedamd, GLuint, buf, GLenum, mode); \
    HookWrapper3(void, glblendequationseparateindexedamd, GLuint, buf, GLenum, modeRGB, GLenum, modeAlpha); \
    HookWrapper2(void, gluniform1i64nv, GLint, location, GLint64EXT, x); \
    HookWrapper3(void, gluniform2i64nv, GLint, location, GLint64EXT, x, GLint64EXT, y); \
    HookWrapper4(void, gluniform3i64nv, GLint, location, GLint64EXT, x, GLint64EXT, y, GLint64EXT, z); \
    HookWrapper5(void, gluniform4i64nv, GLint, location, GLint64EXT, x, GLint64EXT, y, GLint64EXT, z, GLint64EXT, w); \
    HookWrapper3(void, gluniform1i64vnv, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper3(void, gluniform2i64vnv, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper3(void, gluniform3i64vnv, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper3(void, gluniform4i64vnv, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper2(void, gluniform1ui64nv, GLint, location, GLuint64EXT, x); \
    HookWrapper3(void, gluniform2ui64nv, GLint, location, GLuint64EXT, x, GLuint64EXT, y); \
    HookWrapper4(void, gluniform3ui64nv, GLint, location, GLuint64EXT, x, GLuint64EXT, y, GLuint64EXT, z); \
    HookWrapper5(void, gluniform4ui64nv, GLint, location, GLuint64EXT, x, GLuint64EXT, y, GLuint64EXT, z, GLuint64EXT, w); \
    HookWrapper3(void, gluniform1ui64vnv, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper3(void, gluniform2ui64vnv, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper3(void, gluniform3ui64vnv, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper3(void, gluniform4ui64vnv, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper3(void, glgetuniformi64vnv, GLuint, program, GLint, location, GLint64EXT *, params); \
    HookWrapper3(void, glgetuniformui64vnv, GLuint, program, GLint, location, GLuint64EXT *, params); \
    HookWrapper3(void, glprogramuniform1i64nv, GLuint, program, GLint, location, GLint64EXT, x); \
    HookWrapper4(void, glprogramuniform2i64nv, GLuint, program, GLint, location, GLint64EXT, x, GLint64EXT, y); \
    HookWrapper5(void, glprogramuniform3i64nv, GLuint, program, GLint, location, GLint64EXT, x, GLint64EXT, y, GLint64EXT, z); \
    HookWrapper6(void, glprogramuniform4i64nv, GLuint, program, GLint, location, GLint64EXT, x, GLint64EXT, y, GLint64EXT, z, GLint64EXT, w); \
    HookWrapper4(void, glprogramuniform1i64vnv, GLuint, program, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper4(void, glprogramuniform2i64vnv, GLuint, program, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper4(void, glprogramuniform3i64vnv, GLuint, program, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper4(void, glprogramuniform4i64vnv, GLuint, program, GLint, location, GLsizei, count, const GLint64EXT *, value); \
    HookWrapper3(void, glprogramuniform1ui64nv, GLuint, program, GLint, location, GLuint64EXT, x); \
    HookWrapper4(void, glprogramuniform2ui64nv, GLuint, program, GLint, location, GLuint64EXT, x, GLuint64EXT, y); \
    HookWrapper5(void, glprogramuniform3ui64nv, GLuint, program, GLint, location, GLuint64EXT, x, GLuint64EXT, y, GLuint64EXT, z); \
    HookWrapper6(void, glprogramuniform4ui64nv, GLuint, program, GLint, location, GLuint64EXT, x, GLuint64EXT, y, GLuint64EXT, z, GLuint64EXT, w); \
    HookWrapper4(void, glprogramuniform1ui64vnv, GLuint, program, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper4(void, glprogramuniform2ui64vnv, GLuint, program, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper4(void, glprogramuniform3ui64vnv, GLuint, program, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper4(void, glprogramuniform4ui64vnv, GLuint, program, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper3(void, glvertexattribparameteriamd, GLuint, index, GLenum, pname, GLint, param); \
    HookWrapper4(void, glmultidrawarraysindirectamd, GLenum, mode, const void *, indirect, GLsizei, primcount, GLsizei, stride); \
    HookWrapper5(void, glmultidrawelementsindirectamd, GLenum, mode, GLenum, type, const void *, indirect, GLsizei, primcount, GLsizei, stride); \
    HookWrapper3(void, glgennamesamd, GLenum, identifier, GLuint, num, GLuint *, names); \
    HookWrapper3(void, gldeletenamesamd, GLenum, identifier, GLuint, num, const GLuint *, names); \
    HookWrapper2(GLboolean, glisnameamd, GLenum, identifier, GLuint, name); \
    HookWrapper4(void, glqueryobjectparameteruiamd, GLenum, target, GLuint, id, GLenum, pname, GLuint, param); \
    HookWrapper3(void, glgetperfmonitorgroupsamd, GLint *, numGroups, GLsizei, groupsSize, GLuint *, groups); \
    HookWrapper5(void, glgetperfmonitorcountersamd, GLuint, group, GLint *, numCounters, GLint *, maxActiveCounters, GLsizei, counterSize, GLuint *, counters); \
    HookWrapper4(void, glgetperfmonitorgroupstringamd, GLuint, group, GLsizei, bufSize, GLsizei *, length, GLchar *, groupString); \
    HookWrapper5(void, glgetperfmonitorcounterstringamd, GLuint, group, GLuint, counter, GLsizei, bufSize, GLsizei *, length, GLchar *, counterString); \
    HookWrapper4(void, glgetperfmonitorcounterinfoamd, GLuint, group, GLuint, counter, GLenum, pname, void *, data); \
    HookWrapper2(void, glgenperfmonitorsamd, GLsizei, n, GLuint *, monitors); \
    HookWrapper2(void, gldeleteperfmonitorsamd, GLsizei, n, GLuint *, monitors); \
    HookWrapper5(void, glselectperfmonitorcountersamd, GLuint, monitor, GLboolean, enable, GLuint, group, GLint, numCounters, GLuint *, counterList); \
    HookWrapper1(void, glbeginperfmonitoramd, GLuint, monitor); \
    HookWrapper1(void, glendperfmonitoramd, GLuint, monitor); \
    HookWrapper5(void, glgetperfmonitorcounterdataamd, GLuint, monitor, GLenum, pname, GLsizei, dataSize, GLuint *, data, GLint *, bytesWritten); \
    HookWrapper3(void, glsetmultisamplefvamd, GLenum, pname, GLuint, index, const GLfloat *, val); \
    HookWrapper7(void, gltexstoragesparseamd, GLenum, target, GLenum, internalFormat, GLsizei, width, GLsizei, height, GLsizei, depth, GLsizei, layers, GLbitfield, flags); \
    HookWrapper8(void, gltexturestoragesparseamd, GLuint, texture, GLenum, target, GLenum, internalFormat, GLsizei, width, GLsizei, height, GLsizei, depth, GLsizei, layers, GLbitfield, flags); \
    HookWrapper2(void, glstencilopvalueamd, GLenum, face, GLuint, value); \
    HookWrapper1(void, gltessellationfactoramd, GLfloat, factor); \
    HookWrapper1(void, gltessellationmodeamd, GLenum, mode); \
    HookWrapper2(void, glelementpointerapple, GLenum, type, const void *, pointer); \
    HookWrapper3(void, gldrawelementarrayapple, GLenum, mode, GLint, first, GLsizei, count); \
    HookWrapper5(void, gldrawrangeelementarrayapple, GLenum, mode, GLuint, start, GLuint, end, GLint, first, GLsizei, count); \
    HookWrapper4(void, glmultidrawelementarrayapple, GLenum, mode, const GLint *, first, const GLsizei *, count, GLsizei, primcount); \
    HookWrapper6(void, glmultidrawrangeelementarrayapple, GLenum, mode, GLuint, start, GLuint, end, const GLint *, first, const GLsizei *, count, GLsizei, primcount); \
    HookWrapper2(void, glgenfencesapple, GLsizei, n, GLuint *, fences); \
    HookWrapper2(void, gldeletefencesapple, GLsizei, n, const GLuint *, fences); \
    HookWrapper1(void, glsetfenceapple, GLuint, fence); \
    HookWrapper1(GLboolean, glisfenceapple, GLuint, fence); \
    HookWrapper1(GLboolean, gltestfenceapple, GLuint, fence); \
    HookWrapper1(void, glfinishfenceapple, GLuint, fence); \
    HookWrapper2(GLboolean, gltestobjectapple, GLenum, object, GLuint, name); \
    HookWrapper2(void, glfinishobjectapple, GLenum, object, GLint, name); \
    HookWrapper3(void, glbufferparameteriapple, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper3(void, glflushmappedbufferrangeapple, GLenum, target, GLintptr, offset, GLsizeiptr, size); \
    HookWrapper3(GLenum, globjectpurgeableapple, GLenum, objectType, GLuint, name, GLenum, option); \
    HookWrapper3(GLenum, globjectunpurgeableapple, GLenum, objectType, GLuint, name, GLenum, option); \
    HookWrapper4(void, glgetobjectparameterivapple, GLenum, objectType, GLuint, name, GLenum, pname, GLint *, params); \
    HookWrapper3(void, gltexturerangeapple, GLenum, target, GLsizei, length, const void *, pointer); \
    HookWrapper3(void, glgettexparameterpointervapple, GLenum, target, GLenum, pname, void **, params); \
    HookWrapper1(void, glbindvertexarrayapple, GLuint, array); \
    HookWrapper2(void, gldeletevertexarraysapple, GLsizei, n, const GLuint *, arrays); \
    HookWrapper2(void, glgenvertexarraysapple, GLsizei, n, GLuint *, arrays); \
    HookWrapper1(GLboolean, glisvertexarrayapple, GLuint, array); \
    HookWrapper2(void, glvertexarrayrangeapple, GLsizei, length, void *, pointer); \
    HookWrapper2(void, glflushvertexarrayrangeapple, GLsizei, length, void *, pointer); \
    HookWrapper2(void, glvertexarrayparameteriapple, GLenum, pname, GLint, param); \
    HookWrapper2(void, glenablevertexattribapple, GLuint, index, GLenum, pname); \
    HookWrapper2(void, gldisablevertexattribapple, GLuint, index, GLenum, pname); \
    HookWrapper2(GLboolean, glisvertexattribenabledapple, GLuint, index, GLenum, pname); \
    HookWrapper7(void, glmapvertexattrib1dapple, GLuint, index, GLuint, size, GLdouble, u1, GLdouble, u2, GLint, stride, GLint, order, const GLdouble *, points); \
    HookWrapper7(void, glmapvertexattrib1fapple, GLuint, index, GLuint, size, GLfloat, u1, GLfloat, u2, GLint, stride, GLint, order, const GLfloat *, points); \
    HookWrapper11(void, glmapvertexattrib2dapple, GLuint, index, GLuint, size, GLdouble, u1, GLdouble, u2, GLint, ustride, GLint, uorder, GLdouble, v1, GLdouble, v2, GLint, vstride, GLint, vorder, const GLdouble *, points); \
    HookWrapper11(void, glmapvertexattrib2fapple, GLuint, index, GLuint, size, GLfloat, u1, GLfloat, u2, GLint, ustride, GLint, uorder, GLfloat, v1, GLfloat, v2, GLint, vstride, GLint, vorder, const GLfloat *, points); \
    HookWrapper2(void, gldrawbuffersati, GLsizei, n, const GLenum *, bufs); \
    HookWrapper2(void, glelementpointerati, GLenum, type, const void *, pointer); \
    HookWrapper2(void, gldrawelementarrayati, GLenum, mode, GLsizei, count); \
    HookWrapper4(void, gldrawrangeelementarrayati, GLenum, mode, GLuint, start, GLuint, end, GLsizei, count); \
    HookWrapper2(void, gltexbumpparameterivati, GLenum, pname, const GLint *, param); \
    HookWrapper2(void, gltexbumpparameterfvati, GLenum, pname, const GLfloat *, param); \
    HookWrapper2(void, glgettexbumpparameterivati, GLenum, pname, GLint *, param); \
    HookWrapper2(void, glgettexbumpparameterfvati, GLenum, pname, GLfloat *, param); \
    HookWrapper1(GLuint, glgenfragmentshadersati, GLuint, range); \
    HookWrapper1(void, glbindfragmentshaderati, GLuint, id); \
    HookWrapper1(void, gldeletefragmentshaderati, GLuint, id); \
    HookWrapper0(void, glbeginfragmentshaderati); \
    HookWrapper0(void, glendfragmentshaderati); \
    HookWrapper3(void, glpasstexcoordati, GLuint, dst, GLuint, coord, GLenum, swizzle); \
    HookWrapper3(void, glsamplemapati, GLuint, dst, GLuint, interp, GLenum, swizzle); \
    HookWrapper7(void, glcolorfragmentop1ati, GLenum, op, GLuint, dst, GLuint, dstMask, GLuint, dstMod, GLuint, arg1, GLuint, arg1Rep, GLuint, arg1Mod); \
    HookWrapper10(void, glcolorfragmentop2ati, GLenum, op, GLuint, dst, GLuint, dstMask, GLuint, dstMod, GLuint, arg1, GLuint, arg1Rep, GLuint, arg1Mod, GLuint, arg2, GLuint, arg2Rep, GLuint, arg2Mod); \
    HookWrapper13(void, glcolorfragmentop3ati, GLenum, op, GLuint, dst, GLuint, dstMask, GLuint, dstMod, GLuint, arg1, GLuint, arg1Rep, GLuint, arg1Mod, GLuint, arg2, GLuint, arg2Rep, GLuint, arg2Mod, GLuint, arg3, GLuint, arg3Rep, GLuint, arg3Mod); \
    HookWrapper6(void, glalphafragmentop1ati, GLenum, op, GLuint, dst, GLuint, dstMod, GLuint, arg1, GLuint, arg1Rep, GLuint, arg1Mod); \
    HookWrapper9(void, glalphafragmentop2ati, GLenum, op, GLuint, dst, GLuint, dstMod, GLuint, arg1, GLuint, arg1Rep, GLuint, arg1Mod, GLuint, arg2, GLuint, arg2Rep, GLuint, arg2Mod); \
    HookWrapper12(void, glalphafragmentop3ati, GLenum, op, GLuint, dst, GLuint, dstMod, GLuint, arg1, GLuint, arg1Rep, GLuint, arg1Mod, GLuint, arg2, GLuint, arg2Rep, GLuint, arg2Mod, GLuint, arg3, GLuint, arg3Rep, GLuint, arg3Mod); \
    HookWrapper2(void, glsetfragmentshaderconstantati, GLuint, dst, const GLfloat *, value); \
    HookWrapper1(void *, glmapobjectbufferati, GLuint, buffer); \
    HookWrapper1(void, glunmapobjectbufferati, GLuint, buffer); \
    HookWrapper2(void, glpntrianglesiati, GLenum, pname, GLint, param); \
    HookWrapper2(void, glpntrianglesfati, GLenum, pname, GLfloat, param); \
    HookWrapper4(void, glstencilopseparateati, GLenum, face, GLenum, sfail, GLenum, dpfail, GLenum, dppass); \
    HookWrapper4(void, glstencilfuncseparateati, GLenum, frontfunc, GLenum, backfunc, GLint, ref, GLuint, mask); \
    HookWrapper3(GLuint, glnewobjectbufferati, GLsizei, size, const void *, pointer, GLenum, usage); \
    HookWrapper1(GLboolean, glisobjectbufferati, GLuint, buffer); \
    HookWrapper5(void, glupdateobjectbufferati, GLuint, buffer, GLuint, offset, GLsizei, size, const void *, pointer, GLenum, preserve); \
    HookWrapper3(void, glgetobjectbufferfvati, GLuint, buffer, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetobjectbufferivati, GLuint, buffer, GLenum, pname, GLint *, params); \
    HookWrapper1(void, glfreeobjectbufferati, GLuint, buffer); \
    HookWrapper6(void, glarrayobjectati, GLenum, array, GLint, size, GLenum, type, GLsizei, stride, GLuint, buffer, GLuint, offset); \
    HookWrapper3(void, glgetarrayobjectfvati, GLenum, array, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetarrayobjectivati, GLenum, array, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glvariantarrayobjectati, GLuint, id, GLenum, type, GLsizei, stride, GLuint, buffer, GLuint, offset); \
    HookWrapper3(void, glgetvariantarrayobjectfvati, GLuint, id, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetvariantarrayobjectivati, GLuint, id, GLenum, pname, GLint *, params); \
    HookWrapper7(void, glvertexattribarrayobjectati, GLuint, index, GLint, size, GLenum, type, GLboolean, normalized, GLsizei, stride, GLuint, buffer, GLuint, offset); \
    HookWrapper3(void, glgetvertexattribarrayobjectfvati, GLuint, index, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetvertexattribarrayobjectivati, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper2(void, glvertexstream1sati, GLenum, stream, GLshort, x); \
    HookWrapper2(void, glvertexstream1svati, GLenum, stream, const GLshort *, coords); \
    HookWrapper2(void, glvertexstream1iati, GLenum, stream, GLint, x); \
    HookWrapper2(void, glvertexstream1ivati, GLenum, stream, const GLint *, coords); \
    HookWrapper2(void, glvertexstream1fati, GLenum, stream, GLfloat, x); \
    HookWrapper2(void, glvertexstream1fvati, GLenum, stream, const GLfloat *, coords); \
    HookWrapper2(void, glvertexstream1dati, GLenum, stream, GLdouble, x); \
    HookWrapper2(void, glvertexstream1dvati, GLenum, stream, const GLdouble *, coords); \
    HookWrapper3(void, glvertexstream2sati, GLenum, stream, GLshort, x, GLshort, y); \
    HookWrapper2(void, glvertexstream2svati, GLenum, stream, const GLshort *, coords); \
    HookWrapper3(void, glvertexstream2iati, GLenum, stream, GLint, x, GLint, y); \
    HookWrapper2(void, glvertexstream2ivati, GLenum, stream, const GLint *, coords); \
    HookWrapper3(void, glvertexstream2fati, GLenum, stream, GLfloat, x, GLfloat, y); \
    HookWrapper2(void, glvertexstream2fvati, GLenum, stream, const GLfloat *, coords); \
    HookWrapper3(void, glvertexstream2dati, GLenum, stream, GLdouble, x, GLdouble, y); \
    HookWrapper2(void, glvertexstream2dvati, GLenum, stream, const GLdouble *, coords); \
    HookWrapper4(void, glvertexstream3sati, GLenum, stream, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper2(void, glvertexstream3svati, GLenum, stream, const GLshort *, coords); \
    HookWrapper4(void, glvertexstream3iati, GLenum, stream, GLint, x, GLint, y, GLint, z); \
    HookWrapper2(void, glvertexstream3ivati, GLenum, stream, const GLint *, coords); \
    HookWrapper4(void, glvertexstream3fati, GLenum, stream, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glvertexstream3fvati, GLenum, stream, const GLfloat *, coords); \
    HookWrapper4(void, glvertexstream3dati, GLenum, stream, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper2(void, glvertexstream3dvati, GLenum, stream, const GLdouble *, coords); \
    HookWrapper5(void, glvertexstream4sati, GLenum, stream, GLshort, x, GLshort, y, GLshort, z, GLshort, w); \
    HookWrapper2(void, glvertexstream4svati, GLenum, stream, const GLshort *, coords); \
    HookWrapper5(void, glvertexstream4iati, GLenum, stream, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper2(void, glvertexstream4ivati, GLenum, stream, const GLint *, coords); \
    HookWrapper5(void, glvertexstream4fati, GLenum, stream, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper2(void, glvertexstream4fvati, GLenum, stream, const GLfloat *, coords); \
    HookWrapper5(void, glvertexstream4dati, GLenum, stream, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper2(void, glvertexstream4dvati, GLenum, stream, const GLdouble *, coords); \
    HookWrapper4(void, glnormalstream3bati, GLenum, stream, GLbyte, nx, GLbyte, ny, GLbyte, nz); \
    HookWrapper2(void, glnormalstream3bvati, GLenum, stream, const GLbyte *, coords); \
    HookWrapper4(void, glnormalstream3sati, GLenum, stream, GLshort, nx, GLshort, ny, GLshort, nz); \
    HookWrapper2(void, glnormalstream3svati, GLenum, stream, const GLshort *, coords); \
    HookWrapper4(void, glnormalstream3iati, GLenum, stream, GLint, nx, GLint, ny, GLint, nz); \
    HookWrapper2(void, glnormalstream3ivati, GLenum, stream, const GLint *, coords); \
    HookWrapper4(void, glnormalstream3fati, GLenum, stream, GLfloat, nx, GLfloat, ny, GLfloat, nz); \
    HookWrapper2(void, glnormalstream3fvati, GLenum, stream, const GLfloat *, coords); \
    HookWrapper4(void, glnormalstream3dati, GLenum, stream, GLdouble, nx, GLdouble, ny, GLdouble, nz); \
    HookWrapper2(void, glnormalstream3dvati, GLenum, stream, const GLdouble *, coords); \
    HookWrapper1(void, glclientactivevertexstreamati, GLenum, stream); \
    HookWrapper2(void, glvertexblendenviati, GLenum, pname, GLint, param); \
    HookWrapper2(void, glvertexblendenvfati, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, gluniformbufferext, GLuint, program, GLint, location, GLuint, buffer); \
    HookWrapper2(GLint, glgetuniformbuffersizeext, GLuint, program, GLint, location); \
    HookWrapper2(GLintptr, glgetuniformoffsetext, GLuint, program, GLint, location); \
    HookWrapper4(void, glblendfuncseparateext, GLenum, sfactorRGB, GLenum, dfactorRGB, GLenum, sfactorAlpha, GLenum, dfactorAlpha); \
    HookWrapper6(void, glcolorsubtableext, GLenum, target, GLsizei, start, GLsizei, count, GLenum, format, GLenum, type, const void *, data); \
    HookWrapper5(void, glcopycolorsubtableext, GLenum, target, GLsizei, start, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper2(void, gllockarraysext, GLint, first, GLsizei, count); \
    HookWrapper0(void, glunlockarraysext); \
    HookWrapper6(void, glconvolutionfilter1dext, GLenum, target, GLenum, internalformat, GLsizei, width, GLenum, format, GLenum, type, const void *, image); \
    HookWrapper7(void, glconvolutionfilter2dext, GLenum, target, GLenum, internalformat, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, image); \
    HookWrapper3(void, glconvolutionparameterfext, GLenum, target, GLenum, pname, GLfloat, params); \
    HookWrapper3(void, glconvolutionparameterfvext, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glconvolutionparameteriext, GLenum, target, GLenum, pname, GLint, params); \
    HookWrapper3(void, glconvolutionparameterivext, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper5(void, glcopyconvolutionfilter1dext, GLenum, target, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper6(void, glcopyconvolutionfilter2dext, GLenum, target, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper4(void, glgetconvolutionfilterext, GLenum, target, GLenum, format, GLenum, type, void *, image); \
    HookWrapper3(void, glgetconvolutionparameterfvext, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetconvolutionparameterivext, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper6(void, glgetseparablefilterext, GLenum, target, GLenum, format, GLenum, type, void *, row, void *, column, void *, span); \
    HookWrapper8(void, glseparablefilter2dext, GLenum, target, GLenum, internalformat, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, row, const void *, column); \
    HookWrapper3(void, gltangent3bext, GLbyte, tx, GLbyte, ty, GLbyte, tz); \
    HookWrapper1(void, gltangent3bvext, const GLbyte *, v); \
    HookWrapper3(void, gltangent3dext, GLdouble, tx, GLdouble, ty, GLdouble, tz); \
    HookWrapper1(void, gltangent3dvext, const GLdouble *, v); \
    HookWrapper3(void, gltangent3fext, GLfloat, tx, GLfloat, ty, GLfloat, tz); \
    HookWrapper1(void, gltangent3fvext, const GLfloat *, v); \
    HookWrapper3(void, gltangent3iext, GLint, tx, GLint, ty, GLint, tz); \
    HookWrapper1(void, gltangent3ivext, const GLint *, v); \
    HookWrapper3(void, gltangent3sext, GLshort, tx, GLshort, ty, GLshort, tz); \
    HookWrapper1(void, gltangent3svext, const GLshort *, v); \
    HookWrapper3(void, glbinormal3bext, GLbyte, bx, GLbyte, by, GLbyte, bz); \
    HookWrapper1(void, glbinormal3bvext, const GLbyte *, v); \
    HookWrapper3(void, glbinormal3dext, GLdouble, bx, GLdouble, by, GLdouble, bz); \
    HookWrapper1(void, glbinormal3dvext, const GLdouble *, v); \
    HookWrapper3(void, glbinormal3fext, GLfloat, bx, GLfloat, by, GLfloat, bz); \
    HookWrapper1(void, glbinormal3fvext, const GLfloat *, v); \
    HookWrapper3(void, glbinormal3iext, GLint, bx, GLint, by, GLint, bz); \
    HookWrapper1(void, glbinormal3ivext, const GLint *, v); \
    HookWrapper3(void, glbinormal3sext, GLshort, bx, GLshort, by, GLshort, bz); \
    HookWrapper1(void, glbinormal3svext, const GLshort *, v); \
    HookWrapper3(void, gltangentpointerext, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(void, glbinormalpointerext, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper7(void, glcopyteximage1dext, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLint, border); \
    HookWrapper8(void, glcopyteximage2dext, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLint, border); \
    HookWrapper6(void, glcopytexsubimage1dext, GLenum, target, GLint, level, GLint, xoffset, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper8(void, glcopytexsubimage2dext, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper9(void, glcopytexsubimage3dext, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
    HookWrapper2(void, glcullparameterdvext, GLenum, pname, GLdouble *, params); \
    HookWrapper2(void, glcullparameterfvext, GLenum, pname, GLfloat *, params); \
    HookWrapper2(void, glmatrixloadfext, GLenum, mode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixloaddext, GLenum, mode, const GLdouble *, m); \
    HookWrapper2(void, glmatrixmultfext, GLenum, mode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixmultdext, GLenum, mode, const GLdouble *, m); \
    HookWrapper1(void, glmatrixloadidentityext, GLenum, mode); \
    HookWrapper5(void, glmatrixrotatefext, GLenum, mode, GLfloat, angle, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper5(void, glmatrixrotatedext, GLenum, mode, GLdouble, angle, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper4(void, glmatrixscalefext, GLenum, mode, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper4(void, glmatrixscaledext, GLenum, mode, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper4(void, glmatrixtranslatefext, GLenum, mode, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper4(void, glmatrixtranslatedext, GLenum, mode, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper7(void, glmatrixfrustumext, GLenum, mode, GLdouble, left, GLdouble, right, GLdouble, bottom, GLdouble, top, GLdouble, zNear, GLdouble, zFar); \
    HookWrapper7(void, glmatrixorthoext, GLenum, mode, GLdouble, left, GLdouble, right, GLdouble, bottom, GLdouble, top, GLdouble, zNear, GLdouble, zFar); \
    HookWrapper1(void, glmatrixpopext, GLenum, mode); \
    HookWrapper1(void, glmatrixpushext, GLenum, mode); \
    HookWrapper1(void, glclientattribdefaultext, GLbitfield, mask); \
    HookWrapper1(void, glpushclientattribdefaultext, GLbitfield, mask); \
    HookWrapper5(void, glmultitexcoordpointerext, GLenum, texunit, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper4(void, glmultitexenvfext, GLenum, texunit, GLenum, target, GLenum, pname, GLfloat, param); \
    HookWrapper4(void, glmultitexenvfvext, GLenum, texunit, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper4(void, glmultitexenviext, GLenum, texunit, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper4(void, glmultitexenvivext, GLenum, texunit, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glmultitexgendext, GLenum, texunit, GLenum, coord, GLenum, pname, GLdouble, param); \
    HookWrapper4(void, glmultitexgendvext, GLenum, texunit, GLenum, coord, GLenum, pname, const GLdouble *, params); \
    HookWrapper4(void, glmultitexgenfext, GLenum, texunit, GLenum, coord, GLenum, pname, GLfloat, param); \
    HookWrapper4(void, glmultitexgenfvext, GLenum, texunit, GLenum, coord, GLenum, pname, const GLfloat *, params); \
    HookWrapper4(void, glmultitexgeniext, GLenum, texunit, GLenum, coord, GLenum, pname, GLint, param); \
    HookWrapper4(void, glmultitexgenivext, GLenum, texunit, GLenum, coord, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glgetmultitexenvfvext, GLenum, texunit, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glgetmultitexenvivext, GLenum, texunit, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glgetmultitexgendvext, GLenum, texunit, GLenum, coord, GLenum, pname, GLdouble *, params); \
    HookWrapper4(void, glgetmultitexgenfvext, GLenum, texunit, GLenum, coord, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glgetmultitexgenivext, GLenum, texunit, GLenum, coord, GLenum, pname, GLint *, params); \
    HookWrapper2(void, glenableclientstateindexedext, GLenum, array, GLuint, index); \
    HookWrapper2(void, gldisableclientstateindexedext, GLenum, array, GLuint, index); \
    HookWrapper2(void, glmatrixloadtransposefext, GLenum, mode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixloadtransposedext, GLenum, mode, const GLdouble *, m); \
    HookWrapper2(void, glmatrixmulttransposefext, GLenum, mode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixmulttransposedext, GLenum, mode, const GLdouble *, m); \
    HookWrapper3(void, glprogramuniform1fext, GLuint, program, GLint, location, GLfloat, v0); \
    HookWrapper4(void, glprogramuniform2fext, GLuint, program, GLint, location, GLfloat, v0, GLfloat, v1); \
    HookWrapper5(void, glprogramuniform3fext, GLuint, program, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2); \
    HookWrapper6(void, glprogramuniform4fext, GLuint, program, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2, GLfloat, v3); \
    HookWrapper3(void, glprogramuniform1iext, GLuint, program, GLint, location, GLint, v0); \
    HookWrapper4(void, glprogramuniform2iext, GLuint, program, GLint, location, GLint, v0, GLint, v1); \
    HookWrapper5(void, glprogramuniform3iext, GLuint, program, GLint, location, GLint, v0, GLint, v1, GLint, v2); \
    HookWrapper6(void, glprogramuniform4iext, GLuint, program, GLint, location, GLint, v0, GLint, v1, GLint, v2, GLint, v3); \
    HookWrapper4(void, glprogramuniform1fvext, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper4(void, glprogramuniform2fvext, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper4(void, glprogramuniform3fvext, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper4(void, glprogramuniform4fvext, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \
    HookWrapper4(void, glprogramuniform1ivext, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper4(void, glprogramuniform2ivext, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper4(void, glprogramuniform3ivext, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper4(void, glprogramuniform4ivext, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \
    HookWrapper5(void, glprogramuniformmatrix2fvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glprogramuniformmatrix3fvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glprogramuniformmatrix4fvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glprogramuniformmatrix2x3fvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glprogramuniformmatrix3x2fvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glprogramuniformmatrix2x4fvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glprogramuniformmatrix4x2fvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glprogramuniformmatrix3x4fvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper5(void, glprogramuniformmatrix4x3fvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
    HookWrapper3(void, glprogramuniform1uiext, GLuint, program, GLint, location, GLuint, v0); \
    HookWrapper4(void, glprogramuniform2uiext, GLuint, program, GLint, location, GLuint, v0, GLuint, v1); \
    HookWrapper5(void, glprogramuniform3uiext, GLuint, program, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2); \
    HookWrapper6(void, glprogramuniform4uiext, GLuint, program, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2, GLuint, v3); \
    HookWrapper4(void, glprogramuniform1uivext, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper4(void, glprogramuniform2uivext, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper4(void, glprogramuniform3uivext, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper4(void, glprogramuniform4uivext, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \
    HookWrapper5(void, glnamedprogramlocalparameters4fvext, GLuint, program, GLenum, target, GLuint, index, GLsizei, count, const GLfloat *, params); \
    HookWrapper7(void, glnamedprogramlocalparameteri4iext, GLuint, program, GLenum, target, GLuint, index, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper4(void, glnamedprogramlocalparameteri4ivext, GLuint, program, GLenum, target, GLuint, index, const GLint *, params); \
    HookWrapper5(void, glnamedprogramlocalparametersi4ivext, GLuint, program, GLenum, target, GLuint, index, GLsizei, count, const GLint *, params); \
    HookWrapper7(void, glnamedprogramlocalparameteri4uiext, GLuint, program, GLenum, target, GLuint, index, GLuint, x, GLuint, y, GLuint, z, GLuint, w); \
    HookWrapper4(void, glnamedprogramlocalparameteri4uivext, GLuint, program, GLenum, target, GLuint, index, const GLuint *, params); \
    HookWrapper5(void, glnamedprogramlocalparametersi4uivext, GLuint, program, GLenum, target, GLuint, index, GLsizei, count, const GLuint *, params); \
    HookWrapper4(void, glgetnamedprogramlocalparameteriivext, GLuint, program, GLenum, target, GLuint, index, GLint *, params); \
    HookWrapper4(void, glgetnamedprogramlocalparameteriuivext, GLuint, program, GLenum, target, GLuint, index, GLuint *, params); \
    HookWrapper2(void, glenableclientstateiext, GLenum, array, GLuint, index); \
    HookWrapper2(void, gldisableclientstateiext, GLenum, array, GLuint, index); \
    HookWrapper5(void, glnamedprogramstringext, GLuint, program, GLenum, target, GLenum, format, GLsizei, len, const void *, string); \
    HookWrapper7(void, glnamedprogramlocalparameter4dext, GLuint, program, GLenum, target, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper4(void, glnamedprogramlocalparameter4dvext, GLuint, program, GLenum, target, GLuint, index, const GLdouble *, params); \
    HookWrapper7(void, glnamedprogramlocalparameter4fext, GLuint, program, GLenum, target, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper4(void, glnamedprogramlocalparameter4fvext, GLuint, program, GLenum, target, GLuint, index, const GLfloat *, params); \
    HookWrapper4(void, glgetnamedprogramlocalparameterdvext, GLuint, program, GLenum, target, GLuint, index, GLdouble *, params); \
    HookWrapper4(void, glgetnamedprogramlocalparameterfvext, GLuint, program, GLenum, target, GLuint, index, GLfloat *, params); \
    HookWrapper4(void, glgetnamedprogramstringext, GLuint, program, GLenum, target, GLenum, pname, void *, string); \
    HookWrapper6(void, glnamedrenderbufferstoragemultisamplecoverageext, GLuint, renderbuffer, GLsizei, coverageSamples, GLsizei, colorSamples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper5(void, glnamedframebuffertexturefaceext, GLuint, framebuffer, GLenum, attachment, GLuint, texture, GLint, level, GLenum, face); \
    HookWrapper3(void, gltexturerenderbufferext, GLuint, texture, GLenum, target, GLuint, renderbuffer); \
    HookWrapper3(void, glmultitexrenderbufferext, GLenum, texunit, GLenum, target, GLuint, renderbuffer); \
    HookWrapper6(void, glvertexarrayvertexoffsetext, GLuint, vaobj, GLuint, buffer, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper6(void, glvertexarraycoloroffsetext, GLuint, vaobj, GLuint, buffer, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper4(void, glvertexarrayedgeflagoffsetext, GLuint, vaobj, GLuint, buffer, GLsizei, stride, GLintptr, offset); \
    HookWrapper5(void, glvertexarrayindexoffsetext, GLuint, vaobj, GLuint, buffer, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper5(void, glvertexarraynormaloffsetext, GLuint, vaobj, GLuint, buffer, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper6(void, glvertexarraytexcoordoffsetext, GLuint, vaobj, GLuint, buffer, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper7(void, glvertexarraymultitexcoordoffsetext, GLuint, vaobj, GLuint, buffer, GLenum, texunit, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper5(void, glvertexarrayfogcoordoffsetext, GLuint, vaobj, GLuint, buffer, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper6(void, glvertexarraysecondarycoloroffsetext, GLuint, vaobj, GLuint, buffer, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
    HookWrapper2(void, glenablevertexarrayext, GLuint, vaobj, GLenum, array); \
    HookWrapper2(void, gldisablevertexarrayext, GLuint, vaobj, GLenum, array); \
    HookWrapper3(void, glprogramuniform1dext, GLuint, program, GLint, location, GLdouble, x); \
    HookWrapper4(void, glprogramuniform2dext, GLuint, program, GLint, location, GLdouble, x, GLdouble, y); \
    HookWrapper5(void, glprogramuniform3dext, GLuint, program, GLint, location, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper6(void, glprogramuniform4dext, GLuint, program, GLint, location, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper4(void, glprogramuniform1dvext, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper4(void, glprogramuniform2dvext, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper4(void, glprogramuniform3dvext, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper4(void, glprogramuniform4dvext, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \
    HookWrapper5(void, glprogramuniformmatrix2dvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glprogramuniformmatrix3dvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glprogramuniformmatrix4dvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glprogramuniformmatrix2x3dvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glprogramuniformmatrix2x4dvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glprogramuniformmatrix3x2dvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glprogramuniformmatrix3x4dvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glprogramuniformmatrix4x2dvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper5(void, glprogramuniformmatrix4x3dvext, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \
    HookWrapper9(void, gltexturepagecommitmentext, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, resident); \
    HookWrapper1(void, glfogcoordfext, GLfloat, coord); \
    HookWrapper1(void, glfogcoordfvext, const GLfloat *, coord); \
    HookWrapper1(void, glfogcoorddext, GLdouble, coord); \
    HookWrapper1(void, glfogcoorddvext, const GLdouble *, coord); \
    HookWrapper3(void, glfogcoordpointerext, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(void, glprogramparameteriext, GLuint, program, GLenum, pname, GLint, value); \
    HookWrapper4(void, glprogramenvparameters4fvext, GLenum, target, GLuint, index, GLsizei, count, const GLfloat *, params); \
    HookWrapper4(void, glprogramlocalparameters4fvext, GLenum, target, GLuint, index, GLsizei, count, const GLfloat *, params); \
    HookWrapper5(void, glgethistogramext, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, void *, values); \
    HookWrapper3(void, glgethistogramparameterfvext, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgethistogramparameterivext, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper5(void, glgetminmaxext, GLenum, target, GLboolean, reset, GLenum, format, GLenum, type, void *, values); \
    HookWrapper3(void, glgetminmaxparameterfvext, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetminmaxparameterivext, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glhistogramext, GLenum, target, GLsizei, width, GLenum, internalformat, GLboolean, sink); \
    HookWrapper3(void, glminmaxext, GLenum, target, GLenum, internalformat, GLboolean, sink); \
    HookWrapper1(void, glresethistogramext, GLenum, target); \
    HookWrapper1(void, glresetminmaxext, GLenum, target); \
    HookWrapper2(void, glindexfuncext, GLenum, func, GLclampf, ref); \
    HookWrapper2(void, glindexmaterialext, GLenum, face, GLenum, mode); \
    HookWrapper1(void, glapplytextureext, GLenum, mode); \
    HookWrapper1(void, gltexturelightext, GLenum, pname); \
    HookWrapper2(void, gltexturematerialext, GLenum, face, GLenum, mode); \
    HookWrapper5(void, glmultidrawelementsext, GLenum, mode, const GLsizei *, count, GLenum, type, const void *const*, indices, GLsizei, primcount); \
    HookWrapper2(void, glsamplemaskext, GLclampf, value, GLboolean, invert); \
    HookWrapper1(void, glsamplepatternext, GLenum, pattern); \
    HookWrapper6(void, glcolortableext, GLenum, target, GLenum, internalFormat, GLsizei, width, GLenum, format, GLenum, type, const void *, table); \
    HookWrapper4(void, glgetcolortableext, GLenum, target, GLenum, format, GLenum, type, void *, data); \
    HookWrapper3(void, glgetcolortableparameterivext, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetcolortableparameterfvext, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glpixeltransformparameteriext, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper3(void, glpixeltransformparameterfext, GLenum, target, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glpixeltransformparameterivext, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glpixeltransformparameterfvext, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glgetpixeltransformparameterivext, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetpixeltransformparameterfvext, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper2(void, glpointparameterfext, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glpointparameterfvext, GLenum, pname, const GLfloat *, params); \
    HookWrapper2(void, glpolygonoffsetext, GLfloat, factor, GLfloat, bias); \
    HookWrapper3(void, glsecondarycolor3bext, GLbyte, red, GLbyte, green, GLbyte, blue); \
    HookWrapper1(void, glsecondarycolor3bvext, const GLbyte *, v); \
    HookWrapper3(void, glsecondarycolor3dext, GLdouble, red, GLdouble, green, GLdouble, blue); \
    HookWrapper1(void, glsecondarycolor3dvext, const GLdouble *, v); \
    HookWrapper3(void, glsecondarycolor3fext, GLfloat, red, GLfloat, green, GLfloat, blue); \
    HookWrapper1(void, glsecondarycolor3fvext, const GLfloat *, v); \
    HookWrapper3(void, glsecondarycolor3iext, GLint, red, GLint, green, GLint, blue); \
    HookWrapper1(void, glsecondarycolor3ivext, const GLint *, v); \
    HookWrapper3(void, glsecondarycolor3sext, GLshort, red, GLshort, green, GLshort, blue); \
    HookWrapper1(void, glsecondarycolor3svext, const GLshort *, v); \
    HookWrapper3(void, glsecondarycolor3ubext, GLubyte, red, GLubyte, green, GLubyte, blue); \
    HookWrapper1(void, glsecondarycolor3ubvext, const GLubyte *, v); \
    HookWrapper3(void, glsecondarycolor3uiext, GLuint, red, GLuint, green, GLuint, blue); \
    HookWrapper1(void, glsecondarycolor3uivext, const GLuint *, v); \
    HookWrapper3(void, glsecondarycolor3usext, GLushort, red, GLushort, green, GLushort, blue); \
    HookWrapper1(void, glsecondarycolor3usvext, const GLushort *, v); \
    HookWrapper4(void, glsecondarycolorpointerext, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper2(void, gluseshaderprogramext, GLenum, type, GLuint, program); \
    HookWrapper1(void, glactiveprogramext, GLuint, program); \
    HookWrapper2(GLuint, glcreateshaderprogramext, GLenum, type, const GLchar *, string); \
    HookWrapper2(void, glstencilcleartagext, GLsizei, stencilTagBits, GLuint, stencilClearTag); \
    HookWrapper1(void, glactivestencilfaceext, GLenum, face); \
    HookWrapper7(void, gltexsubimage1dext, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper9(void, gltexsubimage2dext, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper11(void, gltexsubimage3dext, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper4(void, glclearcoloriiext, GLint, red, GLint, green, GLint, blue, GLint, alpha); \
    HookWrapper4(void, glclearcoloriuiext, GLuint, red, GLuint, green, GLuint, blue, GLuint, alpha); \
    HookWrapper3(GLboolean, glaretexturesresidentext, GLsizei, n, const GLuint *, textures, GLboolean *, residences); \
    HookWrapper2(void, glbindtextureext, GLenum, target, GLuint, texture); \
    HookWrapper2(void, gldeletetexturesext, GLsizei, n, const GLuint *, textures); \
    HookWrapper2(void, glgentexturesext, GLsizei, n, GLuint *, textures); \
    HookWrapper1(GLboolean, glistextureext, GLuint, texture); \
    HookWrapper3(void, glprioritizetexturesext, GLsizei, n, const GLuint *, textures, const GLclampf *, priorities); \
    HookWrapper1(void, gltexturenormalext, GLenum, mode); \
    HookWrapper4(void, glbindbufferoffsetext, GLenum, target, GLuint, index, GLuint, buffer, GLintptr, offset); \
    HookWrapper1(void, glarrayelementext, GLint, i); \
    HookWrapper5(void, glcolorpointerext, GLint, size, GLenum, type, GLsizei, stride, GLsizei, count, const void *, pointer); \
    HookWrapper3(void, gldrawarraysext, GLenum, mode, GLint, first, GLsizei, count); \
    HookWrapper3(void, gledgeflagpointerext, GLsizei, stride, GLsizei, count, const GLboolean *, pointer); \
    HookWrapper2(void, glgetpointervext, GLenum, pname, void **, params); \
    HookWrapper4(void, glindexpointerext, GLenum, type, GLsizei, stride, GLsizei, count, const void *, pointer); \
    HookWrapper4(void, glnormalpointerext, GLenum, type, GLsizei, stride, GLsizei, count, const void *, pointer); \
    HookWrapper5(void, gltexcoordpointerext, GLint, size, GLenum, type, GLsizei, stride, GLsizei, count, const void *, pointer); \
    HookWrapper5(void, glvertexpointerext, GLint, size, GLenum, type, GLsizei, stride, GLsizei, count, const void *, pointer); \
    HookWrapper0(void, glbeginvertexshaderext); \
    HookWrapper0(void, glendvertexshaderext); \
    HookWrapper1(void, glbindvertexshaderext, GLuint, id); \
    HookWrapper1(GLuint, glgenvertexshadersext, GLuint, range); \
    HookWrapper1(void, gldeletevertexshaderext, GLuint, id); \
    HookWrapper3(void, glshaderop1ext, GLenum, op, GLuint, res, GLuint, arg1); \
    HookWrapper4(void, glshaderop2ext, GLenum, op, GLuint, res, GLuint, arg1, GLuint, arg2); \
    HookWrapper5(void, glshaderop3ext, GLenum, op, GLuint, res, GLuint, arg1, GLuint, arg2, GLuint, arg3); \
    HookWrapper6(void, glswizzleext, GLuint, res, GLuint, in, GLenum, outX, GLenum, outY, GLenum, outZ, GLenum, outW); \
    HookWrapper6(void, glwritemaskext, GLuint, res, GLuint, in, GLenum, outX, GLenum, outY, GLenum, outZ, GLenum, outW); \
    HookWrapper3(void, glinsertcomponentext, GLuint, res, GLuint, src, GLuint, num); \
    HookWrapper3(void, glextractcomponentext, GLuint, res, GLuint, src, GLuint, num); \
    HookWrapper4(GLuint, glgensymbolsext, GLenum, datatype, GLenum, storagetype, GLenum, range, GLuint, components); \
    HookWrapper3(void, glsetinvariantext, GLuint, id, GLenum, type, const void *, addr); \
    HookWrapper3(void, glsetlocalconstantext, GLuint, id, GLenum, type, const void *, addr); \
    HookWrapper2(void, glvariantbvext, GLuint, id, const GLbyte *, addr); \
    HookWrapper2(void, glvariantsvext, GLuint, id, const GLshort *, addr); \
    HookWrapper2(void, glvariantivext, GLuint, id, const GLint *, addr); \
    HookWrapper2(void, glvariantfvext, GLuint, id, const GLfloat *, addr); \
    HookWrapper2(void, glvariantdvext, GLuint, id, const GLdouble *, addr); \
    HookWrapper2(void, glvariantubvext, GLuint, id, const GLubyte *, addr); \
    HookWrapper2(void, glvariantusvext, GLuint, id, const GLushort *, addr); \
    HookWrapper2(void, glvariantuivext, GLuint, id, const GLuint *, addr); \
    HookWrapper4(void, glvariantpointerext, GLuint, id, GLenum, type, GLuint, stride, const void *, addr); \
    HookWrapper1(void, glenablevariantclientstateext, GLuint, id); \
    HookWrapper1(void, gldisablevariantclientstateext, GLuint, id); \
    HookWrapper2(GLuint, glbindlightparameterext, GLenum, light, GLenum, value); \
    HookWrapper2(GLuint, glbindmaterialparameterext, GLenum, face, GLenum, value); \
    HookWrapper3(GLuint, glbindtexgenparameterext, GLenum, unit, GLenum, coord, GLenum, value); \
    HookWrapper2(GLuint, glbindtextureunitparameterext, GLenum, unit, GLenum, value); \
    HookWrapper1(GLuint, glbindparameterext, GLenum, value); \
    HookWrapper2(GLboolean, glisvariantenabledext, GLuint, id, GLenum, cap); \
    HookWrapper3(void, glgetvariantbooleanvext, GLuint, id, GLenum, value, GLboolean *, data); \
    HookWrapper3(void, glgetvariantintegervext, GLuint, id, GLenum, value, GLint *, data); \
    HookWrapper3(void, glgetvariantfloatvext, GLuint, id, GLenum, value, GLfloat *, data); \
    HookWrapper3(void, glgetvariantpointervext, GLuint, id, GLenum, value, void **, data); \
    HookWrapper3(void, glgetinvariantbooleanvext, GLuint, id, GLenum, value, GLboolean *, data); \
    HookWrapper3(void, glgetinvariantintegervext, GLuint, id, GLenum, value, GLint *, data); \
    HookWrapper3(void, glgetinvariantfloatvext, GLuint, id, GLenum, value, GLfloat *, data); \
    HookWrapper3(void, glgetlocalconstantbooleanvext, GLuint, id, GLenum, value, GLboolean *, data); \
    HookWrapper3(void, glgetlocalconstantintegervext, GLuint, id, GLenum, value, GLint *, data); \
    HookWrapper3(void, glgetlocalconstantfloatvext, GLuint, id, GLenum, value, GLfloat *, data); \
    HookWrapper1(void, glvertexweightfext, GLfloat, weight); \
    HookWrapper1(void, glvertexweightfvext, const GLfloat *, weight); \
    HookWrapper4(void, glvertexweightpointerext, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper3(GLsync, glimportsyncext, GLenum, external_sync_type, GLintptr, external_sync, GLbitfield, flags); \
    HookWrapper3(void, glimagetransformparameterihp, GLenum, target, GLenum, pname, GLint, param); \
    HookWrapper3(void, glimagetransformparameterfhp, GLenum, target, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glimagetransformparameterivhp, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glimagetransformparameterfvhp, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glgetimagetransformparameterivhp, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetimagetransformparameterfvhp, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper5(void, glmultimodedrawarraysibm, const GLenum *, mode, const GLint *, first, const GLsizei *, count, GLsizei, primcount, GLint, modestride); \
    HookWrapper6(void, glmultimodedrawelementsibm, const GLenum *, mode, const GLsizei *, count, GLenum, type, const void *const*, indices, GLsizei, primcount, GLint, modestride); \
    HookWrapper1(void, glflushstaticdataibm, GLenum, target); \
    HookWrapper5(void, glcolorpointerlistibm, GLint, size, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper5(void, glsecondarycolorpointerlistibm, GLint, size, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper3(void, gledgeflagpointerlistibm, GLint, stride, const GLboolean **, pointer, GLint, ptrstride); \
    HookWrapper4(void, glfogcoordpointerlistibm, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper4(void, glindexpointerlistibm, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper4(void, glnormalpointerlistibm, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper5(void, gltexcoordpointerlistibm, GLint, size, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper5(void, glvertexpointerlistibm, GLint, size, GLenum, type, GLint, stride, const void **, pointer, GLint, ptrstride); \
    HookWrapper4(void, glblendfuncseparateingr, GLenum, sfactorRGB, GLenum, dfactorRGB, GLenum, sfactorAlpha, GLenum, dfactorAlpha); \
    HookWrapper1(void, glsynctextureintel, GLuint, texture); \
    HookWrapper2(void, glunmaptexture2dintel, GLuint, texture, GLint, level); \
    HookWrapper5(void *, glmaptexture2dintel, GLuint, texture, GLint, level, GLbitfield, access, GLint *, stride, GLenum *, layout); \
    HookWrapper3(void, glvertexpointervintel, GLint, size, GLenum, type, const void **, pointer); \
    HookWrapper2(void, glnormalpointervintel, GLenum, type, const void **, pointer); \
    HookWrapper3(void, glcolorpointervintel, GLint, size, GLenum, type, const void **, pointer); \
    HookWrapper3(void, gltexcoordpointervintel, GLint, size, GLenum, type, const void **, pointer); \
    HookWrapper1(void, glbeginperfqueryintel, GLuint, queryHandle); \
    HookWrapper2(void, glcreateperfqueryintel, GLuint, queryId, GLuint *, queryHandle); \
    HookWrapper1(void, gldeleteperfqueryintel, GLuint, queryHandle); \
    HookWrapper1(void, glendperfqueryintel, GLuint, queryHandle); \
    HookWrapper1(void, glgetfirstperfqueryidintel, GLuint *, queryId); \
    HookWrapper2(void, glgetnextperfqueryidintel, GLuint, queryId, GLuint *, nextQueryId); \
    HookWrapper11(void, glgetperfcounterinfointel, GLuint, queryId, GLuint, counterId, GLuint, counterNameLength, GLchar *, counterName, GLuint, counterDescLength, GLchar *, counterDesc, GLuint *, counterOffset, GLuint *, counterDataSize, GLuint *, counterTypeEnum, GLuint *, counterDataTypeEnum, GLuint64 *, rawCounterMaxValue); \
    HookWrapper5(void, glgetperfquerydataintel, GLuint, queryHandle, GLuint, flags, GLsizei, dataSize, GLvoid *, data, GLuint *, bytesWritten); \
    HookWrapper2(void, glgetperfqueryidbynameintel, GLchar *, queryName, GLuint *, queryId); \
    HookWrapper7(void, glgetperfqueryinfointel, GLuint, queryId, GLuint, queryNameLength, GLchar *, queryName, GLuint *, dataSize, GLuint *, noCounters, GLuint *, noInstances, GLuint *, capsMask); \
    HookWrapper0(void, glresizebuffersmesa); \
    HookWrapper2(void, glwindowpos2dmesa, GLdouble, x, GLdouble, y); \
    HookWrapper1(void, glwindowpos2dvmesa, const GLdouble *, v); \
    HookWrapper2(void, glwindowpos2fmesa, GLfloat, x, GLfloat, y); \
    HookWrapper1(void, glwindowpos2fvmesa, const GLfloat *, v); \
    HookWrapper2(void, glwindowpos2imesa, GLint, x, GLint, y); \
    HookWrapper1(void, glwindowpos2ivmesa, const GLint *, v); \
    HookWrapper2(void, glwindowpos2smesa, GLshort, x, GLshort, y); \
    HookWrapper1(void, glwindowpos2svmesa, const GLshort *, v); \
    HookWrapper3(void, glwindowpos3dmesa, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper1(void, glwindowpos3dvmesa, const GLdouble *, v); \
    HookWrapper3(void, glwindowpos3fmesa, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper1(void, glwindowpos3fvmesa, const GLfloat *, v); \
    HookWrapper3(void, glwindowpos3imesa, GLint, x, GLint, y, GLint, z); \
    HookWrapper1(void, glwindowpos3ivmesa, const GLint *, v); \
    HookWrapper3(void, glwindowpos3smesa, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper1(void, glwindowpos3svmesa, const GLshort *, v); \
    HookWrapper4(void, glwindowpos4dmesa, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper1(void, glwindowpos4dvmesa, const GLdouble *, v); \
    HookWrapper4(void, glwindowpos4fmesa, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper1(void, glwindowpos4fvmesa, const GLfloat *, v); \
    HookWrapper4(void, glwindowpos4imesa, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper1(void, glwindowpos4ivmesa, const GLint *, v); \
    HookWrapper4(void, glwindowpos4smesa, GLshort, x, GLshort, y, GLshort, z, GLshort, w); \
    HookWrapper1(void, glwindowpos4svmesa, const GLshort *, v); \
    HookWrapper1(void, glbeginconditionalrendernvx, GLuint, id); \
    HookWrapper0(void, glendconditionalrendernvx); \
    HookWrapper5(void, glmultidrawarraysindirectbindlessnv, GLenum, mode, const void *, indirect, GLsizei, drawCount, GLsizei, stride, GLint, vertexBufferCount); \
    HookWrapper6(void, glmultidrawelementsindirectbindlessnv, GLenum, mode, GLenum, type, const void *, indirect, GLsizei, drawCount, GLsizei, stride, GLint, vertexBufferCount); \
    HookWrapper6(void, glmultidrawarraysindirectbindlesscountnv, GLenum, mode, const void *, indirect, GLsizei, drawCount, GLsizei, maxDrawCount, GLsizei, stride, GLint, vertexBufferCount); \
    HookWrapper7(void, glmultidrawelementsindirectbindlesscountnv, GLenum, mode, GLenum, type, const void *, indirect, GLsizei, drawCount, GLsizei, maxDrawCount, GLsizei, stride, GLint, vertexBufferCount); \
    HookWrapper1(GLuint64, glgettexturehandlenv, GLuint, texture); \
    HookWrapper2(GLuint64, glgettexturesamplerhandlenv, GLuint, texture, GLuint, sampler); \
    HookWrapper1(void, glmaketexturehandleresidentnv, GLuint64, handle); \
    HookWrapper1(void, glmaketexturehandlenonresidentnv, GLuint64, handle); \
    HookWrapper5(GLuint64, glgetimagehandlenv, GLuint, texture, GLint, level, GLboolean, layered, GLint, layer, GLenum, format); \
    HookWrapper2(void, glmakeimagehandleresidentnv, GLuint64, handle, GLenum, access); \
    HookWrapper1(void, glmakeimagehandlenonresidentnv, GLuint64, handle); \
    HookWrapper2(void, gluniformhandleui64nv, GLint, location, GLuint64, value); \
    HookWrapper3(void, gluniformhandleui64vnv, GLint, location, GLsizei, count, const GLuint64 *, value); \
    HookWrapper3(void, glprogramuniformhandleui64nv, GLuint, program, GLint, location, GLuint64, value); \
    HookWrapper4(void, glprogramuniformhandleui64vnv, GLuint, program, GLint, location, GLsizei, count, const GLuint64 *, values); \
    HookWrapper1(GLboolean, glistexturehandleresidentnv, GLuint64, handle); \
    HookWrapper1(GLboolean, glisimagehandleresidentnv, GLuint64, handle); \
    HookWrapper2(void, glblendparameterinv, GLenum, pname, GLint, value); \
    HookWrapper0(void, glblendbarriernv); \
    HookWrapper2(void, glbeginconditionalrendernv, GLuint, id, GLenum, mode); \
    HookWrapper0(void, glendconditionalrendernv); \
    HookWrapper2(void, glsubpixelprecisionbiasnv, GLuint, xbits, GLuint, ybits); \
    HookWrapper15(void, glcopyimagesubdatanv, GLuint, srcName, GLenum, srcTarget, GLint, srcLevel, GLint, srcX, GLint, srcY, GLint, srcZ, GLuint, dstName, GLenum, dstTarget, GLint, dstLevel, GLint, dstX, GLint, dstY, GLint, dstZ, GLsizei, width, GLsizei, height, GLsizei, depth); \
    HookWrapper2(void, gldepthrangednv, GLdouble, zNear, GLdouble, zFar); \
    HookWrapper1(void, glcleardepthdnv, GLdouble, depth); \
    HookWrapper2(void, gldepthboundsdnv, GLdouble, zmin, GLdouble, zmax); \
    HookWrapper11(void, gldrawtexturenv, GLuint, texture, GLuint, sampler, GLfloat, x0, GLfloat, y0, GLfloat, x1, GLfloat, y1, GLfloat, z, GLfloat, s0, GLfloat, t0, GLfloat, s1, GLfloat, t1); \
    HookWrapper9(void, glmapcontrolpointsnv, GLenum, target, GLuint, index, GLenum, type, GLsizei, ustride, GLsizei, vstride, GLint, uorder, GLint, vorder, GLboolean, packed, const void *, points); \
    HookWrapper3(void, glmapparameterivnv, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glmapparameterfvnv, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper7(void, glgetmapcontrolpointsnv, GLenum, target, GLuint, index, GLenum, type, GLsizei, ustride, GLsizei, vstride, GLboolean, packed, void *, points); \
    HookWrapper3(void, glgetmapparameterivnv, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetmapparameterfvnv, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glgetmapattribparameterivnv, GLenum, target, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glgetmapattribparameterfvnv, GLenum, target, GLuint, index, GLenum, pname, GLfloat *, params); \
    HookWrapper2(void, glevalmapsnv, GLenum, target, GLenum, mode); \
    HookWrapper3(void, glgetmultisamplefvnv, GLenum, pname, GLuint, index, GLfloat *, val); \
    HookWrapper2(void, glsamplemaskindexednv, GLuint, index, GLbitfield, mask); \
    HookWrapper2(void, gltexrenderbuffernv, GLenum, target, GLuint, renderbuffer); \
    HookWrapper2(void, gldeletefencesnv, GLsizei, n, const GLuint *, fences); \
    HookWrapper2(void, glgenfencesnv, GLsizei, n, GLuint *, fences); \
    HookWrapper1(GLboolean, glisfencenv, GLuint, fence); \
    HookWrapper1(GLboolean, gltestfencenv, GLuint, fence); \
    HookWrapper3(void, glgetfenceivnv, GLuint, fence, GLenum, pname, GLint *, params); \
    HookWrapper1(void, glfinishfencenv, GLuint, fence); \
    HookWrapper2(void, glsetfencenv, GLuint, fence, GLenum, condition); \
    HookWrapper1(void, glfragmentcoveragecolornv, GLuint, color); \
    HookWrapper7(void, glprogramnamedparameter4fnv, GLuint, id, GLsizei, len, const GLubyte *, name, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper4(void, glprogramnamedparameter4fvnv, GLuint, id, GLsizei, len, const GLubyte *, name, const GLfloat *, v); \
    HookWrapper7(void, glprogramnamedparameter4dnv, GLuint, id, GLsizei, len, const GLubyte *, name, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper4(void, glprogramnamedparameter4dvnv, GLuint, id, GLsizei, len, const GLubyte *, name, const GLdouble *, v); \
    HookWrapper4(void, glgetprogramnamedparameterfvnv, GLuint, id, GLsizei, len, const GLubyte *, name, GLfloat *, params); \
    HookWrapper4(void, glgetprogramnamedparameterdvnv, GLuint, id, GLsizei, len, const GLubyte *, name, GLdouble *, params); \
    HookWrapper2(void, glcoveragemodulationtablenv, GLsizei, n, const GLfloat *, v); \
    HookWrapper2(void, glgetcoveragemodulationtablenv, GLsizei, bufsize, GLfloat *, v); \
    HookWrapper1(void, glcoveragemodulationnv, GLenum, components); \
    HookWrapper6(void, glrenderbufferstoragemultisamplecoveragenv, GLenum, target, GLsizei, coverageSamples, GLsizei, colorSamples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
    HookWrapper2(void, glprogramvertexlimitnv, GLenum, target, GLint, limit); \
    HookWrapper4(void, glframebuffertextureext, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level); \
    HookWrapper5(void, glframebuffertexturefaceext, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLenum, face); \
    HookWrapper6(void, glprogramlocalparameteri4inv, GLenum, target, GLuint, index, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper3(void, glprogramlocalparameteri4ivnv, GLenum, target, GLuint, index, const GLint *, params); \
    HookWrapper4(void, glprogramlocalparametersi4ivnv, GLenum, target, GLuint, index, GLsizei, count, const GLint *, params); \
    HookWrapper6(void, glprogramlocalparameteri4uinv, GLenum, target, GLuint, index, GLuint, x, GLuint, y, GLuint, z, GLuint, w); \
    HookWrapper3(void, glprogramlocalparameteri4uivnv, GLenum, target, GLuint, index, const GLuint *, params); \
    HookWrapper4(void, glprogramlocalparametersi4uivnv, GLenum, target, GLuint, index, GLsizei, count, const GLuint *, params); \
    HookWrapper6(void, glprogramenvparameteri4inv, GLenum, target, GLuint, index, GLint, x, GLint, y, GLint, z, GLint, w); \
    HookWrapper3(void, glprogramenvparameteri4ivnv, GLenum, target, GLuint, index, const GLint *, params); \
    HookWrapper4(void, glprogramenvparametersi4ivnv, GLenum, target, GLuint, index, GLsizei, count, const GLint *, params); \
    HookWrapper6(void, glprogramenvparameteri4uinv, GLenum, target, GLuint, index, GLuint, x, GLuint, y, GLuint, z, GLuint, w); \
    HookWrapper3(void, glprogramenvparameteri4uivnv, GLenum, target, GLuint, index, const GLuint *, params); \
    HookWrapper4(void, glprogramenvparametersi4uivnv, GLenum, target, GLuint, index, GLsizei, count, const GLuint *, params); \
    HookWrapper3(void, glgetprogramlocalparameteriivnv, GLenum, target, GLuint, index, GLint *, params); \
    HookWrapper3(void, glgetprogramlocalparameteriuivnv, GLenum, target, GLuint, index, GLuint *, params); \
    HookWrapper3(void, glgetprogramenvparameteriivnv, GLenum, target, GLuint, index, GLint *, params); \
    HookWrapper3(void, glgetprogramenvparameteriuivnv, GLenum, target, GLuint, index, GLuint *, params); \
    HookWrapper3(void, glprogramsubroutineparametersuivnv, GLenum, target, GLsizei, count, const GLuint *, params); \
    HookWrapper3(void, glgetprogramsubroutineparameteruivnv, GLenum, target, GLuint, index, GLuint *, param); \
    HookWrapper2(void, glvertex2hnv, GLhalfNV, x, GLhalfNV, y); \
    HookWrapper1(void, glvertex2hvnv, const GLhalfNV *, v); \
    HookWrapper3(void, glvertex3hnv, GLhalfNV, x, GLhalfNV, y, GLhalfNV, z); \
    HookWrapper1(void, glvertex3hvnv, const GLhalfNV *, v); \
    HookWrapper4(void, glvertex4hnv, GLhalfNV, x, GLhalfNV, y, GLhalfNV, z, GLhalfNV, w); \
    HookWrapper1(void, glvertex4hvnv, const GLhalfNV *, v); \
    HookWrapper3(void, glnormal3hnv, GLhalfNV, nx, GLhalfNV, ny, GLhalfNV, nz); \
    HookWrapper1(void, glnormal3hvnv, const GLhalfNV *, v); \
    HookWrapper3(void, glcolor3hnv, GLhalfNV, red, GLhalfNV, green, GLhalfNV, blue); \
    HookWrapper1(void, glcolor3hvnv, const GLhalfNV *, v); \
    HookWrapper4(void, glcolor4hnv, GLhalfNV, red, GLhalfNV, green, GLhalfNV, blue, GLhalfNV, alpha); \
    HookWrapper1(void, glcolor4hvnv, const GLhalfNV *, v); \
    HookWrapper1(void, gltexcoord1hnv, GLhalfNV, s); \
    HookWrapper1(void, gltexcoord1hvnv, const GLhalfNV *, v); \
    HookWrapper2(void, gltexcoord2hnv, GLhalfNV, s, GLhalfNV, t); \
    HookWrapper1(void, gltexcoord2hvnv, const GLhalfNV *, v); \
    HookWrapper3(void, gltexcoord3hnv, GLhalfNV, s, GLhalfNV, t, GLhalfNV, r); \
    HookWrapper1(void, gltexcoord3hvnv, const GLhalfNV *, v); \
    HookWrapper4(void, gltexcoord4hnv, GLhalfNV, s, GLhalfNV, t, GLhalfNV, r, GLhalfNV, q); \
    HookWrapper1(void, gltexcoord4hvnv, const GLhalfNV *, v); \
    HookWrapper2(void, glmultitexcoord1hnv, GLenum, target, GLhalfNV, s); \
    HookWrapper2(void, glmultitexcoord1hvnv, GLenum, target, const GLhalfNV *, v); \
    HookWrapper3(void, glmultitexcoord2hnv, GLenum, target, GLhalfNV, s, GLhalfNV, t); \
    HookWrapper2(void, glmultitexcoord2hvnv, GLenum, target, const GLhalfNV *, v); \
    HookWrapper4(void, glmultitexcoord3hnv, GLenum, target, GLhalfNV, s, GLhalfNV, t, GLhalfNV, r); \
    HookWrapper2(void, glmultitexcoord3hvnv, GLenum, target, const GLhalfNV *, v); \
    HookWrapper5(void, glmultitexcoord4hnv, GLenum, target, GLhalfNV, s, GLhalfNV, t, GLhalfNV, r, GLhalfNV, q); \
    HookWrapper2(void, glmultitexcoord4hvnv, GLenum, target, const GLhalfNV *, v); \
    HookWrapper1(void, glfogcoordhnv, GLhalfNV, fog); \
    HookWrapper1(void, glfogcoordhvnv, const GLhalfNV *, fog); \
    HookWrapper3(void, glsecondarycolor3hnv, GLhalfNV, red, GLhalfNV, green, GLhalfNV, blue); \
    HookWrapper1(void, glsecondarycolor3hvnv, const GLhalfNV *, v); \
    HookWrapper1(void, glvertexweighthnv, GLhalfNV, weight); \
    HookWrapper1(void, glvertexweighthvnv, const GLhalfNV *, weight); \
    HookWrapper2(void, glvertexattrib1hnv, GLuint, index, GLhalfNV, x); \
    HookWrapper2(void, glvertexattrib1hvnv, GLuint, index, const GLhalfNV *, v); \
    HookWrapper3(void, glvertexattrib2hnv, GLuint, index, GLhalfNV, x, GLhalfNV, y); \
    HookWrapper2(void, glvertexattrib2hvnv, GLuint, index, const GLhalfNV *, v); \
    HookWrapper4(void, glvertexattrib3hnv, GLuint, index, GLhalfNV, x, GLhalfNV, y, GLhalfNV, z); \
    HookWrapper2(void, glvertexattrib3hvnv, GLuint, index, const GLhalfNV *, v); \
    HookWrapper5(void, glvertexattrib4hnv, GLuint, index, GLhalfNV, x, GLhalfNV, y, GLhalfNV, z, GLhalfNV, w); \
    HookWrapper2(void, glvertexattrib4hvnv, GLuint, index, const GLhalfNV *, v); \
    HookWrapper3(void, glvertexattribs1hvnv, GLuint, index, GLsizei, n, const GLhalfNV *, v); \
    HookWrapper3(void, glvertexattribs2hvnv, GLuint, index, GLsizei, n, const GLhalfNV *, v); \
    HookWrapper3(void, glvertexattribs3hvnv, GLuint, index, GLsizei, n, const GLhalfNV *, v); \
    HookWrapper3(void, glvertexattribs4hvnv, GLuint, index, GLsizei, n, const GLhalfNV *, v); \
    HookWrapper6(void, glgetinternalformatsampleivnv, GLenum, target, GLenum, internalformat, GLsizei, samples, GLenum, pname, GLsizei, bufSize, GLint *, params); \
    HookWrapper2(void, glgenocclusionqueriesnv, GLsizei, n, GLuint *, ids); \
    HookWrapper2(void, gldeleteocclusionqueriesnv, GLsizei, n, const GLuint *, ids); \
    HookWrapper1(GLboolean, glisocclusionquerynv, GLuint, id); \
    HookWrapper1(void, glbeginocclusionquerynv, GLuint, id); \
    HookWrapper0(void, glendocclusionquerynv); \
    HookWrapper3(void, glgetocclusionqueryivnv, GLuint, id, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetocclusionqueryuivnv, GLuint, id, GLenum, pname, GLuint *, params); \
    HookWrapper5(void, glprogrambufferparametersfvnv, GLenum, target, GLuint, bindingIndex, GLuint, wordIndex, GLsizei, count, const GLfloat *, params); \
    HookWrapper5(void, glprogrambufferparametersiivnv, GLenum, target, GLuint, bindingIndex, GLuint, wordIndex, GLsizei, count, const GLint *, params); \
    HookWrapper5(void, glprogrambufferparametersiuivnv, GLenum, target, GLuint, bindingIndex, GLuint, wordIndex, GLsizei, count, const GLuint *, params); \
    HookWrapper1(GLuint, glgenpathsnv, GLsizei, range); \
    HookWrapper2(void, gldeletepathsnv, GLuint, path, GLsizei, range); \
    HookWrapper1(GLboolean, glispathnv, GLuint, path); \
    HookWrapper6(void, glpathcommandsnv, GLuint, path, GLsizei, numCommands, const GLubyte *, commands, GLsizei, numCoords, GLenum, coordType, const void *, coords); \
    HookWrapper4(void, glpathcoordsnv, GLuint, path, GLsizei, numCoords, GLenum, coordType, const void *, coords); \
    HookWrapper8(void, glpathsubcommandsnv, GLuint, path, GLsizei, commandStart, GLsizei, commandsToDelete, GLsizei, numCommands, const GLubyte *, commands, GLsizei, numCoords, GLenum, coordType, const void *, coords); \
    HookWrapper5(void, glpathsubcoordsnv, GLuint, path, GLsizei, coordStart, GLsizei, numCoords, GLenum, coordType, const void *, coords); \
    HookWrapper4(void, glpathstringnv, GLuint, path, GLenum, format, GLsizei, length, const void *, pathString); \
    HookWrapper10(void, glpathglyphsnv, GLuint, firstPathName, GLenum, fontTarget, const void *, fontName, GLbitfield, fontStyle, GLsizei, numGlyphs, GLenum, type, const void *, charcodes, GLenum, handleMissingGlyphs, GLuint, pathParameterTemplate, GLfloat, emScale); \
    HookWrapper9(void, glpathglyphrangenv, GLuint, firstPathName, GLenum, fontTarget, const void *, fontName, GLbitfield, fontStyle, GLuint, firstGlyph, GLsizei, numGlyphs, GLenum, handleMissingGlyphs, GLuint, pathParameterTemplate, GLfloat, emScale); \
    HookWrapper4(void, glweightpathsnv, GLuint, resultPath, GLsizei, numPaths, const GLuint *, paths, const GLfloat *, weights); \
    HookWrapper2(void, glcopypathnv, GLuint, resultPath, GLuint, srcPath); \
    HookWrapper4(void, glinterpolatepathsnv, GLuint, resultPath, GLuint, pathA, GLuint, pathB, GLfloat, weight); \
    HookWrapper4(void, gltransformpathnv, GLuint, resultPath, GLuint, srcPath, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper3(void, glpathparameterivnv, GLuint, path, GLenum, pname, const GLint *, value); \
    HookWrapper3(void, glpathparameterinv, GLuint, path, GLenum, pname, GLint, value); \
    HookWrapper3(void, glpathparameterfvnv, GLuint, path, GLenum, pname, const GLfloat *, value); \
    HookWrapper3(void, glpathparameterfnv, GLuint, path, GLenum, pname, GLfloat, value); \
    HookWrapper3(void, glpathdasharraynv, GLuint, path, GLsizei, dashCount, const GLfloat *, dashArray); \
    HookWrapper3(void, glpathstencilfuncnv, GLenum, func, GLint, ref, GLuint, mask); \
    HookWrapper2(void, glpathstencildepthoffsetnv, GLfloat, factor, GLfloat, units); \
    HookWrapper3(void, glstencilfillpathnv, GLuint, path, GLenum, fillMode, GLuint, mask); \
    HookWrapper3(void, glstencilstrokepathnv, GLuint, path, GLint, reference, GLuint, mask); \
    HookWrapper8(void, glstencilfillpathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLenum, fillMode, GLuint, mask, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper8(void, glstencilstrokepathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLint, reference, GLuint, mask, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper1(void, glpathcoverdepthfuncnv, GLenum, func); \
    HookWrapper2(void, glcoverfillpathnv, GLuint, path, GLenum, coverMode); \
    HookWrapper2(void, glcoverstrokepathnv, GLuint, path, GLenum, coverMode); \
    HookWrapper7(void, glcoverfillpathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLenum, coverMode, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper7(void, glcoverstrokepathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLenum, coverMode, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper3(void, glgetpathparameterivnv, GLuint, path, GLenum, pname, GLint *, value); \
    HookWrapper3(void, glgetpathparameterfvnv, GLuint, path, GLenum, pname, GLfloat *, value); \
    HookWrapper2(void, glgetpathcommandsnv, GLuint, path, GLubyte *, commands); \
    HookWrapper2(void, glgetpathcoordsnv, GLuint, path, GLfloat *, coords); \
    HookWrapper2(void, glgetpathdasharraynv, GLuint, path, GLfloat *, dashArray); \
    HookWrapper7(void, glgetpathmetricsnv, GLbitfield, metricQueryMask, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLsizei, stride, GLfloat *, metrics); \
    HookWrapper5(void, glgetpathmetricrangenv, GLbitfield, metricQueryMask, GLuint, firstPathName, GLsizei, numPaths, GLsizei, stride, GLfloat *, metrics); \
    HookWrapper9(void, glgetpathspacingnv, GLenum, pathListMode, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLfloat, advanceScale, GLfloat, kerningScale, GLenum, transformType, GLfloat *, returnedSpacing); \
    HookWrapper4(GLboolean, glispointinfillpathnv, GLuint, path, GLuint, mask, GLfloat, x, GLfloat, y); \
    HookWrapper3(GLboolean, glispointinstrokepathnv, GLuint, path, GLfloat, x, GLfloat, y); \
    HookWrapper3(GLfloat, glgetpathlengthnv, GLuint, path, GLsizei, startSegment, GLsizei, numSegments); \
    HookWrapper8(GLboolean, glpointalongpathnv, GLuint, path, GLsizei, startSegment, GLsizei, numSegments, GLfloat, distance, GLfloat *, x, GLfloat *, y, GLfloat *, tangentX, GLfloat *, tangentY); \
    HookWrapper2(void, glmatrixload3x2fnv, GLenum, matrixMode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixload3x3fnv, GLenum, matrixMode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixloadtranspose3x3fnv, GLenum, matrixMode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixmult3x2fnv, GLenum, matrixMode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixmult3x3fnv, GLenum, matrixMode, const GLfloat *, m); \
    HookWrapper2(void, glmatrixmulttranspose3x3fnv, GLenum, matrixMode, const GLfloat *, m); \
    HookWrapper4(void, glstencilthencoverfillpathnv, GLuint, path, GLenum, fillMode, GLuint, mask, GLenum, coverMode); \
    HookWrapper4(void, glstencilthencoverstrokepathnv, GLuint, path, GLint, reference, GLuint, mask, GLenum, coverMode); \
    HookWrapper9(void, glstencilthencoverfillpathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLenum, fillMode, GLuint, mask, GLenum, coverMode, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper9(void, glstencilthencoverstrokepathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLint, reference, GLuint, mask, GLenum, coverMode, GLenum, transformType, const GLfloat *, transformValues); \
    HookWrapper6(GLenum, glpathglyphindexrangenv, GLenum, fontTarget, const void *, fontName, GLbitfield, fontStyle, GLuint, pathParameterTemplate, GLfloat, emScale, GLuint *, baseAndCount); \
    HookWrapper8(GLenum, glpathglyphindexarraynv, GLuint, firstPathName, GLenum, fontTarget, const void *, fontName, GLbitfield, fontStyle, GLuint, firstGlyphIndex, GLsizei, numGlyphs, GLuint, pathParameterTemplate, GLfloat, emScale); \
    HookWrapper9(GLenum, glpathmemoryglyphindexarraynv, GLuint, firstPathName, GLenum, fontTarget, GLsizeiptr, fontSize, const void *, fontData, GLsizei, faceIndex, GLuint, firstGlyphIndex, GLsizei, numGlyphs, GLuint, pathParameterTemplate, GLfloat, emScale); \
    HookWrapper5(void, glprogrampathfragmentinputgennv, GLuint, program, GLint, location, GLenum, genMode, GLint, components, const GLfloat *, coeffs); \
    HookWrapper8(void, glgetprogramresourcefvnv, GLuint, program, GLenum, programInterface, GLuint, index, GLsizei, propCount, const GLenum *, props, GLsizei, bufSize, GLsizei *, length, GLfloat *, params); \
    HookWrapper4(void, glpathcolorgennv, GLenum, color, GLenum, genMode, GLenum, colorFormat, const GLfloat *, coeffs); \
    HookWrapper4(void, glpathtexgennv, GLenum, texCoordSet, GLenum, genMode, GLint, components, const GLfloat *, coeffs); \
    HookWrapper1(void, glpathfoggennv, GLenum, genMode); \
    HookWrapper3(void, glgetpathcolorgenivnv, GLenum, color, GLenum, pname, GLint *, value); \
    HookWrapper3(void, glgetpathcolorgenfvnv, GLenum, color, GLenum, pname, GLfloat *, value); \
    HookWrapper3(void, glgetpathtexgenivnv, GLenum, texCoordSet, GLenum, pname, GLint *, value); \
    HookWrapper3(void, glgetpathtexgenfvnv, GLenum, texCoordSet, GLenum, pname, GLfloat *, value); \
    HookWrapper3(void, glpixeldatarangenv, GLenum, target, GLsizei, length, const void *, pointer); \
    HookWrapper1(void, glflushpixeldatarangenv, GLenum, target); \
    HookWrapper2(void, glpointparameterinv, GLenum, pname, GLint, param); \
    HookWrapper2(void, glpointparameterivnv, GLenum, pname, const GLint *, params); \
    HookWrapper11(void, glpresentframekeyednv, GLuint, video_slot, GLuint64EXT, minPresentTime, GLuint, beginPresentTimeId, GLuint, presentDurationId, GLenum, type, GLenum, target0, GLuint, fill0, GLuint, key0, GLenum, target1, GLuint, fill1, GLuint, key1); \
    HookWrapper13(void, glpresentframedualfillnv, GLuint, video_slot, GLuint64EXT, minPresentTime, GLuint, beginPresentTimeId, GLuint, presentDurationId, GLenum, type, GLenum, target0, GLuint, fill0, GLenum, target1, GLuint, fill1, GLenum, target2, GLuint, fill2, GLenum, target3, GLuint, fill3); \
    HookWrapper3(void, glgetvideoivnv, GLuint, video_slot, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetvideouivnv, GLuint, video_slot, GLenum, pname, GLuint *, params); \
    HookWrapper3(void, glgetvideoi64vnv, GLuint, video_slot, GLenum, pname, GLint64EXT *, params); \
    HookWrapper3(void, glgetvideoui64vnv, GLuint, video_slot, GLenum, pname, GLuint64EXT *, params); \
    HookWrapper0(void, glprimitiverestartnv); \
    HookWrapper1(void, glprimitiverestartindexnv, GLuint, index); \
    HookWrapper2(void, glcombinerparameterfvnv, GLenum, pname, const GLfloat *, params); \
    HookWrapper2(void, glcombinerparameterfnv, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glcombinerparameterivnv, GLenum, pname, const GLint *, params); \
    HookWrapper2(void, glcombinerparameterinv, GLenum, pname, GLint, param); \
    HookWrapper6(void, glcombinerinputnv, GLenum, stage, GLenum, portion, GLenum, variable, GLenum, input, GLenum, mapping, GLenum, componentUsage); \
    HookWrapper10(void, glcombineroutputnv, GLenum, stage, GLenum, portion, GLenum, abOutput, GLenum, cdOutput, GLenum, sumOutput, GLenum, scale, GLenum, bias, GLboolean, abDotProduct, GLboolean, cdDotProduct, GLboolean, muxSum); \
    HookWrapper4(void, glfinalcombinerinputnv, GLenum, variable, GLenum, input, GLenum, mapping, GLenum, componentUsage); \
    HookWrapper5(void, glgetcombinerinputparameterfvnv, GLenum, stage, GLenum, portion, GLenum, variable, GLenum, pname, GLfloat *, params); \
    HookWrapper5(void, glgetcombinerinputparameterivnv, GLenum, stage, GLenum, portion, GLenum, variable, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glgetcombineroutputparameterfvnv, GLenum, stage, GLenum, portion, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glgetcombineroutputparameterivnv, GLenum, stage, GLenum, portion, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetfinalcombinerinputparameterfvnv, GLenum, variable, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetfinalcombinerinputparameterivnv, GLenum, variable, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glcombinerstageparameterfvnv, GLenum, stage, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glgetcombinerstageparameterfvnv, GLenum, stage, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glframebuffersamplelocationsfvnv, GLenum, target, GLuint, start, GLsizei, count, const GLfloat *, v); \
    HookWrapper4(void, glnamedframebuffersamplelocationsfvnv, GLuint, framebuffer, GLuint, start, GLsizei, count, const GLfloat *, v); \
    HookWrapper0(void, glresolvedepthvaluesnv); \
    HookWrapper2(void, glmakebufferresidentnv, GLenum, target, GLenum, access); \
    HookWrapper1(void, glmakebuffernonresidentnv, GLenum, target); \
    HookWrapper1(GLboolean, glisbufferresidentnv, GLenum, target); \
    HookWrapper2(void, glmakenamedbufferresidentnv, GLuint, buffer, GLenum, access); \
    HookWrapper1(void, glmakenamedbuffernonresidentnv, GLuint, buffer); \
    HookWrapper1(GLboolean, glisnamedbufferresidentnv, GLuint, buffer); \
    HookWrapper3(void, glgetbufferparameterui64vnv, GLenum, target, GLenum, pname, GLuint64EXT *, params); \
    HookWrapper3(void, glgetnamedbufferparameterui64vnv, GLuint, buffer, GLenum, pname, GLuint64EXT *, params); \
    HookWrapper2(void, glgetintegerui64vnv, GLenum, value, GLuint64EXT *, result); \
    HookWrapper2(void, gluniformui64nv, GLint, location, GLuint64EXT, value); \
    HookWrapper3(void, gluniformui64vnv, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper3(void, glprogramuniformui64nv, GLuint, program, GLint, location, GLuint64EXT, value); \
    HookWrapper4(void, glprogramuniformui64vnv, GLuint, program, GLint, location, GLsizei, count, const GLuint64EXT *, value); \
    HookWrapper0(void, gltexturebarriernv); \
    HookWrapper7(void, glteximage2dmultisamplecoveragenv, GLenum, target, GLsizei, coverageSamples, GLsizei, colorSamples, GLint, internalFormat, GLsizei, width, GLsizei, height, GLboolean, fixedSampleLocations); \
    HookWrapper8(void, glteximage3dmultisamplecoveragenv, GLenum, target, GLsizei, coverageSamples, GLsizei, colorSamples, GLint, internalFormat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedSampleLocations); \
    HookWrapper7(void, gltextureimage2dmultisamplenv, GLuint, texture, GLenum, target, GLsizei, samples, GLint, internalFormat, GLsizei, width, GLsizei, height, GLboolean, fixedSampleLocations); \
    HookWrapper8(void, gltextureimage3dmultisamplenv, GLuint, texture, GLenum, target, GLsizei, samples, GLint, internalFormat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedSampleLocations); \
    HookWrapper8(void, gltextureimage2dmultisamplecoveragenv, GLuint, texture, GLenum, target, GLsizei, coverageSamples, GLsizei, colorSamples, GLint, internalFormat, GLsizei, width, GLsizei, height, GLboolean, fixedSampleLocations); \
    HookWrapper9(void, gltextureimage3dmultisamplecoveragenv, GLuint, texture, GLenum, target, GLsizei, coverageSamples, GLsizei, colorSamples, GLint, internalFormat, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, fixedSampleLocations); \
    HookWrapper1(void, glbegintransformfeedbacknv, GLenum, primitiveMode); \
    HookWrapper0(void, glendtransformfeedbacknv); \
    HookWrapper3(void, gltransformfeedbackattribsnv, GLsizei, count, const GLint *, attribs, GLenum, bufferMode); \
    HookWrapper5(void, glbindbufferrangenv, GLenum, target, GLuint, index, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \
    HookWrapper4(void, glbindbufferoffsetnv, GLenum, target, GLuint, index, GLuint, buffer, GLintptr, offset); \
    HookWrapper3(void, glbindbufferbasenv, GLenum, target, GLuint, index, GLuint, buffer); \
    HookWrapper4(void, gltransformfeedbackvaryingsnv, GLuint, program, GLsizei, count, const GLint *, locations, GLenum, bufferMode); \
    HookWrapper2(void, glactivevaryingnv, GLuint, program, const GLchar *, name); \
    HookWrapper2(GLint, glgetvaryinglocationnv, GLuint, program, const GLchar *, name); \
    HookWrapper7(void, glgetactivevaryingnv, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLsizei *, size, GLenum *, type, GLchar *, name); \
    HookWrapper3(void, glgettransformfeedbackvaryingnv, GLuint, program, GLuint, index, GLint *, location); \
    HookWrapper5(void, gltransformfeedbackstreamattribsnv, GLsizei, count, const GLint *, attribs, GLsizei, nbuffers, const GLint *, bufstreams, GLenum, bufferMode); \
    HookWrapper2(void, glbindtransformfeedbacknv, GLenum, target, GLuint, id); \
    HookWrapper2(void, gldeletetransformfeedbacksnv, GLsizei, n, const GLuint *, ids); \
    HookWrapper2(void, glgentransformfeedbacksnv, GLsizei, n, GLuint *, ids); \
    HookWrapper1(GLboolean, glistransformfeedbacknv, GLuint, id); \
    HookWrapper0(void, glpausetransformfeedbacknv); \
    HookWrapper0(void, glresumetransformfeedbacknv); \
    HookWrapper2(void, gldrawtransformfeedbacknv, GLenum, mode, GLuint, id); \
    HookWrapper2(void, glvdpauinitnv, const void *, vdpDevice, const void *, getProcAddress); \
    HookWrapper0(void, glvdpaufininv); \
    HookWrapper4(GLvdpauSurfaceNV, glvdpauregistervideosurfacenv, const void *, vdpSurface, GLenum, target, GLsizei, numTextureNames, const GLuint *, textureNames); \
    HookWrapper4(GLvdpauSurfaceNV, glvdpauregisteroutputsurfacenv, const void *, vdpSurface, GLenum, target, GLsizei, numTextureNames, const GLuint *, textureNames); \
    HookWrapper1(GLboolean, glvdpauissurfacenv, GLvdpauSurfaceNV, surface); \
    HookWrapper1(void, glvdpauunregistersurfacenv, GLvdpauSurfaceNV, surface); \
    HookWrapper5(void, glvdpaugetsurfaceivnv, GLvdpauSurfaceNV, surface, GLenum, pname, GLsizei, bufSize, GLsizei *, length, GLint *, values); \
    HookWrapper2(void, glvdpausurfaceaccessnv, GLvdpauSurfaceNV, surface, GLenum, access); \
    HookWrapper2(void, glvdpaumapsurfacesnv, GLsizei, numSurfaces, const GLvdpauSurfaceNV *, surfaces); \
    HookWrapper2(void, glvdpauunmapsurfacesnv, GLsizei, numSurface, const GLvdpauSurfaceNV *, surfaces); \
    HookWrapper0(void, glflushvertexarrayrangenv); \
    HookWrapper2(void, glvertexarrayrangenv, GLsizei, length, const void *, pointer); \
    HookWrapper2(void, glvertexattribl1i64nv, GLuint, index, GLint64EXT, x); \
    HookWrapper3(void, glvertexattribl2i64nv, GLuint, index, GLint64EXT, x, GLint64EXT, y); \
    HookWrapper4(void, glvertexattribl3i64nv, GLuint, index, GLint64EXT, x, GLint64EXT, y, GLint64EXT, z); \
    HookWrapper5(void, glvertexattribl4i64nv, GLuint, index, GLint64EXT, x, GLint64EXT, y, GLint64EXT, z, GLint64EXT, w); \
    HookWrapper2(void, glvertexattribl1i64vnv, GLuint, index, const GLint64EXT *, v); \
    HookWrapper2(void, glvertexattribl2i64vnv, GLuint, index, const GLint64EXT *, v); \
    HookWrapper2(void, glvertexattribl3i64vnv, GLuint, index, const GLint64EXT *, v); \
    HookWrapper2(void, glvertexattribl4i64vnv, GLuint, index, const GLint64EXT *, v); \
    HookWrapper2(void, glvertexattribl1ui64nv, GLuint, index, GLuint64EXT, x); \
    HookWrapper3(void, glvertexattribl2ui64nv, GLuint, index, GLuint64EXT, x, GLuint64EXT, y); \
    HookWrapper4(void, glvertexattribl3ui64nv, GLuint, index, GLuint64EXT, x, GLuint64EXT, y, GLuint64EXT, z); \
    HookWrapper5(void, glvertexattribl4ui64nv, GLuint, index, GLuint64EXT, x, GLuint64EXT, y, GLuint64EXT, z, GLuint64EXT, w); \
    HookWrapper2(void, glvertexattribl1ui64vnv, GLuint, index, const GLuint64EXT *, v); \
    HookWrapper2(void, glvertexattribl2ui64vnv, GLuint, index, const GLuint64EXT *, v); \
    HookWrapper2(void, glvertexattribl3ui64vnv, GLuint, index, const GLuint64EXT *, v); \
    HookWrapper2(void, glvertexattribl4ui64vnv, GLuint, index, const GLuint64EXT *, v); \
    HookWrapper3(void, glgetvertexattribli64vnv, GLuint, index, GLenum, pname, GLint64EXT *, params); \
    HookWrapper3(void, glgetvertexattriblui64vnv, GLuint, index, GLenum, pname, GLuint64EXT *, params); \
    HookWrapper4(void, glvertexattriblformatnv, GLuint, index, GLint, size, GLenum, type, GLsizei, stride); \
    HookWrapper4(void, glbufferaddressrangenv, GLenum, pname, GLuint, index, GLuint64EXT, address, GLsizeiptr, length); \
    HookWrapper3(void, glvertexformatnv, GLint, size, GLenum, type, GLsizei, stride); \
    HookWrapper2(void, glnormalformatnv, GLenum, type, GLsizei, stride); \
    HookWrapper3(void, glcolorformatnv, GLint, size, GLenum, type, GLsizei, stride); \
    HookWrapper2(void, glindexformatnv, GLenum, type, GLsizei, stride); \
    HookWrapper3(void, gltexcoordformatnv, GLint, size, GLenum, type, GLsizei, stride); \
    HookWrapper1(void, gledgeflagformatnv, GLsizei, stride); \
    HookWrapper3(void, glsecondarycolorformatnv, GLint, size, GLenum, type, GLsizei, stride); \
    HookWrapper2(void, glfogcoordformatnv, GLenum, type, GLsizei, stride); \
    HookWrapper5(void, glvertexattribformatnv, GLuint, index, GLint, size, GLenum, type, GLboolean, normalized, GLsizei, stride); \
    HookWrapper4(void, glvertexattribiformatnv, GLuint, index, GLint, size, GLenum, type, GLsizei, stride); \
    HookWrapper3(void, glgetintegerui64i_vnv, GLenum, value, GLuint, index, GLuint64EXT *, result); \
    HookWrapper3(GLboolean, glareprogramsresidentnv, GLsizei, n, const GLuint *, programs, GLboolean *, residences); \
    HookWrapper2(void, glbindprogramnv, GLenum, target, GLuint, id); \
    HookWrapper2(void, gldeleteprogramsnv, GLsizei, n, const GLuint *, programs); \
    HookWrapper3(void, glexecuteprogramnv, GLenum, target, GLuint, id, const GLfloat *, params); \
    HookWrapper2(void, glgenprogramsnv, GLsizei, n, GLuint *, programs); \
    HookWrapper4(void, glgetprogramparameterdvnv, GLenum, target, GLuint, index, GLenum, pname, GLdouble *, params); \
    HookWrapper4(void, glgetprogramparameterfvnv, GLenum, target, GLuint, index, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetprogramivnv, GLuint, id, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetprogramstringnv, GLuint, id, GLenum, pname, GLubyte *, program); \
    HookWrapper4(void, glgettrackmatrixivnv, GLenum, target, GLuint, address, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetvertexattribdvnv, GLuint, index, GLenum, pname, GLdouble *, params); \
    HookWrapper3(void, glgetvertexattribfvnv, GLuint, index, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetvertexattribivnv, GLuint, index, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetvertexattribpointervnv, GLuint, index, GLenum, pname, void **, pointer); \
    HookWrapper1(GLboolean, glisprogramnv, GLuint, id); \
    HookWrapper4(void, glloadprogramnv, GLenum, target, GLuint, id, GLsizei, len, const GLubyte *, program); \
    HookWrapper6(void, glprogramparameter4dnv, GLenum, target, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper3(void, glprogramparameter4dvnv, GLenum, target, GLuint, index, const GLdouble *, v); \
    HookWrapper6(void, glprogramparameter4fnv, GLenum, target, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper3(void, glprogramparameter4fvnv, GLenum, target, GLuint, index, const GLfloat *, v); \
    HookWrapper4(void, glprogramparameters4dvnv, GLenum, target, GLuint, index, GLsizei, count, const GLdouble *, v); \
    HookWrapper4(void, glprogramparameters4fvnv, GLenum, target, GLuint, index, GLsizei, count, const GLfloat *, v); \
    HookWrapper2(void, glrequestresidentprogramsnv, GLsizei, n, const GLuint *, programs); \
    HookWrapper4(void, gltrackmatrixnv, GLenum, target, GLuint, address, GLenum, matrix, GLenum, transform); \
    HookWrapper5(void, glvertexattribpointernv, GLuint, index, GLint, fsize, GLenum, type, GLsizei, stride, const void *, pointer); \
    HookWrapper2(void, glvertexattrib1dnv, GLuint, index, GLdouble, x); \
    HookWrapper2(void, glvertexattrib1dvnv, GLuint, index, const GLdouble *, v); \
    HookWrapper2(void, glvertexattrib1fnv, GLuint, index, GLfloat, x); \
    HookWrapper2(void, glvertexattrib1fvnv, GLuint, index, const GLfloat *, v); \
    HookWrapper2(void, glvertexattrib1snv, GLuint, index, GLshort, x); \
    HookWrapper2(void, glvertexattrib1svnv, GLuint, index, const GLshort *, v); \
    HookWrapper3(void, glvertexattrib2dnv, GLuint, index, GLdouble, x, GLdouble, y); \
    HookWrapper2(void, glvertexattrib2dvnv, GLuint, index, const GLdouble *, v); \
    HookWrapper3(void, glvertexattrib2fnv, GLuint, index, GLfloat, x, GLfloat, y); \
    HookWrapper2(void, glvertexattrib2fvnv, GLuint, index, const GLfloat *, v); \
    HookWrapper3(void, glvertexattrib2snv, GLuint, index, GLshort, x, GLshort, y); \
    HookWrapper2(void, glvertexattrib2svnv, GLuint, index, const GLshort *, v); \
    HookWrapper4(void, glvertexattrib3dnv, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z); \
    HookWrapper2(void, glvertexattrib3dvnv, GLuint, index, const GLdouble *, v); \
    HookWrapper4(void, glvertexattrib3fnv, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glvertexattrib3fvnv, GLuint, index, const GLfloat *, v); \
    HookWrapper4(void, glvertexattrib3snv, GLuint, index, GLshort, x, GLshort, y, GLshort, z); \
    HookWrapper2(void, glvertexattrib3svnv, GLuint, index, const GLshort *, v); \
    HookWrapper5(void, glvertexattrib4dnv, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
    HookWrapper2(void, glvertexattrib4dvnv, GLuint, index, const GLdouble *, v); \
    HookWrapper5(void, glvertexattrib4fnv, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper2(void, glvertexattrib4fvnv, GLuint, index, const GLfloat *, v); \
    HookWrapper5(void, glvertexattrib4snv, GLuint, index, GLshort, x, GLshort, y, GLshort, z, GLshort, w); \
    HookWrapper2(void, glvertexattrib4svnv, GLuint, index, const GLshort *, v); \
    HookWrapper5(void, glvertexattrib4ubnv, GLuint, index, GLubyte, x, GLubyte, y, GLubyte, z, GLubyte, w); \
    HookWrapper2(void, glvertexattrib4ubvnv, GLuint, index, const GLubyte *, v); \
    HookWrapper3(void, glvertexattribs1dvnv, GLuint, index, GLsizei, count, const GLdouble *, v); \
    HookWrapper3(void, glvertexattribs1fvnv, GLuint, index, GLsizei, count, const GLfloat *, v); \
    HookWrapper3(void, glvertexattribs1svnv, GLuint, index, GLsizei, count, const GLshort *, v); \
    HookWrapper3(void, glvertexattribs2dvnv, GLuint, index, GLsizei, count, const GLdouble *, v); \
    HookWrapper3(void, glvertexattribs2fvnv, GLuint, index, GLsizei, count, const GLfloat *, v); \
    HookWrapper3(void, glvertexattribs2svnv, GLuint, index, GLsizei, count, const GLshort *, v); \
    HookWrapper3(void, glvertexattribs3dvnv, GLuint, index, GLsizei, count, const GLdouble *, v); \
    HookWrapper3(void, glvertexattribs3fvnv, GLuint, index, GLsizei, count, const GLfloat *, v); \
    HookWrapper3(void, glvertexattribs3svnv, GLuint, index, GLsizei, count, const GLshort *, v); \
    HookWrapper3(void, glvertexattribs4dvnv, GLuint, index, GLsizei, count, const GLdouble *, v); \
    HookWrapper3(void, glvertexattribs4fvnv, GLuint, index, GLsizei, count, const GLfloat *, v); \
    HookWrapper3(void, glvertexattribs4svnv, GLuint, index, GLsizei, count, const GLshort *, v); \
    HookWrapper3(void, glvertexattribs4ubvnv, GLuint, index, GLsizei, count, const GLubyte *, v); \
    HookWrapper1(void, glbeginvideocapturenv, GLuint, video_capture_slot); \
    HookWrapper4(void, glbindvideocapturestreambuffernv, GLuint, video_capture_slot, GLuint, stream, GLenum, frame_region, GLintptrARB, offset); \
    HookWrapper5(void, glbindvideocapturestreamtexturenv, GLuint, video_capture_slot, GLuint, stream, GLenum, frame_region, GLenum, target, GLuint, texture); \
    HookWrapper1(void, glendvideocapturenv, GLuint, video_capture_slot); \
    HookWrapper3(void, glgetvideocaptureivnv, GLuint, video_capture_slot, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glgetvideocapturestreamivnv, GLuint, video_capture_slot, GLuint, stream, GLenum, pname, GLint *, params); \
    HookWrapper4(void, glgetvideocapturestreamfvnv, GLuint, video_capture_slot, GLuint, stream, GLenum, pname, GLfloat *, params); \
    HookWrapper4(void, glgetvideocapturestreamdvnv, GLuint, video_capture_slot, GLuint, stream, GLenum, pname, GLdouble *, params); \
    HookWrapper3(GLenum, glvideocapturenv, GLuint, video_capture_slot, GLuint *, sequence_num, GLuint64EXT *, capture_time); \
    HookWrapper4(void, glvideocapturestreamparameterivnv, GLuint, video_capture_slot, GLuint, stream, GLenum, pname, const GLint *, params); \
    HookWrapper4(void, glvideocapturestreamparameterfvnv, GLuint, video_capture_slot, GLuint, stream, GLenum, pname, const GLfloat *, params); \
    HookWrapper4(void, glvideocapturestreamparameterdvnv, GLuint, video_capture_slot, GLuint, stream, GLenum, pname, const GLdouble *, params); \
    HookWrapper2(void, glhintpgi, GLenum, target, GLint, mode); \
    HookWrapper3(void, gldetailtexfuncsgis, GLenum, target, GLsizei, n, const GLfloat *, points); \
    HookWrapper2(void, glgetdetailtexfuncsgis, GLenum, target, GLfloat *, points); \
    HookWrapper2(void, glfogfuncsgis, GLsizei, n, const GLfloat *, points); \
    HookWrapper1(void, glgetfogfuncsgis, GLfloat *, points); \
    HookWrapper2(void, glsamplemasksgis, GLclampf, value, GLboolean, invert); \
    HookWrapper1(void, glsamplepatternsgis, GLenum, pattern); \
    HookWrapper2(void, glpixeltexgenparameterisgis, GLenum, pname, GLint, param); \
    HookWrapper2(void, glpixeltexgenparameterivsgis, GLenum, pname, const GLint *, params); \
    HookWrapper2(void, glpixeltexgenparameterfsgis, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glpixeltexgenparameterfvsgis, GLenum, pname, const GLfloat *, params); \
    HookWrapper2(void, glgetpixeltexgenparameterivsgis, GLenum, pname, GLint *, params); \
    HookWrapper2(void, glgetpixeltexgenparameterfvsgis, GLenum, pname, GLfloat *, params); \
    HookWrapper2(void, glpointparameterfsgis, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glpointparameterfvsgis, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glsharpentexfuncsgis, GLenum, target, GLsizei, n, const GLfloat *, points); \
    HookWrapper2(void, glgetsharpentexfuncsgis, GLenum, target, GLfloat *, points); \
    HookWrapper11(void, glteximage4dsgis, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLsizei, size4d, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper13(void, gltexsubimage4dsgis, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, woffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLsizei, size4d, GLenum, format, GLenum, type, const void *, pixels); \
    HookWrapper4(void, gltexturecolormasksgis, GLboolean, red, GLboolean, green, GLboolean, blue, GLboolean, alpha); \
    HookWrapper3(void, glgettexfilterfuncsgis, GLenum, target, GLenum, filter, GLfloat *, weights); \
    HookWrapper4(void, gltexfilterfuncsgis, GLenum, target, GLenum, filter, GLsizei, n, const GLfloat *, weights); \
    HookWrapper1(void, glasyncmarkersgix, GLuint, marker); \
    HookWrapper1(GLint, glfinishasyncsgix, GLuint *, markerp); \
    HookWrapper1(GLint, glpollasyncsgix, GLuint *, markerp); \
    HookWrapper1(GLuint, glgenasyncmarkerssgix, GLsizei, range); \
    HookWrapper2(void, gldeleteasyncmarkerssgix, GLuint, marker, GLsizei, range); \
    HookWrapper1(GLboolean, glisasyncmarkersgix, GLuint, marker); \
    HookWrapper0(void, glflushrastersgix); \
    HookWrapper2(void, glfragmentcolormaterialsgix, GLenum, face, GLenum, mode); \
    HookWrapper3(void, glfragmentlightfsgix, GLenum, light, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glfragmentlightfvsgix, GLenum, light, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glfragmentlightisgix, GLenum, light, GLenum, pname, GLint, param); \
    HookWrapper3(void, glfragmentlightivsgix, GLenum, light, GLenum, pname, const GLint *, params); \
    HookWrapper2(void, glfragmentlightmodelfsgix, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glfragmentlightmodelfvsgix, GLenum, pname, const GLfloat *, params); \
    HookWrapper2(void, glfragmentlightmodelisgix, GLenum, pname, GLint, param); \
    HookWrapper2(void, glfragmentlightmodelivsgix, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glfragmentmaterialfsgix, GLenum, face, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, glfragmentmaterialfvsgix, GLenum, face, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glfragmentmaterialisgix, GLenum, face, GLenum, pname, GLint, param); \
    HookWrapper3(void, glfragmentmaterialivsgix, GLenum, face, GLenum, pname, const GLint *, params); \
    HookWrapper3(void, glgetfragmentlightfvsgix, GLenum, light, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetfragmentlightivsgix, GLenum, light, GLenum, pname, GLint *, params); \
    HookWrapper3(void, glgetfragmentmaterialfvsgix, GLenum, face, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetfragmentmaterialivsgix, GLenum, face, GLenum, pname, GLint *, params); \
    HookWrapper2(void, gllightenvisgix, GLenum, pname, GLint, param); \
    HookWrapper1(void, glframezoomsgix, GLint, factor); \
    HookWrapper2(void, gligloointerfacesgix, GLenum, pname, const void *, params); \
    HookWrapper0(GLint, glgetinstrumentssgix); \
    HookWrapper2(void, glinstrumentsbuffersgix, GLsizei, size, GLint *, buffer); \
    HookWrapper1(GLint, glpollinstrumentssgix, GLint *, marker_p); \
    HookWrapper1(void, glreadinstrumentssgix, GLint, marker); \
    HookWrapper0(void, glstartinstrumentssgix); \
    HookWrapper1(void, glstopinstrumentssgix, GLint, marker); \
    HookWrapper3(void, glgetlistparameterfvsgix, GLuint, list, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetlistparameterivsgix, GLuint, list, GLenum, pname, GLint *, params); \
    HookWrapper3(void, gllistparameterfsgix, GLuint, list, GLenum, pname, GLfloat, param); \
    HookWrapper3(void, gllistparameterfvsgix, GLuint, list, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, gllistparameterisgix, GLuint, list, GLenum, pname, GLint, param); \
    HookWrapper3(void, gllistparameterivsgix, GLuint, list, GLenum, pname, const GLint *, params); \
    HookWrapper1(void, glpixeltexgensgix, GLenum, mode); \
    HookWrapper14(void, gldeformationmap3dsgix, GLenum, target, GLdouble, u1, GLdouble, u2, GLint, ustride, GLint, uorder, GLdouble, v1, GLdouble, v2, GLint, vstride, GLint, vorder, GLdouble, w1, GLdouble, w2, GLint, wstride, GLint, worder, const GLdouble *, points); \
    HookWrapper14(void, gldeformationmap3fsgix, GLenum, target, GLfloat, u1, GLfloat, u2, GLint, ustride, GLint, uorder, GLfloat, v1, GLfloat, v2, GLint, vstride, GLint, vorder, GLfloat, w1, GLfloat, w2, GLint, wstride, GLint, worder, const GLfloat *, points); \
    HookWrapper1(void, gldeformsgix, GLbitfield, mask); \
    HookWrapper1(void, glloadidentitydeformationmapsgix, GLbitfield, mask); \
    HookWrapper1(void, glreferenceplanesgix, const GLdouble *, equation); \
    HookWrapper2(void, glspriteparameterfsgix, GLenum, pname, GLfloat, param); \
    HookWrapper2(void, glspriteparameterfvsgix, GLenum, pname, const GLfloat *, params); \
    HookWrapper2(void, glspriteparameterisgix, GLenum, pname, GLint, param); \
    HookWrapper2(void, glspriteparameterivsgix, GLenum, pname, const GLint *, params); \
    HookWrapper0(void, gltagsamplebuffersgix); \
    HookWrapper6(void, glcolortablesgi, GLenum, target, GLenum, internalformat, GLsizei, width, GLenum, format, GLenum, type, const void *, table); \
    HookWrapper3(void, glcolortableparameterfvsgi, GLenum, target, GLenum, pname, const GLfloat *, params); \
    HookWrapper3(void, glcolortableparameterivsgi, GLenum, target, GLenum, pname, const GLint *, params); \
    HookWrapper5(void, glcopycolortablesgi, GLenum, target, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width); \
    HookWrapper4(void, glgetcolortablesgi, GLenum, target, GLenum, format, GLenum, type, void *, table); \
    HookWrapper3(void, glgetcolortableparameterfvsgi, GLenum, target, GLenum, pname, GLfloat *, params); \
    HookWrapper3(void, glgetcolortableparameterivsgi, GLenum, target, GLenum, pname, GLint *, params); \
    HookWrapper0(void, glfinishtexturesunx); \
    HookWrapper1(void, glglobalalphafactorbsun, GLbyte, factor); \
    HookWrapper1(void, glglobalalphafactorssun, GLshort, factor); \
    HookWrapper1(void, glglobalalphafactorisun, GLint, factor); \
    HookWrapper1(void, glglobalalphafactorfsun, GLfloat, factor); \
    HookWrapper1(void, glglobalalphafactordsun, GLdouble, factor); \
    HookWrapper1(void, glglobalalphafactorubsun, GLubyte, factor); \
    HookWrapper1(void, glglobalalphafactorussun, GLushort, factor); \
    HookWrapper1(void, glglobalalphafactoruisun, GLuint, factor); \
    HookWrapper4(void, gldrawmesharrayssun, GLenum, mode, GLint, first, GLsizei, count, GLsizei, width); \
    HookWrapper1(void, glreplacementcodeuisun, GLuint, code); \
    HookWrapper1(void, glreplacementcodeussun, GLushort, code); \
    HookWrapper1(void, glreplacementcodeubsun, GLubyte, code); \
    HookWrapper1(void, glreplacementcodeuivsun, const GLuint *, code); \
    HookWrapper1(void, glreplacementcodeusvsun, const GLushort *, code); \
    HookWrapper1(void, glreplacementcodeubvsun, const GLubyte *, code); \
    HookWrapper3(void, glreplacementcodepointersun, GLenum, type, GLsizei, stride, const void **, pointer); \
    HookWrapper6(void, glcolor4ubvertex2fsun, GLubyte, r, GLubyte, g, GLubyte, b, GLubyte, a, GLfloat, x, GLfloat, y); \
    HookWrapper2(void, glcolor4ubvertex2fvsun, const GLubyte *, c, const GLfloat *, v); \
    HookWrapper7(void, glcolor4ubvertex3fsun, GLubyte, r, GLubyte, g, GLubyte, b, GLubyte, a, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glcolor4ubvertex3fvsun, const GLubyte *, c, const GLfloat *, v); \
    HookWrapper6(void, glcolor3fvertex3fsun, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glcolor3fvertex3fvsun, const GLfloat *, c, const GLfloat *, v); \
    HookWrapper6(void, glnormal3fvertex3fsun, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glnormal3fvertex3fvsun, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper10(void, glcolor4fnormal3fvertex3fsun, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, a, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, glcolor4fnormal3fvertex3fvsun, const GLfloat *, c, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper5(void, gltexcoord2fvertex3fsun, GLfloat, s, GLfloat, t, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, gltexcoord2fvertex3fvsun, const GLfloat *, tc, const GLfloat *, v); \
    HookWrapper8(void, gltexcoord4fvertex4fsun, GLfloat, s, GLfloat, t, GLfloat, p, GLfloat, q, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper2(void, gltexcoord4fvertex4fvsun, const GLfloat *, tc, const GLfloat *, v); \
    HookWrapper9(void, gltexcoord2fcolor4ubvertex3fsun, GLfloat, s, GLfloat, t, GLubyte, r, GLubyte, g, GLubyte, b, GLubyte, a, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, gltexcoord2fcolor4ubvertex3fvsun, const GLfloat *, tc, const GLubyte *, c, const GLfloat *, v); \
    HookWrapper8(void, gltexcoord2fcolor3fvertex3fsun, GLfloat, s, GLfloat, t, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, gltexcoord2fcolor3fvertex3fvsun, const GLfloat *, tc, const GLfloat *, c, const GLfloat *, v); \
    HookWrapper8(void, gltexcoord2fnormal3fvertex3fsun, GLfloat, s, GLfloat, t, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, gltexcoord2fnormal3fvertex3fvsun, const GLfloat *, tc, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper12(void, gltexcoord2fcolor4fnormal3fvertex3fsun, GLfloat, s, GLfloat, t, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, a, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper4(void, gltexcoord2fcolor4fnormal3fvertex3fvsun, const GLfloat *, tc, const GLfloat *, c, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper15(void, gltexcoord4fcolor4fnormal3fvertex4fsun, GLfloat, s, GLfloat, t, GLfloat, p, GLfloat, q, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, a, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
    HookWrapper4(void, gltexcoord4fcolor4fnormal3fvertex4fvsun, const GLfloat *, tc, const GLfloat *, c, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper4(void, glreplacementcodeuivertex3fsun, GLuint, rc, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper2(void, glreplacementcodeuivertex3fvsun, const GLuint *, rc, const GLfloat *, v); \
    HookWrapper8(void, glreplacementcodeuicolor4ubvertex3fsun, GLuint, rc, GLubyte, r, GLubyte, g, GLubyte, b, GLubyte, a, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, glreplacementcodeuicolor4ubvertex3fvsun, const GLuint *, rc, const GLubyte *, c, const GLfloat *, v); \
    HookWrapper7(void, glreplacementcodeuicolor3fvertex3fsun, GLuint, rc, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, glreplacementcodeuicolor3fvertex3fvsun, const GLuint *, rc, const GLfloat *, c, const GLfloat *, v); \
    HookWrapper7(void, glreplacementcodeuinormal3fvertex3fsun, GLuint, rc, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, glreplacementcodeuinormal3fvertex3fvsun, const GLuint *, rc, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper11(void, glreplacementcodeuicolor4fnormal3fvertex3fsun, GLuint, rc, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, a, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper4(void, glreplacementcodeuicolor4fnormal3fvertex3fvsun, const GLuint *, rc, const GLfloat *, c, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper6(void, glreplacementcodeuitexcoord2fvertex3fsun, GLuint, rc, GLfloat, s, GLfloat, t, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper3(void, glreplacementcodeuitexcoord2fvertex3fvsun, const GLuint *, rc, const GLfloat *, tc, const GLfloat *, v); \
    HookWrapper9(void, glreplacementcodeuitexcoord2fnormal3fvertex3fsun, GLuint, rc, GLfloat, s, GLfloat, t, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper4(void, glreplacementcodeuitexcoord2fnormal3fvertex3fvsun, const GLuint *, rc, const GLfloat *, tc, const GLfloat *, n, const GLfloat *, v); \
    HookWrapper13(void, glreplacementcodeuitexcoord2fcolor4fnormal3fvertex3fsun, GLuint, rc, GLfloat, s, GLfloat, t, GLfloat, r, GLfloat, g, GLfloat, b, GLfloat, a, GLfloat, nx, GLfloat, ny, GLfloat, nz, GLfloat, x, GLfloat, y, GLfloat, z); \
    HookWrapper5(void, glreplacementcodeuitexcoord2fcolor4fnormal3fvertex3fvsun, const GLuint *, rc, const GLfloat *, tc, const GLfloat *, c, const GLfloat *, n, const GLfloat *, v); \



#define CheckUnsupported() \
    HandleUnsupported(PFNGLGETTEXTUREHANDLEARBPROC, glgettexturehandlearb); \
    HandleUnsupported(PFNGLGETTEXTURESAMPLERHANDLEARBPROC, glgettexturesamplerhandlearb); \
    HandleUnsupported(PFNGLMAKETEXTUREHANDLERESIDENTARBPROC, glmaketexturehandleresidentarb); \
    HandleUnsupported(PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC, glmaketexturehandlenonresidentarb); \
    HandleUnsupported(PFNGLGETIMAGEHANDLEARBPROC, glgetimagehandlearb); \
    HandleUnsupported(PFNGLMAKEIMAGEHANDLERESIDENTARBPROC, glmakeimagehandleresidentarb); \
    HandleUnsupported(PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC, glmakeimagehandlenonresidentarb); \
    HandleUnsupported(PFNGLUNIFORMHANDLEUI64ARBPROC, gluniformhandleui64arb); \
    HandleUnsupported(PFNGLUNIFORMHANDLEUI64VARBPROC, gluniformhandleui64varb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC, glprogramuniformhandleui64arb); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC, glprogramuniformhandleui64varb); \
    HandleUnsupported(PFNGLISTEXTUREHANDLERESIDENTARBPROC, glistexturehandleresidentarb); \
    HandleUnsupported(PFNGLISIMAGEHANDLERESIDENTARBPROC, glisimagehandleresidentarb); \
    HandleUnsupported(PFNGLVERTEXATTRIBL1UI64ARBPROC, glvertexattribl1ui64arb); \
    HandleUnsupported(PFNGLVERTEXATTRIBL1UI64VARBPROC, glvertexattribl1ui64varb); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBLUI64VARBPROC, glgetvertexattriblui64varb); \
    HandleUnsupported(PFNGLCREATESYNCFROMCLEVENTARBPROC, glcreatesyncfromcleventarb); \
    HandleUnsupported(PFNGLBUFFERPAGECOMMITMENTARBPROC, glbufferpagecommitmentarb); \
    HandleUnsupported(PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC, glnamedbufferpagecommitmentext); \
    HandleUnsupported(PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC, glnamedbufferpagecommitmentarb); \
    HandleUnsupported(PFNGLTEXPAGECOMMITMENTARBPROC, gltexpagecommitmentarb); \
    HandleUnsupported(PFNGLCLIENTACTIVETEXTUREPROC, glclientactivetexture); \
    HandleUnsupported(PFNGLMULTITEXCOORD1DPROC, glmultitexcoord1d); \
    HandleUnsupported(PFNGLMULTITEXCOORD1DVPROC, glmultitexcoord1dv); \
    HandleUnsupported(PFNGLMULTITEXCOORD1FPROC, glmultitexcoord1f); \
    HandleUnsupported(PFNGLMULTITEXCOORD1FVPROC, glmultitexcoord1fv); \
    HandleUnsupported(PFNGLMULTITEXCOORD1IPROC, glmultitexcoord1i); \
    HandleUnsupported(PFNGLMULTITEXCOORD1IVPROC, glmultitexcoord1iv); \
    HandleUnsupported(PFNGLMULTITEXCOORD1SPROC, glmultitexcoord1s); \
    HandleUnsupported(PFNGLMULTITEXCOORD1SVPROC, glmultitexcoord1sv); \
    HandleUnsupported(PFNGLMULTITEXCOORD2DPROC, glmultitexcoord2d); \
    HandleUnsupported(PFNGLMULTITEXCOORD2DVPROC, glmultitexcoord2dv); \
    HandleUnsupported(PFNGLMULTITEXCOORD2FPROC, glmultitexcoord2f); \
    HandleUnsupported(PFNGLMULTITEXCOORD2FVPROC, glmultitexcoord2fv); \
    HandleUnsupported(PFNGLMULTITEXCOORD2IPROC, glmultitexcoord2i); \
    HandleUnsupported(PFNGLMULTITEXCOORD2IVPROC, glmultitexcoord2iv); \
    HandleUnsupported(PFNGLMULTITEXCOORD2SPROC, glmultitexcoord2s); \
    HandleUnsupported(PFNGLMULTITEXCOORD2SVPROC, glmultitexcoord2sv); \
    HandleUnsupported(PFNGLMULTITEXCOORD3DPROC, glmultitexcoord3d); \
    HandleUnsupported(PFNGLMULTITEXCOORD3DVPROC, glmultitexcoord3dv); \
    HandleUnsupported(PFNGLMULTITEXCOORD3FPROC, glmultitexcoord3f); \
    HandleUnsupported(PFNGLMULTITEXCOORD3FVPROC, glmultitexcoord3fv); \
    HandleUnsupported(PFNGLMULTITEXCOORD3IPROC, glmultitexcoord3i); \
    HandleUnsupported(PFNGLMULTITEXCOORD3IVPROC, glmultitexcoord3iv); \
    HandleUnsupported(PFNGLMULTITEXCOORD3SPROC, glmultitexcoord3s); \
    HandleUnsupported(PFNGLMULTITEXCOORD3SVPROC, glmultitexcoord3sv); \
    HandleUnsupported(PFNGLMULTITEXCOORD4DPROC, glmultitexcoord4d); \
    HandleUnsupported(PFNGLMULTITEXCOORD4DVPROC, glmultitexcoord4dv); \
    HandleUnsupported(PFNGLMULTITEXCOORD4FPROC, glmultitexcoord4f); \
    HandleUnsupported(PFNGLMULTITEXCOORD4FVPROC, glmultitexcoord4fv); \
    HandleUnsupported(PFNGLMULTITEXCOORD4IPROC, glmultitexcoord4i); \
    HandleUnsupported(PFNGLMULTITEXCOORD4IVPROC, glmultitexcoord4iv); \
    HandleUnsupported(PFNGLMULTITEXCOORD4SPROC, glmultitexcoord4s); \
    HandleUnsupported(PFNGLMULTITEXCOORD4SVPROC, glmultitexcoord4sv); \
    HandleUnsupported(PFNGLLOADTRANSPOSEMATRIXFPROC, glloadtransposematrixf); \
    HandleUnsupported(PFNGLLOADTRANSPOSEMATRIXDPROC, glloadtransposematrixd); \
    HandleUnsupported(PFNGLMULTTRANSPOSEMATRIXFPROC, glmulttransposematrixf); \
    HandleUnsupported(PFNGLMULTTRANSPOSEMATRIXDPROC, glmulttransposematrixd); \
    HandleUnsupported(PFNGLFOGCOORDFPROC, glfogcoordf); \
    HandleUnsupported(PFNGLFOGCOORDFVPROC, glfogcoordfv); \
    HandleUnsupported(PFNGLFOGCOORDDPROC, glfogcoordd); \
    HandleUnsupported(PFNGLFOGCOORDDVPROC, glfogcoorddv); \
    HandleUnsupported(PFNGLFOGCOORDPOINTERPROC, glfogcoordpointer); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3BPROC, glsecondarycolor3b); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3BVPROC, glsecondarycolor3bv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3DPROC, glsecondarycolor3d); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3DVPROC, glsecondarycolor3dv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3FPROC, glsecondarycolor3f); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3FVPROC, glsecondarycolor3fv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3IPROC, glsecondarycolor3i); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3IVPROC, glsecondarycolor3iv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3SPROC, glsecondarycolor3s); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3SVPROC, glsecondarycolor3sv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UBPROC, glsecondarycolor3ub); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UBVPROC, glsecondarycolor3ubv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UIPROC, glsecondarycolor3ui); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UIVPROC, glsecondarycolor3uiv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3USPROC, glsecondarycolor3us); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3USVPROC, glsecondarycolor3usv); \
    HandleUnsupported(PFNGLSECONDARYCOLORPOINTERPROC, glsecondarycolorpointer); \
    HandleUnsupported(PFNGLWINDOWPOS2DPROC, glwindowpos2d); \
    HandleUnsupported(PFNGLWINDOWPOS2DVPROC, glwindowpos2dv); \
    HandleUnsupported(PFNGLWINDOWPOS2FPROC, glwindowpos2f); \
    HandleUnsupported(PFNGLWINDOWPOS2FVPROC, glwindowpos2fv); \
    HandleUnsupported(PFNGLWINDOWPOS2IPROC, glwindowpos2i); \
    HandleUnsupported(PFNGLWINDOWPOS2IVPROC, glwindowpos2iv); \
    HandleUnsupported(PFNGLWINDOWPOS2SPROC, glwindowpos2s); \
    HandleUnsupported(PFNGLWINDOWPOS2SVPROC, glwindowpos2sv); \
    HandleUnsupported(PFNGLWINDOWPOS3DPROC, glwindowpos3d); \
    HandleUnsupported(PFNGLWINDOWPOS3DVPROC, glwindowpos3dv); \
    HandleUnsupported(PFNGLWINDOWPOS3FPROC, glwindowpos3f); \
    HandleUnsupported(PFNGLWINDOWPOS3FVPROC, glwindowpos3fv); \
    HandleUnsupported(PFNGLWINDOWPOS3IPROC, glwindowpos3i); \
    HandleUnsupported(PFNGLWINDOWPOS3IVPROC, glwindowpos3iv); \
    HandleUnsupported(PFNGLWINDOWPOS3SPROC, glwindowpos3s); \
    HandleUnsupported(PFNGLWINDOWPOS3SVPROC, glwindowpos3sv); \
    HandleUnsupported(PFNGLVERTEXP2UIPROC, glvertexp2ui); \
    HandleUnsupported(PFNGLVERTEXP2UIVPROC, glvertexp2uiv); \
    HandleUnsupported(PFNGLVERTEXP3UIPROC, glvertexp3ui); \
    HandleUnsupported(PFNGLVERTEXP3UIVPROC, glvertexp3uiv); \
    HandleUnsupported(PFNGLVERTEXP4UIPROC, glvertexp4ui); \
    HandleUnsupported(PFNGLVERTEXP4UIVPROC, glvertexp4uiv); \
    HandleUnsupported(PFNGLTEXCOORDP1UIPROC, gltexcoordp1ui); \
    HandleUnsupported(PFNGLTEXCOORDP1UIVPROC, gltexcoordp1uiv); \
    HandleUnsupported(PFNGLTEXCOORDP2UIPROC, gltexcoordp2ui); \
    HandleUnsupported(PFNGLTEXCOORDP2UIVPROC, gltexcoordp2uiv); \
    HandleUnsupported(PFNGLTEXCOORDP3UIPROC, gltexcoordp3ui); \
    HandleUnsupported(PFNGLTEXCOORDP3UIVPROC, gltexcoordp3uiv); \
    HandleUnsupported(PFNGLTEXCOORDP4UIPROC, gltexcoordp4ui); \
    HandleUnsupported(PFNGLTEXCOORDP4UIVPROC, gltexcoordp4uiv); \
    HandleUnsupported(PFNGLMULTITEXCOORDP1UIPROC, glmultitexcoordp1ui); \
    HandleUnsupported(PFNGLMULTITEXCOORDP1UIVPROC, glmultitexcoordp1uiv); \
    HandleUnsupported(PFNGLMULTITEXCOORDP2UIPROC, glmultitexcoordp2ui); \
    HandleUnsupported(PFNGLMULTITEXCOORDP2UIVPROC, glmultitexcoordp2uiv); \
    HandleUnsupported(PFNGLMULTITEXCOORDP3UIPROC, glmultitexcoordp3ui); \
    HandleUnsupported(PFNGLMULTITEXCOORDP3UIVPROC, glmultitexcoordp3uiv); \
    HandleUnsupported(PFNGLMULTITEXCOORDP4UIPROC, glmultitexcoordp4ui); \
    HandleUnsupported(PFNGLMULTITEXCOORDP4UIVPROC, glmultitexcoordp4uiv); \
    HandleUnsupported(PFNGLNORMALP3UIPROC, glnormalp3ui); \
    HandleUnsupported(PFNGLNORMALP3UIVPROC, glnormalp3uiv); \
    HandleUnsupported(PFNGLCOLORP3UIPROC, glcolorp3ui); \
    HandleUnsupported(PFNGLCOLORP3UIVPROC, glcolorp3uiv); \
    HandleUnsupported(PFNGLCOLORP4UIPROC, glcolorp4ui); \
    HandleUnsupported(PFNGLCOLORP4UIVPROC, glcolorp4uiv); \
    HandleUnsupported(PFNGLSECONDARYCOLORP3UIPROC, glsecondarycolorp3ui); \
    HandleUnsupported(PFNGLSECONDARYCOLORP3UIVPROC, glsecondarycolorp3uiv); \
    HandleUnsupported(PFNGLGETNMAPDVPROC, glgetnmapdv); \
    HandleUnsupported(PFNGLGETNMAPFVPROC, glgetnmapfv); \
    HandleUnsupported(PFNGLGETNMAPIVPROC, glgetnmapiv); \
    HandleUnsupported(PFNGLGETNPIXELMAPFVPROC, glgetnpixelmapfv); \
    HandleUnsupported(PFNGLGETNPIXELMAPUIVPROC, glgetnpixelmapuiv); \
    HandleUnsupported(PFNGLGETNPIXELMAPUSVPROC, glgetnpixelmapusv); \
    HandleUnsupported(PFNGLGETNPOLYGONSTIPPLEPROC, glgetnpolygonstipple); \
    HandleUnsupported(PFNGLGETNCOLORTABLEPROC, glgetncolortable); \
    HandleUnsupported(PFNGLGETNCONVOLUTIONFILTERPROC, glgetnconvolutionfilter); \
    HandleUnsupported(PFNGLGETNSEPARABLEFILTERPROC, glgetnseparablefilter); \
    HandleUnsupported(PFNGLGETNHISTOGRAMPROC, glgetnhistogram); \
    HandleUnsupported(PFNGLGETNMINMAXPROC, glgetnminmax); \
    HandleUnsupported(PFNGLPROGRAMSTRINGARBPROC, glprogramstringarb); \
    HandleUnsupported(PFNGLBINDPROGRAMARBPROC, glbindprogramarb); \
    HandleUnsupported(PFNGLDELETEPROGRAMSARBPROC, gldeleteprogramsarb); \
    HandleUnsupported(PFNGLGENPROGRAMSARBPROC, glgenprogramsarb); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETER4DARBPROC, glprogramenvparameter4darb); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETER4DVARBPROC, glprogramenvparameter4dvarb); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETER4FARBPROC, glprogramenvparameter4farb); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETER4FVARBPROC, glprogramenvparameter4fvarb); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETER4DARBPROC, glprogramlocalparameter4darb); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETER4DVARBPROC, glprogramlocalparameter4dvarb); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETER4FARBPROC, glprogramlocalparameter4farb); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETER4FVARBPROC, glprogramlocalparameter4fvarb); \
    HandleUnsupported(PFNGLGETPROGRAMENVPARAMETERDVARBPROC, glgetprogramenvparameterdvarb); \
    HandleUnsupported(PFNGLGETPROGRAMENVPARAMETERFVARBPROC, glgetprogramenvparameterfvarb); \
    HandleUnsupported(PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC, glgetprogramlocalparameterdvarb); \
    HandleUnsupported(PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC, glgetprogramlocalparameterfvarb); \
    HandleUnsupported(PFNGLGETPROGRAMIVARBPROC, glgetprogramivarb); \
    HandleUnsupported(PFNGLGETPROGRAMSTRINGARBPROC, glgetprogramstringarb); \
    HandleUnsupported(PFNGLISPROGRAMARBPROC, glisprogramarb); \
    HandleUnsupported(PFNGLFRAMEBUFFERTEXTUREFACEARBPROC, glframebuffertexturefacearb); \
    HandleUnsupported(PFNGLCOLORTABLEPROC, glcolortable); \
    HandleUnsupported(PFNGLCOLORTABLEPARAMETERFVPROC, glcolortableparameterfv); \
    HandleUnsupported(PFNGLCOLORTABLEPARAMETERIVPROC, glcolortableparameteriv); \
    HandleUnsupported(PFNGLCOPYCOLORTABLEPROC, glcopycolortable); \
    HandleUnsupported(PFNGLGETCOLORTABLEPROC, glgetcolortable); \
    HandleUnsupported(PFNGLGETCOLORTABLEPARAMETERFVPROC, glgetcolortableparameterfv); \
    HandleUnsupported(PFNGLGETCOLORTABLEPARAMETERIVPROC, glgetcolortableparameteriv); \
    HandleUnsupported(PFNGLCOLORSUBTABLEPROC, glcolorsubtable); \
    HandleUnsupported(PFNGLCOPYCOLORSUBTABLEPROC, glcopycolorsubtable); \
    HandleUnsupported(PFNGLCONVOLUTIONFILTER1DPROC, glconvolutionfilter1d); \
    HandleUnsupported(PFNGLCONVOLUTIONFILTER2DPROC, glconvolutionfilter2d); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERFPROC, glconvolutionparameterf); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERFVPROC, glconvolutionparameterfv); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERIPROC, glconvolutionparameteri); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERIVPROC, glconvolutionparameteriv); \
    HandleUnsupported(PFNGLCOPYCONVOLUTIONFILTER1DPROC, glcopyconvolutionfilter1d); \
    HandleUnsupported(PFNGLCOPYCONVOLUTIONFILTER2DPROC, glcopyconvolutionfilter2d); \
    HandleUnsupported(PFNGLGETCONVOLUTIONFILTERPROC, glgetconvolutionfilter); \
    HandleUnsupported(PFNGLGETCONVOLUTIONPARAMETERFVPROC, glgetconvolutionparameterfv); \
    HandleUnsupported(PFNGLGETCONVOLUTIONPARAMETERIVPROC, glgetconvolutionparameteriv); \
    HandleUnsupported(PFNGLGETSEPARABLEFILTERPROC, glgetseparablefilter); \
    HandleUnsupported(PFNGLSEPARABLEFILTER2DPROC, glseparablefilter2d); \
    HandleUnsupported(PFNGLGETHISTOGRAMPROC, glgethistogram); \
    HandleUnsupported(PFNGLGETHISTOGRAMPARAMETERFVPROC, glgethistogramparameterfv); \
    HandleUnsupported(PFNGLGETHISTOGRAMPARAMETERIVPROC, glgethistogramparameteriv); \
    HandleUnsupported(PFNGLGETMINMAXPROC, glgetminmax); \
    HandleUnsupported(PFNGLGETMINMAXPARAMETERFVPROC, glgetminmaxparameterfv); \
    HandleUnsupported(PFNGLGETMINMAXPARAMETERIVPROC, glgetminmaxparameteriv); \
    HandleUnsupported(PFNGLHISTOGRAMPROC, glhistogram); \
    HandleUnsupported(PFNGLMINMAXPROC, glminmax); \
    HandleUnsupported(PFNGLRESETHISTOGRAMPROC, glresethistogram); \
    HandleUnsupported(PFNGLRESETMINMAXPROC, glresetminmax); \
    HandleUnsupported(PFNGLCURRENTPALETTEMATRIXARBPROC, glcurrentpalettematrixarb); \
    HandleUnsupported(PFNGLMATRIXINDEXUBVARBPROC, glmatrixindexubvarb); \
    HandleUnsupported(PFNGLMATRIXINDEXUSVARBPROC, glmatrixindexusvarb); \
    HandleUnsupported(PFNGLMATRIXINDEXUIVARBPROC, glmatrixindexuivarb); \
    HandleUnsupported(PFNGLMATRIXINDEXPOINTERARBPROC, glmatrixindexpointerarb); \
    HandleUnsupported(PFNGLCLIENTACTIVETEXTUREARBPROC, glclientactivetexturearb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1DARBPROC, glmultitexcoord1darb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1DVARBPROC, glmultitexcoord1dvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1FARBPROC, glmultitexcoord1farb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1FVARBPROC, glmultitexcoord1fvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1IARBPROC, glmultitexcoord1iarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1IVARBPROC, glmultitexcoord1ivarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1SARBPROC, glmultitexcoord1sarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1SVARBPROC, glmultitexcoord1svarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2DARBPROC, glmultitexcoord2darb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2DVARBPROC, glmultitexcoord2dvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2FARBPROC, glmultitexcoord2farb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2FVARBPROC, glmultitexcoord2fvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2IARBPROC, glmultitexcoord2iarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2IVARBPROC, glmultitexcoord2ivarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2SARBPROC, glmultitexcoord2sarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD2SVARBPROC, glmultitexcoord2svarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3DARBPROC, glmultitexcoord3darb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3DVARBPROC, glmultitexcoord3dvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3FARBPROC, glmultitexcoord3farb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3FVARBPROC, glmultitexcoord3fvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3IARBPROC, glmultitexcoord3iarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3IVARBPROC, glmultitexcoord3ivarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3SARBPROC, glmultitexcoord3sarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD3SVARBPROC, glmultitexcoord3svarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4DARBPROC, glmultitexcoord4darb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4DVARBPROC, glmultitexcoord4dvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4FARBPROC, glmultitexcoord4farb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4FVARBPROC, glmultitexcoord4fvarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4IARBPROC, glmultitexcoord4iarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4IVARBPROC, glmultitexcoord4ivarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4SARBPROC, glmultitexcoord4sarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD4SVARBPROC, glmultitexcoord4svarb); \
    HandleUnsupported(PFNGLGETNMAPDVARBPROC, glgetnmapdvarb); \
    HandleUnsupported(PFNGLGETNMAPFVARBPROC, glgetnmapfvarb); \
    HandleUnsupported(PFNGLGETNMAPIVARBPROC, glgetnmapivarb); \
    HandleUnsupported(PFNGLGETNPIXELMAPFVARBPROC, glgetnpixelmapfvarb); \
    HandleUnsupported(PFNGLGETNPIXELMAPUIVARBPROC, glgetnpixelmapuivarb); \
    HandleUnsupported(PFNGLGETNPIXELMAPUSVARBPROC, glgetnpixelmapusvarb); \
    HandleUnsupported(PFNGLGETNPOLYGONSTIPPLEARBPROC, glgetnpolygonstipplearb); \
    HandleUnsupported(PFNGLGETNCOLORTABLEARBPROC, glgetncolortablearb); \
    HandleUnsupported(PFNGLGETNCONVOLUTIONFILTERARBPROC, glgetnconvolutionfilterarb); \
    HandleUnsupported(PFNGLGETNSEPARABLEFILTERARBPROC, glgetnseparablefilterarb); \
    HandleUnsupported(PFNGLGETNHISTOGRAMARBPROC, glgetnhistogramarb); \
    HandleUnsupported(PFNGLGETNMINMAXARBPROC, glgetnminmaxarb); \
    HandleUnsupported(PFNGLDELETEOBJECTARBPROC, gldeleteobjectarb); \
    HandleUnsupported(PFNGLGETHANDLEARBPROC, glgethandlearb); \
    HandleUnsupported(PFNGLDETACHOBJECTARBPROC, gldetachobjectarb); \
    HandleUnsupported(PFNGLCREATESHADEROBJECTARBPROC, glcreateshaderobjectarb); \
    HandleUnsupported(PFNGLSHADERSOURCEARBPROC, glshadersourcearb); \
    HandleUnsupported(PFNGLCOMPILESHADERARBPROC, glcompileshaderarb); \
    HandleUnsupported(PFNGLCREATEPROGRAMOBJECTARBPROC, glcreateprogramobjectarb); \
    HandleUnsupported(PFNGLATTACHOBJECTARBPROC, glattachobjectarb); \
    HandleUnsupported(PFNGLLINKPROGRAMARBPROC, gllinkprogramarb); \
    HandleUnsupported(PFNGLUSEPROGRAMOBJECTARBPROC, gluseprogramobjectarb); \
    HandleUnsupported(PFNGLVALIDATEPROGRAMARBPROC, glvalidateprogramarb); \
    HandleUnsupported(PFNGLUNIFORM1FARBPROC, gluniform1farb); \
    HandleUnsupported(PFNGLUNIFORM2FARBPROC, gluniform2farb); \
    HandleUnsupported(PFNGLUNIFORM3FARBPROC, gluniform3farb); \
    HandleUnsupported(PFNGLUNIFORM4FARBPROC, gluniform4farb); \
    HandleUnsupported(PFNGLUNIFORM1IARBPROC, gluniform1iarb); \
    HandleUnsupported(PFNGLUNIFORM2IARBPROC, gluniform2iarb); \
    HandleUnsupported(PFNGLUNIFORM3IARBPROC, gluniform3iarb); \
    HandleUnsupported(PFNGLUNIFORM4IARBPROC, gluniform4iarb); \
    HandleUnsupported(PFNGLUNIFORM1FVARBPROC, gluniform1fvarb); \
    HandleUnsupported(PFNGLUNIFORM2FVARBPROC, gluniform2fvarb); \
    HandleUnsupported(PFNGLUNIFORM3FVARBPROC, gluniform3fvarb); \
    HandleUnsupported(PFNGLUNIFORM4FVARBPROC, gluniform4fvarb); \
    HandleUnsupported(PFNGLUNIFORM1IVARBPROC, gluniform1ivarb); \
    HandleUnsupported(PFNGLUNIFORM2IVARBPROC, gluniform2ivarb); \
    HandleUnsupported(PFNGLUNIFORM3IVARBPROC, gluniform3ivarb); \
    HandleUnsupported(PFNGLUNIFORM4IVARBPROC, gluniform4ivarb); \
    HandleUnsupported(PFNGLUNIFORMMATRIX2FVARBPROC, gluniformmatrix2fvarb); \
    HandleUnsupported(PFNGLUNIFORMMATRIX3FVARBPROC, gluniformmatrix3fvarb); \
    HandleUnsupported(PFNGLUNIFORMMATRIX4FVARBPROC, gluniformmatrix4fvarb); \
    HandleUnsupported(PFNGLGETOBJECTPARAMETERFVARBPROC, glgetobjectparameterfvarb); \
    HandleUnsupported(PFNGLGETOBJECTPARAMETERIVARBPROC, glgetobjectparameterivarb); \
    HandleUnsupported(PFNGLGETINFOLOGARBPROC, glgetinfologarb); \
    HandleUnsupported(PFNGLGETATTACHEDOBJECTSARBPROC, glgetattachedobjectsarb); \
    HandleUnsupported(PFNGLGETUNIFORMLOCATIONARBPROC, glgetuniformlocationarb); \
    HandleUnsupported(PFNGLGETACTIVEUNIFORMARBPROC, glgetactiveuniformarb); \
    HandleUnsupported(PFNGLGETUNIFORMFVARBPROC, glgetuniformfvarb); \
    HandleUnsupported(PFNGLGETUNIFORMIVARBPROC, glgetuniformivarb); \
    HandleUnsupported(PFNGLGETSHADERSOURCEARBPROC, glgetshadersourcearb); \
    HandleUnsupported(PFNGLLOADTRANSPOSEMATRIXFARBPROC, glloadtransposematrixfarb); \
    HandleUnsupported(PFNGLLOADTRANSPOSEMATRIXDARBPROC, glloadtransposematrixdarb); \
    HandleUnsupported(PFNGLMULTTRANSPOSEMATRIXFARBPROC, glmulttransposematrixfarb); \
    HandleUnsupported(PFNGLMULTTRANSPOSEMATRIXDARBPROC, glmulttransposematrixdarb); \
    HandleUnsupported(PFNGLWEIGHTBVARBPROC, glweightbvarb); \
    HandleUnsupported(PFNGLWEIGHTSVARBPROC, glweightsvarb); \
    HandleUnsupported(PFNGLWEIGHTIVARBPROC, glweightivarb); \
    HandleUnsupported(PFNGLWEIGHTFVARBPROC, glweightfvarb); \
    HandleUnsupported(PFNGLWEIGHTDVARBPROC, glweightdvarb); \
    HandleUnsupported(PFNGLWEIGHTUBVARBPROC, glweightubvarb); \
    HandleUnsupported(PFNGLWEIGHTUSVARBPROC, glweightusvarb); \
    HandleUnsupported(PFNGLWEIGHTUIVARBPROC, glweightuivarb); \
    HandleUnsupported(PFNGLWEIGHTPOINTERARBPROC, glweightpointerarb); \
    HandleUnsupported(PFNGLVERTEXBLENDARBPROC, glvertexblendarb); \
    HandleUnsupported(PFNGLVERTEXATTRIB4NUBARBPROC, glvertexattrib4nubarb); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBDVARBPROC, glgetvertexattribdvarb); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBFVARBPROC, glgetvertexattribfvarb); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBIVARBPROC, glgetvertexattribivarb); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBPOINTERVARBPROC, glgetvertexattribpointervarb); \
    HandleUnsupported(PFNGLBINDATTRIBLOCATIONARBPROC, glbindattriblocationarb); \
    HandleUnsupported(PFNGLGETACTIVEATTRIBARBPROC, glgetactiveattribarb); \
    HandleUnsupported(PFNGLGETATTRIBLOCATIONARBPROC, glgetattriblocationarb); \
    HandleUnsupported(PFNGLWINDOWPOS2DARBPROC, glwindowpos2darb); \
    HandleUnsupported(PFNGLWINDOWPOS2DVARBPROC, glwindowpos2dvarb); \
    HandleUnsupported(PFNGLWINDOWPOS2FARBPROC, glwindowpos2farb); \
    HandleUnsupported(PFNGLWINDOWPOS2FVARBPROC, glwindowpos2fvarb); \
    HandleUnsupported(PFNGLWINDOWPOS2IARBPROC, glwindowpos2iarb); \
    HandleUnsupported(PFNGLWINDOWPOS2IVARBPROC, glwindowpos2ivarb); \
    HandleUnsupported(PFNGLWINDOWPOS2SARBPROC, glwindowpos2sarb); \
    HandleUnsupported(PFNGLWINDOWPOS2SVARBPROC, glwindowpos2svarb); \
    HandleUnsupported(PFNGLWINDOWPOS3DARBPROC, glwindowpos3darb); \
    HandleUnsupported(PFNGLWINDOWPOS3DVARBPROC, glwindowpos3dvarb); \
    HandleUnsupported(PFNGLWINDOWPOS3FARBPROC, glwindowpos3farb); \
    HandleUnsupported(PFNGLWINDOWPOS3FVARBPROC, glwindowpos3fvarb); \
    HandleUnsupported(PFNGLWINDOWPOS3IARBPROC, glwindowpos3iarb); \
    HandleUnsupported(PFNGLWINDOWPOS3IVARBPROC, glwindowpos3ivarb); \
    HandleUnsupported(PFNGLWINDOWPOS3SARBPROC, glwindowpos3sarb); \
    HandleUnsupported(PFNGLWINDOWPOS3SVARBPROC, glwindowpos3svarb); \
    HandleUnsupported(PFNGLMULTITEXCOORD1BOESPROC, glmultitexcoord1boes); \
    HandleUnsupported(PFNGLMULTITEXCOORD1BVOESPROC, glmultitexcoord1bvoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD2BOESPROC, glmultitexcoord2boes); \
    HandleUnsupported(PFNGLMULTITEXCOORD2BVOESPROC, glmultitexcoord2bvoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD3BOESPROC, glmultitexcoord3boes); \
    HandleUnsupported(PFNGLMULTITEXCOORD3BVOESPROC, glmultitexcoord3bvoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD4BOESPROC, glmultitexcoord4boes); \
    HandleUnsupported(PFNGLMULTITEXCOORD4BVOESPROC, glmultitexcoord4bvoes); \
    HandleUnsupported(PFNGLTEXCOORD1BOESPROC, gltexcoord1boes); \
    HandleUnsupported(PFNGLTEXCOORD1BVOESPROC, gltexcoord1bvoes); \
    HandleUnsupported(PFNGLTEXCOORD2BOESPROC, gltexcoord2boes); \
    HandleUnsupported(PFNGLTEXCOORD2BVOESPROC, gltexcoord2bvoes); \
    HandleUnsupported(PFNGLTEXCOORD3BOESPROC, gltexcoord3boes); \
    HandleUnsupported(PFNGLTEXCOORD3BVOESPROC, gltexcoord3bvoes); \
    HandleUnsupported(PFNGLTEXCOORD4BOESPROC, gltexcoord4boes); \
    HandleUnsupported(PFNGLTEXCOORD4BVOESPROC, gltexcoord4bvoes); \
    HandleUnsupported(PFNGLVERTEX2BOESPROC, glvertex2boes); \
    HandleUnsupported(PFNGLVERTEX2BVOESPROC, glvertex2bvoes); \
    HandleUnsupported(PFNGLVERTEX3BOESPROC, glvertex3boes); \
    HandleUnsupported(PFNGLVERTEX3BVOESPROC, glvertex3bvoes); \
    HandleUnsupported(PFNGLVERTEX4BOESPROC, glvertex4boes); \
    HandleUnsupported(PFNGLVERTEX4BVOESPROC, glvertex4bvoes); \
    HandleUnsupported(PFNGLALPHAFUNCXOESPROC, glalphafuncxoes); \
    HandleUnsupported(PFNGLCLEARCOLORXOESPROC, glclearcolorxoes); \
    HandleUnsupported(PFNGLCLEARDEPTHXOESPROC, glcleardepthxoes); \
    HandleUnsupported(PFNGLCLIPPLANEXOESPROC, glclipplanexoes); \
    HandleUnsupported(PFNGLCOLOR4XOESPROC, glcolor4xoes); \
    HandleUnsupported(PFNGLDEPTHRANGEXOESPROC, gldepthrangexoes); \
    HandleUnsupported(PFNGLFOGXOESPROC, glfogxoes); \
    HandleUnsupported(PFNGLFOGXVOESPROC, glfogxvoes); \
    HandleUnsupported(PFNGLFRUSTUMXOESPROC, glfrustumxoes); \
    HandleUnsupported(PFNGLGETCLIPPLANEXOESPROC, glgetclipplanexoes); \
    HandleUnsupported(PFNGLGETFIXEDVOESPROC, glgetfixedvoes); \
    HandleUnsupported(PFNGLGETTEXENVXVOESPROC, glgettexenvxvoes); \
    HandleUnsupported(PFNGLGETTEXPARAMETERXVOESPROC, glgettexparameterxvoes); \
    HandleUnsupported(PFNGLLIGHTMODELXOESPROC, gllightmodelxoes); \
    HandleUnsupported(PFNGLLIGHTMODELXVOESPROC, gllightmodelxvoes); \
    HandleUnsupported(PFNGLLIGHTXOESPROC, gllightxoes); \
    HandleUnsupported(PFNGLLIGHTXVOESPROC, gllightxvoes); \
    HandleUnsupported(PFNGLLINEWIDTHXOESPROC, gllinewidthxoes); \
    HandleUnsupported(PFNGLLOADMATRIXXOESPROC, glloadmatrixxoes); \
    HandleUnsupported(PFNGLMATERIALXOESPROC, glmaterialxoes); \
    HandleUnsupported(PFNGLMATERIALXVOESPROC, glmaterialxvoes); \
    HandleUnsupported(PFNGLMULTMATRIXXOESPROC, glmultmatrixxoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD4XOESPROC, glmultitexcoord4xoes); \
    HandleUnsupported(PFNGLNORMAL3XOESPROC, glnormal3xoes); \
    HandleUnsupported(PFNGLORTHOXOESPROC, glorthoxoes); \
    HandleUnsupported(PFNGLPOINTPARAMETERXVOESPROC, glpointparameterxvoes); \
    HandleUnsupported(PFNGLPOINTSIZEXOESPROC, glpointsizexoes); \
    HandleUnsupported(PFNGLPOLYGONOFFSETXOESPROC, glpolygonoffsetxoes); \
    HandleUnsupported(PFNGLROTATEXOESPROC, glrotatexoes); \
    HandleUnsupported(PFNGLSAMPLECOVERAGEOESPROC, glsamplecoverageoes); \
    HandleUnsupported(PFNGLSCALEXOESPROC, glscalexoes); \
    HandleUnsupported(PFNGLTEXENVXOESPROC, gltexenvxoes); \
    HandleUnsupported(PFNGLTEXENVXVOESPROC, gltexenvxvoes); \
    HandleUnsupported(PFNGLTEXPARAMETERXOESPROC, gltexparameterxoes); \
    HandleUnsupported(PFNGLTEXPARAMETERXVOESPROC, gltexparameterxvoes); \
    HandleUnsupported(PFNGLTRANSLATEXOESPROC, gltranslatexoes); \
    HandleUnsupported(PFNGLACCUMXOESPROC, glaccumxoes); \
    HandleUnsupported(PFNGLBITMAPXOESPROC, glbitmapxoes); \
    HandleUnsupported(PFNGLBLENDCOLORXOESPROC, glblendcolorxoes); \
    HandleUnsupported(PFNGLCLEARACCUMXOESPROC, glclearaccumxoes); \
    HandleUnsupported(PFNGLCOLOR3XOESPROC, glcolor3xoes); \
    HandleUnsupported(PFNGLCOLOR3XVOESPROC, glcolor3xvoes); \
    HandleUnsupported(PFNGLCOLOR4XVOESPROC, glcolor4xvoes); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERXOESPROC, glconvolutionparameterxoes); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERXVOESPROC, glconvolutionparameterxvoes); \
    HandleUnsupported(PFNGLEVALCOORD1XOESPROC, glevalcoord1xoes); \
    HandleUnsupported(PFNGLEVALCOORD1XVOESPROC, glevalcoord1xvoes); \
    HandleUnsupported(PFNGLEVALCOORD2XOESPROC, glevalcoord2xoes); \
    HandleUnsupported(PFNGLEVALCOORD2XVOESPROC, glevalcoord2xvoes); \
    HandleUnsupported(PFNGLFEEDBACKBUFFERXOESPROC, glfeedbackbufferxoes); \
    HandleUnsupported(PFNGLGETCONVOLUTIONPARAMETERXVOESPROC, glgetconvolutionparameterxvoes); \
    HandleUnsupported(PFNGLGETHISTOGRAMPARAMETERXVOESPROC, glgethistogramparameterxvoes); \
    HandleUnsupported(PFNGLGETLIGHTXOESPROC, glgetlightxoes); \
    HandleUnsupported(PFNGLGETMAPXVOESPROC, glgetmapxvoes); \
    HandleUnsupported(PFNGLGETMATERIALXOESPROC, glgetmaterialxoes); \
    HandleUnsupported(PFNGLGETPIXELMAPXVPROC, glgetpixelmapxv); \
    HandleUnsupported(PFNGLGETTEXGENXVOESPROC, glgettexgenxvoes); \
    HandleUnsupported(PFNGLGETTEXLEVELPARAMETERXVOESPROC, glgettexlevelparameterxvoes); \
    HandleUnsupported(PFNGLINDEXXOESPROC, glindexxoes); \
    HandleUnsupported(PFNGLINDEXXVOESPROC, glindexxvoes); \
    HandleUnsupported(PFNGLLOADTRANSPOSEMATRIXXOESPROC, glloadtransposematrixxoes); \
    HandleUnsupported(PFNGLMAP1XOESPROC, glmap1xoes); \
    HandleUnsupported(PFNGLMAP2XOESPROC, glmap2xoes); \
    HandleUnsupported(PFNGLMAPGRID1XOESPROC, glmapgrid1xoes); \
    HandleUnsupported(PFNGLMAPGRID2XOESPROC, glmapgrid2xoes); \
    HandleUnsupported(PFNGLMULTTRANSPOSEMATRIXXOESPROC, glmulttransposematrixxoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD1XOESPROC, glmultitexcoord1xoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD1XVOESPROC, glmultitexcoord1xvoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD2XOESPROC, glmultitexcoord2xoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD2XVOESPROC, glmultitexcoord2xvoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD3XOESPROC, glmultitexcoord3xoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD3XVOESPROC, glmultitexcoord3xvoes); \
    HandleUnsupported(PFNGLMULTITEXCOORD4XVOESPROC, glmultitexcoord4xvoes); \
    HandleUnsupported(PFNGLNORMAL3XVOESPROC, glnormal3xvoes); \
    HandleUnsupported(PFNGLPASSTHROUGHXOESPROC, glpassthroughxoes); \
    HandleUnsupported(PFNGLPIXELMAPXPROC, glpixelmapx); \
    HandleUnsupported(PFNGLPIXELSTOREXPROC, glpixelstorex); \
    HandleUnsupported(PFNGLPIXELTRANSFERXOESPROC, glpixeltransferxoes); \
    HandleUnsupported(PFNGLPIXELZOOMXOESPROC, glpixelzoomxoes); \
    HandleUnsupported(PFNGLPRIORITIZETEXTURESXOESPROC, glprioritizetexturesxoes); \
    HandleUnsupported(PFNGLRASTERPOS2XOESPROC, glrasterpos2xoes); \
    HandleUnsupported(PFNGLRASTERPOS2XVOESPROC, glrasterpos2xvoes); \
    HandleUnsupported(PFNGLRASTERPOS3XOESPROC, glrasterpos3xoes); \
    HandleUnsupported(PFNGLRASTERPOS3XVOESPROC, glrasterpos3xvoes); \
    HandleUnsupported(PFNGLRASTERPOS4XOESPROC, glrasterpos4xoes); \
    HandleUnsupported(PFNGLRASTERPOS4XVOESPROC, glrasterpos4xvoes); \
    HandleUnsupported(PFNGLRECTXOESPROC, glrectxoes); \
    HandleUnsupported(PFNGLRECTXVOESPROC, glrectxvoes); \
    HandleUnsupported(PFNGLTEXCOORD1XOESPROC, gltexcoord1xoes); \
    HandleUnsupported(PFNGLTEXCOORD1XVOESPROC, gltexcoord1xvoes); \
    HandleUnsupported(PFNGLTEXCOORD2XOESPROC, gltexcoord2xoes); \
    HandleUnsupported(PFNGLTEXCOORD2XVOESPROC, gltexcoord2xvoes); \
    HandleUnsupported(PFNGLTEXCOORD3XOESPROC, gltexcoord3xoes); \
    HandleUnsupported(PFNGLTEXCOORD3XVOESPROC, gltexcoord3xvoes); \
    HandleUnsupported(PFNGLTEXCOORD4XOESPROC, gltexcoord4xoes); \
    HandleUnsupported(PFNGLTEXCOORD4XVOESPROC, gltexcoord4xvoes); \
    HandleUnsupported(PFNGLTEXGENXOESPROC, gltexgenxoes); \
    HandleUnsupported(PFNGLTEXGENXVOESPROC, gltexgenxvoes); \
    HandleUnsupported(PFNGLVERTEX2XOESPROC, glvertex2xoes); \
    HandleUnsupported(PFNGLVERTEX2XVOESPROC, glvertex2xvoes); \
    HandleUnsupported(PFNGLVERTEX3XOESPROC, glvertex3xoes); \
    HandleUnsupported(PFNGLVERTEX3XVOESPROC, glvertex3xvoes); \
    HandleUnsupported(PFNGLVERTEX4XOESPROC, glvertex4xoes); \
    HandleUnsupported(PFNGLVERTEX4XVOESPROC, glvertex4xvoes); \
    HandleUnsupported(PFNGLQUERYMATRIXXOESPROC, glquerymatrixxoes); \
    HandleUnsupported(PFNGLCLEARDEPTHFOESPROC, glcleardepthfoes); \
    HandleUnsupported(PFNGLCLIPPLANEFOESPROC, glclipplanefoes); \
    HandleUnsupported(PFNGLDEPTHRANGEFOESPROC, gldepthrangefoes); \
    HandleUnsupported(PFNGLFRUSTUMFOESPROC, glfrustumfoes); \
    HandleUnsupported(PFNGLGETCLIPPLANEFOESPROC, glgetclipplanefoes); \
    HandleUnsupported(PFNGLORTHOFOESPROC, glorthofoes); \
    HandleUnsupported(PFNGLTBUFFERMASK3DFXPROC, gltbuffermask3dfx); \
    HandleUnsupported(PFNGLDEBUGMESSAGEENABLEAMDPROC, gldebugmessageenableamd); \
    HandleUnsupported(PFNGLDEBUGMESSAGEINSERTAMDPROC, gldebugmessageinsertamd); \
    HandleUnsupported(PFNGLDEBUGMESSAGECALLBACKAMDPROC, gldebugmessagecallbackamd); \
    HandleUnsupported(PFNGLGETDEBUGMESSAGELOGAMDPROC, glgetdebugmessagelogamd); \
    HandleUnsupported(PFNGLBLENDFUNCINDEXEDAMDPROC, glblendfuncindexedamd); \
    HandleUnsupported(PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC, glblendfuncseparateindexedamd); \
    HandleUnsupported(PFNGLBLENDEQUATIONINDEXEDAMDPROC, glblendequationindexedamd); \
    HandleUnsupported(PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC, glblendequationseparateindexedamd); \
    HandleUnsupported(PFNGLUNIFORM1I64NVPROC, gluniform1i64nv); \
    HandleUnsupported(PFNGLUNIFORM2I64NVPROC, gluniform2i64nv); \
    HandleUnsupported(PFNGLUNIFORM3I64NVPROC, gluniform3i64nv); \
    HandleUnsupported(PFNGLUNIFORM4I64NVPROC, gluniform4i64nv); \
    HandleUnsupported(PFNGLUNIFORM1I64VNVPROC, gluniform1i64vnv); \
    HandleUnsupported(PFNGLUNIFORM2I64VNVPROC, gluniform2i64vnv); \
    HandleUnsupported(PFNGLUNIFORM3I64VNVPROC, gluniform3i64vnv); \
    HandleUnsupported(PFNGLUNIFORM4I64VNVPROC, gluniform4i64vnv); \
    HandleUnsupported(PFNGLUNIFORM1UI64NVPROC, gluniform1ui64nv); \
    HandleUnsupported(PFNGLUNIFORM2UI64NVPROC, gluniform2ui64nv); \
    HandleUnsupported(PFNGLUNIFORM3UI64NVPROC, gluniform3ui64nv); \
    HandleUnsupported(PFNGLUNIFORM4UI64NVPROC, gluniform4ui64nv); \
    HandleUnsupported(PFNGLUNIFORM1UI64VNVPROC, gluniform1ui64vnv); \
    HandleUnsupported(PFNGLUNIFORM2UI64VNVPROC, gluniform2ui64vnv); \
    HandleUnsupported(PFNGLUNIFORM3UI64VNVPROC, gluniform3ui64vnv); \
    HandleUnsupported(PFNGLUNIFORM4UI64VNVPROC, gluniform4ui64vnv); \
    HandleUnsupported(PFNGLGETUNIFORMI64VNVPROC, glgetuniformi64vnv); \
    HandleUnsupported(PFNGLGETUNIFORMUI64VNVPROC, glgetuniformui64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1I64NVPROC, glprogramuniform1i64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2I64NVPROC, glprogramuniform2i64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3I64NVPROC, glprogramuniform3i64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4I64NVPROC, glprogramuniform4i64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1I64VNVPROC, glprogramuniform1i64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2I64VNVPROC, glprogramuniform2i64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3I64VNVPROC, glprogramuniform3i64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4I64VNVPROC, glprogramuniform4i64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1UI64NVPROC, glprogramuniform1ui64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2UI64NVPROC, glprogramuniform2ui64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3UI64NVPROC, glprogramuniform3ui64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4UI64NVPROC, glprogramuniform4ui64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1UI64VNVPROC, glprogramuniform1ui64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2UI64VNVPROC, glprogramuniform2ui64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3UI64VNVPROC, glprogramuniform3ui64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4UI64VNVPROC, glprogramuniform4ui64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBPARAMETERIAMDPROC, glvertexattribparameteriamd); \
    HandleUnsupported(PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC, glmultidrawarraysindirectamd); \
    HandleUnsupported(PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC, glmultidrawelementsindirectamd); \
    HandleUnsupported(PFNGLGENNAMESAMDPROC, glgennamesamd); \
    HandleUnsupported(PFNGLDELETENAMESAMDPROC, gldeletenamesamd); \
    HandleUnsupported(PFNGLISNAMEAMDPROC, glisnameamd); \
    HandleUnsupported(PFNGLQUERYOBJECTPARAMETERUIAMDPROC, glqueryobjectparameteruiamd); \
    HandleUnsupported(PFNGLGETPERFMONITORGROUPSAMDPROC, glgetperfmonitorgroupsamd); \
    HandleUnsupported(PFNGLGETPERFMONITORCOUNTERSAMDPROC, glgetperfmonitorcountersamd); \
    HandleUnsupported(PFNGLGETPERFMONITORGROUPSTRINGAMDPROC, glgetperfmonitorgroupstringamd); \
    HandleUnsupported(PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC, glgetperfmonitorcounterstringamd); \
    HandleUnsupported(PFNGLGETPERFMONITORCOUNTERINFOAMDPROC, glgetperfmonitorcounterinfoamd); \
    HandleUnsupported(PFNGLGENPERFMONITORSAMDPROC, glgenperfmonitorsamd); \
    HandleUnsupported(PFNGLDELETEPERFMONITORSAMDPROC, gldeleteperfmonitorsamd); \
    HandleUnsupported(PFNGLSELECTPERFMONITORCOUNTERSAMDPROC, glselectperfmonitorcountersamd); \
    HandleUnsupported(PFNGLBEGINPERFMONITORAMDPROC, glbeginperfmonitoramd); \
    HandleUnsupported(PFNGLENDPERFMONITORAMDPROC, glendperfmonitoramd); \
    HandleUnsupported(PFNGLGETPERFMONITORCOUNTERDATAAMDPROC, glgetperfmonitorcounterdataamd); \
    HandleUnsupported(PFNGLSETMULTISAMPLEFVAMDPROC, glsetmultisamplefvamd); \
    HandleUnsupported(PFNGLTEXSTORAGESPARSEAMDPROC, gltexstoragesparseamd); \
    HandleUnsupported(PFNGLTEXTURESTORAGESPARSEAMDPROC, gltexturestoragesparseamd); \
    HandleUnsupported(PFNGLSTENCILOPVALUEAMDPROC, glstencilopvalueamd); \
    HandleUnsupported(PFNGLTESSELLATIONFACTORAMDPROC, gltessellationfactoramd); \
    HandleUnsupported(PFNGLTESSELLATIONMODEAMDPROC, gltessellationmodeamd); \
    HandleUnsupported(PFNGLELEMENTPOINTERAPPLEPROC, glelementpointerapple); \
    HandleUnsupported(PFNGLDRAWELEMENTARRAYAPPLEPROC, gldrawelementarrayapple); \
    HandleUnsupported(PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC, gldrawrangeelementarrayapple); \
    HandleUnsupported(PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC, glmultidrawelementarrayapple); \
    HandleUnsupported(PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC, glmultidrawrangeelementarrayapple); \
    HandleUnsupported(PFNGLGENFENCESAPPLEPROC, glgenfencesapple); \
    HandleUnsupported(PFNGLDELETEFENCESAPPLEPROC, gldeletefencesapple); \
    HandleUnsupported(PFNGLSETFENCEAPPLEPROC, glsetfenceapple); \
    HandleUnsupported(PFNGLISFENCEAPPLEPROC, glisfenceapple); \
    HandleUnsupported(PFNGLTESTFENCEAPPLEPROC, gltestfenceapple); \
    HandleUnsupported(PFNGLFINISHFENCEAPPLEPROC, glfinishfenceapple); \
    HandleUnsupported(PFNGLTESTOBJECTAPPLEPROC, gltestobjectapple); \
    HandleUnsupported(PFNGLFINISHOBJECTAPPLEPROC, glfinishobjectapple); \
    HandleUnsupported(PFNGLBUFFERPARAMETERIAPPLEPROC, glbufferparameteriapple); \
    HandleUnsupported(PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC, glflushmappedbufferrangeapple); \
    HandleUnsupported(PFNGLOBJECTPURGEABLEAPPLEPROC, globjectpurgeableapple); \
    HandleUnsupported(PFNGLOBJECTUNPURGEABLEAPPLEPROC, globjectunpurgeableapple); \
    HandleUnsupported(PFNGLGETOBJECTPARAMETERIVAPPLEPROC, glgetobjectparameterivapple); \
    HandleUnsupported(PFNGLTEXTURERANGEAPPLEPROC, gltexturerangeapple); \
    HandleUnsupported(PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC, glgettexparameterpointervapple); \
    HandleUnsupported(PFNGLBINDVERTEXARRAYAPPLEPROC, glbindvertexarrayapple); \
    HandleUnsupported(PFNGLDELETEVERTEXARRAYSAPPLEPROC, gldeletevertexarraysapple); \
    HandleUnsupported(PFNGLGENVERTEXARRAYSAPPLEPROC, glgenvertexarraysapple); \
    HandleUnsupported(PFNGLISVERTEXARRAYAPPLEPROC, glisvertexarrayapple); \
    HandleUnsupported(PFNGLVERTEXARRAYRANGEAPPLEPROC, glvertexarrayrangeapple); \
    HandleUnsupported(PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC, glflushvertexarrayrangeapple); \
    HandleUnsupported(PFNGLVERTEXARRAYPARAMETERIAPPLEPROC, glvertexarrayparameteriapple); \
    HandleUnsupported(PFNGLENABLEVERTEXATTRIBAPPLEPROC, glenablevertexattribapple); \
    HandleUnsupported(PFNGLDISABLEVERTEXATTRIBAPPLEPROC, gldisablevertexattribapple); \
    HandleUnsupported(PFNGLISVERTEXATTRIBENABLEDAPPLEPROC, glisvertexattribenabledapple); \
    HandleUnsupported(PFNGLMAPVERTEXATTRIB1DAPPLEPROC, glmapvertexattrib1dapple); \
    HandleUnsupported(PFNGLMAPVERTEXATTRIB1FAPPLEPROC, glmapvertexattrib1fapple); \
    HandleUnsupported(PFNGLMAPVERTEXATTRIB2DAPPLEPROC, glmapvertexattrib2dapple); \
    HandleUnsupported(PFNGLMAPVERTEXATTRIB2FAPPLEPROC, glmapvertexattrib2fapple); \
    HandleUnsupported(PFNGLDRAWBUFFERSATIPROC, gldrawbuffersati); \
    HandleUnsupported(PFNGLELEMENTPOINTERATIPROC, glelementpointerati); \
    HandleUnsupported(PFNGLDRAWELEMENTARRAYATIPROC, gldrawelementarrayati); \
    HandleUnsupported(PFNGLDRAWRANGEELEMENTARRAYATIPROC, gldrawrangeelementarrayati); \
    HandleUnsupported(PFNGLTEXBUMPPARAMETERIVATIPROC, gltexbumpparameterivati); \
    HandleUnsupported(PFNGLTEXBUMPPARAMETERFVATIPROC, gltexbumpparameterfvati); \
    HandleUnsupported(PFNGLGETTEXBUMPPARAMETERIVATIPROC, glgettexbumpparameterivati); \
    HandleUnsupported(PFNGLGETTEXBUMPPARAMETERFVATIPROC, glgettexbumpparameterfvati); \
    HandleUnsupported(PFNGLGENFRAGMENTSHADERSATIPROC, glgenfragmentshadersati); \
    HandleUnsupported(PFNGLBINDFRAGMENTSHADERATIPROC, glbindfragmentshaderati); \
    HandleUnsupported(PFNGLDELETEFRAGMENTSHADERATIPROC, gldeletefragmentshaderati); \
    HandleUnsupported(PFNGLBEGINFRAGMENTSHADERATIPROC, glbeginfragmentshaderati); \
    HandleUnsupported(PFNGLENDFRAGMENTSHADERATIPROC, glendfragmentshaderati); \
    HandleUnsupported(PFNGLPASSTEXCOORDATIPROC, glpasstexcoordati); \
    HandleUnsupported(PFNGLSAMPLEMAPATIPROC, glsamplemapati); \
    HandleUnsupported(PFNGLCOLORFRAGMENTOP1ATIPROC, glcolorfragmentop1ati); \
    HandleUnsupported(PFNGLCOLORFRAGMENTOP2ATIPROC, glcolorfragmentop2ati); \
    HandleUnsupported(PFNGLCOLORFRAGMENTOP3ATIPROC, glcolorfragmentop3ati); \
    HandleUnsupported(PFNGLALPHAFRAGMENTOP1ATIPROC, glalphafragmentop1ati); \
    HandleUnsupported(PFNGLALPHAFRAGMENTOP2ATIPROC, glalphafragmentop2ati); \
    HandleUnsupported(PFNGLALPHAFRAGMENTOP3ATIPROC, glalphafragmentop3ati); \
    HandleUnsupported(PFNGLSETFRAGMENTSHADERCONSTANTATIPROC, glsetfragmentshaderconstantati); \
    HandleUnsupported(PFNGLMAPOBJECTBUFFERATIPROC, glmapobjectbufferati); \
    HandleUnsupported(PFNGLUNMAPOBJECTBUFFERATIPROC, glunmapobjectbufferati); \
    HandleUnsupported(PFNGLPNTRIANGLESIATIPROC, glpntrianglesiati); \
    HandleUnsupported(PFNGLPNTRIANGLESFATIPROC, glpntrianglesfati); \
    HandleUnsupported(PFNGLSTENCILOPSEPARATEATIPROC, glstencilopseparateati); \
    HandleUnsupported(PFNGLSTENCILFUNCSEPARATEATIPROC, glstencilfuncseparateati); \
    HandleUnsupported(PFNGLNEWOBJECTBUFFERATIPROC, glnewobjectbufferati); \
    HandleUnsupported(PFNGLISOBJECTBUFFERATIPROC, glisobjectbufferati); \
    HandleUnsupported(PFNGLUPDATEOBJECTBUFFERATIPROC, glupdateobjectbufferati); \
    HandleUnsupported(PFNGLGETOBJECTBUFFERFVATIPROC, glgetobjectbufferfvati); \
    HandleUnsupported(PFNGLGETOBJECTBUFFERIVATIPROC, glgetobjectbufferivati); \
    HandleUnsupported(PFNGLFREEOBJECTBUFFERATIPROC, glfreeobjectbufferati); \
    HandleUnsupported(PFNGLARRAYOBJECTATIPROC, glarrayobjectati); \
    HandleUnsupported(PFNGLGETARRAYOBJECTFVATIPROC, glgetarrayobjectfvati); \
    HandleUnsupported(PFNGLGETARRAYOBJECTIVATIPROC, glgetarrayobjectivati); \
    HandleUnsupported(PFNGLVARIANTARRAYOBJECTATIPROC, glvariantarrayobjectati); \
    HandleUnsupported(PFNGLGETVARIANTARRAYOBJECTFVATIPROC, glgetvariantarrayobjectfvati); \
    HandleUnsupported(PFNGLGETVARIANTARRAYOBJECTIVATIPROC, glgetvariantarrayobjectivati); \
    HandleUnsupported(PFNGLVERTEXATTRIBARRAYOBJECTATIPROC, glvertexattribarrayobjectati); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC, glgetvertexattribarrayobjectfvati); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC, glgetvertexattribarrayobjectivati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1SATIPROC, glvertexstream1sati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1SVATIPROC, glvertexstream1svati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1IATIPROC, glvertexstream1iati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1IVATIPROC, glvertexstream1ivati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1FATIPROC, glvertexstream1fati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1FVATIPROC, glvertexstream1fvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1DATIPROC, glvertexstream1dati); \
    HandleUnsupported(PFNGLVERTEXSTREAM1DVATIPROC, glvertexstream1dvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2SATIPROC, glvertexstream2sati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2SVATIPROC, glvertexstream2svati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2IATIPROC, glvertexstream2iati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2IVATIPROC, glvertexstream2ivati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2FATIPROC, glvertexstream2fati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2FVATIPROC, glvertexstream2fvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2DATIPROC, glvertexstream2dati); \
    HandleUnsupported(PFNGLVERTEXSTREAM2DVATIPROC, glvertexstream2dvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3SATIPROC, glvertexstream3sati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3SVATIPROC, glvertexstream3svati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3IATIPROC, glvertexstream3iati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3IVATIPROC, glvertexstream3ivati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3FATIPROC, glvertexstream3fati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3FVATIPROC, glvertexstream3fvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3DATIPROC, glvertexstream3dati); \
    HandleUnsupported(PFNGLVERTEXSTREAM3DVATIPROC, glvertexstream3dvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4SATIPROC, glvertexstream4sati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4SVATIPROC, glvertexstream4svati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4IATIPROC, glvertexstream4iati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4IVATIPROC, glvertexstream4ivati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4FATIPROC, glvertexstream4fati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4FVATIPROC, glvertexstream4fvati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4DATIPROC, glvertexstream4dati); \
    HandleUnsupported(PFNGLVERTEXSTREAM4DVATIPROC, glvertexstream4dvati); \
    HandleUnsupported(PFNGLNORMALSTREAM3BATIPROC, glnormalstream3bati); \
    HandleUnsupported(PFNGLNORMALSTREAM3BVATIPROC, glnormalstream3bvati); \
    HandleUnsupported(PFNGLNORMALSTREAM3SATIPROC, glnormalstream3sati); \
    HandleUnsupported(PFNGLNORMALSTREAM3SVATIPROC, glnormalstream3svati); \
    HandleUnsupported(PFNGLNORMALSTREAM3IATIPROC, glnormalstream3iati); \
    HandleUnsupported(PFNGLNORMALSTREAM3IVATIPROC, glnormalstream3ivati); \
    HandleUnsupported(PFNGLNORMALSTREAM3FATIPROC, glnormalstream3fati); \
    HandleUnsupported(PFNGLNORMALSTREAM3FVATIPROC, glnormalstream3fvati); \
    HandleUnsupported(PFNGLNORMALSTREAM3DATIPROC, glnormalstream3dati); \
    HandleUnsupported(PFNGLNORMALSTREAM3DVATIPROC, glnormalstream3dvati); \
    HandleUnsupported(PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC, glclientactivevertexstreamati); \
    HandleUnsupported(PFNGLVERTEXBLENDENVIATIPROC, glvertexblendenviati); \
    HandleUnsupported(PFNGLVERTEXBLENDENVFATIPROC, glvertexblendenvfati); \
    HandleUnsupported(PFNGLUNIFORMBUFFEREXTPROC, gluniformbufferext); \
    HandleUnsupported(PFNGLGETUNIFORMBUFFERSIZEEXTPROC, glgetuniformbuffersizeext); \
    HandleUnsupported(PFNGLGETUNIFORMOFFSETEXTPROC, glgetuniformoffsetext); \
    HandleUnsupported(PFNGLBLENDFUNCSEPARATEEXTPROC, glblendfuncseparateext); \
    HandleUnsupported(PFNGLCOLORSUBTABLEEXTPROC, glcolorsubtableext); \
    HandleUnsupported(PFNGLCOPYCOLORSUBTABLEEXTPROC, glcopycolorsubtableext); \
    HandleUnsupported(PFNGLLOCKARRAYSEXTPROC, gllockarraysext); \
    HandleUnsupported(PFNGLUNLOCKARRAYSEXTPROC, glunlockarraysext); \
    HandleUnsupported(PFNGLCONVOLUTIONFILTER1DEXTPROC, glconvolutionfilter1dext); \
    HandleUnsupported(PFNGLCONVOLUTIONFILTER2DEXTPROC, glconvolutionfilter2dext); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERFEXTPROC, glconvolutionparameterfext); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERFVEXTPROC, glconvolutionparameterfvext); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERIEXTPROC, glconvolutionparameteriext); \
    HandleUnsupported(PFNGLCONVOLUTIONPARAMETERIVEXTPROC, glconvolutionparameterivext); \
    HandleUnsupported(PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC, glcopyconvolutionfilter1dext); \
    HandleUnsupported(PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC, glcopyconvolutionfilter2dext); \
    HandleUnsupported(PFNGLGETCONVOLUTIONFILTEREXTPROC, glgetconvolutionfilterext); \
    HandleUnsupported(PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC, glgetconvolutionparameterfvext); \
    HandleUnsupported(PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC, glgetconvolutionparameterivext); \
    HandleUnsupported(PFNGLGETSEPARABLEFILTEREXTPROC, glgetseparablefilterext); \
    HandleUnsupported(PFNGLSEPARABLEFILTER2DEXTPROC, glseparablefilter2dext); \
    HandleUnsupported(PFNGLTANGENT3BEXTPROC, gltangent3bext); \
    HandleUnsupported(PFNGLTANGENT3BVEXTPROC, gltangent3bvext); \
    HandleUnsupported(PFNGLTANGENT3DEXTPROC, gltangent3dext); \
    HandleUnsupported(PFNGLTANGENT3DVEXTPROC, gltangent3dvext); \
    HandleUnsupported(PFNGLTANGENT3FEXTPROC, gltangent3fext); \
    HandleUnsupported(PFNGLTANGENT3FVEXTPROC, gltangent3fvext); \
    HandleUnsupported(PFNGLTANGENT3IEXTPROC, gltangent3iext); \
    HandleUnsupported(PFNGLTANGENT3IVEXTPROC, gltangent3ivext); \
    HandleUnsupported(PFNGLTANGENT3SEXTPROC, gltangent3sext); \
    HandleUnsupported(PFNGLTANGENT3SVEXTPROC, gltangent3svext); \
    HandleUnsupported(PFNGLBINORMAL3BEXTPROC, glbinormal3bext); \
    HandleUnsupported(PFNGLBINORMAL3BVEXTPROC, glbinormal3bvext); \
    HandleUnsupported(PFNGLBINORMAL3DEXTPROC, glbinormal3dext); \
    HandleUnsupported(PFNGLBINORMAL3DVEXTPROC, glbinormal3dvext); \
    HandleUnsupported(PFNGLBINORMAL3FEXTPROC, glbinormal3fext); \
    HandleUnsupported(PFNGLBINORMAL3FVEXTPROC, glbinormal3fvext); \
    HandleUnsupported(PFNGLBINORMAL3IEXTPROC, glbinormal3iext); \
    HandleUnsupported(PFNGLBINORMAL3IVEXTPROC, glbinormal3ivext); \
    HandleUnsupported(PFNGLBINORMAL3SEXTPROC, glbinormal3sext); \
    HandleUnsupported(PFNGLBINORMAL3SVEXTPROC, glbinormal3svext); \
    HandleUnsupported(PFNGLTANGENTPOINTEREXTPROC, gltangentpointerext); \
    HandleUnsupported(PFNGLBINORMALPOINTEREXTPROC, glbinormalpointerext); \
    HandleUnsupported(PFNGLCOPYTEXIMAGE1DEXTPROC, glcopyteximage1dext); \
    HandleUnsupported(PFNGLCOPYTEXIMAGE2DEXTPROC, glcopyteximage2dext); \
    HandleUnsupported(PFNGLCOPYTEXSUBIMAGE1DEXTPROC, glcopytexsubimage1dext); \
    HandleUnsupported(PFNGLCOPYTEXSUBIMAGE2DEXTPROC, glcopytexsubimage2dext); \
    HandleUnsupported(PFNGLCOPYTEXSUBIMAGE3DEXTPROC, glcopytexsubimage3dext); \
    HandleUnsupported(PFNGLCULLPARAMETERDVEXTPROC, glcullparameterdvext); \
    HandleUnsupported(PFNGLCULLPARAMETERFVEXTPROC, glcullparameterfvext); \
    HandleUnsupported(PFNGLMATRIXLOADFEXTPROC, glmatrixloadfext); \
    HandleUnsupported(PFNGLMATRIXLOADDEXTPROC, glmatrixloaddext); \
    HandleUnsupported(PFNGLMATRIXMULTFEXTPROC, glmatrixmultfext); \
    HandleUnsupported(PFNGLMATRIXMULTDEXTPROC, glmatrixmultdext); \
    HandleUnsupported(PFNGLMATRIXLOADIDENTITYEXTPROC, glmatrixloadidentityext); \
    HandleUnsupported(PFNGLMATRIXROTATEFEXTPROC, glmatrixrotatefext); \
    HandleUnsupported(PFNGLMATRIXROTATEDEXTPROC, glmatrixrotatedext); \
    HandleUnsupported(PFNGLMATRIXSCALEFEXTPROC, glmatrixscalefext); \
    HandleUnsupported(PFNGLMATRIXSCALEDEXTPROC, glmatrixscaledext); \
    HandleUnsupported(PFNGLMATRIXTRANSLATEFEXTPROC, glmatrixtranslatefext); \
    HandleUnsupported(PFNGLMATRIXTRANSLATEDEXTPROC, glmatrixtranslatedext); \
    HandleUnsupported(PFNGLMATRIXFRUSTUMEXTPROC, glmatrixfrustumext); \
    HandleUnsupported(PFNGLMATRIXORTHOEXTPROC, glmatrixorthoext); \
    HandleUnsupported(PFNGLMATRIXPOPEXTPROC, glmatrixpopext); \
    HandleUnsupported(PFNGLMATRIXPUSHEXTPROC, glmatrixpushext); \
    HandleUnsupported(PFNGLCLIENTATTRIBDEFAULTEXTPROC, glclientattribdefaultext); \
    HandleUnsupported(PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC, glpushclientattribdefaultext); \
    HandleUnsupported(PFNGLMULTITEXCOORDPOINTEREXTPROC, glmultitexcoordpointerext); \
    HandleUnsupported(PFNGLMULTITEXENVFEXTPROC, glmultitexenvfext); \
    HandleUnsupported(PFNGLMULTITEXENVFVEXTPROC, glmultitexenvfvext); \
    HandleUnsupported(PFNGLMULTITEXENVIEXTPROC, glmultitexenviext); \
    HandleUnsupported(PFNGLMULTITEXENVIVEXTPROC, glmultitexenvivext); \
    HandleUnsupported(PFNGLMULTITEXGENDEXTPROC, glmultitexgendext); \
    HandleUnsupported(PFNGLMULTITEXGENDVEXTPROC, glmultitexgendvext); \
    HandleUnsupported(PFNGLMULTITEXGENFEXTPROC, glmultitexgenfext); \
    HandleUnsupported(PFNGLMULTITEXGENFVEXTPROC, glmultitexgenfvext); \
    HandleUnsupported(PFNGLMULTITEXGENIEXTPROC, glmultitexgeniext); \
    HandleUnsupported(PFNGLMULTITEXGENIVEXTPROC, glmultitexgenivext); \
    HandleUnsupported(PFNGLGETMULTITEXENVFVEXTPROC, glgetmultitexenvfvext); \
    HandleUnsupported(PFNGLGETMULTITEXENVIVEXTPROC, glgetmultitexenvivext); \
    HandleUnsupported(PFNGLGETMULTITEXGENDVEXTPROC, glgetmultitexgendvext); \
    HandleUnsupported(PFNGLGETMULTITEXGENFVEXTPROC, glgetmultitexgenfvext); \
    HandleUnsupported(PFNGLGETMULTITEXGENIVEXTPROC, glgetmultitexgenivext); \
    HandleUnsupported(PFNGLENABLECLIENTSTATEINDEXEDEXTPROC, glenableclientstateindexedext); \
    HandleUnsupported(PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC, gldisableclientstateindexedext); \
    HandleUnsupported(PFNGLMATRIXLOADTRANSPOSEFEXTPROC, glmatrixloadtransposefext); \
    HandleUnsupported(PFNGLMATRIXLOADTRANSPOSEDEXTPROC, glmatrixloadtransposedext); \
    HandleUnsupported(PFNGLMATRIXMULTTRANSPOSEFEXTPROC, glmatrixmulttransposefext); \
    HandleUnsupported(PFNGLMATRIXMULTTRANSPOSEDEXTPROC, glmatrixmulttransposedext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1FEXTPROC, glprogramuniform1fext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2FEXTPROC, glprogramuniform2fext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3FEXTPROC, glprogramuniform3fext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4FEXTPROC, glprogramuniform4fext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1IEXTPROC, glprogramuniform1iext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2IEXTPROC, glprogramuniform2iext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3IEXTPROC, glprogramuniform3iext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4IEXTPROC, glprogramuniform4iext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1FVEXTPROC, glprogramuniform1fvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2FVEXTPROC, glprogramuniform2fvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3FVEXTPROC, glprogramuniform3fvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4FVEXTPROC, glprogramuniform4fvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1IVEXTPROC, glprogramuniform1ivext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2IVEXTPROC, glprogramuniform2ivext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3IVEXTPROC, glprogramuniform3ivext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4IVEXTPROC, glprogramuniform4ivext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC, glprogramuniformmatrix2fvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC, glprogramuniformmatrix3fvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC, glprogramuniformmatrix4fvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC, glprogramuniformmatrix2x3fvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC, glprogramuniformmatrix3x2fvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC, glprogramuniformmatrix2x4fvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC, glprogramuniformmatrix4x2fvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC, glprogramuniformmatrix3x4fvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC, glprogramuniformmatrix4x3fvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1UIEXTPROC, glprogramuniform1uiext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2UIEXTPROC, glprogramuniform2uiext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3UIEXTPROC, glprogramuniform3uiext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4UIEXTPROC, glprogramuniform4uiext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1UIVEXTPROC, glprogramuniform1uivext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2UIVEXTPROC, glprogramuniform2uivext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3UIVEXTPROC, glprogramuniform3uivext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4UIVEXTPROC, glprogramuniform4uivext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC, glnamedprogramlocalparameters4fvext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC, glnamedprogramlocalparameteri4iext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC, glnamedprogramlocalparameteri4ivext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC, glnamedprogramlocalparametersi4ivext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC, glnamedprogramlocalparameteri4uiext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC, glnamedprogramlocalparameteri4uivext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC, glnamedprogramlocalparametersi4uivext); \
    HandleUnsupported(PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC, glgetnamedprogramlocalparameteriivext); \
    HandleUnsupported(PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC, glgetnamedprogramlocalparameteriuivext); \
    HandleUnsupported(PFNGLENABLECLIENTSTATEIEXTPROC, glenableclientstateiext); \
    HandleUnsupported(PFNGLDISABLECLIENTSTATEIEXTPROC, gldisableclientstateiext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMSTRINGEXTPROC, glnamedprogramstringext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC, glnamedprogramlocalparameter4dext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC, glnamedprogramlocalparameter4dvext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC, glnamedprogramlocalparameter4fext); \
    HandleUnsupported(PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC, glnamedprogramlocalparameter4fvext); \
    HandleUnsupported(PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC, glgetnamedprogramlocalparameterdvext); \
    HandleUnsupported(PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC, glgetnamedprogramlocalparameterfvext); \
    HandleUnsupported(PFNGLGETNAMEDPROGRAMSTRINGEXTPROC, glgetnamedprogramstringext); \
    HandleUnsupported(PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC, glnamedrenderbufferstoragemultisamplecoverageext); \
    HandleUnsupported(PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC, glnamedframebuffertexturefaceext); \
    HandleUnsupported(PFNGLTEXTURERENDERBUFFEREXTPROC, gltexturerenderbufferext); \
    HandleUnsupported(PFNGLMULTITEXRENDERBUFFEREXTPROC, glmultitexrenderbufferext); \
    HandleUnsupported(PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC, glvertexarrayvertexoffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYCOLOROFFSETEXTPROC, glvertexarraycoloroffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC, glvertexarrayedgeflagoffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYINDEXOFFSETEXTPROC, glvertexarrayindexoffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYNORMALOFFSETEXTPROC, glvertexarraynormaloffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC, glvertexarraytexcoordoffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC, glvertexarraymultitexcoordoffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC, glvertexarrayfogcoordoffsetext); \
    HandleUnsupported(PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC, glvertexarraysecondarycoloroffsetext); \
    HandleUnsupported(PFNGLENABLEVERTEXARRAYEXTPROC, glenablevertexarrayext); \
    HandleUnsupported(PFNGLDISABLEVERTEXARRAYEXTPROC, gldisablevertexarrayext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1DEXTPROC, glprogramuniform1dext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2DEXTPROC, glprogramuniform2dext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3DEXTPROC, glprogramuniform3dext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4DEXTPROC, glprogramuniform4dext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM1DVEXTPROC, glprogramuniform1dvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM2DVEXTPROC, glprogramuniform2dvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM3DVEXTPROC, glprogramuniform3dvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORM4DVEXTPROC, glprogramuniform4dvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC, glprogramuniformmatrix2dvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC, glprogramuniformmatrix3dvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC, glprogramuniformmatrix4dvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC, glprogramuniformmatrix2x3dvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC, glprogramuniformmatrix2x4dvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC, glprogramuniformmatrix3x2dvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC, glprogramuniformmatrix3x4dvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC, glprogramuniformmatrix4x2dvext); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC, glprogramuniformmatrix4x3dvext); \
    HandleUnsupported(PFNGLTEXTUREPAGECOMMITMENTEXTPROC, gltexturepagecommitmentext); \
    HandleUnsupported(PFNGLFOGCOORDFEXTPROC, glfogcoordfext); \
    HandleUnsupported(PFNGLFOGCOORDFVEXTPROC, glfogcoordfvext); \
    HandleUnsupported(PFNGLFOGCOORDDEXTPROC, glfogcoorddext); \
    HandleUnsupported(PFNGLFOGCOORDDVEXTPROC, glfogcoorddvext); \
    HandleUnsupported(PFNGLFOGCOORDPOINTEREXTPROC, glfogcoordpointerext); \
    HandleUnsupported(PFNGLPROGRAMPARAMETERIEXTPROC, glprogramparameteriext); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERS4FVEXTPROC, glprogramenvparameters4fvext); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC, glprogramlocalparameters4fvext); \
    HandleUnsupported(PFNGLGETHISTOGRAMEXTPROC, glgethistogramext); \
    HandleUnsupported(PFNGLGETHISTOGRAMPARAMETERFVEXTPROC, glgethistogramparameterfvext); \
    HandleUnsupported(PFNGLGETHISTOGRAMPARAMETERIVEXTPROC, glgethistogramparameterivext); \
    HandleUnsupported(PFNGLGETMINMAXEXTPROC, glgetminmaxext); \
    HandleUnsupported(PFNGLGETMINMAXPARAMETERFVEXTPROC, glgetminmaxparameterfvext); \
    HandleUnsupported(PFNGLGETMINMAXPARAMETERIVEXTPROC, glgetminmaxparameterivext); \
    HandleUnsupported(PFNGLHISTOGRAMEXTPROC, glhistogramext); \
    HandleUnsupported(PFNGLMINMAXEXTPROC, glminmaxext); \
    HandleUnsupported(PFNGLRESETHISTOGRAMEXTPROC, glresethistogramext); \
    HandleUnsupported(PFNGLRESETMINMAXEXTPROC, glresetminmaxext); \
    HandleUnsupported(PFNGLINDEXFUNCEXTPROC, glindexfuncext); \
    HandleUnsupported(PFNGLINDEXMATERIALEXTPROC, glindexmaterialext); \
    HandleUnsupported(PFNGLAPPLYTEXTUREEXTPROC, glapplytextureext); \
    HandleUnsupported(PFNGLTEXTURELIGHTEXTPROC, gltexturelightext); \
    HandleUnsupported(PFNGLTEXTUREMATERIALEXTPROC, gltexturematerialext); \
    HandleUnsupported(PFNGLMULTIDRAWELEMENTSEXTPROC, glmultidrawelementsext); \
    HandleUnsupported(PFNGLSAMPLEMASKEXTPROC, glsamplemaskext); \
    HandleUnsupported(PFNGLSAMPLEPATTERNEXTPROC, glsamplepatternext); \
    HandleUnsupported(PFNGLCOLORTABLEEXTPROC, glcolortableext); \
    HandleUnsupported(PFNGLGETCOLORTABLEEXTPROC, glgetcolortableext); \
    HandleUnsupported(PFNGLGETCOLORTABLEPARAMETERIVEXTPROC, glgetcolortableparameterivext); \
    HandleUnsupported(PFNGLGETCOLORTABLEPARAMETERFVEXTPROC, glgetcolortableparameterfvext); \
    HandleUnsupported(PFNGLPIXELTRANSFORMPARAMETERIEXTPROC, glpixeltransformparameteriext); \
    HandleUnsupported(PFNGLPIXELTRANSFORMPARAMETERFEXTPROC, glpixeltransformparameterfext); \
    HandleUnsupported(PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC, glpixeltransformparameterivext); \
    HandleUnsupported(PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC, glpixeltransformparameterfvext); \
    HandleUnsupported(PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC, glgetpixeltransformparameterivext); \
    HandleUnsupported(PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC, glgetpixeltransformparameterfvext); \
    HandleUnsupported(PFNGLPOINTPARAMETERFEXTPROC, glpointparameterfext); \
    HandleUnsupported(PFNGLPOINTPARAMETERFVEXTPROC, glpointparameterfvext); \
    HandleUnsupported(PFNGLPOLYGONOFFSETEXTPROC, glpolygonoffsetext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3BEXTPROC, glsecondarycolor3bext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3BVEXTPROC, glsecondarycolor3bvext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3DEXTPROC, glsecondarycolor3dext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3DVEXTPROC, glsecondarycolor3dvext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3FEXTPROC, glsecondarycolor3fext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3FVEXTPROC, glsecondarycolor3fvext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3IEXTPROC, glsecondarycolor3iext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3IVEXTPROC, glsecondarycolor3ivext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3SEXTPROC, glsecondarycolor3sext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3SVEXTPROC, glsecondarycolor3svext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UBEXTPROC, glsecondarycolor3ubext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UBVEXTPROC, glsecondarycolor3ubvext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UIEXTPROC, glsecondarycolor3uiext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3UIVEXTPROC, glsecondarycolor3uivext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3USEXTPROC, glsecondarycolor3usext); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3USVEXTPROC, glsecondarycolor3usvext); \
    HandleUnsupported(PFNGLSECONDARYCOLORPOINTEREXTPROC, glsecondarycolorpointerext); \
    HandleUnsupported(PFNGLUSESHADERPROGRAMEXTPROC, gluseshaderprogramext); \
    HandleUnsupported(PFNGLACTIVEPROGRAMEXTPROC, glactiveprogramext); \
    HandleUnsupported(PFNGLCREATESHADERPROGRAMEXTPROC, glcreateshaderprogramext); \
    HandleUnsupported(PFNGLSTENCILCLEARTAGEXTPROC, glstencilcleartagext); \
    HandleUnsupported(PFNGLACTIVESTENCILFACEEXTPROC, glactivestencilfaceext); \
    HandleUnsupported(PFNGLTEXSUBIMAGE1DEXTPROC, gltexsubimage1dext); \
    HandleUnsupported(PFNGLTEXSUBIMAGE2DEXTPROC, gltexsubimage2dext); \
    HandleUnsupported(PFNGLTEXSUBIMAGE3DEXTPROC, gltexsubimage3dext); \
    HandleUnsupported(PFNGLCLEARCOLORIIEXTPROC, glclearcoloriiext); \
    HandleUnsupported(PFNGLCLEARCOLORIUIEXTPROC, glclearcoloriuiext); \
    HandleUnsupported(PFNGLARETEXTURESRESIDENTEXTPROC, glaretexturesresidentext); \
    HandleUnsupported(PFNGLBINDTEXTUREEXTPROC, glbindtextureext); \
    HandleUnsupported(PFNGLDELETETEXTURESEXTPROC, gldeletetexturesext); \
    HandleUnsupported(PFNGLGENTEXTURESEXTPROC, glgentexturesext); \
    HandleUnsupported(PFNGLISTEXTUREEXTPROC, glistextureext); \
    HandleUnsupported(PFNGLPRIORITIZETEXTURESEXTPROC, glprioritizetexturesext); \
    HandleUnsupported(PFNGLTEXTURENORMALEXTPROC, gltexturenormalext); \
    HandleUnsupported(PFNGLBINDBUFFEROFFSETEXTPROC, glbindbufferoffsetext); \
    HandleUnsupported(PFNGLARRAYELEMENTEXTPROC, glarrayelementext); \
    HandleUnsupported(PFNGLCOLORPOINTEREXTPROC, glcolorpointerext); \
    HandleUnsupported(PFNGLDRAWARRAYSEXTPROC, gldrawarraysext); \
    HandleUnsupported(PFNGLEDGEFLAGPOINTEREXTPROC, gledgeflagpointerext); \
    HandleUnsupported(PFNGLGETPOINTERVEXTPROC, glgetpointervext); \
    HandleUnsupported(PFNGLINDEXPOINTEREXTPROC, glindexpointerext); \
    HandleUnsupported(PFNGLNORMALPOINTEREXTPROC, glnormalpointerext); \
    HandleUnsupported(PFNGLTEXCOORDPOINTEREXTPROC, gltexcoordpointerext); \
    HandleUnsupported(PFNGLVERTEXPOINTEREXTPROC, glvertexpointerext); \
    HandleUnsupported(PFNGLBEGINVERTEXSHADEREXTPROC, glbeginvertexshaderext); \
    HandleUnsupported(PFNGLENDVERTEXSHADEREXTPROC, glendvertexshaderext); \
    HandleUnsupported(PFNGLBINDVERTEXSHADEREXTPROC, glbindvertexshaderext); \
    HandleUnsupported(PFNGLGENVERTEXSHADERSEXTPROC, glgenvertexshadersext); \
    HandleUnsupported(PFNGLDELETEVERTEXSHADEREXTPROC, gldeletevertexshaderext); \
    HandleUnsupported(PFNGLSHADEROP1EXTPROC, glshaderop1ext); \
    HandleUnsupported(PFNGLSHADEROP2EXTPROC, glshaderop2ext); \
    HandleUnsupported(PFNGLSHADEROP3EXTPROC, glshaderop3ext); \
    HandleUnsupported(PFNGLSWIZZLEEXTPROC, glswizzleext); \
    HandleUnsupported(PFNGLWRITEMASKEXTPROC, glwritemaskext); \
    HandleUnsupported(PFNGLINSERTCOMPONENTEXTPROC, glinsertcomponentext); \
    HandleUnsupported(PFNGLEXTRACTCOMPONENTEXTPROC, glextractcomponentext); \
    HandleUnsupported(PFNGLGENSYMBOLSEXTPROC, glgensymbolsext); \
    HandleUnsupported(PFNGLSETINVARIANTEXTPROC, glsetinvariantext); \
    HandleUnsupported(PFNGLSETLOCALCONSTANTEXTPROC, glsetlocalconstantext); \
    HandleUnsupported(PFNGLVARIANTBVEXTPROC, glvariantbvext); \
    HandleUnsupported(PFNGLVARIANTSVEXTPROC, glvariantsvext); \
    HandleUnsupported(PFNGLVARIANTIVEXTPROC, glvariantivext); \
    HandleUnsupported(PFNGLVARIANTFVEXTPROC, glvariantfvext); \
    HandleUnsupported(PFNGLVARIANTDVEXTPROC, glvariantdvext); \
    HandleUnsupported(PFNGLVARIANTUBVEXTPROC, glvariantubvext); \
    HandleUnsupported(PFNGLVARIANTUSVEXTPROC, glvariantusvext); \
    HandleUnsupported(PFNGLVARIANTUIVEXTPROC, glvariantuivext); \
    HandleUnsupported(PFNGLVARIANTPOINTEREXTPROC, glvariantpointerext); \
    HandleUnsupported(PFNGLENABLEVARIANTCLIENTSTATEEXTPROC, glenablevariantclientstateext); \
    HandleUnsupported(PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC, gldisablevariantclientstateext); \
    HandleUnsupported(PFNGLBINDLIGHTPARAMETEREXTPROC, glbindlightparameterext); \
    HandleUnsupported(PFNGLBINDMATERIALPARAMETEREXTPROC, glbindmaterialparameterext); \
    HandleUnsupported(PFNGLBINDTEXGENPARAMETEREXTPROC, glbindtexgenparameterext); \
    HandleUnsupported(PFNGLBINDTEXTUREUNITPARAMETEREXTPROC, glbindtextureunitparameterext); \
    HandleUnsupported(PFNGLBINDPARAMETEREXTPROC, glbindparameterext); \
    HandleUnsupported(PFNGLISVARIANTENABLEDEXTPROC, glisvariantenabledext); \
    HandleUnsupported(PFNGLGETVARIANTBOOLEANVEXTPROC, glgetvariantbooleanvext); \
    HandleUnsupported(PFNGLGETVARIANTINTEGERVEXTPROC, glgetvariantintegervext); \
    HandleUnsupported(PFNGLGETVARIANTFLOATVEXTPROC, glgetvariantfloatvext); \
    HandleUnsupported(PFNGLGETVARIANTPOINTERVEXTPROC, glgetvariantpointervext); \
    HandleUnsupported(PFNGLGETINVARIANTBOOLEANVEXTPROC, glgetinvariantbooleanvext); \
    HandleUnsupported(PFNGLGETINVARIANTINTEGERVEXTPROC, glgetinvariantintegervext); \
    HandleUnsupported(PFNGLGETINVARIANTFLOATVEXTPROC, glgetinvariantfloatvext); \
    HandleUnsupported(PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC, glgetlocalconstantbooleanvext); \
    HandleUnsupported(PFNGLGETLOCALCONSTANTINTEGERVEXTPROC, glgetlocalconstantintegervext); \
    HandleUnsupported(PFNGLGETLOCALCONSTANTFLOATVEXTPROC, glgetlocalconstantfloatvext); \
    HandleUnsupported(PFNGLVERTEXWEIGHTFEXTPROC, glvertexweightfext); \
    HandleUnsupported(PFNGLVERTEXWEIGHTFVEXTPROC, glvertexweightfvext); \
    HandleUnsupported(PFNGLVERTEXWEIGHTPOINTEREXTPROC, glvertexweightpointerext); \
    HandleUnsupported(PFNGLIMPORTSYNCEXTPROC, glimportsyncext); \
    HandleUnsupported(PFNGLIMAGETRANSFORMPARAMETERIHPPROC, glimagetransformparameterihp); \
    HandleUnsupported(PFNGLIMAGETRANSFORMPARAMETERFHPPROC, glimagetransformparameterfhp); \
    HandleUnsupported(PFNGLIMAGETRANSFORMPARAMETERIVHPPROC, glimagetransformparameterivhp); \
    HandleUnsupported(PFNGLIMAGETRANSFORMPARAMETERFVHPPROC, glimagetransformparameterfvhp); \
    HandleUnsupported(PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC, glgetimagetransformparameterivhp); \
    HandleUnsupported(PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC, glgetimagetransformparameterfvhp); \
    HandleUnsupported(PFNGLMULTIMODEDRAWARRAYSIBMPROC, glmultimodedrawarraysibm); \
    HandleUnsupported(PFNGLMULTIMODEDRAWELEMENTSIBMPROC, glmultimodedrawelementsibm); \
    HandleUnsupported(PFNGLFLUSHSTATICDATAIBMPROC, glflushstaticdataibm); \
    HandleUnsupported(PFNGLCOLORPOINTERLISTIBMPROC, glcolorpointerlistibm); \
    HandleUnsupported(PFNGLSECONDARYCOLORPOINTERLISTIBMPROC, glsecondarycolorpointerlistibm); \
    HandleUnsupported(PFNGLEDGEFLAGPOINTERLISTIBMPROC, gledgeflagpointerlistibm); \
    HandleUnsupported(PFNGLFOGCOORDPOINTERLISTIBMPROC, glfogcoordpointerlistibm); \
    HandleUnsupported(PFNGLINDEXPOINTERLISTIBMPROC, glindexpointerlistibm); \
    HandleUnsupported(PFNGLNORMALPOINTERLISTIBMPROC, glnormalpointerlistibm); \
    HandleUnsupported(PFNGLTEXCOORDPOINTERLISTIBMPROC, gltexcoordpointerlistibm); \
    HandleUnsupported(PFNGLVERTEXPOINTERLISTIBMPROC, glvertexpointerlistibm); \
    HandleUnsupported(PFNGLBLENDFUNCSEPARATEINGRPROC, glblendfuncseparateingr); \
    HandleUnsupported(PFNGLSYNCTEXTUREINTELPROC, glsynctextureintel); \
    HandleUnsupported(PFNGLUNMAPTEXTURE2DINTELPROC, glunmaptexture2dintel); \
    HandleUnsupported(PFNGLMAPTEXTURE2DINTELPROC, glmaptexture2dintel); \
    HandleUnsupported(PFNGLVERTEXPOINTERVINTELPROC, glvertexpointervintel); \
    HandleUnsupported(PFNGLNORMALPOINTERVINTELPROC, glnormalpointervintel); \
    HandleUnsupported(PFNGLCOLORPOINTERVINTELPROC, glcolorpointervintel); \
    HandleUnsupported(PFNGLTEXCOORDPOINTERVINTELPROC, gltexcoordpointervintel); \
    HandleUnsupported(PFNGLBEGINPERFQUERYINTELPROC, glbeginperfqueryintel); \
    HandleUnsupported(PFNGLCREATEPERFQUERYINTELPROC, glcreateperfqueryintel); \
    HandleUnsupported(PFNGLDELETEPERFQUERYINTELPROC, gldeleteperfqueryintel); \
    HandleUnsupported(PFNGLENDPERFQUERYINTELPROC, glendperfqueryintel); \
    HandleUnsupported(PFNGLGETFIRSTPERFQUERYIDINTELPROC, glgetfirstperfqueryidintel); \
    HandleUnsupported(PFNGLGETNEXTPERFQUERYIDINTELPROC, glgetnextperfqueryidintel); \
    HandleUnsupported(PFNGLGETPERFCOUNTERINFOINTELPROC, glgetperfcounterinfointel); \
    HandleUnsupported(PFNGLGETPERFQUERYDATAINTELPROC, glgetperfquerydataintel); \
    HandleUnsupported(PFNGLGETPERFQUERYIDBYNAMEINTELPROC, glgetperfqueryidbynameintel); \
    HandleUnsupported(PFNGLGETPERFQUERYINFOINTELPROC, glgetperfqueryinfointel); \
    HandleUnsupported(PFNGLRESIZEBUFFERSMESAPROC, glresizebuffersmesa); \
    HandleUnsupported(PFNGLWINDOWPOS2DMESAPROC, glwindowpos2dmesa); \
    HandleUnsupported(PFNGLWINDOWPOS2DVMESAPROC, glwindowpos2dvmesa); \
    HandleUnsupported(PFNGLWINDOWPOS2FMESAPROC, glwindowpos2fmesa); \
    HandleUnsupported(PFNGLWINDOWPOS2FVMESAPROC, glwindowpos2fvmesa); \
    HandleUnsupported(PFNGLWINDOWPOS2IMESAPROC, glwindowpos2imesa); \
    HandleUnsupported(PFNGLWINDOWPOS2IVMESAPROC, glwindowpos2ivmesa); \
    HandleUnsupported(PFNGLWINDOWPOS2SMESAPROC, glwindowpos2smesa); \
    HandleUnsupported(PFNGLWINDOWPOS2SVMESAPROC, glwindowpos2svmesa); \
    HandleUnsupported(PFNGLWINDOWPOS3DMESAPROC, glwindowpos3dmesa); \
    HandleUnsupported(PFNGLWINDOWPOS3DVMESAPROC, glwindowpos3dvmesa); \
    HandleUnsupported(PFNGLWINDOWPOS3FMESAPROC, glwindowpos3fmesa); \
    HandleUnsupported(PFNGLWINDOWPOS3FVMESAPROC, glwindowpos3fvmesa); \
    HandleUnsupported(PFNGLWINDOWPOS3IMESAPROC, glwindowpos3imesa); \
    HandleUnsupported(PFNGLWINDOWPOS3IVMESAPROC, glwindowpos3ivmesa); \
    HandleUnsupported(PFNGLWINDOWPOS3SMESAPROC, glwindowpos3smesa); \
    HandleUnsupported(PFNGLWINDOWPOS3SVMESAPROC, glwindowpos3svmesa); \
    HandleUnsupported(PFNGLWINDOWPOS4DMESAPROC, glwindowpos4dmesa); \
    HandleUnsupported(PFNGLWINDOWPOS4DVMESAPROC, glwindowpos4dvmesa); \
    HandleUnsupported(PFNGLWINDOWPOS4FMESAPROC, glwindowpos4fmesa); \
    HandleUnsupported(PFNGLWINDOWPOS4FVMESAPROC, glwindowpos4fvmesa); \
    HandleUnsupported(PFNGLWINDOWPOS4IMESAPROC, glwindowpos4imesa); \
    HandleUnsupported(PFNGLWINDOWPOS4IVMESAPROC, glwindowpos4ivmesa); \
    HandleUnsupported(PFNGLWINDOWPOS4SMESAPROC, glwindowpos4smesa); \
    HandleUnsupported(PFNGLWINDOWPOS4SVMESAPROC, glwindowpos4svmesa); \
    HandleUnsupported(PFNGLBEGINCONDITIONALRENDERNVXPROC, glbeginconditionalrendernvx); \
    HandleUnsupported(PFNGLENDCONDITIONALRENDERNVXPROC, glendconditionalrendernvx); \
    HandleUnsupported(PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC, glmultidrawarraysindirectbindlessnv); \
    HandleUnsupported(PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC, glmultidrawelementsindirectbindlessnv); \
    HandleUnsupported(PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC, glmultidrawarraysindirectbindlesscountnv); \
    HandleUnsupported(PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC, glmultidrawelementsindirectbindlesscountnv); \
    HandleUnsupported(PFNGLGETTEXTUREHANDLENVPROC, glgettexturehandlenv); \
    HandleUnsupported(PFNGLGETTEXTURESAMPLERHANDLENVPROC, glgettexturesamplerhandlenv); \
    HandleUnsupported(PFNGLMAKETEXTUREHANDLERESIDENTNVPROC, glmaketexturehandleresidentnv); \
    HandleUnsupported(PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC, glmaketexturehandlenonresidentnv); \
    HandleUnsupported(PFNGLGETIMAGEHANDLENVPROC, glgetimagehandlenv); \
    HandleUnsupported(PFNGLMAKEIMAGEHANDLERESIDENTNVPROC, glmakeimagehandleresidentnv); \
    HandleUnsupported(PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC, glmakeimagehandlenonresidentnv); \
    HandleUnsupported(PFNGLUNIFORMHANDLEUI64NVPROC, gluniformhandleui64nv); \
    HandleUnsupported(PFNGLUNIFORMHANDLEUI64VNVPROC, gluniformhandleui64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC, glprogramuniformhandleui64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC, glprogramuniformhandleui64vnv); \
    HandleUnsupported(PFNGLISTEXTUREHANDLERESIDENTNVPROC, glistexturehandleresidentnv); \
    HandleUnsupported(PFNGLISIMAGEHANDLERESIDENTNVPROC, glisimagehandleresidentnv); \
    HandleUnsupported(PFNGLBLENDPARAMETERINVPROC, glblendparameterinv); \
    HandleUnsupported(PFNGLBLENDBARRIERNVPROC, glblendbarriernv); \
    HandleUnsupported(PFNGLBEGINCONDITIONALRENDERNVPROC, glbeginconditionalrendernv); \
    HandleUnsupported(PFNGLENDCONDITIONALRENDERNVPROC, glendconditionalrendernv); \
    HandleUnsupported(PFNGLSUBPIXELPRECISIONBIASNVPROC, glsubpixelprecisionbiasnv); \
    HandleUnsupported(PFNGLCOPYIMAGESUBDATANVPROC, glcopyimagesubdatanv); \
    HandleUnsupported(PFNGLDEPTHRANGEDNVPROC, gldepthrangednv); \
    HandleUnsupported(PFNGLCLEARDEPTHDNVPROC, glcleardepthdnv); \
    HandleUnsupported(PFNGLDEPTHBOUNDSDNVPROC, gldepthboundsdnv); \
    HandleUnsupported(PFNGLDRAWTEXTURENVPROC, gldrawtexturenv); \
    HandleUnsupported(PFNGLMAPCONTROLPOINTSNVPROC, glmapcontrolpointsnv); \
    HandleUnsupported(PFNGLMAPPARAMETERIVNVPROC, glmapparameterivnv); \
    HandleUnsupported(PFNGLMAPPARAMETERFVNVPROC, glmapparameterfvnv); \
    HandleUnsupported(PFNGLGETMAPCONTROLPOINTSNVPROC, glgetmapcontrolpointsnv); \
    HandleUnsupported(PFNGLGETMAPPARAMETERIVNVPROC, glgetmapparameterivnv); \
    HandleUnsupported(PFNGLGETMAPPARAMETERFVNVPROC, glgetmapparameterfvnv); \
    HandleUnsupported(PFNGLGETMAPATTRIBPARAMETERIVNVPROC, glgetmapattribparameterivnv); \
    HandleUnsupported(PFNGLGETMAPATTRIBPARAMETERFVNVPROC, glgetmapattribparameterfvnv); \
    HandleUnsupported(PFNGLEVALMAPSNVPROC, glevalmapsnv); \
    HandleUnsupported(PFNGLGETMULTISAMPLEFVNVPROC, glgetmultisamplefvnv); \
    HandleUnsupported(PFNGLSAMPLEMASKINDEXEDNVPROC, glsamplemaskindexednv); \
    HandleUnsupported(PFNGLTEXRENDERBUFFERNVPROC, gltexrenderbuffernv); \
    HandleUnsupported(PFNGLDELETEFENCESNVPROC, gldeletefencesnv); \
    HandleUnsupported(PFNGLGENFENCESNVPROC, glgenfencesnv); \
    HandleUnsupported(PFNGLISFENCENVPROC, glisfencenv); \
    HandleUnsupported(PFNGLTESTFENCENVPROC, gltestfencenv); \
    HandleUnsupported(PFNGLGETFENCEIVNVPROC, glgetfenceivnv); \
    HandleUnsupported(PFNGLFINISHFENCENVPROC, glfinishfencenv); \
    HandleUnsupported(PFNGLSETFENCENVPROC, glsetfencenv); \
    HandleUnsupported(PFNGLFRAGMENTCOVERAGECOLORNVPROC, glfragmentcoveragecolornv); \
    HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4FNVPROC, glprogramnamedparameter4fnv); \
    HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC, glprogramnamedparameter4fvnv); \
    HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4DNVPROC, glprogramnamedparameter4dnv); \
    HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC, glprogramnamedparameter4dvnv); \
    HandleUnsupported(PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC, glgetprogramnamedparameterfvnv); \
    HandleUnsupported(PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC, glgetprogramnamedparameterdvnv); \
    HandleUnsupported(PFNGLCOVERAGEMODULATIONTABLENVPROC, glcoveragemodulationtablenv); \
    HandleUnsupported(PFNGLGETCOVERAGEMODULATIONTABLENVPROC, glgetcoveragemodulationtablenv); \
    HandleUnsupported(PFNGLCOVERAGEMODULATIONNVPROC, glcoveragemodulationnv); \
    HandleUnsupported(PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC, glrenderbufferstoragemultisamplecoveragenv); \
    HandleUnsupported(PFNGLPROGRAMVERTEXLIMITNVPROC, glprogramvertexlimitnv); \
    HandleUnsupported(PFNGLFRAMEBUFFERTEXTUREEXTPROC, glframebuffertextureext); \
    HandleUnsupported(PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC, glframebuffertexturefaceext); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERI4INVPROC, glprogramlocalparameteri4inv); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC, glprogramlocalparameteri4ivnv); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC, glprogramlocalparametersi4ivnv); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERI4UINVPROC, glprogramlocalparameteri4uinv); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC, glprogramlocalparameteri4uivnv); \
    HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC, glprogramlocalparametersi4uivnv); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERI4INVPROC, glprogramenvparameteri4inv); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERI4IVNVPROC, glprogramenvparameteri4ivnv); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERSI4IVNVPROC, glprogramenvparametersi4ivnv); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERI4UINVPROC, glprogramenvparameteri4uinv); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERI4UIVNVPROC, glprogramenvparameteri4uivnv); \
    HandleUnsupported(PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC, glprogramenvparametersi4uivnv); \
    HandleUnsupported(PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC, glgetprogramlocalparameteriivnv); \
    HandleUnsupported(PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC, glgetprogramlocalparameteriuivnv); \
    HandleUnsupported(PFNGLGETPROGRAMENVPARAMETERIIVNVPROC, glgetprogramenvparameteriivnv); \
    HandleUnsupported(PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC, glgetprogramenvparameteriuivnv); \
    HandleUnsupported(PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC, glprogramsubroutineparametersuivnv); \
    HandleUnsupported(PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC, glgetprogramsubroutineparameteruivnv); \
    HandleUnsupported(PFNGLVERTEX2HNVPROC, glvertex2hnv); \
    HandleUnsupported(PFNGLVERTEX2HVNVPROC, glvertex2hvnv); \
    HandleUnsupported(PFNGLVERTEX3HNVPROC, glvertex3hnv); \
    HandleUnsupported(PFNGLVERTEX3HVNVPROC, glvertex3hvnv); \
    HandleUnsupported(PFNGLVERTEX4HNVPROC, glvertex4hnv); \
    HandleUnsupported(PFNGLVERTEX4HVNVPROC, glvertex4hvnv); \
    HandleUnsupported(PFNGLNORMAL3HNVPROC, glnormal3hnv); \
    HandleUnsupported(PFNGLNORMAL3HVNVPROC, glnormal3hvnv); \
    HandleUnsupported(PFNGLCOLOR3HNVPROC, glcolor3hnv); \
    HandleUnsupported(PFNGLCOLOR3HVNVPROC, glcolor3hvnv); \
    HandleUnsupported(PFNGLCOLOR4HNVPROC, glcolor4hnv); \
    HandleUnsupported(PFNGLCOLOR4HVNVPROC, glcolor4hvnv); \
    HandleUnsupported(PFNGLTEXCOORD1HNVPROC, gltexcoord1hnv); \
    HandleUnsupported(PFNGLTEXCOORD1HVNVPROC, gltexcoord1hvnv); \
    HandleUnsupported(PFNGLTEXCOORD2HNVPROC, gltexcoord2hnv); \
    HandleUnsupported(PFNGLTEXCOORD2HVNVPROC, gltexcoord2hvnv); \
    HandleUnsupported(PFNGLTEXCOORD3HNVPROC, gltexcoord3hnv); \
    HandleUnsupported(PFNGLTEXCOORD3HVNVPROC, gltexcoord3hvnv); \
    HandleUnsupported(PFNGLTEXCOORD4HNVPROC, gltexcoord4hnv); \
    HandleUnsupported(PFNGLTEXCOORD4HVNVPROC, gltexcoord4hvnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD1HNVPROC, glmultitexcoord1hnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD1HVNVPROC, glmultitexcoord1hvnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD2HNVPROC, glmultitexcoord2hnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD2HVNVPROC, glmultitexcoord2hvnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD3HNVPROC, glmultitexcoord3hnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD3HVNVPROC, glmultitexcoord3hvnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD4HNVPROC, glmultitexcoord4hnv); \
    HandleUnsupported(PFNGLMULTITEXCOORD4HVNVPROC, glmultitexcoord4hvnv); \
    HandleUnsupported(PFNGLFOGCOORDHNVPROC, glfogcoordhnv); \
    HandleUnsupported(PFNGLFOGCOORDHVNVPROC, glfogcoordhvnv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3HNVPROC, glsecondarycolor3hnv); \
    HandleUnsupported(PFNGLSECONDARYCOLOR3HVNVPROC, glsecondarycolor3hvnv); \
    HandleUnsupported(PFNGLVERTEXWEIGHTHNVPROC, glvertexweighthnv); \
    HandleUnsupported(PFNGLVERTEXWEIGHTHVNVPROC, glvertexweighthvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1HNVPROC, glvertexattrib1hnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1HVNVPROC, glvertexattrib1hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2HNVPROC, glvertexattrib2hnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2HVNVPROC, glvertexattrib2hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3HNVPROC, glvertexattrib3hnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3HVNVPROC, glvertexattrib3hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4HNVPROC, glvertexattrib4hnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4HVNVPROC, glvertexattrib4hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS1HVNVPROC, glvertexattribs1hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS2HVNVPROC, glvertexattribs2hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS3HVNVPROC, glvertexattribs3hvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS4HVNVPROC, glvertexattribs4hvnv); \
    HandleUnsupported(PFNGLGETINTERNALFORMATSAMPLEIVNVPROC, glgetinternalformatsampleivnv); \
    HandleUnsupported(PFNGLGENOCCLUSIONQUERIESNVPROC, glgenocclusionqueriesnv); \
    HandleUnsupported(PFNGLDELETEOCCLUSIONQUERIESNVPROC, gldeleteocclusionqueriesnv); \
    HandleUnsupported(PFNGLISOCCLUSIONQUERYNVPROC, glisocclusionquerynv); \
    HandleUnsupported(PFNGLBEGINOCCLUSIONQUERYNVPROC, glbeginocclusionquerynv); \
    HandleUnsupported(PFNGLENDOCCLUSIONQUERYNVPROC, glendocclusionquerynv); \
    HandleUnsupported(PFNGLGETOCCLUSIONQUERYIVNVPROC, glgetocclusionqueryivnv); \
    HandleUnsupported(PFNGLGETOCCLUSIONQUERYUIVNVPROC, glgetocclusionqueryuivnv); \
    HandleUnsupported(PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC, glprogrambufferparametersfvnv); \
    HandleUnsupported(PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC, glprogrambufferparametersiivnv); \
    HandleUnsupported(PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC, glprogrambufferparametersiuivnv); \
    HandleUnsupported(PFNGLGENPATHSNVPROC, glgenpathsnv); \
    HandleUnsupported(PFNGLDELETEPATHSNVPROC, gldeletepathsnv); \
    HandleUnsupported(PFNGLISPATHNVPROC, glispathnv); \
    HandleUnsupported(PFNGLPATHCOMMANDSNVPROC, glpathcommandsnv); \
    HandleUnsupported(PFNGLPATHCOORDSNVPROC, glpathcoordsnv); \
    HandleUnsupported(PFNGLPATHSUBCOMMANDSNVPROC, glpathsubcommandsnv); \
    HandleUnsupported(PFNGLPATHSUBCOORDSNVPROC, glpathsubcoordsnv); \
    HandleUnsupported(PFNGLPATHSTRINGNVPROC, glpathstringnv); \
    HandleUnsupported(PFNGLPATHGLYPHSNVPROC, glpathglyphsnv); \
    HandleUnsupported(PFNGLPATHGLYPHRANGENVPROC, glpathglyphrangenv); \
    HandleUnsupported(PFNGLWEIGHTPATHSNVPROC, glweightpathsnv); \
    HandleUnsupported(PFNGLCOPYPATHNVPROC, glcopypathnv); \
    HandleUnsupported(PFNGLINTERPOLATEPATHSNVPROC, glinterpolatepathsnv); \
    HandleUnsupported(PFNGLTRANSFORMPATHNVPROC, gltransformpathnv); \
    HandleUnsupported(PFNGLPATHPARAMETERIVNVPROC, glpathparameterivnv); \
    HandleUnsupported(PFNGLPATHPARAMETERINVPROC, glpathparameterinv); \
    HandleUnsupported(PFNGLPATHPARAMETERFVNVPROC, glpathparameterfvnv); \
    HandleUnsupported(PFNGLPATHPARAMETERFNVPROC, glpathparameterfnv); \
    HandleUnsupported(PFNGLPATHDASHARRAYNVPROC, glpathdasharraynv); \
    HandleUnsupported(PFNGLPATHSTENCILFUNCNVPROC, glpathstencilfuncnv); \
    HandleUnsupported(PFNGLPATHSTENCILDEPTHOFFSETNVPROC, glpathstencildepthoffsetnv); \
    HandleUnsupported(PFNGLSTENCILFILLPATHNVPROC, glstencilfillpathnv); \
    HandleUnsupported(PFNGLSTENCILSTROKEPATHNVPROC, glstencilstrokepathnv); \
    HandleUnsupported(PFNGLSTENCILFILLPATHINSTANCEDNVPROC, glstencilfillpathinstancednv); \
    HandleUnsupported(PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC, glstencilstrokepathinstancednv); \
    HandleUnsupported(PFNGLPATHCOVERDEPTHFUNCNVPROC, glpathcoverdepthfuncnv); \
    HandleUnsupported(PFNGLCOVERFILLPATHNVPROC, glcoverfillpathnv); \
    HandleUnsupported(PFNGLCOVERSTROKEPATHNVPROC, glcoverstrokepathnv); \
    HandleUnsupported(PFNGLCOVERFILLPATHINSTANCEDNVPROC, glcoverfillpathinstancednv); \
    HandleUnsupported(PFNGLCOVERSTROKEPATHINSTANCEDNVPROC, glcoverstrokepathinstancednv); \
    HandleUnsupported(PFNGLGETPATHPARAMETERIVNVPROC, glgetpathparameterivnv); \
    HandleUnsupported(PFNGLGETPATHPARAMETERFVNVPROC, glgetpathparameterfvnv); \
    HandleUnsupported(PFNGLGETPATHCOMMANDSNVPROC, glgetpathcommandsnv); \
    HandleUnsupported(PFNGLGETPATHCOORDSNVPROC, glgetpathcoordsnv); \
    HandleUnsupported(PFNGLGETPATHDASHARRAYNVPROC, glgetpathdasharraynv); \
    HandleUnsupported(PFNGLGETPATHMETRICSNVPROC, glgetpathmetricsnv); \
    HandleUnsupported(PFNGLGETPATHMETRICRANGENVPROC, glgetpathmetricrangenv); \
    HandleUnsupported(PFNGLGETPATHSPACINGNVPROC, glgetpathspacingnv); \
    HandleUnsupported(PFNGLISPOINTINFILLPATHNVPROC, glispointinfillpathnv); \
    HandleUnsupported(PFNGLISPOINTINSTROKEPATHNVPROC, glispointinstrokepathnv); \
    HandleUnsupported(PFNGLGETPATHLENGTHNVPROC, glgetpathlengthnv); \
    HandleUnsupported(PFNGLPOINTALONGPATHNVPROC, glpointalongpathnv); \
    HandleUnsupported(PFNGLMATRIXLOAD3X2FNVPROC, glmatrixload3x2fnv); \
    HandleUnsupported(PFNGLMATRIXLOAD3X3FNVPROC, glmatrixload3x3fnv); \
    HandleUnsupported(PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC, glmatrixloadtranspose3x3fnv); \
    HandleUnsupported(PFNGLMATRIXMULT3X2FNVPROC, glmatrixmult3x2fnv); \
    HandleUnsupported(PFNGLMATRIXMULT3X3FNVPROC, glmatrixmult3x3fnv); \
    HandleUnsupported(PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC, glmatrixmulttranspose3x3fnv); \
    HandleUnsupported(PFNGLSTENCILTHENCOVERFILLPATHNVPROC, glstencilthencoverfillpathnv); \
    HandleUnsupported(PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC, glstencilthencoverstrokepathnv); \
    HandleUnsupported(PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC, glstencilthencoverfillpathinstancednv); \
    HandleUnsupported(PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC, glstencilthencoverstrokepathinstancednv); \
    HandleUnsupported(PFNGLPATHGLYPHINDEXRANGENVPROC, glpathglyphindexrangenv); \
    HandleUnsupported(PFNGLPATHGLYPHINDEXARRAYNVPROC, glpathglyphindexarraynv); \
    HandleUnsupported(PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC, glpathmemoryglyphindexarraynv); \
    HandleUnsupported(PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC, glprogrampathfragmentinputgennv); \
    HandleUnsupported(PFNGLGETPROGRAMRESOURCEFVNVPROC, glgetprogramresourcefvnv); \
    HandleUnsupported(PFNGLPATHCOLORGENNVPROC, glpathcolorgennv); \
    HandleUnsupported(PFNGLPATHTEXGENNVPROC, glpathtexgennv); \
    HandleUnsupported(PFNGLPATHFOGGENNVPROC, glpathfoggennv); \
    HandleUnsupported(PFNGLGETPATHCOLORGENIVNVPROC, glgetpathcolorgenivnv); \
    HandleUnsupported(PFNGLGETPATHCOLORGENFVNVPROC, glgetpathcolorgenfvnv); \
    HandleUnsupported(PFNGLGETPATHTEXGENIVNVPROC, glgetpathtexgenivnv); \
    HandleUnsupported(PFNGLGETPATHTEXGENFVNVPROC, glgetpathtexgenfvnv); \
    HandleUnsupported(PFNGLPIXELDATARANGENVPROC, glpixeldatarangenv); \
    HandleUnsupported(PFNGLFLUSHPIXELDATARANGENVPROC, glflushpixeldatarangenv); \
    HandleUnsupported(PFNGLPOINTPARAMETERINVPROC, glpointparameterinv); \
    HandleUnsupported(PFNGLPOINTPARAMETERIVNVPROC, glpointparameterivnv); \
    HandleUnsupported(PFNGLPRESENTFRAMEKEYEDNVPROC, glpresentframekeyednv); \
    HandleUnsupported(PFNGLPRESENTFRAMEDUALFILLNVPROC, glpresentframedualfillnv); \
    HandleUnsupported(PFNGLGETVIDEOIVNVPROC, glgetvideoivnv); \
    HandleUnsupported(PFNGLGETVIDEOUIVNVPROC, glgetvideouivnv); \
    HandleUnsupported(PFNGLGETVIDEOI64VNVPROC, glgetvideoi64vnv); \
    HandleUnsupported(PFNGLGETVIDEOUI64VNVPROC, glgetvideoui64vnv); \
    HandleUnsupported(PFNGLPRIMITIVERESTARTNVPROC, glprimitiverestartnv); \
    HandleUnsupported(PFNGLPRIMITIVERESTARTINDEXNVPROC, glprimitiverestartindexnv); \
    HandleUnsupported(PFNGLCOMBINERPARAMETERFVNVPROC, glcombinerparameterfvnv); \
    HandleUnsupported(PFNGLCOMBINERPARAMETERFNVPROC, glcombinerparameterfnv); \
    HandleUnsupported(PFNGLCOMBINERPARAMETERIVNVPROC, glcombinerparameterivnv); \
    HandleUnsupported(PFNGLCOMBINERPARAMETERINVPROC, glcombinerparameterinv); \
    HandleUnsupported(PFNGLCOMBINERINPUTNVPROC, glcombinerinputnv); \
    HandleUnsupported(PFNGLCOMBINEROUTPUTNVPROC, glcombineroutputnv); \
    HandleUnsupported(PFNGLFINALCOMBINERINPUTNVPROC, glfinalcombinerinputnv); \
    HandleUnsupported(PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC, glgetcombinerinputparameterfvnv); \
    HandleUnsupported(PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC, glgetcombinerinputparameterivnv); \
    HandleUnsupported(PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC, glgetcombineroutputparameterfvnv); \
    HandleUnsupported(PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC, glgetcombineroutputparameterivnv); \
    HandleUnsupported(PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC, glgetfinalcombinerinputparameterfvnv); \
    HandleUnsupported(PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC, glgetfinalcombinerinputparameterivnv); \
    HandleUnsupported(PFNGLCOMBINERSTAGEPARAMETERFVNVPROC, glcombinerstageparameterfvnv); \
    HandleUnsupported(PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC, glgetcombinerstageparameterfvnv); \
    HandleUnsupported(PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC, glframebuffersamplelocationsfvnv); \
    HandleUnsupported(PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC, glnamedframebuffersamplelocationsfvnv); \
    HandleUnsupported(PFNGLRESOLVEDEPTHVALUESNVPROC, glresolvedepthvaluesnv); \
    HandleUnsupported(PFNGLMAKEBUFFERRESIDENTNVPROC, glmakebufferresidentnv); \
    HandleUnsupported(PFNGLMAKEBUFFERNONRESIDENTNVPROC, glmakebuffernonresidentnv); \
    HandleUnsupported(PFNGLISBUFFERRESIDENTNVPROC, glisbufferresidentnv); \
    HandleUnsupported(PFNGLMAKENAMEDBUFFERRESIDENTNVPROC, glmakenamedbufferresidentnv); \
    HandleUnsupported(PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC, glmakenamedbuffernonresidentnv); \
    HandleUnsupported(PFNGLISNAMEDBUFFERRESIDENTNVPROC, glisnamedbufferresidentnv); \
    HandleUnsupported(PFNGLGETBUFFERPARAMETERUI64VNVPROC, glgetbufferparameterui64vnv); \
    HandleUnsupported(PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC, glgetnamedbufferparameterui64vnv); \
    HandleUnsupported(PFNGLGETINTEGERUI64VNVPROC, glgetintegerui64vnv); \
    HandleUnsupported(PFNGLUNIFORMUI64NVPROC, gluniformui64nv); \
    HandleUnsupported(PFNGLUNIFORMUI64VNVPROC, gluniformui64vnv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMUI64NVPROC, glprogramuniformui64nv); \
    HandleUnsupported(PFNGLPROGRAMUNIFORMUI64VNVPROC, glprogramuniformui64vnv); \
    HandleUnsupported(PFNGLTEXTUREBARRIERNVPROC, gltexturebarriernv); \
    HandleUnsupported(PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC, glteximage2dmultisamplecoveragenv); \
    HandleUnsupported(PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC, glteximage3dmultisamplecoveragenv); \
    HandleUnsupported(PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC, gltextureimage2dmultisamplenv); \
    HandleUnsupported(PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC, gltextureimage3dmultisamplenv); \
    HandleUnsupported(PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC, gltextureimage2dmultisamplecoveragenv); \
    HandleUnsupported(PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC, gltextureimage3dmultisamplecoveragenv); \
    HandleUnsupported(PFNGLBEGINTRANSFORMFEEDBACKNVPROC, glbegintransformfeedbacknv); \
    HandleUnsupported(PFNGLENDTRANSFORMFEEDBACKNVPROC, glendtransformfeedbacknv); \
    HandleUnsupported(PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC, gltransformfeedbackattribsnv); \
    HandleUnsupported(PFNGLBINDBUFFERRANGENVPROC, glbindbufferrangenv); \
    HandleUnsupported(PFNGLBINDBUFFEROFFSETNVPROC, glbindbufferoffsetnv); \
    HandleUnsupported(PFNGLBINDBUFFERBASENVPROC, glbindbufferbasenv); \
    HandleUnsupported(PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC, gltransformfeedbackvaryingsnv); \
    HandleUnsupported(PFNGLACTIVEVARYINGNVPROC, glactivevaryingnv); \
    HandleUnsupported(PFNGLGETVARYINGLOCATIONNVPROC, glgetvaryinglocationnv); \
    HandleUnsupported(PFNGLGETACTIVEVARYINGNVPROC, glgetactivevaryingnv); \
    HandleUnsupported(PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC, glgettransformfeedbackvaryingnv); \
    HandleUnsupported(PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC, gltransformfeedbackstreamattribsnv); \
    HandleUnsupported(PFNGLBINDTRANSFORMFEEDBACKNVPROC, glbindtransformfeedbacknv); \
    HandleUnsupported(PFNGLDELETETRANSFORMFEEDBACKSNVPROC, gldeletetransformfeedbacksnv); \
    HandleUnsupported(PFNGLGENTRANSFORMFEEDBACKSNVPROC, glgentransformfeedbacksnv); \
    HandleUnsupported(PFNGLISTRANSFORMFEEDBACKNVPROC, glistransformfeedbacknv); \
    HandleUnsupported(PFNGLPAUSETRANSFORMFEEDBACKNVPROC, glpausetransformfeedbacknv); \
    HandleUnsupported(PFNGLRESUMETRANSFORMFEEDBACKNVPROC, glresumetransformfeedbacknv); \
    HandleUnsupported(PFNGLDRAWTRANSFORMFEEDBACKNVPROC, gldrawtransformfeedbacknv); \
    HandleUnsupported(PFNGLVDPAUINITNVPROC, glvdpauinitnv); \
    HandleUnsupported(PFNGLVDPAUFININVPROC, glvdpaufininv); \
    HandleUnsupported(PFNGLVDPAUREGISTERVIDEOSURFACENVPROC, glvdpauregistervideosurfacenv); \
    HandleUnsupported(PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC, glvdpauregisteroutputsurfacenv); \
    HandleUnsupported(PFNGLVDPAUISSURFACENVPROC, glvdpauissurfacenv); \
    HandleUnsupported(PFNGLVDPAUUNREGISTERSURFACENVPROC, glvdpauunregistersurfacenv); \
    HandleUnsupported(PFNGLVDPAUGETSURFACEIVNVPROC, glvdpaugetsurfaceivnv); \
    HandleUnsupported(PFNGLVDPAUSURFACEACCESSNVPROC, glvdpausurfaceaccessnv); \
    HandleUnsupported(PFNGLVDPAUMAPSURFACESNVPROC, glvdpaumapsurfacesnv); \
    HandleUnsupported(PFNGLVDPAUUNMAPSURFACESNVPROC, glvdpauunmapsurfacesnv); \
    HandleUnsupported(PFNGLFLUSHVERTEXARRAYRANGENVPROC, glflushvertexarrayrangenv); \
    HandleUnsupported(PFNGLVERTEXARRAYRANGENVPROC, glvertexarrayrangenv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL1I64NVPROC, glvertexattribl1i64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL2I64NVPROC, glvertexattribl2i64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL3I64NVPROC, glvertexattribl3i64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL4I64NVPROC, glvertexattribl4i64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL1I64VNVPROC, glvertexattribl1i64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL2I64VNVPROC, glvertexattribl2i64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL3I64VNVPROC, glvertexattribl3i64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL4I64VNVPROC, glvertexattribl4i64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL1UI64NVPROC, glvertexattribl1ui64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL2UI64NVPROC, glvertexattribl2ui64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL3UI64NVPROC, glvertexattribl3ui64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL4UI64NVPROC, glvertexattribl4ui64nv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL1UI64VNVPROC, glvertexattribl1ui64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL2UI64VNVPROC, glvertexattribl2ui64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL3UI64VNVPROC, glvertexattribl3ui64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBL4UI64VNVPROC, glvertexattribl4ui64vnv); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBLI64VNVPROC, glgetvertexattribli64vnv); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBLUI64VNVPROC, glgetvertexattriblui64vnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBLFORMATNVPROC, glvertexattriblformatnv); \
    HandleUnsupported(PFNGLBUFFERADDRESSRANGENVPROC, glbufferaddressrangenv); \
    HandleUnsupported(PFNGLVERTEXFORMATNVPROC, glvertexformatnv); \
    HandleUnsupported(PFNGLNORMALFORMATNVPROC, glnormalformatnv); \
    HandleUnsupported(PFNGLCOLORFORMATNVPROC, glcolorformatnv); \
    HandleUnsupported(PFNGLINDEXFORMATNVPROC, glindexformatnv); \
    HandleUnsupported(PFNGLTEXCOORDFORMATNVPROC, gltexcoordformatnv); \
    HandleUnsupported(PFNGLEDGEFLAGFORMATNVPROC, gledgeflagformatnv); \
    HandleUnsupported(PFNGLSECONDARYCOLORFORMATNVPROC, glsecondarycolorformatnv); \
    HandleUnsupported(PFNGLFOGCOORDFORMATNVPROC, glfogcoordformatnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBFORMATNVPROC, glvertexattribformatnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBIFORMATNVPROC, glvertexattribiformatnv); \
    HandleUnsupported(PFNGLGETINTEGERUI64I_VNVPROC, glgetintegerui64i_vnv); \
    HandleUnsupported(PFNGLAREPROGRAMSRESIDENTNVPROC, glareprogramsresidentnv); \
    HandleUnsupported(PFNGLBINDPROGRAMNVPROC, glbindprogramnv); \
    HandleUnsupported(PFNGLDELETEPROGRAMSNVPROC, gldeleteprogramsnv); \
    HandleUnsupported(PFNGLEXECUTEPROGRAMNVPROC, glexecuteprogramnv); \
    HandleUnsupported(PFNGLGENPROGRAMSNVPROC, glgenprogramsnv); \
    HandleUnsupported(PFNGLGETPROGRAMPARAMETERDVNVPROC, glgetprogramparameterdvnv); \
    HandleUnsupported(PFNGLGETPROGRAMPARAMETERFVNVPROC, glgetprogramparameterfvnv); \
    HandleUnsupported(PFNGLGETPROGRAMIVNVPROC, glgetprogramivnv); \
    HandleUnsupported(PFNGLGETPROGRAMSTRINGNVPROC, glgetprogramstringnv); \
    HandleUnsupported(PFNGLGETTRACKMATRIXIVNVPROC, glgettrackmatrixivnv); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBDVNVPROC, glgetvertexattribdvnv); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBFVNVPROC, glgetvertexattribfvnv); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBIVNVPROC, glgetvertexattribivnv); \
    HandleUnsupported(PFNGLGETVERTEXATTRIBPOINTERVNVPROC, glgetvertexattribpointervnv); \
    HandleUnsupported(PFNGLISPROGRAMNVPROC, glisprogramnv); \
    HandleUnsupported(PFNGLLOADPROGRAMNVPROC, glloadprogramnv); \
    HandleUnsupported(PFNGLPROGRAMPARAMETER4DNVPROC, glprogramparameter4dnv); \
    HandleUnsupported(PFNGLPROGRAMPARAMETER4DVNVPROC, glprogramparameter4dvnv); \
    HandleUnsupported(PFNGLPROGRAMPARAMETER4FNVPROC, glprogramparameter4fnv); \
    HandleUnsupported(PFNGLPROGRAMPARAMETER4FVNVPROC, glprogramparameter4fvnv); \
    HandleUnsupported(PFNGLPROGRAMPARAMETERS4DVNVPROC, glprogramparameters4dvnv); \
    HandleUnsupported(PFNGLPROGRAMPARAMETERS4FVNVPROC, glprogramparameters4fvnv); \
    HandleUnsupported(PFNGLREQUESTRESIDENTPROGRAMSNVPROC, glrequestresidentprogramsnv); \
    HandleUnsupported(PFNGLTRACKMATRIXNVPROC, gltrackmatrixnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBPOINTERNVPROC, glvertexattribpointernv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1DNVPROC, glvertexattrib1dnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1DVNVPROC, glvertexattrib1dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1FNVPROC, glvertexattrib1fnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1FVNVPROC, glvertexattrib1fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1SNVPROC, glvertexattrib1snv); \
    HandleUnsupported(PFNGLVERTEXATTRIB1SVNVPROC, glvertexattrib1svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2DNVPROC, glvertexattrib2dnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2DVNVPROC, glvertexattrib2dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2FNVPROC, glvertexattrib2fnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2FVNVPROC, glvertexattrib2fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2SNVPROC, glvertexattrib2snv); \
    HandleUnsupported(PFNGLVERTEXATTRIB2SVNVPROC, glvertexattrib2svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3DNVPROC, glvertexattrib3dnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3DVNVPROC, glvertexattrib3dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3FNVPROC, glvertexattrib3fnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3FVNVPROC, glvertexattrib3fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3SNVPROC, glvertexattrib3snv); \
    HandleUnsupported(PFNGLVERTEXATTRIB3SVNVPROC, glvertexattrib3svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4DNVPROC, glvertexattrib4dnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4DVNVPROC, glvertexattrib4dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4FNVPROC, glvertexattrib4fnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4FVNVPROC, glvertexattrib4fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4SNVPROC, glvertexattrib4snv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4SVNVPROC, glvertexattrib4svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4UBNVPROC, glvertexattrib4ubnv); \
    HandleUnsupported(PFNGLVERTEXATTRIB4UBVNVPROC, glvertexattrib4ubvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS1DVNVPROC, glvertexattribs1dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS1FVNVPROC, glvertexattribs1fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS1SVNVPROC, glvertexattribs1svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS2DVNVPROC, glvertexattribs2dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS2FVNVPROC, glvertexattribs2fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS2SVNVPROC, glvertexattribs2svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS3DVNVPROC, glvertexattribs3dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS3FVNVPROC, glvertexattribs3fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS3SVNVPROC, glvertexattribs3svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS4DVNVPROC, glvertexattribs4dvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS4FVNVPROC, glvertexattribs4fvnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS4SVNVPROC, glvertexattribs4svnv); \
    HandleUnsupported(PFNGLVERTEXATTRIBS4UBVNVPROC, glvertexattribs4ubvnv); \
    HandleUnsupported(PFNGLBEGINVIDEOCAPTURENVPROC, glbeginvideocapturenv); \
    HandleUnsupported(PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC, glbindvideocapturestreambuffernv); \
    HandleUnsupported(PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC, glbindvideocapturestreamtexturenv); \
    HandleUnsupported(PFNGLENDVIDEOCAPTURENVPROC, glendvideocapturenv); \
    HandleUnsupported(PFNGLGETVIDEOCAPTUREIVNVPROC, glgetvideocaptureivnv); \
    HandleUnsupported(PFNGLGETVIDEOCAPTURESTREAMIVNVPROC, glgetvideocapturestreamivnv); \
    HandleUnsupported(PFNGLGETVIDEOCAPTURESTREAMFVNVPROC, glgetvideocapturestreamfvnv); \
    HandleUnsupported(PFNGLGETVIDEOCAPTURESTREAMDVNVPROC, glgetvideocapturestreamdvnv); \
    HandleUnsupported(PFNGLVIDEOCAPTURENVPROC, glvideocapturenv); \
    HandleUnsupported(PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC, glvideocapturestreamparameterivnv); \
    HandleUnsupported(PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC, glvideocapturestreamparameterfvnv); \
    HandleUnsupported(PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC, glvideocapturestreamparameterdvnv); \
    HandleUnsupported(PFNGLHINTPGIPROC, glhintpgi); \
    HandleUnsupported(PFNGLDETAILTEXFUNCSGISPROC, gldetailtexfuncsgis); \
    HandleUnsupported(PFNGLGETDETAILTEXFUNCSGISPROC, glgetdetailtexfuncsgis); \
    HandleUnsupported(PFNGLFOGFUNCSGISPROC, glfogfuncsgis); \
    HandleUnsupported(PFNGLGETFOGFUNCSGISPROC, glgetfogfuncsgis); \
    HandleUnsupported(PFNGLSAMPLEMASKSGISPROC, glsamplemasksgis); \
    HandleUnsupported(PFNGLSAMPLEPATTERNSGISPROC, glsamplepatternsgis); \
    HandleUnsupported(PFNGLPIXELTEXGENPARAMETERISGISPROC, glpixeltexgenparameterisgis); \
    HandleUnsupported(PFNGLPIXELTEXGENPARAMETERIVSGISPROC, glpixeltexgenparameterivsgis); \
    HandleUnsupported(PFNGLPIXELTEXGENPARAMETERFSGISPROC, glpixeltexgenparameterfsgis); \
    HandleUnsupported(PFNGLPIXELTEXGENPARAMETERFVSGISPROC, glpixeltexgenparameterfvsgis); \
    HandleUnsupported(PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC, glgetpixeltexgenparameterivsgis); \
    HandleUnsupported(PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC, glgetpixeltexgenparameterfvsgis); \
    HandleUnsupported(PFNGLPOINTPARAMETERFSGISPROC, glpointparameterfsgis); \
    HandleUnsupported(PFNGLPOINTPARAMETERFVSGISPROC, glpointparameterfvsgis); \
    HandleUnsupported(PFNGLSHARPENTEXFUNCSGISPROC, glsharpentexfuncsgis); \
    HandleUnsupported(PFNGLGETSHARPENTEXFUNCSGISPROC, glgetsharpentexfuncsgis); \
    HandleUnsupported(PFNGLTEXIMAGE4DSGISPROC, glteximage4dsgis); \
    HandleUnsupported(PFNGLTEXSUBIMAGE4DSGISPROC, gltexsubimage4dsgis); \
    HandleUnsupported(PFNGLTEXTURECOLORMASKSGISPROC, gltexturecolormasksgis); \
    HandleUnsupported(PFNGLGETTEXFILTERFUNCSGISPROC, glgettexfilterfuncsgis); \
    HandleUnsupported(PFNGLTEXFILTERFUNCSGISPROC, gltexfilterfuncsgis); \
    HandleUnsupported(PFNGLASYNCMARKERSGIXPROC, glasyncmarkersgix); \
    HandleUnsupported(PFNGLFINISHASYNCSGIXPROC, glfinishasyncsgix); \
    HandleUnsupported(PFNGLPOLLASYNCSGIXPROC, glpollasyncsgix); \
    HandleUnsupported(PFNGLGENASYNCMARKERSSGIXPROC, glgenasyncmarkerssgix); \
    HandleUnsupported(PFNGLDELETEASYNCMARKERSSGIXPROC, gldeleteasyncmarkerssgix); \
    HandleUnsupported(PFNGLISASYNCMARKERSGIXPROC, glisasyncmarkersgix); \
    HandleUnsupported(PFNGLFLUSHRASTERSGIXPROC, glflushrastersgix); \
    HandleUnsupported(PFNGLFRAGMENTCOLORMATERIALSGIXPROC, glfragmentcolormaterialsgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTFSGIXPROC, glfragmentlightfsgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTFVSGIXPROC, glfragmentlightfvsgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTISGIXPROC, glfragmentlightisgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTIVSGIXPROC, glfragmentlightivsgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTMODELFSGIXPROC, glfragmentlightmodelfsgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTMODELFVSGIXPROC, glfragmentlightmodelfvsgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTMODELISGIXPROC, glfragmentlightmodelisgix); \
    HandleUnsupported(PFNGLFRAGMENTLIGHTMODELIVSGIXPROC, glfragmentlightmodelivsgix); \
    HandleUnsupported(PFNGLFRAGMENTMATERIALFSGIXPROC, glfragmentmaterialfsgix); \
    HandleUnsupported(PFNGLFRAGMENTMATERIALFVSGIXPROC, glfragmentmaterialfvsgix); \
    HandleUnsupported(PFNGLFRAGMENTMATERIALISGIXPROC, glfragmentmaterialisgix); \
    HandleUnsupported(PFNGLFRAGMENTMATERIALIVSGIXPROC, glfragmentmaterialivsgix); \
    HandleUnsupported(PFNGLGETFRAGMENTLIGHTFVSGIXPROC, glgetfragmentlightfvsgix); \
    HandleUnsupported(PFNGLGETFRAGMENTLIGHTIVSGIXPROC, glgetfragmentlightivsgix); \
    HandleUnsupported(PFNGLGETFRAGMENTMATERIALFVSGIXPROC, glgetfragmentmaterialfvsgix); \
    HandleUnsupported(PFNGLGETFRAGMENTMATERIALIVSGIXPROC, glgetfragmentmaterialivsgix); \
    HandleUnsupported(PFNGLLIGHTENVISGIXPROC, gllightenvisgix); \
    HandleUnsupported(PFNGLFRAMEZOOMSGIXPROC, glframezoomsgix); \
    HandleUnsupported(PFNGLIGLOOINTERFACESGIXPROC, gligloointerfacesgix); \
    HandleUnsupported(PFNGLGETINSTRUMENTSSGIXPROC, glgetinstrumentssgix); \
    HandleUnsupported(PFNGLINSTRUMENTSBUFFERSGIXPROC, glinstrumentsbuffersgix); \
    HandleUnsupported(PFNGLPOLLINSTRUMENTSSGIXPROC, glpollinstrumentssgix); \
    HandleUnsupported(PFNGLREADINSTRUMENTSSGIXPROC, glreadinstrumentssgix); \
    HandleUnsupported(PFNGLSTARTINSTRUMENTSSGIXPROC, glstartinstrumentssgix); \
    HandleUnsupported(PFNGLSTOPINSTRUMENTSSGIXPROC, glstopinstrumentssgix); \
    HandleUnsupported(PFNGLGETLISTPARAMETERFVSGIXPROC, glgetlistparameterfvsgix); \
    HandleUnsupported(PFNGLGETLISTPARAMETERIVSGIXPROC, glgetlistparameterivsgix); \
    HandleUnsupported(PFNGLLISTPARAMETERFSGIXPROC, gllistparameterfsgix); \
    HandleUnsupported(PFNGLLISTPARAMETERFVSGIXPROC, gllistparameterfvsgix); \
    HandleUnsupported(PFNGLLISTPARAMETERISGIXPROC, gllistparameterisgix); \
    HandleUnsupported(PFNGLLISTPARAMETERIVSGIXPROC, gllistparameterivsgix); \
    HandleUnsupported(PFNGLPIXELTEXGENSGIXPROC, glpixeltexgensgix); \
    HandleUnsupported(PFNGLDEFORMATIONMAP3DSGIXPROC, gldeformationmap3dsgix); \
    HandleUnsupported(PFNGLDEFORMATIONMAP3FSGIXPROC, gldeformationmap3fsgix); \
    HandleUnsupported(PFNGLDEFORMSGIXPROC, gldeformsgix); \
    HandleUnsupported(PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC, glloadidentitydeformationmapsgix); \
    HandleUnsupported(PFNGLREFERENCEPLANESGIXPROC, glreferenceplanesgix); \
    HandleUnsupported(PFNGLSPRITEPARAMETERFSGIXPROC, glspriteparameterfsgix); \
    HandleUnsupported(PFNGLSPRITEPARAMETERFVSGIXPROC, glspriteparameterfvsgix); \
    HandleUnsupported(PFNGLSPRITEPARAMETERISGIXPROC, glspriteparameterisgix); \
    HandleUnsupported(PFNGLSPRITEPARAMETERIVSGIXPROC, glspriteparameterivsgix); \
    HandleUnsupported(PFNGLTAGSAMPLEBUFFERSGIXPROC, gltagsamplebuffersgix); \
    HandleUnsupported(PFNGLCOLORTABLESGIPROC, glcolortablesgi); \
    HandleUnsupported(PFNGLCOLORTABLEPARAMETERFVSGIPROC, glcolortableparameterfvsgi); \
    HandleUnsupported(PFNGLCOLORTABLEPARAMETERIVSGIPROC, glcolortableparameterivsgi); \
    HandleUnsupported(PFNGLCOPYCOLORTABLESGIPROC, glcopycolortablesgi); \
    HandleUnsupported(PFNGLGETCOLORTABLESGIPROC, glgetcolortablesgi); \
    HandleUnsupported(PFNGLGETCOLORTABLEPARAMETERFVSGIPROC, glgetcolortableparameterfvsgi); \
    HandleUnsupported(PFNGLGETCOLORTABLEPARAMETERIVSGIPROC, glgetcolortableparameterivsgi); \
    HandleUnsupported(PFNGLFINISHTEXTURESUNXPROC, glfinishtexturesunx); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORBSUNPROC, glglobalalphafactorbsun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORSSUNPROC, glglobalalphafactorssun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORISUNPROC, glglobalalphafactorisun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORFSUNPROC, glglobalalphafactorfsun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORDSUNPROC, glglobalalphafactordsun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORUBSUNPROC, glglobalalphafactorubsun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORUSSUNPROC, glglobalalphafactorussun); \
    HandleUnsupported(PFNGLGLOBALALPHAFACTORUISUNPROC, glglobalalphafactoruisun); \
    HandleUnsupported(PFNGLDRAWMESHARRAYSSUNPROC, gldrawmesharrayssun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUISUNPROC, glreplacementcodeuisun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUSSUNPROC, glreplacementcodeussun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUBSUNPROC, glreplacementcodeubsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUIVSUNPROC, glreplacementcodeuivsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUSVSUNPROC, glreplacementcodeusvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUBVSUNPROC, glreplacementcodeubvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEPOINTERSUNPROC, glreplacementcodepointersun); \
    HandleUnsupported(PFNGLCOLOR4UBVERTEX2FSUNPROC, glcolor4ubvertex2fsun); \
    HandleUnsupported(PFNGLCOLOR4UBVERTEX2FVSUNPROC, glcolor4ubvertex2fvsun); \
    HandleUnsupported(PFNGLCOLOR4UBVERTEX3FSUNPROC, glcolor4ubvertex3fsun); \
    HandleUnsupported(PFNGLCOLOR4UBVERTEX3FVSUNPROC, glcolor4ubvertex3fvsun); \
    HandleUnsupported(PFNGLCOLOR3FVERTEX3FSUNPROC, glcolor3fvertex3fsun); \
    HandleUnsupported(PFNGLCOLOR3FVERTEX3FVSUNPROC, glcolor3fvertex3fvsun); \
    HandleUnsupported(PFNGLNORMAL3FVERTEX3FSUNPROC, glnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLNORMAL3FVERTEX3FVSUNPROC, glnormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC, glcolor4fnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC, glcolor4fnormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLTEXCOORD2FVERTEX3FSUNPROC, gltexcoord2fvertex3fsun); \
    HandleUnsupported(PFNGLTEXCOORD2FVERTEX3FVSUNPROC, gltexcoord2fvertex3fvsun); \
    HandleUnsupported(PFNGLTEXCOORD4FVERTEX4FSUNPROC, gltexcoord4fvertex4fsun); \
    HandleUnsupported(PFNGLTEXCOORD4FVERTEX4FVSUNPROC, gltexcoord4fvertex4fvsun); \
    HandleUnsupported(PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC, gltexcoord2fcolor4ubvertex3fsun); \
    HandleUnsupported(PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC, gltexcoord2fcolor4ubvertex3fvsun); \
    HandleUnsupported(PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC, gltexcoord2fcolor3fvertex3fsun); \
    HandleUnsupported(PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC, gltexcoord2fcolor3fvertex3fvsun); \
    HandleUnsupported(PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC, gltexcoord2fnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC, gltexcoord2fnormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC, gltexcoord2fcolor4fnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC, gltexcoord2fcolor4fnormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC, gltexcoord4fcolor4fnormal3fvertex4fsun); \
    HandleUnsupported(PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC, gltexcoord4fcolor4fnormal3fvertex4fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC, glreplacementcodeuivertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC, glreplacementcodeuivertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC, glreplacementcodeuicolor4ubvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC, glreplacementcodeuicolor4ubvertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC, glreplacementcodeuicolor3fvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC, glreplacementcodeuicolor3fvertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC, glreplacementcodeuinormal3fvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC, glreplacementcodeuinormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC, glreplacementcodeuicolor4fnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC, glreplacementcodeuicolor4fnormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC, glreplacementcodeuitexcoord2fvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC, glreplacementcodeuitexcoord2fvertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC, glreplacementcodeuitexcoord2fnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC, glreplacementcodeuitexcoord2fnormal3fvertex3fvsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC, glreplacementcodeuitexcoord2fcolor4fnormal3fvertex3fsun); \
    HandleUnsupported(PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC, glreplacementcodeuitexcoord2fcolor4fnormal3fvertex3fvsun); \




