From 3298905d1df1f869d21fbced71ba36792365ad2e Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 19 Dec 2014 23:55:07 +0000 Subject: [PATCH] Optimise/improve hookset.pl, return dummy function pointers * Now instead of returning NULL for entry points that we don't support and hoping the application will handle that or error out, instead we return a function that will log an error if it is ever called, and then pass through to the real function. In most cases, the capture will probably be broken as whichever function isn't saved. * hookset.pl is much faster too, it outputs the whole gl_hookset_defs.h file and doesn't do multiple searches over the whole set of headers in official/ for each function. --- renderdoc/driver/gl/gl_hookset.h | 6 +- renderdoc/driver/gl/gl_hookset_defs.h | 5901 +++++++++++++---- renderdoc/driver/gl/hookset.pl | 196 +- renderdoc/driver/gl/wrappers/gl_get_funcs.cpp | 5 + renderdoc/hooks/gl_linux_hooks.cpp | 239 +- renderdoc/hooks/gl_win32_hooks.cpp | 216 +- 6 files changed, 5234 insertions(+), 1329 deletions(-) diff --git a/renderdoc/driver/gl/gl_hookset.h b/renderdoc/driver/gl/gl_hookset.h index 42ee396c5..0b7182912 100644 --- a/renderdoc/driver/gl/gl_hookset.h +++ b/renderdoc/driver/gl/gl_hookset.h @@ -633,7 +633,9 @@ struct GLHookSet PFNGLGETNAMEDPROGRAMIVEXTPROC glGetNamedProgramivEXT; PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetNamedFramebufferAttachmentParameterivEXT; // aliases glGetNamedFramebufferAttachmentParameteriv PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC glGetNamedBufferParameterivEXT; // aliases glGetNamedBufferParameteriv - PFNGLGETNAMEDBUFFERSUBDATAEXTPROC glGetNamedBufferSubDataEXT; // aliases glGetNamedBufferSubData + // these functions are not aliases only by the size parameter being different types + PFNGLGETNAMEDBUFFERSUBDATAEXTPROC glGetNamedBufferSubDataEXT; + PFNGLGETNAMEDBUFFERSUBDATAPROC glGetNamedBufferSubData; PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC glGetNamedFramebufferParameterivEXT; // aliases glGetFramebufferParameterivEXT, glGetNamedFramebufferParameteriv PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC glGetNamedRenderbufferParameterivEXT; // aliases glGetNamedRenderbufferParameteriv PFNGLGETVERTEXARRAYINTEGERVEXTPROC glGetVertexArrayIntegervEXT; @@ -733,5 +735,3 @@ struct GLHookSet PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC glVertexArrayVertexAttribDivisorEXT; // -- }; - -#include "gl_hookset_defs.h" diff --git a/renderdoc/driver/gl/gl_hookset_defs.h b/renderdoc/driver/gl/gl_hookset_defs.h index 1abb42022..ac1872b20 100644 --- a/renderdoc/driver/gl/gl_hookset_defs.h +++ b/renderdoc/driver/gl/gl_hookset_defs.h @@ -25,408 +25,212 @@ #pragma once -// it's recommended that you auto-generate this file with hookset.pl, but you can manually edit it -// if you prefer. +// 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(glBindTexture); \ - HookInit(glBlendFunc); \ - HookInit(glClear); \ - HookInit(glClearColor); \ - HookInit(glClearDepth); \ - HookInit(glClearStencil); \ - HookInit(glColorMask); \ HookInit(glCullFace); \ - HookInit(glDepthFunc); \ - HookInit(glDepthMask); \ - HookInit(glDepthRange); \ - HookInit(glStencilFunc); \ - HookInit(glStencilMask); \ - HookInit(glStencilOp); \ - HookInit(glDisable); \ - HookInit(glDrawBuffer); \ - HookInit(glDrawElements); \ - HookInit(glDrawArrays); \ - HookInit(glEnable); \ - HookInit(glFlush); \ - HookInit(glFinish); \ HookInit(glFrontFace); \ - HookInit(glGenTextures); \ - HookInit(glDeleteTextures); \ - HookInit(glIsEnabled); \ - HookInit(glIsTexture); \ - HookInit(glGetError); \ - HookInit(glGetTexLevelParameteriv); \ - HookInit(glGetTexLevelParameterfv); \ - HookInit(glGetTexParameterfv); \ - HookInit(glGetTexParameteriv); \ - HookInit(glGetTexImage); \ - HookInit(glGetBooleanv); \ - HookInit(glGetFloatv); \ - HookInit(glGetDoublev); \ - HookInit(glGetIntegerv); \ - HookInit(glGetPointerv); \ - HookInit(glGetString); \ HookInit(glHint); \ - HookInit(glLogicOp); \ - HookInit(glPixelStorei); \ - HookInit(glPixelStoref); \ - HookInit(glPolygonMode); \ - HookInit(glPolygonOffset); \ - HookInit(glPointSize); \ HookInit(glLineWidth); \ - HookInit(glReadPixels); \ - HookInit(glReadBuffer); \ + HookInit(glPointSize); \ + HookInit(glPolygonMode); \ HookInit(glScissor); \ - HookInit(glTexImage1D); \ - HookInit(glTexImage2D); \ - HookInit(glTexSubImage1D); \ - HookInit(glTexSubImage2D); \ - HookInit(glCopyTexImage1D); \ - HookInit(glCopyTexImage2D); \ - HookInit(glCopyTexSubImage1D); \ - HookInit(glCopyTexSubImage2D); \ 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(PFNGLACTIVETEXTUREPROC, glActiveTexture); \ - HookExtensionAlias(PFNGLACTIVETEXTUREPROC, glActiveTexture, glActiveTextureARB); \ - HookExtension(PFNGLTEXSTORAGE1DPROC, glTexStorage1D); \ - HookExtension(PFNGLTEXSTORAGE2DPROC, glTexStorage2D); \ - HookExtension(PFNGLTEXSTORAGE3DPROC, glTexStorage3D); \ - HookExtension(PFNGLTEXSTORAGE2DMULTISAMPLEPROC, glTexStorage2DMultisample); \ - HookExtension(PFNGLTEXSTORAGE3DMULTISAMPLEPROC, glTexStorage3DMultisample); \ + HookExtension(PFNGLDRAWRANGEELEMENTSPROC, glDrawRangeElements); \ HookExtension(PFNGLTEXIMAGE3DPROC, glTexImage3D); \ HookExtension(PFNGLTEXSUBIMAGE3DPROC, glTexSubImage3D); \ - HookExtension(PFNGLTEXBUFFERPROC, glTexBuffer); \ - HookExtension(PFNGLTEXIMAGE2DMULTISAMPLEPROC, glTexImage2DMultisample); \ - HookExtension(PFNGLTEXIMAGE3DMULTISAMPLEPROC, glTexImage3DMultisample); \ - HookExtension(PFNGLCOMPRESSEDTEXIMAGE1DPROC, glCompressedTexImage1D); \ - HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE1DPROC, glCompressedTexImage1D, glCompressedTexImage1DARB); \ - HookExtension(PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D); \ - HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D, glCompressedTexImage2DARB); \ + HookExtension(PFNGLCOPYTEXSUBIMAGE3DPROC, glCopyTexSubImage3D); \ + HookExtension(PFNGLACTIVETEXTUREPROC, glActiveTexture); \ + HookExtensionAlias(PFNGLACTIVETEXTUREPROC, glActiveTexture, glActiveTextureARB); \ + HookExtension(PFNGLSAMPLECOVERAGEPROC, glSampleCoverage); \ HookExtension(PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D); \ HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D, glCompressedTexImage3DARB); \ - HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC, glCompressedTexSubImage1D); \ - HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC, glCompressedTexSubImage1D, glCompressedTexSubImage1DARB); \ - HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC, glCompressedTexSubImage2D); \ - HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC, glCompressedTexSubImage2D, glCompressedTexSubImage2DARB); \ + HookExtension(PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D); \ + HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D, glCompressedTexImage2DARB); \ + HookExtension(PFNGLCOMPRESSEDTEXIMAGE1DPROC, glCompressedTexImage1D); \ + HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE1DPROC, glCompressedTexImage1D, glCompressedTexImage1DARB); \ HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC, glCompressedTexSubImage3D); \ HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC, glCompressedTexSubImage3D, glCompressedTexSubImage3DARB); \ - HookExtension(PFNGLTEXBUFFERRANGEPROC, glTexBufferRange); \ - HookExtension(PFNGLTEXTUREVIEWPROC, glTextureView); \ - HookExtension(PFNGLTEXPARAMETERIIVPROC, glTexParameterIiv); \ - HookExtension(PFNGLTEXPARAMETERIUIVPROC, glTexParameterIuiv); \ - HookExtension(PFNGLGENERATEMIPMAPPROC, glGenerateMipmap); \ - HookExtensionAlias(PFNGLGENERATEMIPMAPPROC, glGenerateMipmap, glGenerateMipmapEXT); \ - HookExtension(PFNGLCOPYIMAGESUBDATAPROC, glCopyImageSubData); \ - HookExtension(PFNGLCOPYTEXSUBIMAGE3DPROC, glCopyTexSubImage3D); \ - HookExtension(PFNGLGETINTERNALFORMATIVPROC, glGetInternalformativ); \ - HookExtension(PFNGLGETINTERNALFORMATI64VPROC, glGetInternalformati64v); \ - HookExtension(PFNGLGETBUFFERPARAMETERIVPROC, glGetBufferParameteriv); \ - HookExtensionAlias(PFNGLGETBUFFERPARAMETERIVPROC, glGetBufferParameteriv, glGetBufferParameterivARB); \ - HookExtension(PFNGLGETBUFFERPARAMETERI64VPROC, glGetBufferParameteri64v); \ - HookExtension(PFNGLGETBUFFERPOINTERVPROC, glGetBufferPointerv); \ - HookExtensionAlias(PFNGLGETBUFFERPOINTERVPROC, glGetBufferPointerv, glGetBufferPointervARB); \ - HookExtension(PFNGLGETFRAGDATAINDEXPROC, glGetFragDataIndex); \ - HookExtension(PFNGLGETFRAGDATALOCATIONPROC, glGetFragDataLocation); \ - HookExtension(PFNGLGETSTRINGIPROC, glGetStringi); \ - HookExtension(PFNGLGETBOOLEANI_VPROC, glGetBooleani_v); \ - HookExtension(PFNGLGETINTEGERI_VPROC, glGetIntegeri_v); \ - 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(PFNGLGETINTEGER64I_VPROC, glGetInteger64i_v); \ - HookExtension(PFNGLGETINTEGER64VPROC, glGetInteger64v); \ - HookExtension(PFNGLGETSHADERIVPROC, glGetShaderiv); \ - HookExtension(PFNGLGETSHADERINFOLOGPROC, glGetShaderInfoLog); \ - HookExtension(PFNGLGETSHADERPRECISIONFORMATPROC, glGetShaderPrecisionFormat); \ - HookExtension(PFNGLGETSHADERSOURCEPROC, glGetShaderSource); \ - HookExtension(PFNGLGETATTACHEDSHADERSPROC, glGetAttachedShaders); \ - HookExtension(PFNGLGETPROGRAMIVPROC, glGetProgramiv); \ - HookExtension(PFNGLGETPROGRAMINFOLOGPROC, glGetProgramInfoLog); \ - HookExtension(PFNGLGETPROGRAMINTERFACEIVPROC, glGetProgramInterfaceiv); \ - HookExtension(PFNGLGETPROGRAMRESOURCEINDEXPROC, glGetProgramResourceIndex); \ - HookExtension(PFNGLGETPROGRAMRESOURCEIVPROC, glGetProgramResourceiv); \ - HookExtension(PFNGLGETPROGRAMRESOURCENAMEPROC, glGetProgramResourceName); \ - HookExtension(PFNGLGETPROGRAMPIPELINEIVPROC, glGetProgramPipelineiv); \ - HookExtension(PFNGLGETPROGRAMPIPELINEINFOLOGPROC, glGetProgramPipelineInfoLog); \ - HookExtension(PFNGLGETPROGRAMBINARYPROC, glGetProgramBinary); \ - HookExtension(PFNGLGETPROGRAMRESOURCELOCATIONPROC, glGetProgramResourceLocation); \ - HookExtension(PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC, glGetProgramResourceLocationIndex); \ - HookExtension(PFNGLGETPROGRAMSTAGEIVPROC, glGetProgramStageiv); \ - HookExtension(PFNGLGETGRAPHICSRESETSTATUSPROC, glGetGraphicsResetStatus); \ - HookExtensionAlias(PFNGLGETGRAPHICSRESETSTATUSPROC, glGetGraphicsResetStatus, glGetGraphicsResetStatusARB); \ - HookExtension(PFNGLGETOBJECTLABELPROC, glGetObjectLabel); \ - HookExtension(PFNGLGETOBJECTPTRLABELPROC, glGetObjectPtrLabel); \ - HookExtension(PFNGLGETDEBUGMESSAGELOGPROC, glGetDebugMessageLog); \ - HookExtensionAlias(PFNGLGETDEBUGMESSAGELOGPROC, glGetDebugMessageLog, glGetDebugMessageLogARB); \ - HookExtension(PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetFramebufferAttachmentParameteriv); \ - HookExtensionAlias(PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetFramebufferAttachmentParameteriv, glGetFramebufferAttachmentParameterivEXT); \ - HookExtension(PFNGLGETFRAMEBUFFERPARAMETERIVPROC, glGetFramebufferParameteriv); \ - HookExtension(PFNGLGETRENDERBUFFERPARAMETERIVPROC, glGetRenderbufferParameteriv); \ - HookExtensionAlias(PFNGLGETRENDERBUFFERPARAMETERIVPROC, glGetRenderbufferParameteriv, glGetRenderbufferParameterivEXT); \ - HookExtension(PFNGLGETMULTISAMPLEFVPROC, glGetMultisamplefv); \ - HookExtension(PFNGLGETQUERYINDEXEDIVPROC, glGetQueryIndexediv); \ - HookExtension(PFNGLGETQUERYOBJECTUI64VPROC, glGetQueryObjectui64v); \ - HookExtensionAlias(PFNGLGETQUERYOBJECTUI64VPROC, glGetQueryObjectui64v, glGetQueryObjectui64vEXT); \ - HookExtension(PFNGLGETQUERYOBJECTUIVPROC, glGetQueryObjectuiv); \ - HookExtensionAlias(PFNGLGETQUERYOBJECTUIVPROC, glGetQueryObjectuiv, glGetQueryObjectuivARB); \ - HookExtension(PFNGLGETQUERYOBJECTI64VPROC, glGetQueryObjecti64v); \ - HookExtensionAlias(PFNGLGETQUERYOBJECTI64VPROC, glGetQueryObjecti64v, glGetQueryObjecti64vEXT); \ - HookExtension(PFNGLGETQUERYOBJECTIVPROC, glGetQueryObjectiv); \ - HookExtensionAlias(PFNGLGETQUERYOBJECTIVPROC, glGetQueryObjectiv, glGetQueryObjectivARB); \ - HookExtension(PFNGLGETQUERYIVPROC, glGetQueryiv); \ - HookExtensionAlias(PFNGLGETQUERYIVPROC, glGetQueryiv, glGetQueryivARB); \ - HookExtension(PFNGLGETSYNCIVPROC, glGetSynciv); \ - HookExtension(PFNGLGETBUFFERSUBDATAPROC, glGetBufferSubData); \ - HookExtensionAlias(PFNGLGETBUFFERSUBDATAPROC, glGetBufferSubData, glGetBufferSubDataARB); \ - HookExtension(PFNGLGETVERTEXATTRIBIVPROC, glGetVertexAttribiv); \ - HookExtension(PFNGLGETVERTEXATTRIBPOINTERVPROC, glGetVertexAttribPointerv); \ + HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC, glCompressedTexSubImage2D); \ + HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC, glCompressedTexSubImage2D, glCompressedTexSubImage2DARB); \ + HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC, glCompressedTexSubImage1D); \ + HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC, glCompressedTexSubImage1D, glCompressedTexSubImage1DARB); \ HookExtension(PFNGLGETCOMPRESSEDTEXIMAGEPROC, glGetCompressedTexImage); \ HookExtensionAlias(PFNGLGETCOMPRESSEDTEXIMAGEPROC, glGetCompressedTexImage, glGetCompressedTexImageARB); \ - HookExtension(PFNGLGETNCOMPRESSEDTEXIMAGEPROC, glGetnCompressedTexImage); \ - HookExtensionAlias(PFNGLGETNCOMPRESSEDTEXIMAGEPROC, glGetnCompressedTexImage, glGetnCompressedTexImageARB); \ - HookExtension(PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC, glGetCompressedTextureImage); \ - HookExtension(PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC, glGetCompressedTextureSubImage); \ - HookExtension(PFNGLGETNTEXIMAGEPROC, glGetnTexImage); \ - HookExtensionAlias(PFNGLGETNTEXIMAGEPROC, glGetnTexImage, glGetnTexImageARB); \ - HookExtension(PFNGLGETTEXTUREIMAGEPROC, glGetTextureImage); \ - HookExtension(PFNGLGETTEXTURELEVELPARAMETERFVPROC, glGetTextureLevelParameterfv); \ - HookExtension(PFNGLGETTEXTURELEVELPARAMETERIVPROC, glGetTextureLevelParameteriv); \ - HookExtension(PFNGLGETTEXTUREPARAMETERIIVPROC, glGetTextureParameterIiv); \ - HookExtension(PFNGLGETTEXTUREPARAMETERIUIVPROC, glGetTextureParameterIuiv); \ - HookExtension(PFNGLGETTEXTUREPARAMETERFVPROC, glGetTextureParameterfv); \ - HookExtension(PFNGLGETTEXTUREPARAMETERIVPROC, glGetTextureParameteriv); \ - HookExtension(PFNGLGETTEXTURESUBIMAGEPROC, glGetTextureSubImage); \ - HookExtension(PFNGLGETTEXPARAMETERIIVPROC, glGetTexParameterIiv); \ - HookExtension(PFNGLGETTEXPARAMETERIUIVPROC, glGetTexParameterIuiv); \ - HookExtension(PFNGLCLAMPCOLORPROC, glClampColor); \ - HookExtensionAlias(PFNGLCLAMPCOLORPROC, glClampColor, glClampColorARB); \ - HookExtension(PFNGLREADNPIXELSPROC, glReadnPixels); \ - HookExtensionAlias(PFNGLREADNPIXELSPROC, glReadnPixels, glReadnPixelsARB); \ - HookExtension(PFNGLGETSAMPLERPARAMETERIIVPROC, glGetSamplerParameterIiv); \ - HookExtension(PFNGLGETSAMPLERPARAMETERIUIVPROC, glGetSamplerParameterIuiv); \ - HookExtension(PFNGLGETSAMPLERPARAMETERFVPROC, glGetSamplerParameterfv); \ - HookExtension(PFNGLGETSAMPLERPARAMETERIVPROC, glGetSamplerParameteriv); \ - HookExtension(PFNGLGETTRANSFORMFEEDBACKVARYINGPROC, glGetTransformFeedbackVarying); \ - HookExtension(PFNGLGETTRANSFORMFEEDBACKI64_VPROC, glGetTransformFeedbacki64_v); \ - HookExtension(PFNGLGETTRANSFORMFEEDBACKI_VPROC, glGetTransformFeedbacki_v); \ - HookExtension(PFNGLGETTRANSFORMFEEDBACKIVPROC, glGetTransformFeedbackiv); \ - HookExtension(PFNGLGETSUBROUTINEINDEXPROC, glGetSubroutineIndex); \ - HookExtension(PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC, glGetSubroutineUniformLocation); \ - HookExtension(PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC, glGetActiveAtomicCounterBufferiv); \ - HookExtension(PFNGLGETACTIVESUBROUTINENAMEPROC, glGetActiveSubroutineName); \ - HookExtension(PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC, glGetActiveSubroutineUniformName); \ - HookExtension(PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC, glGetActiveSubroutineUniformiv); \ - HookExtension(PFNGLGETUNIFORMLOCATIONPROC, glGetUniformLocation); \ - HookExtension(PFNGLGETUNIFORMINDICESPROC, glGetUniformIndices); \ - HookExtension(PFNGLGETUNIFORMSUBROUTINEUIVPROC, glGetUniformSubroutineuiv); \ - HookExtension(PFNGLGETUNIFORMBLOCKINDEXPROC, glGetUniformBlockIndex); \ - HookExtension(PFNGLGETATTRIBLOCATIONPROC, glGetAttribLocation); \ - HookExtension(PFNGLGETACTIVEUNIFORMPROC, glGetActiveUniform); \ - HookExtension(PFNGLGETACTIVEUNIFORMNAMEPROC, glGetActiveUniformName); \ - HookExtension(PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC, glGetActiveUniformBlockName); \ - HookExtension(PFNGLGETACTIVEUNIFORMBLOCKIVPROC, glGetActiveUniformBlockiv); \ - HookExtension(PFNGLGETACTIVEUNIFORMSIVPROC, glGetActiveUniformsiv); \ - HookExtension(PFNGLGETACTIVEATTRIBPROC, glGetActiveAttrib); \ - HookExtension(PFNGLGETUNIFORMFVPROC, glGetUniformfv); \ - HookExtension(PFNGLGETUNIFORMIVPROC, glGetUniformiv); \ - HookExtension(PFNGLGETUNIFORMUIVPROC, glGetUniformuiv); \ - HookExtension(PFNGLGETUNIFORMDVPROC, glGetUniformdv); \ - 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(PFNGLGETVERTEXARRAYIVPROC, glGetVertexArrayiv); \ - HookExtension(PFNGLGETVERTEXARRAYINDEXED64IVPROC, glGetVertexArrayIndexed64iv); \ - HookExtension(PFNGLGETVERTEXARRAYINDEXEDIVPROC, glGetVertexArrayIndexediv); \ - HookExtension(PFNGLGETVERTEXATTRIBIIVPROC, glGetVertexAttribIiv); \ - HookExtension(PFNGLGETVERTEXATTRIBIUIVPROC, glGetVertexAttribIuiv); \ - HookExtension(PFNGLGETVERTEXATTRIBLDVPROC, glGetVertexAttribLdv); \ - HookExtension(PFNGLGETVERTEXATTRIBDVPROC, glGetVertexAttribdv); \ - HookExtension(PFNGLGETVERTEXATTRIBFVPROC, glGetVertexAttribfv); \ - HookExtension(PFNGLGETNAMEDBUFFERPARAMETERI64VPROC, glGetNamedBufferParameteri64v); \ - HookExtension(PFNGLGETNAMEDBUFFERPOINTERVPROC, glGetNamedBufferPointerv); \ - HookExtension(PFNGLCHECKFRAMEBUFFERSTATUSPROC, glCheckFramebufferStatus); \ - HookExtensionAlias(PFNGLCHECKFRAMEBUFFERSTATUSPROC, glCheckFramebufferStatus, glCheckFramebufferStatusEXT); \ - HookExtension(PFNGLBLENDCOLORPROC, glBlendColor); \ - HookExtension(PFNGLBLENDFUNCIPROC, glBlendFunci); \ - HookExtensionAlias(PFNGLBLENDFUNCIPROC, glBlendFunci, glBlendFunciARB); \ HookExtension(PFNGLBLENDFUNCSEPARATEPROC, glBlendFuncSeparate); \ HookExtensionAlias(PFNGLBLENDFUNCSEPARATEPROC, glBlendFuncSeparate, glBlendFuncSeparateARB); \ - HookExtension(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei); \ - HookExtensionAlias(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei, glBlendFuncSeparateiARB); \ + HookExtension(PFNGLMULTIDRAWARRAYSPROC, glMultiDrawArrays); \ + HookExtension(PFNGLMULTIDRAWELEMENTSPROC, glMultiDrawElements); \ + HookExtension(PFNGLPOINTPARAMETERFPROC, glPointParameterf); \ + HookExtensionAlias(PFNGLPOINTPARAMETERFPROC, glPointParameterf, glPointParameterfARB); \ + HookExtension(PFNGLPOINTPARAMETERFVPROC, glPointParameterfv); \ + HookExtensionAlias(PFNGLPOINTPARAMETERFVPROC, glPointParameterfv, glPointParameterfvARB); \ + HookExtension(PFNGLPOINTPARAMETERIPROC, glPointParameteri); \ + HookExtension(PFNGLPOINTPARAMETERIVPROC, glPointParameteriv); \ + HookExtension(PFNGLBLENDCOLORPROC, glBlendColor); \ HookExtension(PFNGLBLENDEQUATIONPROC, glBlendEquation); \ - HookExtension(PFNGLBLENDEQUATIONIPROC, glBlendEquationi); \ - HookExtensionAlias(PFNGLBLENDEQUATIONIPROC, glBlendEquationi, glBlendEquationiARB); \ - HookExtension(PFNGLBLENDEQUATIONSEPARATEPROC, glBlendEquationSeparate); \ - HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEPROC, glBlendEquationSeparate, glBlendEquationSeparateARB); \ - HookExtension(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei); \ - HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei, glBlendEquationSeparateiARB); \ - HookExtension(PFNGLSTENCILFUNCSEPARATEPROC, glStencilFuncSeparate); \ - HookExtension(PFNGLSTENCILMASKSEPARATEPROC, glStencilMaskSeparate); \ - HookExtension(PFNGLSTENCILOPSEPARATEPROC, glStencilOpSeparate); \ - HookExtension(PFNGLCOLORMASKIPROC, glColorMaski); \ - HookExtension(PFNGLSAMPLEMASKIPROC, glSampleMaski); \ - HookExtension(PFNGLSAMPLECOVERAGEPROC, glSampleCoverage); \ - HookExtension(PFNGLMINSAMPLESHADINGPROC, glMinSampleShading); \ - HookExtensionAlias(PFNGLMINSAMPLESHADINGPROC, glMinSampleShading, glMinSampleShadingARB); \ - HookExtension(PFNGLDEPTHRANGEFPROC, glDepthRangef); \ - HookExtension(PFNGLDEPTHRANGEINDEXEDPROC, glDepthRangeIndexed); \ - HookExtension(PFNGLDEPTHRANGEARRAYVPROC, glDepthRangeArrayv); \ - HookExtension(PFNGLDEPTHBOUNDSEXTPROC, glDepthBoundsEXT); \ - HookExtension(PFNGLCLIPCONTROLPROC, glClipControl); \ - HookExtension(PFNGLPROVOKINGVERTEXPROC, glProvokingVertex); \ - HookExtension(PFNGLPRIMITIVERESTARTINDEXPROC, glPrimitiveRestartIndex); \ - HookExtension(PFNGLCREATESHADERPROC, glCreateShader); \ - HookExtension(PFNGLDELETESHADERPROC, glDeleteShader); \ - HookExtension(PFNGLSHADERSOURCEPROC, glShaderSource); \ - HookExtension(PFNGLCOMPILESHADERPROC, glCompileShader); \ - HookExtension(PFNGLCREATESHADERPROGRAMVPROC, glCreateShaderProgramv); \ - HookExtension(PFNGLCREATEPROGRAMPROC, glCreateProgram); \ - HookExtension(PFNGLDELETEPROGRAMPROC, glDeleteProgram); \ - HookExtension(PFNGLATTACHSHADERPROC, glAttachShader); \ - HookExtension(PFNGLDETACHSHADERPROC, glDetachShader); \ - HookExtension(PFNGLRELEASESHADERCOMPILERPROC, glReleaseShaderCompiler); \ - HookExtension(PFNGLLINKPROGRAMPROC, glLinkProgram); \ - HookExtension(PFNGLPROGRAMPARAMETERIPROC, glProgramParameteri); \ - HookExtension(PFNGLUSEPROGRAMPROC, glUseProgram); \ - HookExtension(PFNGLSHADERBINARYPROC, glShaderBinary); \ - HookExtension(PFNGLPROGRAMBINARYPROC, glProgramBinary); \ - HookExtension(PFNGLUSEPROGRAMSTAGESPROC, glUseProgramStages); \ - HookExtension(PFNGLVALIDATEPROGRAMPROC, glValidateProgram); \ - HookExtension(PFNGLGENPROGRAMPIPELINESPROC, glGenProgramPipelines); \ - HookExtension(PFNGLBINDPROGRAMPIPELINEPROC, glBindProgramPipeline); \ - HookExtension(PFNGLACTIVESHADERPROGRAMPROC, glActiveShaderProgram); \ - HookExtension(PFNGLDELETEPROGRAMPIPELINESPROC, glDeleteProgramPipelines); \ - HookExtension(PFNGLVALIDATEPROGRAMPIPELINEPROC, glValidateProgramPipeline); \ - HookExtension(PFNGLDEBUGMESSAGECALLBACKPROC, glDebugMessageCallback); \ - HookExtensionAlias(PFNGLDEBUGMESSAGECALLBACKPROC, glDebugMessageCallback, glDebugMessageCallbackARB); \ - HookExtension(PFNGLDEBUGMESSAGECONTROLPROC, glDebugMessageControl); \ - HookExtensionAlias(PFNGLDEBUGMESSAGECONTROLPROC, glDebugMessageControl, glDebugMessageControlARB); \ - HookExtension(PFNGLDEBUGMESSAGEINSERTPROC, glDebugMessageInsert); \ - HookExtensionAlias(PFNGLDEBUGMESSAGEINSERTPROC, glDebugMessageInsert, glDebugMessageInsertARB); \ - HookExtension(PFNGLPUSHDEBUGGROUPPROC, glPushDebugGroup); \ - HookExtension(PFNGLPOPDEBUGGROUPPROC, glPopDebugGroup); \ - HookExtension(PFNGLOBJECTLABELPROC, glObjectLabel); \ - HookExtension(PFNGLOBJECTPTRLABELPROC, glObjectPtrLabel); \ - HookExtension(PFNGLENABLEIPROC, glEnablei); \ - HookExtensionAlias(PFNGLENABLEIPROC, glEnablei, glEnableIndexedEXT); \ - HookExtension(PFNGLDISABLEIPROC, glDisablei); \ - HookExtensionAlias(PFNGLDISABLEIPROC, glDisablei, glDisableIndexedEXT); \ - HookExtension(PFNGLISENABLEDIPROC, glIsEnabledi); \ - HookExtensionAlias(PFNGLISENABLEDIPROC, glIsEnabledi, glIsEnabledIndexedEXT); \ - HookExtension(PFNGLISBUFFERPROC, glIsBuffer); \ - HookExtensionAlias(PFNGLISBUFFERPROC, glIsBuffer, glIsBufferARB); \ - HookExtension(PFNGLISFRAMEBUFFERPROC, glIsFramebuffer); \ - HookExtensionAlias(PFNGLISFRAMEBUFFERPROC, glIsFramebuffer, glIsFramebufferEXT); \ - HookExtension(PFNGLISPROGRAMPROC, glIsProgram); \ - HookExtension(PFNGLISPROGRAMPIPELINEPROC, glIsProgramPipeline); \ - HookExtension(PFNGLISQUERYPROC, glIsQuery); \ - HookExtensionAlias(PFNGLISQUERYPROC, glIsQuery, glIsQueryARB); \ - HookExtension(PFNGLISRENDERBUFFERPROC, glIsRenderbuffer); \ - HookExtensionAlias(PFNGLISRENDERBUFFERPROC, glIsRenderbuffer, glIsRenderbufferEXT); \ - HookExtension(PFNGLISSAMPLERPROC, glIsSampler); \ - HookExtension(PFNGLISSHADERPROC, glIsShader); \ - HookExtension(PFNGLISSYNCPROC, glIsSync); \ - HookExtension(PFNGLISTRANSFORMFEEDBACKPROC, glIsTransformFeedback); \ - HookExtension(PFNGLISVERTEXARRAYPROC, glIsVertexArray); \ - HookExtension(PFNGLGENBUFFERSPROC, glGenBuffers); \ - HookExtensionAlias(PFNGLGENBUFFERSPROC, glGenBuffers, glGenBuffersARB); \ - HookExtension(PFNGLBINDBUFFERPROC, glBindBuffer); \ - HookExtensionAlias(PFNGLBINDBUFFERPROC, glBindBuffer, glBindBufferARB); \ - HookExtension(PFNGLDRAWBUFFERSPROC, glDrawBuffers); \ - HookExtension(PFNGLGENFRAMEBUFFERSPROC, glGenFramebuffers); \ - HookExtensionAlias(PFNGLGENFRAMEBUFFERSPROC, glGenFramebuffers, glGenFramebuffersEXT); \ - HookExtension(PFNGLBINDFRAMEBUFFERPROC, glBindFramebuffer); \ - HookExtensionAlias(PFNGLBINDFRAMEBUFFERPROC, glBindFramebuffer, glBindFramebufferEXT); \ - HookExtension(PFNGLFRAMEBUFFERTEXTUREPROC, glFramebufferTexture); \ - 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(PFNGLFRAMEBUFFERTEXTURELAYERPROC, glFramebufferTextureLayer); \ - HookExtension(PFNGLFRAMEBUFFERPARAMETERIPROC, glFramebufferParameteri); \ - HookExtension(PFNGLDELETEFRAMEBUFFERSPROC, glDeleteFramebuffers); \ - HookExtensionAlias(PFNGLDELETEFRAMEBUFFERSPROC, glDeleteFramebuffers, glDeleteFramebuffersEXT); \ - HookExtension(PFNGLGENRENDERBUFFERSPROC, glGenRenderbuffers); \ - HookExtensionAlias(PFNGLGENRENDERBUFFERSPROC, glGenRenderbuffers, glGenRenderbuffersEXT); \ - HookExtension(PFNGLRENDERBUFFERSTORAGEPROC, glRenderbufferStorage); \ - HookExtensionAlias(PFNGLRENDERBUFFERSTORAGEPROC, glRenderbufferStorage, glRenderbufferStorageEXT); \ - HookExtension(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC, glRenderbufferStorageMultisample); \ - HookExtension(PFNGLDELETERENDERBUFFERSPROC, glDeleteRenderbuffers); \ - HookExtensionAlias(PFNGLDELETERENDERBUFFERSPROC, glDeleteRenderbuffers, glDeleteRenderbuffersEXT); \ - HookExtension(PFNGLBINDRENDERBUFFERPROC, glBindRenderbuffer); \ - HookExtensionAlias(PFNGLBINDRENDERBUFFERPROC, glBindRenderbuffer, glBindRenderbufferEXT); \ - HookExtension(PFNGLFENCESYNCPROC, glFenceSync); \ - HookExtension(PFNGLCLIENTWAITSYNCPROC, glClientWaitSync); \ - HookExtension(PFNGLWAITSYNCPROC, glWaitSync); \ - HookExtension(PFNGLDELETESYNCPROC, glDeleteSync); \ HookExtension(PFNGLGENQUERIESPROC, glGenQueries); \ HookExtensionAlias(PFNGLGENQUERIESPROC, glGenQueries, glGenQueriesARB); \ - HookExtension(PFNGLBEGINQUERYPROC, glBeginQuery); \ - HookExtensionAlias(PFNGLBEGINQUERYPROC, glBeginQuery, glBeginQueryARB); \ - HookExtension(PFNGLBEGINQUERYINDEXEDPROC, glBeginQueryIndexed); \ - HookExtension(PFNGLENDQUERYPROC, glEndQuery); \ - HookExtensionAlias(PFNGLENDQUERYPROC, glEndQuery, glEndQueryARB); \ - HookExtension(PFNGLENDQUERYINDEXEDPROC, glEndQueryIndexed); \ - HookExtension(PFNGLBEGINCONDITIONALRENDERPROC, glBeginConditionalRender); \ - HookExtension(PFNGLENDCONDITIONALRENDERPROC, glEndConditionalRender); \ - HookExtension(PFNGLQUERYCOUNTERPROC, glQueryCounter); \ HookExtension(PFNGLDELETEQUERIESPROC, glDeleteQueries); \ HookExtensionAlias(PFNGLDELETEQUERIESPROC, glDeleteQueries, glDeleteQueriesARB); \ - HookExtension(PFNGLBUFFERDATAPROC, glBufferData); \ - HookExtensionAlias(PFNGLBUFFERDATAPROC, glBufferData, glBufferDataARB); \ - HookExtension(PFNGLBUFFERSTORAGEPROC, glBufferStorage); \ - HookExtension(PFNGLBUFFERSUBDATAPROC, glBufferSubData); \ - HookExtensionAlias(PFNGLBUFFERSUBDATAPROC, glBufferSubData, glBufferSubDataARB); \ - HookExtension(PFNGLCOPYBUFFERSUBDATAPROC, glCopyBufferSubData); \ - HookExtension(PFNGLBINDBUFFERBASEPROC, glBindBufferBase); \ - HookExtension(PFNGLBINDBUFFERRANGEPROC, glBindBufferRange); \ - HookExtension(PFNGLBINDBUFFERSBASEPROC, glBindBuffersBase); \ - HookExtension(PFNGLBINDBUFFERSRANGEPROC, glBindBuffersRange); \ - HookExtension(PFNGLMAPBUFFERPROC, glMapBuffer); \ - HookExtensionAlias(PFNGLMAPBUFFERPROC, glMapBuffer, glMapBufferARB); \ - HookExtension(PFNGLMAPBUFFERRANGEPROC, glMapBufferRange); \ - HookExtension(PFNGLFLUSHMAPPEDBUFFERRANGEPROC, glFlushMappedBufferRange); \ - HookExtension(PFNGLUNMAPBUFFERPROC, glUnmapBuffer); \ - HookExtensionAlias(PFNGLUNMAPBUFFERPROC, glUnmapBuffer, glUnmapBufferARB); \ - HookExtension(PFNGLTRANSFORMFEEDBACKVARYINGSPROC, glTransformFeedbackVaryings); \ - HookExtension(PFNGLGENTRANSFORMFEEDBACKSPROC, glGenTransformFeedbacks); \ - HookExtension(PFNGLDELETETRANSFORMFEEDBACKSPROC, glDeleteTransformFeedbacks); \ - HookExtension(PFNGLBINDTRANSFORMFEEDBACKPROC, glBindTransformFeedback); \ - HookExtension(PFNGLBEGINTRANSFORMFEEDBACKPROC, glBeginTransformFeedback); \ - HookExtension(PFNGLPAUSETRANSFORMFEEDBACKPROC, glPauseTransformFeedback); \ - HookExtension(PFNGLRESUMETRANSFORMFEEDBACKPROC, glResumeTransformFeedback); \ - HookExtension(PFNGLENDTRANSFORMFEEDBACKPROC, glEndTransformFeedback); \ - HookExtension(PFNGLDRAWTRANSFORMFEEDBACKPROC, glDrawTransformFeedback); \ - HookExtension(PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC, glDrawTransformFeedbackInstanced); \ - HookExtension(PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC, glDrawTransformFeedbackStream); \ - HookExtension(PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC, glDrawTransformFeedbackStreamInstanced); \ + 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(PFNGLGENVERTEXARRAYSPROC, glGenVertexArrays); \ - HookExtension(PFNGLBINDVERTEXARRAYPROC, glBindVertexArray); \ - HookExtension(PFNGLDELETEVERTEXARRAYSPROC, glDeleteVertexArrays); \ + 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); \ + HookExtension(PFNGLDRAWBUFFERSPROC, glDrawBuffers); \ + 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); \ @@ -498,34 +302,172 @@ 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); \ + 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); \ + HookExtension(PFNGLENDTRANSFORMFEEDBACKPROC, glEndTransformFeedback); \ + HookExtension(PFNGLBINDBUFFERRANGEPROC, glBindBufferRange); \ + HookExtension(PFNGLBINDBUFFERBASEPROC, glBindBufferBase); \ + HookExtension(PFNGLTRANSFORMFEEDBACKVARYINGSPROC, glTransformFeedbackVaryings); \ + HookExtension(PFNGLGETTRANSFORMFEEDBACKVARYINGPROC, glGetTransformFeedbackVarying); \ + HookExtension(PFNGLCLAMPCOLORPROC, glClampColor); \ + HookExtensionAlias(PFNGLCLAMPCOLORPROC, glClampColor, glClampColorARB); \ + HookExtension(PFNGLBEGINCONDITIONALRENDERPROC, glBeginConditionalRender); \ + HookExtension(PFNGLENDCONDITIONALRENDERPROC, glEndConditionalRender); \ + HookExtension(PFNGLVERTEXATTRIBIPOINTERPROC, glVertexAttribIPointer); \ + HookExtension(PFNGLGETVERTEXATTRIBIIVPROC, glGetVertexAttribIiv); \ + HookExtension(PFNGLGETVERTEXATTRIBIUIVPROC, glGetVertexAttribIuiv); \ HookExtension(PFNGLVERTEXATTRIBI1IPROC, glVertexAttribI1i); \ - HookExtension(PFNGLVERTEXATTRIBI1IVPROC, glVertexAttribI1iv); \ - HookExtension(PFNGLVERTEXATTRIBI1UIPROC, glVertexAttribI1ui); \ - HookExtension(PFNGLVERTEXATTRIBI1UIVPROC, glVertexAttribI1uiv); \ HookExtension(PFNGLVERTEXATTRIBI2IPROC, glVertexAttribI2i); \ - HookExtension(PFNGLVERTEXATTRIBI2IVPROC, glVertexAttribI2iv); \ - HookExtension(PFNGLVERTEXATTRIBI2UIPROC, glVertexAttribI2ui); \ - HookExtension(PFNGLVERTEXATTRIBI2UIVPROC, glVertexAttribI2uiv); \ HookExtension(PFNGLVERTEXATTRIBI3IPROC, glVertexAttribI3i); \ - HookExtension(PFNGLVERTEXATTRIBI3IVPROC, glVertexAttribI3iv); \ - HookExtension(PFNGLVERTEXATTRIBI3UIPROC, glVertexAttribI3ui); \ - HookExtension(PFNGLVERTEXATTRIBI3UIVPROC, glVertexAttribI3uiv); \ - HookExtension(PFNGLVERTEXATTRIBI4BVPROC, glVertexAttribI4bv); \ HookExtension(PFNGLVERTEXATTRIBI4IPROC, glVertexAttribI4i); \ + HookExtension(PFNGLVERTEXATTRIBI1UIPROC, glVertexAttribI1ui); \ + HookExtension(PFNGLVERTEXATTRIBI2UIPROC, glVertexAttribI2ui); \ + HookExtension(PFNGLVERTEXATTRIBI3UIPROC, glVertexAttribI3ui); \ + HookExtension(PFNGLVERTEXATTRIBI4UIPROC, glVertexAttribI4ui); \ + HookExtension(PFNGLVERTEXATTRIBI1IVPROC, glVertexAttribI1iv); \ + HookExtension(PFNGLVERTEXATTRIBI2IVPROC, glVertexAttribI2iv); \ + HookExtension(PFNGLVERTEXATTRIBI3IVPROC, glVertexAttribI3iv); \ HookExtension(PFNGLVERTEXATTRIBI4IVPROC, glVertexAttribI4iv); \ + HookExtension(PFNGLVERTEXATTRIBI1UIVPROC, glVertexAttribI1uiv); \ + HookExtension(PFNGLVERTEXATTRIBI2UIVPROC, glVertexAttribI2uiv); \ + HookExtension(PFNGLVERTEXATTRIBI3UIVPROC, glVertexAttribI3uiv); \ + HookExtension(PFNGLVERTEXATTRIBI4UIVPROC, glVertexAttribI4uiv); \ + HookExtension(PFNGLVERTEXATTRIBI4BVPROC, glVertexAttribI4bv); \ HookExtension(PFNGLVERTEXATTRIBI4SVPROC, glVertexAttribI4sv); \ HookExtension(PFNGLVERTEXATTRIBI4UBVPROC, glVertexAttribI4ubv); \ - HookExtension(PFNGLVERTEXATTRIBI4UIPROC, glVertexAttribI4ui); \ - HookExtension(PFNGLVERTEXATTRIBI4UIVPROC, glVertexAttribI4uiv); \ HookExtension(PFNGLVERTEXATTRIBI4USVPROC, glVertexAttribI4usv); \ - HookExtension(PFNGLVERTEXATTRIBL1DPROC, glVertexAttribL1d); \ - HookExtension(PFNGLVERTEXATTRIBL1DVPROC, glVertexAttribL1dv); \ - HookExtension(PFNGLVERTEXATTRIBL2DPROC, glVertexAttribL2d); \ - HookExtension(PFNGLVERTEXATTRIBL2DVPROC, glVertexAttribL2dv); \ - HookExtension(PFNGLVERTEXATTRIBL3DPROC, glVertexAttribL3d); \ - HookExtension(PFNGLVERTEXATTRIBL3DVPROC, glVertexAttribL3dv); \ - HookExtension(PFNGLVERTEXATTRIBL4DPROC, glVertexAttribL4d); \ - HookExtension(PFNGLVERTEXATTRIBL4DVPROC, glVertexAttribL4dv); \ + HookExtension(PFNGLGETUNIFORMUIVPROC, glGetUniformuiv); \ + HookExtension(PFNGLBINDFRAGDATALOCATIONPROC, glBindFragDataLocation); \ + HookExtension(PFNGLGETFRAGDATALOCATIONPROC, glGetFragDataLocation); \ + HookExtension(PFNGLUNIFORM1UIPROC, glUniform1ui); \ + HookExtension(PFNGLUNIFORM2UIPROC, glUniform2ui); \ + HookExtension(PFNGLUNIFORM3UIPROC, glUniform3ui); \ + HookExtension(PFNGLUNIFORM4UIPROC, glUniform4ui); \ + HookExtension(PFNGLUNIFORM1UIVPROC, glUniform1uiv); \ + HookExtension(PFNGLUNIFORM2UIVPROC, glUniform2uiv); \ + HookExtension(PFNGLUNIFORM3UIVPROC, glUniform3uiv); \ + HookExtension(PFNGLUNIFORM4UIVPROC, glUniform4uiv); \ + HookExtension(PFNGLTEXPARAMETERIIVPROC, glTexParameterIiv); \ + HookExtension(PFNGLTEXPARAMETERIUIVPROC, glTexParameterIuiv); \ + HookExtension(PFNGLGETTEXPARAMETERIIVPROC, glGetTexParameterIiv); \ + HookExtension(PFNGLGETTEXPARAMETERIUIVPROC, glGetTexParameterIuiv); \ + 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); \ + HookExtension(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC, glRenderbufferStorageMultisample); \ + HookExtension(PFNGLFRAMEBUFFERTEXTURELAYERPROC, glFramebufferTextureLayer); \ + HookExtension(PFNGLMAPBUFFERRANGEPROC, glMapBufferRange); \ + HookExtension(PFNGLFLUSHMAPPEDBUFFERRANGEPROC, glFlushMappedBufferRange); \ + HookExtension(PFNGLBINDVERTEXARRAYPROC, glBindVertexArray); \ + HookExtension(PFNGLDELETEVERTEXARRAYSPROC, glDeleteVertexArrays); \ + HookExtension(PFNGLGENVERTEXARRAYSPROC, glGenVertexArrays); \ + HookExtension(PFNGLISVERTEXARRAYPROC, glIsVertexArray); \ + HookExtension(PFNGLDRAWARRAYSINSTANCEDPROC, glDrawArraysInstanced); \ + HookExtension(PFNGLDRAWELEMENTSINSTANCEDPROC, glDrawElementsInstanced); \ + HookExtension(PFNGLTEXBUFFERPROC, glTexBuffer); \ + 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); \ + 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); \ + 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); \ HookExtension(PFNGLVERTEXATTRIBP1UIPROC, glVertexAttribP1ui); \ HookExtension(PFNGLVERTEXATTRIBP1UIVPROC, glVertexAttribP1uiv); \ HookExtension(PFNGLVERTEXATTRIBP2UIPROC, glVertexAttribP2ui); \ @@ -534,286 +476,284 @@ HookExtension(PFNGLVERTEXATTRIBP3UIVPROC, glVertexAttribP3uiv); \ HookExtension(PFNGLVERTEXATTRIBP4UIPROC, glVertexAttribP4ui); \ HookExtension(PFNGLVERTEXATTRIBP4UIVPROC, glVertexAttribP4uiv); \ - HookExtension(PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer); \ - HookExtensionAlias(PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer, glVertexAttribPointerARB); \ - HookExtension(PFNGLVERTEXATTRIBIPOINTERPROC, glVertexAttribIPointer); \ - HookExtension(PFNGLVERTEXATTRIBLPOINTERPROC, glVertexAttribLPointer); \ - HookExtension(PFNGLVERTEXATTRIBBINDINGPROC, glVertexAttribBinding); \ - HookExtension(PFNGLVERTEXATTRIBFORMATPROC, glVertexAttribFormat); \ - HookExtension(PFNGLVERTEXATTRIBIFORMATPROC, glVertexAttribIFormat); \ - HookExtension(PFNGLVERTEXATTRIBLFORMATPROC, glVertexAttribLFormat); \ - HookExtension(PFNGLVERTEXATTRIBDIVISORPROC, glVertexAttribDivisor); \ - HookExtension(PFNGLBINDATTRIBLOCATIONPROC, glBindAttribLocation); \ - HookExtension(PFNGLBINDFRAGDATALOCATIONPROC, glBindFragDataLocation); \ - HookExtension(PFNGLBINDFRAGDATALOCATIONINDEXEDPROC, glBindFragDataLocationIndexed); \ - HookExtension(PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray); \ - HookExtensionAlias(PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray, glEnableVertexAttribArrayARB); \ - HookExtension(PFNGLDISABLEVERTEXATTRIBARRAYPROC, glDisableVertexAttribArray); \ - HookExtensionAlias(PFNGLDISABLEVERTEXATTRIBARRAYPROC, glDisableVertexAttribArray, glDisableVertexAttribArrayARB); \ - HookExtension(PFNGLBINDVERTEXBUFFERPROC, glBindVertexBuffer); \ - HookExtension(PFNGLBINDVERTEXBUFFERSPROC, glBindVertexBuffers); \ - HookExtension(PFNGLVERTEXBINDINGDIVISORPROC, glVertexBindingDivisor); \ - HookExtension(PFNGLBINDIMAGETEXTUREPROC, glBindImageTexture); \ - HookExtension(PFNGLBINDIMAGETEXTURESPROC, glBindImageTextures); \ - HookExtension(PFNGLGENSAMPLERSPROC, glGenSamplers); \ - HookExtension(PFNGLBINDSAMPLERPROC, glBindSampler); \ - HookExtension(PFNGLBINDSAMPLERSPROC, glBindSamplers); \ - HookExtension(PFNGLBINDTEXTURESPROC, glBindTextures); \ - HookExtension(PFNGLDELETESAMPLERSPROC, glDeleteSamplers); \ - HookExtension(PFNGLSAMPLERPARAMETERIPROC, glSamplerParameteri); \ - HookExtension(PFNGLSAMPLERPARAMETERFPROC, glSamplerParameterf); \ - HookExtension(PFNGLSAMPLERPARAMETERIVPROC, glSamplerParameteriv); \ - HookExtension(PFNGLSAMPLERPARAMETERFVPROC, glSamplerParameterfv); \ - HookExtension(PFNGLSAMPLERPARAMETERIIVPROC, glSamplerParameterIiv); \ - HookExtension(PFNGLSAMPLERPARAMETERIUIVPROC, glSamplerParameterIuiv); \ + 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(PFNGLPOINTPARAMETERFPROC, glPointParameterf); \ - HookExtensionAlias(PFNGLPOINTPARAMETERFPROC, glPointParameterf, glPointParameterfARB); \ - HookExtension(PFNGLPOINTPARAMETERFVPROC, glPointParameterfv); \ - HookExtensionAlias(PFNGLPOINTPARAMETERFVPROC, glPointParameterfv, glPointParameterfvARB); \ - HookExtension(PFNGLPOINTPARAMETERIPROC, glPointParameteri); \ - HookExtension(PFNGLPOINTPARAMETERIVPROC, glPointParameteriv); \ - HookExtension(PFNGLDISPATCHCOMPUTEPROC, glDispatchCompute); \ - HookExtension(PFNGLDISPATCHCOMPUTEINDIRECTPROC, glDispatchComputeIndirect); \ - HookExtension(PFNGLMEMORYBARRIERPROC, glMemoryBarrier); \ - HookExtension(PFNGLMEMORYBARRIERBYREGIONPROC, glMemoryBarrierByRegion); \ - HookExtension(PFNGLTEXTUREBARRIERPROC, glTextureBarrier); \ + 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(PFNGLCLEARBUFFERFVPROC, glClearBufferfv); \ - HookExtension(PFNGLCLEARBUFFERIVPROC, glClearBufferiv); \ - HookExtension(PFNGLCLEARBUFFERUIVPROC, glClearBufferuiv); \ - HookExtension(PFNGLCLEARBUFFERFIPROC, glClearBufferfi); \ - HookExtension(PFNGLCLEARBUFFERDATAPROC, glClearBufferData); \ - HookExtension(PFNGLCLEARBUFFERSUBDATAPROC, glClearBufferSubData); \ - HookExtension(PFNGLCLEARTEXIMAGEPROC, glClearTexImage); \ - HookExtension(PFNGLCLEARTEXSUBIMAGEPROC, glClearTexSubImage); \ - HookExtension(PFNGLINVALIDATEBUFFERDATAPROC, glInvalidateBufferData); \ - HookExtension(PFNGLINVALIDATEBUFFERSUBDATAPROC, glInvalidateBufferSubData); \ - HookExtension(PFNGLINVALIDATEFRAMEBUFFERPROC, glInvalidateFramebuffer); \ - HookExtension(PFNGLINVALIDATESUBFRAMEBUFFERPROC, glInvalidateSubFramebuffer); \ - HookExtension(PFNGLINVALIDATETEXIMAGEPROC, glInvalidateTexImage); \ - HookExtension(PFNGLINVALIDATETEXSUBIMAGEPROC, glInvalidateTexSubImage); \ + HookExtension(PFNGLGETPROGRAMBINARYPROC, glGetProgramBinary); \ + HookExtension(PFNGLPROGRAMBINARYPROC, glProgramBinary); \ + HookExtension(PFNGLPROGRAMPARAMETERIPROC, glProgramParameteri); \ + 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); \ + HookExtension(PFNGLVERTEXATTRIBL2DPROC, glVertexAttribL2d); \ + HookExtension(PFNGLVERTEXATTRIBL3DPROC, glVertexAttribL3d); \ + HookExtension(PFNGLVERTEXATTRIBL4DPROC, glVertexAttribL4d); \ + HookExtension(PFNGLVERTEXATTRIBL1DVPROC, glVertexAttribL1dv); \ + HookExtension(PFNGLVERTEXATTRIBL2DVPROC, glVertexAttribL2dv); \ + HookExtension(PFNGLVERTEXATTRIBL3DVPROC, glVertexAttribL3dv); \ + HookExtension(PFNGLVERTEXATTRIBL4DVPROC, glVertexAttribL4dv); \ + HookExtension(PFNGLVERTEXATTRIBLPOINTERPROC, glVertexAttribLPointer); \ + HookExtension(PFNGLGETVERTEXATTRIBLDVPROC, glGetVertexAttribLdv); \ + HookExtension(PFNGLVIEWPORTARRAYVPROC, glViewportArrayv); \ + HookExtension(PFNGLVIEWPORTINDEXEDFPROC, glViewportIndexedf); \ + HookExtension(PFNGLVIEWPORTINDEXEDFVPROC, glViewportIndexedfv); \ HookExtension(PFNGLSCISSORARRAYVPROC, glScissorArrayv); \ HookExtension(PFNGLSCISSORINDEXEDPROC, glScissorIndexed); \ HookExtension(PFNGLSCISSORINDEXEDVPROC, glScissorIndexedv); \ - HookExtension(PFNGLVIEWPORTINDEXEDFPROC, glViewportIndexedf); \ - HookExtension(PFNGLVIEWPORTINDEXEDFVPROC, glViewportIndexedfv); \ - HookExtension(PFNGLVIEWPORTARRAYVPROC, glViewportArrayv); \ - HookExtension(PFNGLUNIFORMBLOCKBINDINGPROC, glUniformBlockBinding); \ - HookExtension(PFNGLSHADERSTORAGEBLOCKBINDINGPROC, glShaderStorageBlockBinding); \ - HookExtension(PFNGLUNIFORMSUBROUTINESUIVPROC, glUniformSubroutinesuiv); \ - HookExtension(PFNGLUNIFORM1FPROC, glUniform1f); \ - HookExtension(PFNGLUNIFORM1IPROC, glUniform1i); \ - HookExtension(PFNGLUNIFORM1UIPROC, glUniform1ui); \ - HookExtension(PFNGLUNIFORM1DPROC, glUniform1d); \ - HookExtension(PFNGLUNIFORM2FPROC, glUniform2f); \ - HookExtension(PFNGLUNIFORM2IPROC, glUniform2i); \ - HookExtension(PFNGLUNIFORM2UIPROC, glUniform2ui); \ - HookExtension(PFNGLUNIFORM2DPROC, glUniform2d); \ - HookExtension(PFNGLUNIFORM3FPROC, glUniform3f); \ - HookExtension(PFNGLUNIFORM3IPROC, glUniform3i); \ - HookExtension(PFNGLUNIFORM3UIPROC, glUniform3ui); \ - HookExtension(PFNGLUNIFORM3DPROC, glUniform3d); \ - HookExtension(PFNGLUNIFORM4FPROC, glUniform4f); \ - HookExtension(PFNGLUNIFORM4IPROC, glUniform4i); \ - HookExtension(PFNGLUNIFORM4UIPROC, glUniform4ui); \ - HookExtension(PFNGLUNIFORM4DPROC, glUniform4d); \ - HookExtension(PFNGLUNIFORM1FVPROC, glUniform1fv); \ - HookExtension(PFNGLUNIFORM1IVPROC, glUniform1iv); \ - HookExtension(PFNGLUNIFORM1UIVPROC, glUniform1uiv); \ - HookExtension(PFNGLUNIFORM1DVPROC, glUniform1dv); \ - HookExtension(PFNGLUNIFORM2FVPROC, glUniform2fv); \ - HookExtension(PFNGLUNIFORM2IVPROC, glUniform2iv); \ - HookExtension(PFNGLUNIFORM2UIVPROC, glUniform2uiv); \ - HookExtension(PFNGLUNIFORM2DVPROC, glUniform2dv); \ - HookExtension(PFNGLUNIFORM3FVPROC, glUniform3fv); \ - HookExtension(PFNGLUNIFORM3IVPROC, glUniform3iv); \ - HookExtension(PFNGLUNIFORM3UIVPROC, glUniform3uiv); \ - HookExtension(PFNGLUNIFORM3DVPROC, glUniform3dv); \ - HookExtension(PFNGLUNIFORM4FVPROC, glUniform4fv); \ - HookExtension(PFNGLUNIFORM4IVPROC, glUniform4iv); \ - HookExtension(PFNGLUNIFORM4UIVPROC, glUniform4uiv); \ - HookExtension(PFNGLUNIFORM4DVPROC, glUniform4dv); \ - HookExtension(PFNGLUNIFORMMATRIX2FVPROC, glUniformMatrix2fv); \ - HookExtension(PFNGLUNIFORMMATRIX2X3FVPROC, glUniformMatrix2x3fv); \ - HookExtension(PFNGLUNIFORMMATRIX2X4FVPROC, glUniformMatrix2x4fv); \ - HookExtension(PFNGLUNIFORMMATRIX3FVPROC, glUniformMatrix3fv); \ - HookExtension(PFNGLUNIFORMMATRIX3X2FVPROC, glUniformMatrix3x2fv); \ - HookExtension(PFNGLUNIFORMMATRIX3X4FVPROC, glUniformMatrix3x4fv); \ - HookExtension(PFNGLUNIFORMMATRIX4FVPROC, glUniformMatrix4fv); \ - HookExtension(PFNGLUNIFORMMATRIX4X2FVPROC, glUniformMatrix4x2fv); \ - HookExtension(PFNGLUNIFORMMATRIX4X3FVPROC, glUniformMatrix4x3fv); \ - HookExtension(PFNGLUNIFORMMATRIX2DVPROC, glUniformMatrix2dv); \ - HookExtension(PFNGLUNIFORMMATRIX2X3DVPROC, glUniformMatrix2x3dv); \ - HookExtension(PFNGLUNIFORMMATRIX2X4DVPROC, glUniformMatrix2x4dv); \ - HookExtension(PFNGLUNIFORMMATRIX3DVPROC, glUniformMatrix3dv); \ - HookExtension(PFNGLUNIFORMMATRIX3X2DVPROC, glUniformMatrix3x2dv); \ - HookExtension(PFNGLUNIFORMMATRIX3X4DVPROC, glUniformMatrix3x4dv); \ - HookExtension(PFNGLUNIFORMMATRIX4DVPROC, glUniformMatrix4dv); \ - HookExtension(PFNGLUNIFORMMATRIX4X2DVPROC, glUniformMatrix4x2dv); \ - HookExtension(PFNGLUNIFORMMATRIX4X3DVPROC, glUniformMatrix4x3dv); \ - HookExtension(PFNGLPROGRAMUNIFORM1FPROC, glProgramUniform1f); \ - HookExtension(PFNGLPROGRAMUNIFORM1IPROC, glProgramUniform1i); \ - HookExtension(PFNGLPROGRAMUNIFORM1UIPROC, glProgramUniform1ui); \ - HookExtension(PFNGLPROGRAMUNIFORM1DPROC, glProgramUniform1d); \ - HookExtension(PFNGLPROGRAMUNIFORM2FPROC, glProgramUniform2f); \ - HookExtension(PFNGLPROGRAMUNIFORM2IPROC, glProgramUniform2i); \ - HookExtension(PFNGLPROGRAMUNIFORM2UIPROC, glProgramUniform2ui); \ - HookExtension(PFNGLPROGRAMUNIFORM2DPROC, glProgramUniform2d); \ - HookExtension(PFNGLPROGRAMUNIFORM3FPROC, glProgramUniform3f); \ - HookExtension(PFNGLPROGRAMUNIFORM3IPROC, glProgramUniform3i); \ - HookExtension(PFNGLPROGRAMUNIFORM3UIPROC, glProgramUniform3ui); \ - HookExtension(PFNGLPROGRAMUNIFORM3DPROC, glProgramUniform3d); \ - HookExtension(PFNGLPROGRAMUNIFORM4FPROC, glProgramUniform4f); \ - HookExtension(PFNGLPROGRAMUNIFORM4IPROC, glProgramUniform4i); \ - HookExtension(PFNGLPROGRAMUNIFORM4UIPROC, glProgramUniform4ui); \ - HookExtension(PFNGLPROGRAMUNIFORM4DPROC, glProgramUniform4d); \ - HookExtension(PFNGLPROGRAMUNIFORM1FVPROC, glProgramUniform1fv); \ - HookExtension(PFNGLPROGRAMUNIFORM1IVPROC, glProgramUniform1iv); \ - HookExtension(PFNGLPROGRAMUNIFORM1UIVPROC, glProgramUniform1uiv); \ - HookExtension(PFNGLPROGRAMUNIFORM1DVPROC, glProgramUniform1dv); \ - HookExtension(PFNGLPROGRAMUNIFORM2FVPROC, glProgramUniform2fv); \ - HookExtension(PFNGLPROGRAMUNIFORM2IVPROC, glProgramUniform2iv); \ - HookExtension(PFNGLPROGRAMUNIFORM2UIVPROC, glProgramUniform2uiv); \ - HookExtension(PFNGLPROGRAMUNIFORM2DVPROC, glProgramUniform2dv); \ - HookExtension(PFNGLPROGRAMUNIFORM3FVPROC, glProgramUniform3fv); \ - HookExtension(PFNGLPROGRAMUNIFORM3IVPROC, glProgramUniform3iv); \ - HookExtension(PFNGLPROGRAMUNIFORM3UIVPROC, glProgramUniform3uiv); \ - HookExtension(PFNGLPROGRAMUNIFORM3DVPROC, glProgramUniform3dv); \ - HookExtension(PFNGLPROGRAMUNIFORM4FVPROC, glProgramUniform4fv); \ - HookExtension(PFNGLPROGRAMUNIFORM4IVPROC, glProgramUniform4iv); \ - HookExtension(PFNGLPROGRAMUNIFORM4UIVPROC, glProgramUniform4uiv); \ - HookExtension(PFNGLPROGRAMUNIFORM4DVPROC, glProgramUniform4dv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX2FVPROC, glProgramUniformMatrix2fv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC, glProgramUniformMatrix2x3fv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC, glProgramUniformMatrix2x4fv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX3FVPROC, glProgramUniformMatrix3fv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC, glProgramUniformMatrix3x2fv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC, glProgramUniformMatrix3x4fv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX4FVPROC, glProgramUniformMatrix4fv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC, glProgramUniformMatrix4x2fv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC, glProgramUniformMatrix4x3fv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX2DVPROC, glProgramUniformMatrix2dv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC, glProgramUniformMatrix2x3dv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC, glProgramUniformMatrix2x4dv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX3DVPROC, glProgramUniformMatrix3dv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC, glProgramUniformMatrix3x2dv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC, glProgramUniformMatrix3x4dv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX4DVPROC, glProgramUniformMatrix4dv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC, glProgramUniformMatrix4x2dv); \ - HookExtension(PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC, glProgramUniformMatrix4x3dv); \ - HookExtension(PFNGLDRAWRANGEELEMENTSPROC, glDrawRangeElements); \ - HookExtension(PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC, glDrawRangeElementsBaseVertex); \ + 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(PFNGLDRAWARRAYSINSTANCEDPROC, glDrawArraysInstanced); \ - HookExtension(PFNGLDRAWELEMENTSINSTANCEDPROC, glDrawElementsInstanced); \ HookExtension(PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC, glDrawElementsInstancedBaseInstance); \ - HookExtension(PFNGLDRAWELEMENTSBASEVERTEXPROC, glDrawElementsBaseVertex); \ - HookExtension(PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC, glDrawElementsInstancedBaseVertex); \ HookExtension(PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC, glDrawElementsInstancedBaseVertexBaseInstance); \ - HookExtension(PFNGLMULTIDRAWARRAYSPROC, glMultiDrawArrays); \ - HookExtension(PFNGLMULTIDRAWELEMENTSPROC, glMultiDrawElements); \ - HookExtension(PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC, glMultiDrawElementsBaseVertex); \ + HookExtension(PFNGLGETINTERNALFORMATIVPROC, glGetInternalformativ); \ + HookExtension(PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC, glGetActiveAtomicCounterBufferiv); \ + HookExtension(PFNGLBINDIMAGETEXTUREPROC, glBindImageTexture); \ + HookExtension(PFNGLMEMORYBARRIERPROC, glMemoryBarrier); \ + 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(PFNGLDRAWARRAYSINDIRECTPROC, glDrawArraysIndirect); \ - HookExtension(PFNGLDRAWELEMENTSINDIRECTPROC, glDrawElementsIndirect); \ - HookExtension(PFNGLBLITFRAMEBUFFERPROC, glBlitFramebuffer); \ - HookExtension(PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC, glCheckNamedFramebufferStatusEXT); \ - HookExtension(PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC, glCompressedTextureImage1DEXT); \ - HookExtension(PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC, glCompressedTextureImage2DEXT); \ - HookExtension(PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC, glCompressedTextureImage3DEXT); \ - HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC, glCompressedTextureSubImage1DEXT); \ - HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC, glCompressedTextureSubImage2DEXT); \ - HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC, glCompressedTextureSubImage3DEXT); \ - HookExtension(PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC, glFramebufferDrawBuffersEXT); \ - HookExtension(PFNGLGENERATETEXTUREMIPMAPEXTPROC, glGenerateTextureMipmapEXT); \ - HookExtension(PFNGLGETPOINTERI_VEXTPROC, glGetPointeri_vEXT); \ - HookExtension(PFNGLGETDOUBLEINDEXEDVEXTPROC, glGetDoubleIndexedvEXT); \ - HookExtension(PFNGLGETPOINTERINDEXEDVEXTPROC, glGetPointerIndexedvEXT); \ - HookExtension(PFNGLGETINTEGERINDEXEDVEXTPROC, glGetIntegerIndexedvEXT); \ - HookExtension(PFNGLGETBOOLEANINDEXEDVEXTPROC, glGetBooleanIndexedvEXT); \ - HookExtension(PFNGLGETFLOATINDEXEDVEXTPROC, glGetFloatIndexedvEXT); \ - HookExtension(PFNGLGETMULTITEXIMAGEEXTPROC, glGetMultiTexImageEXT); \ - HookExtension(PFNGLGETMULTITEXPARAMETERFVEXTPROC, glGetMultiTexParameterfvEXT); \ - HookExtension(PFNGLGETMULTITEXPARAMETERIVEXTPROC, glGetMultiTexParameterivEXT); \ - HookExtension(PFNGLGETMULTITEXPARAMETERIIVEXTPROC, glGetMultiTexParameterIivEXT); \ - HookExtension(PFNGLGETMULTITEXPARAMETERIUIVEXTPROC, glGetMultiTexParameterIuivEXT); \ - HookExtension(PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC, glGetMultiTexLevelParameterfvEXT); \ - HookExtension(PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC, glGetMultiTexLevelParameterivEXT); \ - HookExtension(PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC, glGetCompressedMultiTexImageEXT); \ - HookExtension(PFNGLGETNAMEDBUFFERPOINTERVEXTPROC, glGetNamedBufferPointervEXT); \ - HookExtension(PFNGLGETNAMEDPROGRAMIVEXTPROC, glGetNamedProgramivEXT); \ - HookExtension(PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC, glGetNamedFramebufferAttachmentParameterivEXT); \ - HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC, glGetNamedFramebufferAttachmentParameterivEXT, glGetNamedFramebufferAttachmentParameteriv); \ - HookExtension(PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC, glGetNamedBufferParameterivEXT); \ - HookExtensionAlias(PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC, glGetNamedBufferParameterivEXT, glGetNamedBufferParameteriv); \ - HookExtension(PFNGLGETNAMEDBUFFERSUBDATAEXTPROC, glGetNamedBufferSubDataEXT); \ - HookExtensionAlias(PFNGLGETNAMEDBUFFERSUBDATAEXTPROC, glGetNamedBufferSubDataEXT, glGetNamedBufferSubData); \ - HookExtension(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC, glGetNamedFramebufferParameterivEXT); \ - HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC, glGetNamedFramebufferParameterivEXT, glGetFramebufferParameterivEXT); \ - HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC, glGetNamedFramebufferParameterivEXT, glGetNamedFramebufferParameteriv); \ - HookExtension(PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC, glGetNamedRenderbufferParameterivEXT); \ - HookExtensionAlias(PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC, glGetNamedRenderbufferParameterivEXT, glGetNamedRenderbufferParameteriv); \ - HookExtension(PFNGLGETVERTEXARRAYINTEGERVEXTPROC, glGetVertexArrayIntegervEXT); \ - HookExtension(PFNGLGETVERTEXARRAYPOINTERVEXTPROC, glGetVertexArrayPointervEXT); \ - HookExtension(PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC, glGetVertexArrayIntegeri_vEXT); \ - HookExtension(PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC, glGetVertexArrayPointeri_vEXT); \ - HookExtension(PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC, glGetCompressedTextureImageEXT); \ - HookExtension(PFNGLGETTEXTUREIMAGEEXTPROC, glGetTextureImageEXT); \ - HookExtension(PFNGLGETTEXTUREPARAMETERIVEXTPROC, glGetTextureParameterivEXT); \ - HookExtension(PFNGLGETTEXTUREPARAMETERFVEXTPROC, glGetTextureParameterfvEXT); \ - HookExtension(PFNGLGETTEXTUREPARAMETERIIVEXTPROC, glGetTextureParameterIivEXT); \ - HookExtension(PFNGLGETTEXTUREPARAMETERIUIVEXTPROC, glGetTextureParameterIuivEXT); \ - HookExtension(PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC, glGetTextureLevelParameterivEXT); \ - HookExtension(PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC, glGetTextureLevelParameterfvEXT); \ - HookExtension(PFNGLBINDMULTITEXTUREEXTPROC, glBindMultiTextureEXT); \ - HookExtension(PFNGLMAPNAMEDBUFFEREXTPROC, glMapNamedBufferEXT); \ - HookExtension(PFNGLMAPNAMEDBUFFERRANGEEXTPROC, glMapNamedBufferRangeEXT); \ - HookExtension(PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC, glFlushMappedNamedBufferRangeEXT); \ - HookExtension(PFNGLUNMAPNAMEDBUFFEREXTPROC, glUnmapNamedBufferEXT); \ - HookExtension(PFNGLCLEARNAMEDBUFFERDATAEXTPROC, glClearNamedBufferDataEXT); \ - HookExtension(PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC, glClearNamedBufferSubDataEXT); \ - HookExtension(PFNGLNAMEDBUFFERDATAEXTPROC, glNamedBufferDataEXT); \ - HookExtension(PFNGLNAMEDBUFFERSTORAGEEXTPROC, glNamedBufferStorageEXT); \ - HookExtension(PFNGLNAMEDBUFFERSUBDATAEXTPROC, glNamedBufferSubDataEXT); \ - HookExtension(PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC, glNamedCopyBufferSubDataEXT); \ - HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC, glNamedFramebufferTextureEXT); \ - HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC, glNamedFramebufferTexture1DEXT); \ - HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC, glNamedFramebufferTexture2DEXT); \ - HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC, glNamedFramebufferTexture3DEXT); \ - HookExtension(PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC, glNamedFramebufferRenderbufferEXT); \ - HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC, glNamedFramebufferTextureLayerEXT); \ - HookExtension(PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC, glNamedFramebufferParameteriEXT); \ - HookExtension(PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC, glNamedRenderbufferStorageEXT); \ - HookExtension(PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC, glNamedRenderbufferStorageMultisampleEXT); \ - HookExtension(PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC, glFramebufferDrawBufferEXT); \ - HookExtension(PFNGLFRAMEBUFFERREADBUFFEREXTPROC, glFramebufferReadBufferEXT); \ - HookExtension(PFNGLTEXTUREBUFFEREXTPROC, glTextureBufferEXT); \ - HookExtension(PFNGLTEXTUREBUFFERRANGEEXTPROC, glTextureBufferRangeEXT); \ - HookExtension(PFNGLTEXTUREIMAGE1DEXTPROC, glTextureImage1DEXT); \ - HookExtension(PFNGLTEXTUREIMAGE2DEXTPROC, glTextureImage2DEXT); \ - HookExtension(PFNGLTEXTUREIMAGE3DEXTPROC, glTextureImage3DEXT); \ + 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); \ + HookExtension(PFNGLGETOBJECTLABELPROC, glGetObjectLabel); \ + 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(PFNGLGETTRANSFORMFEEDBACKIVPROC, glGetTransformFeedbackiv); \ + HookExtension(PFNGLGETTRANSFORMFEEDBACKI_VPROC, glGetTransformFeedbacki_v); \ + HookExtension(PFNGLGETTRANSFORMFEEDBACKI64_VPROC, glGetTransformFeedbacki64_v); \ + HookExtension(PFNGLGETNAMEDBUFFERPARAMETERIVPROC, glGetNamedBufferParameterivEXT); \ + HookExtensionAlias(PFNGLGETNAMEDBUFFERPARAMETERIVPROC, glGetNamedBufferParameterivEXT, glGetNamedBufferParameteriv); \ + HookExtension(PFNGLGETNAMEDBUFFERPARAMETERI64VPROC, glGetNamedBufferParameteri64v); \ + HookExtension(PFNGLGETNAMEDBUFFERPOINTERVPROC, glGetNamedBufferPointerv); \ + HookExtension(PFNGLGETNAMEDBUFFERSUBDATAPROC, glGetNamedBufferSubData); \ + HookExtension(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC, glGetNamedFramebufferParameterivEXT); \ + HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC, glGetNamedFramebufferParameterivEXT, glGetFramebufferParameterivEXT); \ + HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC, glGetNamedFramebufferParameterivEXT, glGetNamedFramebufferParameteriv); \ + HookExtension(PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetNamedFramebufferAttachmentParameterivEXT); \ + HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetNamedFramebufferAttachmentParameterivEXT, glGetNamedFramebufferAttachmentParameteriv); \ + HookExtension(PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC, glGetNamedRenderbufferParameterivEXT); \ + HookExtensionAlias(PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC, glGetNamedRenderbufferParameterivEXT, glGetNamedRenderbufferParameteriv); \ + 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(PFNGLGETVERTEXARRAYIVPROC, glGetVertexArrayiv); \ + HookExtension(PFNGLGETVERTEXARRAYINDEXEDIVPROC, glGetVertexArrayIndexediv); \ + HookExtension(PFNGLGETVERTEXARRAYINDEXED64IVPROC, glGetVertexArrayIndexed64iv); \ + 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(PFNGLDEPTHBOUNDSEXTPROC, glDepthBoundsEXT); \ HookExtension(PFNGLTEXTUREPARAMETERFEXTPROC, glTextureParameterfEXT); \ HookExtension(PFNGLTEXTUREPARAMETERFVEXTPROC, glTextureParameterfvEXT); \ HookExtension(PFNGLTEXTUREPARAMETERIEXTPROC, glTextureParameteriEXT); \ HookExtension(PFNGLTEXTUREPARAMETERIVEXTPROC, glTextureParameterivEXT); \ - HookExtension(PFNGLTEXTUREPARAMETERIIVEXTPROC, glTextureParameterIivEXT); \ - HookExtension(PFNGLTEXTUREPARAMETERIUIVEXTPROC, glTextureParameterIuivEXT); \ - HookExtension(PFNGLTEXTURESTORAGE1DEXTPROC, glTextureStorage1DEXT); \ - HookExtension(PFNGLTEXTURESTORAGE2DEXTPROC, glTextureStorage2DEXT); \ - HookExtension(PFNGLTEXTURESTORAGE3DEXTPROC, glTextureStorage3DEXT); \ - HookExtension(PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC, glTextureStorage2DMultisampleEXT); \ - HookExtension(PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC, glTextureStorage3DMultisampleEXT); \ + HookExtension(PFNGLTEXTUREIMAGE1DEXTPROC, glTextureImage1DEXT); \ + HookExtension(PFNGLTEXTUREIMAGE2DEXTPROC, glTextureImage2DEXT); \ HookExtension(PFNGLTEXTURESUBIMAGE1DEXTPROC, glTextureSubImage1DEXT); \ HookExtension(PFNGLTEXTURESUBIMAGE2DEXTPROC, glTextureSubImage2DEXT); \ - HookExtension(PFNGLTEXTURESUBIMAGE3DEXTPROC, glTextureSubImage3DEXT); \ 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); \ @@ -826,23 +766,86 @@ 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(PFNGLMAPNAMEDBUFFEREXTPROC, glMapNamedBufferEXT); \ + HookExtension(PFNGLUNMAPNAMEDBUFFEREXTPROC, glUnmapNamedBufferEXT); \ + HookExtension(PFNGLGETNAMEDBUFFERPOINTERVEXTPROC, glGetNamedBufferPointervEXT); \ + 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(PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC, glNamedRenderbufferStorageEXT); \ + HookExtension(PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC, glNamedRenderbufferStorageMultisampleEXT); \ + HookExtension(PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC, glCheckNamedFramebufferStatusEXT); \ + HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC, glNamedFramebufferTexture1DEXT); \ + HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC, glNamedFramebufferTexture2DEXT); \ + HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC, glNamedFramebufferTexture3DEXT); \ + HookExtension(PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC, glNamedFramebufferRenderbufferEXT); \ + HookExtension(PFNGLGENERATETEXTUREMIPMAPEXTPROC, glGenerateTextureMipmapEXT); \ HookExtension(PFNGLGENERATEMULTITEXMIPMAPEXTPROC, glGenerateMultiTexMipmapEXT); \ + HookExtension(PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC, glFramebufferDrawBufferEXT); \ + HookExtension(PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC, glFramebufferDrawBuffersEXT); \ + HookExtension(PFNGLFRAMEBUFFERREADBUFFEREXTPROC, glFramebufferReadBufferEXT); \ + HookExtension(PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC, glNamedCopyBufferSubDataEXT); \ + HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC, glNamedFramebufferTextureEXT); \ + HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC, glNamedFramebufferTextureLayerEXT); \ HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC, glVertexArrayVertexAttribOffsetEXT); \ HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC, glVertexArrayVertexAttribIOffsetEXT); \ HookExtension(PFNGLENABLEVERTEXARRAYATTRIBEXTPROC, glEnableVertexArrayAttribEXT); \ HookExtension(PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC, glDisableVertexArrayAttribEXT); \ + 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(PFNGLCLEARNAMEDBUFFERDATAEXTPROC, glClearNamedBufferDataEXT); \ + HookExtension(PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC, glClearNamedBufferSubDataEXT); \ + HookExtension(PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC, glNamedFramebufferParameteriEXT); \ + HookExtension(PFNGLTEXTUREBUFFERRANGEEXTPROC, glTextureBufferRangeEXT); \ + HookExtension(PFNGLTEXTURESTORAGE1DEXTPROC, glTextureStorage1DEXT); \ + HookExtension(PFNGLTEXTURESTORAGE2DEXTPROC, glTextureStorage2DEXT); \ + HookExtension(PFNGLTEXTURESTORAGE3DEXTPROC, glTextureStorage3DEXT); \ + HookExtension(PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC, glTextureStorage2DMultisampleEXT); \ + HookExtension(PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC, glTextureStorage3DMultisampleEXT); \ HookExtension(PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC, glVertexArrayBindVertexBufferEXT); \ HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC, glVertexArrayVertexAttribFormatEXT); \ HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC, glVertexArrayVertexAttribIFormatEXT); \ @@ -851,398 +854,237 @@ HookExtension(PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC, glVertexArrayVertexBindingDivisorEXT); \ HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC, glVertexArrayVertexAttribLOffsetEXT); \ HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC, glVertexArrayVertexAttribDivisorEXT); \ - HookExtension(PFNGLBINDTEXTUREPROC, glBindTexture); \ - HookExtension(PFNGLBLENDFUNCPROC, glBlendFunc); \ - HookExtension(PFNGLCLEARPROC, glClear); \ - HookExtension(PFNGLCLEARCOLORPROC, glClearColor); \ - HookExtension(PFNGLCLEARDEPTHPROC, glClearDepth); \ - HookExtension(PFNGLCLEARSTENCILPROC, glClearStencil); \ - HookExtension(PFNGLCOLORMASKPROC, glColorMask); \ HookExtension(PFNGLCULLFACEPROC, glCullFace); \ - HookExtension(PFNGLDEPTHFUNCPROC, glDepthFunc); \ - HookExtension(PFNGLDEPTHMASKPROC, glDepthMask); \ - HookExtension(PFNGLDEPTHRANGEPROC, glDepthRange); \ - HookExtension(PFNGLSTENCILFUNCPROC, glStencilFunc); \ - HookExtension(PFNGLSTENCILMASKPROC, glStencilMask); \ - HookExtension(PFNGLSTENCILOPPROC, glStencilOp); \ - HookExtension(PFNGLDISABLEPROC, glDisable); \ - HookExtension(PFNGLDRAWBUFFERPROC, glDrawBuffer); \ - HookExtension(PFNGLDRAWELEMENTSPROC, glDrawElements); \ - HookExtension(PFNGLDRAWARRAYSPROC, glDrawArrays); \ - HookExtension(PFNGLENABLEPROC, glEnable); \ - HookExtension(PFNGLFLUSHPROC, glFlush); \ - HookExtension(PFNGLFINISHPROC, glFinish); \ HookExtension(PFNGLFRONTFACEPROC, glFrontFace); \ - HookExtension(PFNGLGENTEXTURESPROC, glGenTextures); \ - HookExtension(PFNGLDELETETEXTURESPROC, glDeleteTextures); \ - HookExtension(PFNGLISENABLEDPROC, glIsEnabled); \ - HookExtension(PFNGLISTEXTUREPROC, glIsTexture); \ - HookExtension(PFNGLGETERRORPROC, glGetError); \ - HookExtension(PFNGLGETTEXLEVELPARAMETERIVPROC, glGetTexLevelParameteriv); \ - HookExtension(PFNGLGETTEXLEVELPARAMETERFVPROC, glGetTexLevelParameterfv); \ - HookExtension(PFNGLGETTEXPARAMETERFVPROC, glGetTexParameterfv); \ - HookExtension(PFNGLGETTEXPARAMETERIVPROC, glGetTexParameteriv); \ - HookExtension(PFNGLGETTEXIMAGEPROC, glGetTexImage); \ - HookExtension(PFNGLGETBOOLEANVPROC, glGetBooleanv); \ - HookExtension(PFNGLGETFLOATVPROC, glGetFloatv); \ - HookExtension(PFNGLGETDOUBLEVPROC, glGetDoublev); \ - HookExtension(PFNGLGETINTEGERVPROC, glGetIntegerv); \ - HookExtension(PFNGLGETPOINTERVPROC, glGetPointerv); \ - HookExtension(PFNGLGETSTRINGPROC, glGetString); \ HookExtension(PFNGLHINTPROC, glHint); \ - HookExtension(PFNGLLOGICOPPROC, glLogicOp); \ - HookExtension(PFNGLPIXELSTOREIPROC, glPixelStorei); \ - HookExtension(PFNGLPIXELSTOREFPROC, glPixelStoref); \ - HookExtension(PFNGLPOLYGONMODEPROC, glPolygonMode); \ - HookExtension(PFNGLPOLYGONOFFSETPROC, glPolygonOffset); \ - HookExtension(PFNGLPOINTSIZEPROC, glPointSize); \ HookExtension(PFNGLLINEWIDTHPROC, glLineWidth); \ - HookExtension(PFNGLREADPIXELSPROC, glReadPixels); \ - HookExtension(PFNGLREADBUFFERPROC, glReadBuffer); \ + HookExtension(PFNGLPOINTSIZEPROC, glPointSize); \ + HookExtension(PFNGLPOLYGONMODEPROC, glPolygonMode); \ HookExtension(PFNGLSCISSORPROC, glScissor); \ - HookExtension(PFNGLTEXIMAGE1DPROC, glTexImage1D); \ - HookExtension(PFNGLTEXIMAGE2DPROC, glTexImage2D); \ - HookExtension(PFNGLTEXSUBIMAGE1DPROC, glTexSubImage1D); \ - HookExtension(PFNGLTEXSUBIMAGE2DPROC, glTexSubImage2D); \ - HookExtension(PFNGLCOPYTEXIMAGE1DPROC, glCopyTexImage1D); \ - HookExtension(PFNGLCOPYTEXIMAGE2DPROC, glCopyTexImage2D); \ - HookExtension(PFNGLCOPYTEXSUBIMAGE1DPROC, glCopyTexSubImage1D); \ - HookExtension(PFNGLCOPYTEXSUBIMAGE2DPROC, glCopyTexSubImage2D); \ 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() \ - HookWrapper2(void, glBindTexture, GLenum, target, GLuint, texture); \ - HookWrapper2(void, glBlendFunc, GLenum, sfactor, GLenum, dfactor); \ - HookWrapper1(void, glClear, GLbitfield, mask); \ - HookWrapper4(void, glClearColor, GLfloat, red, GLfloat, green, GLfloat, blue, GLfloat, alpha); \ - HookWrapper1(void, glClearDepth, GLdouble, depth); \ - HookWrapper1(void, glClearStencil, GLint, s); \ - HookWrapper4(void, glColorMask, GLboolean, red, GLboolean, green, GLboolean, blue, GLboolean, alpha); \ HookWrapper1(void, glCullFace, GLenum, mode); \ - HookWrapper1(void, glDepthFunc, GLenum, func); \ - HookWrapper1(void, glDepthMask, GLboolean, flag); \ - HookWrapper2(void, glDepthRange, GLdouble, near, GLdouble, far); \ - HookWrapper3(void, glStencilFunc, GLenum, func, GLint, ref, GLuint, mask); \ - HookWrapper1(void, glStencilMask, GLuint, mask); \ - HookWrapper3(void, glStencilOp, GLenum, fail, GLenum, zfail, GLenum, zpass); \ - HookWrapper1(void, glDisable, GLenum, cap); \ - HookWrapper1(void, glDrawBuffer, GLenum, buf); \ - HookWrapper4(void, glDrawElements, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices); \ - HookWrapper3(void, glDrawArrays, GLenum, mode, GLint, first, GLsizei, count); \ - HookWrapper1(void, glEnable, GLenum, cap); \ - HookWrapper0(void, glFlush); \ - HookWrapper0(void, glFinish); \ HookWrapper1(void, glFrontFace, GLenum, mode); \ - HookWrapper2(void, glGenTextures, GLsizei, n, GLuint *, textures); \ - HookWrapper2(void, glDeleteTextures, GLsizei, n, const GLuint *, textures); \ - HookWrapper1(GLboolean, glIsEnabled, GLenum, cap); \ - HookWrapper1(GLboolean, glIsTexture, GLuint, texture); \ - HookWrapper0(GLenum, glGetError); \ - HookWrapper4(void, glGetTexLevelParameteriv, GLenum, target, GLint, level, GLenum, pname, GLint *, params); \ - HookWrapper4(void, glGetTexLevelParameterfv, GLenum, target, GLint, level, GLenum, pname, GLfloat *, params); \ - HookWrapper3(void, glGetTexParameterfv, GLenum, target, GLenum, pname, GLfloat *, params); \ - HookWrapper3(void, glGetTexParameteriv, GLenum, target, GLenum, pname, GLint *, params); \ - HookWrapper5(void, glGetTexImage, GLenum, target, GLint, level, GLenum, format, GLenum, type, void *, pixels); \ - HookWrapper2(void, glGetBooleanv, GLenum, pname, GLboolean *, data); \ - HookWrapper2(void, glGetFloatv, GLenum, pname, GLfloat *, data); \ - HookWrapper2(void, glGetDoublev, GLenum, pname, GLdouble *, data); \ - HookWrapper2(void, glGetIntegerv, GLenum, pname, GLint *, data); \ - HookWrapper2(void, glGetPointerv, GLenum, pname, void **, params); \ - HookWrapper1(const GLubyte *, glGetString, GLenum, name); \ HookWrapper2(void, glHint, GLenum, target, GLenum, mode); \ - HookWrapper1(void, glLogicOp, GLenum, opcode); \ - HookWrapper2(void, glPixelStorei, GLenum, pname, GLint, param); \ - HookWrapper2(void, glPixelStoref, GLenum, pname, GLfloat, param); \ - HookWrapper2(void, glPolygonMode, GLenum, face, GLenum, mode); \ - HookWrapper2(void, glPolygonOffset, GLfloat, factor, GLfloat, units); \ - HookWrapper1(void, glPointSize, GLfloat, size); \ HookWrapper1(void, glLineWidth, GLfloat, width); \ - HookWrapper7(void, glReadPixels, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, void *, pixels); \ - HookWrapper1(void, glReadBuffer, GLenum, src); \ + HookWrapper1(void, glPointSize, GLfloat, size); \ + HookWrapper2(void, glPolygonMode, GLenum, face, GLenum, mode); \ HookWrapper4(void, glScissor, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \ - 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); \ - 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); \ - 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); \ 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() \ - HookWrapper1(void, glActiveTexture, GLenum, texture); \ - 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); \ - 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); \ + 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); \ - HookWrapper3(void, glTexBuffer, GLenum, target, GLenum, internalformat, GLuint, buffer); \ - 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); \ - HookWrapper7(void, glCompressedTexImage1D, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, 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); \ - HookWrapper9(void, glCompressedTexImage3D, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLsizei, imageSize, const void *, data); \ - HookWrapper7(void, glCompressedTexSubImage1D, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, 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); \ - 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); \ - HookWrapper5(void, glTexBufferRange, GLenum, target, GLenum, internalformat, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \ - HookWrapper8(void, glTextureView, GLuint, texture, GLenum, target, GLuint, origtexture, GLenum, internalformat, GLuint, minlevel, GLuint, numlevels, GLuint, minlayer, GLuint, numlayers); \ - HookWrapper3(void, glTexParameterIiv, GLenum, target, GLenum, pname, const GLint *, params); \ - HookWrapper3(void, glTexParameterIuiv, GLenum, target, GLenum, pname, const GLuint *, params); \ - HookWrapper1(void, glGenerateMipmap, GLenum, target); \ - 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); \ HookWrapper9(void, glCopyTexSubImage3D, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \ - HookWrapper5(void, glGetInternalformativ, GLenum, target, GLenum, internalformat, GLenum, pname, GLsizei, bufSize, GLint *, params); \ - HookWrapper5(void, glGetInternalformati64v, GLenum, target, GLenum, internalformat, GLenum, pname, GLsizei, bufSize, GLint64 *, params); \ - HookWrapper3(void, glGetBufferParameteriv, GLenum, target, GLenum, pname, GLint *, params); \ - HookWrapper3(void, glGetBufferParameteri64v, GLenum, target, GLenum, pname, GLint64 *, params); \ - HookWrapper3(void, glGetBufferPointerv, GLenum, target, GLenum, pname, void **, params); \ - HookWrapper2(GLint, glGetFragDataIndex, GLuint, program, const GLchar *, name); \ - HookWrapper2(GLint, glGetFragDataLocation, GLuint, program, const GLchar *, name); \ - HookWrapper2(const GLubyte *, glGetStringi, GLenum, name, GLuint, index); \ - HookWrapper3(void, glGetBooleani_v, GLenum, target, GLuint, index, GLboolean *, data); \ - HookWrapper3(void, glGetIntegeri_v, GLenum, target, GLuint, index, GLint *, data); \ - HookWrapper3(void, glGetFloati_v, GLenum, target, GLuint, index, GLfloat *, data); \ - HookWrapper3(void, glGetDoublei_v, GLenum, target, GLuint, index, GLdouble *, data); \ - HookWrapper3(void, glGetInteger64i_v, GLenum, target, GLuint, index, GLint64 *, data); \ - HookWrapper2(void, glGetInteger64v, GLenum, pname, GLint64 *, data); \ - HookWrapper3(void, glGetShaderiv, GLuint, shader, GLenum, pname, GLint *, params); \ - HookWrapper4(void, glGetShaderInfoLog, GLuint, shader, GLsizei, bufSize, GLsizei *, length, GLchar *, infoLog); \ - HookWrapper4(void, glGetShaderPrecisionFormat, GLenum, shadertype, GLenum, precisiontype, GLint *, range, GLint *, precision); \ - HookWrapper4(void, glGetShaderSource, GLuint, shader, GLsizei, bufSize, GLsizei *, length, GLchar *, source); \ - HookWrapper4(void, glGetAttachedShaders, GLuint, program, GLsizei, maxCount, GLsizei *, count, GLuint *, shaders); \ - HookWrapper3(void, glGetProgramiv, GLuint, program, GLenum, pname, GLint *, params); \ - HookWrapper4(void, glGetProgramInfoLog, GLuint, program, GLsizei, bufSize, GLsizei *, length, GLchar *, infoLog); \ - HookWrapper4(void, glGetProgramInterfaceiv, GLuint, program, GLenum, programInterface, GLenum, pname, GLint *, params); \ - HookWrapper3(GLuint, glGetProgramResourceIndex, GLuint, program, GLenum, programInterface, const GLchar *, name); \ - HookWrapper8(void, glGetProgramResourceiv, GLuint, program, GLenum, programInterface, GLuint, index, GLsizei, propCount, const GLenum *, props, GLsizei, bufSize, GLsizei *, length, GLint *, params); \ - HookWrapper6(void, glGetProgramResourceName, GLuint, program, GLenum, programInterface, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLchar *, name); \ - HookWrapper3(void, glGetProgramPipelineiv, GLuint, pipeline, GLenum, pname, GLint *, params); \ - HookWrapper4(void, glGetProgramPipelineInfoLog, GLuint, pipeline, GLsizei, bufSize, GLsizei *, length, GLchar *, infoLog); \ - HookWrapper5(void, glGetProgramBinary, GLuint, program, GLsizei, bufSize, GLsizei *, length, GLenum *, binaryFormat, void *, binary); \ - HookWrapper3(GLint, glGetProgramResourceLocation, GLuint, program, GLenum, programInterface, const GLchar *, name); \ - HookWrapper3(GLint, glGetProgramResourceLocationIndex, GLuint, program, GLenum, programInterface, const GLchar *, name); \ - HookWrapper4(void, glGetProgramStageiv, GLuint, program, GLenum, shadertype, GLenum, pname, GLint *, values); \ - HookWrapper0(GLenum, glGetGraphicsResetStatus); \ - HookWrapper5(void, glGetObjectLabel, GLenum, identifier, GLuint, name, GLsizei, bufSize, GLsizei *, length, GLchar *, label); \ - HookWrapper4(void, glGetObjectPtrLabel, const void *, ptr, GLsizei, bufSize, GLsizei *, length, GLchar *, label); \ - HookWrapper8(GLuint, glGetDebugMessageLog, GLuint, count, GLsizei, bufSize, GLenum *, sources, GLenum *, types, GLuint *, ids, GLenum *, severities, GLsizei *, lengths, GLchar *, messageLog); \ - HookWrapper4(void, glGetFramebufferAttachmentParameteriv, GLenum, target, GLenum, attachment, GLenum, pname, GLint *, params); \ - HookWrapper3(void, glGetFramebufferParameteriv, GLenum, target, GLenum, pname, GLint *, params); \ - HookWrapper3(void, glGetRenderbufferParameteriv, GLenum, target, GLenum, pname, GLint *, params); \ - HookWrapper3(void, glGetMultisamplefv, GLenum, pname, GLuint, index, GLfloat *, val); \ - HookWrapper4(void, glGetQueryIndexediv, GLenum, target, GLuint, index, GLenum, pname, GLint *, params); \ - HookWrapper3(void, glGetQueryObjectui64v, GLuint, id, GLenum, pname, GLuint64 *, params); \ - HookWrapper3(void, glGetQueryObjectuiv, GLuint, id, GLenum, pname, GLuint *, params); \ - HookWrapper3(void, glGetQueryObjecti64v, GLuint, id, GLenum, pname, GLint64 *, params); \ - HookWrapper3(void, glGetQueryObjectiv, GLuint, id, GLenum, pname, GLint *, params); \ - HookWrapper3(void, glGetQueryiv, GLenum, target, GLenum, pname, GLint *, params); \ - HookWrapper5(void, glGetSynciv, GLsync, sync, GLenum, pname, GLsizei, bufSize, GLsizei *, length, GLint *, values); \ - HookWrapper4(void, glGetBufferSubData, GLenum, target, GLintptr, offset, GLsizeiptr, size, void *, data); \ - HookWrapper3(void, glGetVertexAttribiv, GLuint, index, GLenum, pname, GLint *, params); \ - HookWrapper3(void, glGetVertexAttribPointerv, GLuint, index, GLenum, pname, void **, pointer); \ + 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, glGetnCompressedTexImage, GLenum, target, GLint, lod, GLsizei, bufSize, void *, pixels); \ - HookWrapper4(void, glGetCompressedTextureImage, GLuint, texture, GLint, level, 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); \ - HookWrapper6(void, glGetnTexImage, GLenum, target, GLint, level, GLenum, format, GLenum, type, GLsizei, bufSize, void *, pixels); \ - HookWrapper6(void, glGetTextureImage, GLuint, texture, GLint, level, GLenum, format, GLenum, type, 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, glGetTextureParameterIiv, GLuint, texture, GLenum, pname, GLint *, params); \ - HookWrapper3(void, glGetTextureParameterIuiv, GLuint, texture, GLenum, pname, GLuint *, params); \ - HookWrapper3(void, glGetTextureParameterfv, GLuint, texture, GLenum, pname, GLfloat *, params); \ - HookWrapper3(void, glGetTextureParameteriv, GLuint, texture, GLenum, pname, GLint *, params); \ - 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); \ - HookWrapper3(void, glGetTexParameterIiv, GLenum, target, GLenum, pname, GLint *, params); \ - HookWrapper3(void, glGetTexParameterIuiv, GLenum, target, GLenum, pname, GLuint *, params); \ - HookWrapper2(void, glClampColor, GLenum, target, GLenum, clamp); \ - HookWrapper8(void, glReadnPixels, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, GLsizei, bufSize, void *, data); \ - HookWrapper3(void, glGetSamplerParameterIiv, GLuint, sampler, GLenum, pname, GLint *, params); \ - HookWrapper3(void, glGetSamplerParameterIuiv, GLuint, sampler, GLenum, pname, GLuint *, params); \ - HookWrapper3(void, glGetSamplerParameterfv, GLuint, sampler, GLenum, pname, GLfloat *, params); \ - HookWrapper3(void, glGetSamplerParameteriv, GLuint, sampler, GLenum, pname, GLint *, params); \ - HookWrapper7(void, glGetTransformFeedbackVarying, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLsizei *, size, GLenum *, type, GLchar *, name); \ - HookWrapper4(void, glGetTransformFeedbacki64_v, GLuint, xfb, GLenum, pname, GLuint, index, GLint64 *, param); \ - HookWrapper4(void, glGetTransformFeedbacki_v, GLuint, xfb, GLenum, pname, GLuint, index, GLint *, param); \ - HookWrapper3(void, glGetTransformFeedbackiv, GLuint, xfb, GLenum, pname, GLint *, param); \ - HookWrapper3(GLuint, glGetSubroutineIndex, GLuint, program, GLenum, shadertype, const GLchar *, name); \ - HookWrapper3(GLint, glGetSubroutineUniformLocation, GLuint, program, GLenum, shadertype, const GLchar *, name); \ - HookWrapper4(void, glGetActiveAtomicCounterBufferiv, GLuint, program, GLuint, bufferIndex, GLenum, pname, GLint *, params); \ - HookWrapper6(void, glGetActiveSubroutineName, GLuint, program, GLenum, shadertype, GLuint, index, GLsizei, bufsize, GLsizei *, length, GLchar *, name); \ - HookWrapper6(void, glGetActiveSubroutineUniformName, GLuint, program, GLenum, shadertype, GLuint, index, GLsizei, bufsize, GLsizei *, length, GLchar *, name); \ - HookWrapper5(void, glGetActiveSubroutineUniformiv, GLuint, program, GLenum, shadertype, GLuint, index, GLenum, pname, GLint *, values); \ - HookWrapper2(GLint, glGetUniformLocation, GLuint, program, const GLchar *, name); \ - HookWrapper4(void, glGetUniformIndices, GLuint, program, GLsizei, uniformCount, const GLchar *const*, uniformNames, GLuint *, uniformIndices); \ - HookWrapper3(void, glGetUniformSubroutineuiv, GLenum, shadertype, GLint, location, GLuint *, params); \ - HookWrapper2(GLuint, glGetUniformBlockIndex, GLuint, program, const GLchar *, uniformBlockName); \ - HookWrapper2(GLint, glGetAttribLocation, GLuint, program, const GLchar *, name); \ - HookWrapper7(void, glGetActiveUniform, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLint *, size, GLenum *, type, GLchar *, name); \ - HookWrapper5(void, glGetActiveUniformName, GLuint, program, GLuint, uniformIndex, GLsizei, bufSize, GLsizei *, length, GLchar *, uniformName); \ - HookWrapper5(void, glGetActiveUniformBlockName, GLuint, program, GLuint, uniformBlockIndex, GLsizei, bufSize, GLsizei *, length, GLchar *, uniformBlockName); \ - HookWrapper4(void, glGetActiveUniformBlockiv, GLuint, program, GLuint, uniformBlockIndex, GLenum, pname, GLint *, params); \ - HookWrapper5(void, glGetActiveUniformsiv, GLuint, program, GLsizei, uniformCount, const GLuint *, uniformIndices, GLenum, pname, GLint *, params); \ - HookWrapper7(void, glGetActiveAttrib, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLint *, size, GLenum *, type, GLchar *, name); \ - HookWrapper3(void, glGetUniformfv, GLuint, program, GLint, location, GLfloat *, params); \ - HookWrapper3(void, glGetUniformiv, GLuint, program, GLint, location, GLint *, params); \ - HookWrapper3(void, glGetUniformuiv, GLuint, program, GLint, location, GLuint *, params); \ - HookWrapper3(void, glGetUniformdv, GLuint, program, GLint, location, GLdouble *, params); \ - 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); \ - HookWrapper3(void, glGetVertexArrayiv, GLuint, vaobj, GLenum, pname, GLint *, param); \ - HookWrapper4(void, glGetVertexArrayIndexed64iv, GLuint, vaobj, GLuint, index, GLenum, pname, GLint64 *, param); \ - HookWrapper4(void, glGetVertexArrayIndexediv, GLuint, vaobj, GLuint, index, GLenum, pname, GLint *, param); \ - HookWrapper3(void, glGetVertexAttribIiv, GLuint, index, GLenum, pname, GLint *, params); \ - HookWrapper3(void, glGetVertexAttribIuiv, GLuint, index, GLenum, pname, GLuint *, params); \ - HookWrapper3(void, glGetVertexAttribLdv, GLuint, index, GLenum, pname, GLdouble *, params); \ - HookWrapper3(void, glGetVertexAttribdv, GLuint, index, GLenum, pname, GLdouble *, params); \ - HookWrapper3(void, glGetVertexAttribfv, GLuint, index, GLenum, pname, GLfloat *, params); \ - HookWrapper3(void, glGetNamedBufferParameteri64v, GLuint, buffer, GLenum, pname, GLint64 *, params); \ - HookWrapper3(void, glGetNamedBufferPointerv, GLuint, buffer, GLenum, pname, void **, params); \ - HookWrapper1(GLenum, glCheckFramebufferStatus, GLenum, target); \ - HookWrapper4(void, glBlendColor, GLfloat, red, GLfloat, green, GLfloat, blue, GLfloat, alpha); \ - HookWrapper3(void, glBlendFunci, GLuint, buf, GLenum, src, GLenum, dst); \ HookWrapper4(void, glBlendFuncSeparate, GLenum, sfactorRGB, GLenum, dfactorRGB, GLenum, sfactorAlpha, GLenum, dfactorAlpha); \ - HookWrapper5(void, glBlendFuncSeparatei, GLuint, buf, GLenum, srcRGB, GLenum, dstRGB, GLenum, srcAlpha, GLenum, dstAlpha); \ + 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, glBlendEquationi, GLuint, buf, 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); \ - HookWrapper3(void, glBlendEquationSeparatei, GLuint, buf, 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); \ - HookWrapper4(void, glStencilOpSeparate, GLenum, face, GLenum, sfail, GLenum, dpfail, GLenum, dppass); \ - HookWrapper5(void, glColorMaski, GLuint, index, GLboolean, r, GLboolean, g, GLboolean, b, GLboolean, a); \ - HookWrapper2(void, glSampleMaski, GLuint, maskNumber, GLbitfield, mask); \ - HookWrapper2(void, glSampleCoverage, GLfloat, value, GLboolean, invert); \ - HookWrapper1(void, glMinSampleShading, GLfloat, value); \ - HookWrapper2(void, glDepthRangef, GLfloat, n, GLfloat, f); \ - HookWrapper3(void, glDepthRangeIndexed, GLuint, index, GLdouble, n, GLdouble, f); \ - HookWrapper3(void, glDepthRangeArrayv, GLuint, first, GLsizei, count, const GLdouble *, v); \ - HookWrapper2(void, glDepthBoundsEXT, GLclampd, zmin, GLclampd, zmax); \ - HookWrapper2(void, glClipControl, GLenum, origin, GLenum, depth); \ - HookWrapper1(void, glProvokingVertex, GLenum, mode); \ - HookWrapper1(void, glPrimitiveRestartIndex, GLuint, index); \ - HookWrapper1(GLuint, glCreateShader, GLenum, type); \ - HookWrapper1(void, glDeleteShader, GLuint, shader); \ - HookWrapper4(void, glShaderSource, GLuint, shader, GLsizei, count, const GLchar *const*, string, const GLint *, length); \ - HookWrapper1(void, glCompileShader, GLuint, shader); \ - HookWrapper3(GLuint, glCreateShaderProgramv, GLenum, type, GLsizei, count, const GLchar *const*, strings); \ - HookWrapper0(GLuint, glCreateProgram); \ - HookWrapper1(void, glDeleteProgram, GLuint, program); \ 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); \ - HookWrapper0(void, glReleaseShaderCompiler); \ - HookWrapper1(void, glLinkProgram, GLuint, program); \ - HookWrapper3(void, glProgramParameteri, GLuint, program, GLenum, pname, GLint, value); \ - HookWrapper1(void, glUseProgram, GLuint, program); \ - HookWrapper5(void, glShaderBinary, GLsizei, count, const GLuint *, shaders, GLenum, binaryformat, const void *, binary, GLsizei, length); \ - HookWrapper4(void, glProgramBinary, GLuint, program, GLenum, binaryFormat, const void *, binary, GLsizei, length); \ - HookWrapper3(void, glUseProgramStages, GLuint, pipeline, GLbitfield, stages, GLuint, program); \ - HookWrapper1(void, glValidateProgram, GLuint, program); \ - HookWrapper2(void, glGenProgramPipelines, GLsizei, n, GLuint *, pipelines); \ - HookWrapper1(void, glBindProgramPipeline, GLuint, pipeline); \ - HookWrapper2(void, glActiveShaderProgram, GLuint, pipeline, GLuint, program); \ - HookWrapper2(void, glDeleteProgramPipelines, GLsizei, n, const GLuint *, pipelines); \ - HookWrapper1(void, glValidateProgramPipeline, GLuint, pipeline); \ - HookWrapper2(void, glDebugMessageCallback, GLDEBUGPROC, callback, const void *, userParam); \ - 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); \ - 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); \ - HookWrapper3(void, glObjectPtrLabel, const void *, ptr, GLsizei, length, const GLchar *, label); \ - HookWrapper2(void, glEnablei, GLenum, target, GLuint, index); \ - HookWrapper2(void, glDisablei, GLenum, target, GLuint, index); \ - HookWrapper2(GLboolean, glIsEnabledi, GLenum, target, GLuint, index); \ - HookWrapper1(GLboolean, glIsBuffer, GLuint, buffer); \ - HookWrapper1(GLboolean, glIsFramebuffer, GLuint, framebuffer); \ + 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, glIsProgramPipeline, GLuint, pipeline); \ - HookWrapper1(GLboolean, glIsQuery, GLuint, id); \ - HookWrapper1(GLboolean, glIsRenderbuffer, GLuint, renderbuffer); \ - HookWrapper1(GLboolean, glIsSampler, GLuint, sampler); \ HookWrapper1(GLboolean, glIsShader, GLuint, shader); \ - HookWrapper1(GLboolean, glIsSync, GLsync, sync); \ - HookWrapper1(GLboolean, glIsTransformFeedback, GLuint, id); \ - HookWrapper1(GLboolean, glIsVertexArray, GLuint, array); \ - HookWrapper2(void, glGenBuffers, GLsizei, n, GLuint *, buffers); \ - HookWrapper2(void, glBindBuffer, GLenum, target, GLuint, buffer); \ - HookWrapper2(void, glDrawBuffers, GLsizei, n, const GLenum *, bufs); \ - HookWrapper2(void, glGenFramebuffers, GLsizei, n, GLuint *, framebuffers); \ - HookWrapper2(void, glBindFramebuffer, GLenum, target, GLuint, framebuffer); \ - HookWrapper4(void, glFramebufferTexture, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level); \ - 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); \ - HookWrapper5(void, glFramebufferTextureLayer, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLint, layer); \ - HookWrapper3(void, glFramebufferParameteri, GLenum, target, GLenum, pname, GLint, param); \ - HookWrapper2(void, glDeleteFramebuffers, GLsizei, n, const GLuint *, framebuffers); \ - HookWrapper2(void, glGenRenderbuffers, GLsizei, n, GLuint *, renderbuffers); \ - HookWrapper4(void, glRenderbufferStorage, GLenum, target, GLenum, internalformat, GLsizei, width, GLsizei, height); \ - HookWrapper5(void, glRenderbufferStorageMultisample, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \ - HookWrapper2(void, glDeleteRenderbuffers, GLsizei, n, const GLuint *, renderbuffers); \ - HookWrapper2(void, glBindRenderbuffer, GLenum, target, GLuint, renderbuffer); \ - HookWrapper2(GLsync, glFenceSync, GLenum, condition, GLbitfield, flags); \ - HookWrapper3(GLenum, glClientWaitSync, GLsync, sync, GLbitfield, flags, GLuint64, timeout); \ - HookWrapper3(void, glWaitSync, GLsync, sync, GLbitfield, flags, GLuint64, timeout); \ - HookWrapper1(void, glDeleteSync, GLsync, sync); \ - HookWrapper2(void, glGenQueries, GLsizei, n, GLuint *, ids); \ - HookWrapper2(void, glBeginQuery, GLenum, target, GLuint, id); \ - HookWrapper3(void, glBeginQueryIndexed, GLenum, target, GLuint, index, GLuint, id); \ - HookWrapper1(void, glEndQuery, GLenum, target); \ - HookWrapper2(void, glEndQueryIndexed, GLenum, target, GLuint, index); \ - HookWrapper2(void, glBeginConditionalRender, GLuint, id, GLenum, mode); \ - HookWrapper0(void, glEndConditionalRender); \ - HookWrapper2(void, glQueryCounter, GLuint, id, GLenum, target); \ - HookWrapper2(void, glDeleteQueries, GLsizei, n, const GLuint *, ids); \ - HookWrapper4(void, glBufferData, GLenum, target, GLsizeiptr, size, const void *, data, GLenum, usage); \ - HookWrapper4(void, glBufferStorage, GLenum, target, GLsizeiptr, size, const void *, data, GLbitfield, flags); \ - HookWrapper4(void, glBufferSubData, GLenum, target, GLintptr, offset, GLsizeiptr, size, const void *, data); \ - HookWrapper5(void, glCopyBufferSubData, GLenum, readTarget, GLenum, writeTarget, GLintptr, readOffset, GLintptr, writeOffset, GLsizeiptr, size); \ - HookWrapper3(void, glBindBufferBase, GLenum, target, GLuint, index, GLuint, buffer); \ - HookWrapper5(void, glBindBufferRange, GLenum, target, GLuint, index, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \ - 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); \ - HookWrapper2(void *, glMapBuffer, GLenum, target, GLenum, access); \ - HookWrapper4(void *, glMapBufferRange, GLenum, target, GLintptr, offset, GLsizeiptr, length, GLbitfield, access); \ - HookWrapper3(void, glFlushMappedBufferRange, GLenum, target, GLintptr, offset, GLsizeiptr, length); \ - HookWrapper1(GLboolean, glUnmapBuffer, GLenum, target); \ - HookWrapper4(void, glTransformFeedbackVaryings, GLuint, program, GLsizei, count, const GLchar *const*, varyings, GLenum, bufferMode); \ - HookWrapper2(void, glGenTransformFeedbacks, GLsizei, n, GLuint *, ids); \ - HookWrapper2(void, glDeleteTransformFeedbacks, GLsizei, n, const GLuint *, ids); \ - HookWrapper2(void, glBindTransformFeedback, GLenum, target, GLuint, id); \ - HookWrapper1(void, glBeginTransformFeedback, GLenum, primitiveMode); \ - HookWrapper0(void, glPauseTransformFeedback); \ - HookWrapper0(void, glResumeTransformFeedback); \ - HookWrapper0(void, glEndTransformFeedback); \ - HookWrapper2(void, glDrawTransformFeedback, GLenum, mode, GLuint, id); \ - HookWrapper3(void, glDrawTransformFeedbackInstanced, GLenum, mode, GLuint, id, GLsizei, instancecount); \ - HookWrapper3(void, glDrawTransformFeedbackStream, GLenum, mode, GLuint, id, GLuint, stream); \ - HookWrapper4(void, glDrawTransformFeedbackStreamInstanced, GLenum, mode, GLuint, id, GLuint, stream, GLsizei, instancecount); \ - HookWrapper2(void, glDeleteBuffers, GLsizei, n, const GLuint *, buffers); \ - HookWrapper2(void, glGenVertexArrays, GLsizei, n, GLuint *, arrays); \ - HookWrapper1(void, glBindVertexArray, GLuint, array); \ - HookWrapper2(void, glDeleteVertexArrays, GLsizei, n, const GLuint *, arrays); \ + 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); \ @@ -1279,34 +1121,148 @@ 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); \ - HookWrapper2(void, glVertexAttribI1iv, GLuint, index, const GLint *, v); \ - HookWrapper2(void, glVertexAttribI1ui, GLuint, index, GLuint, x); \ - HookWrapper2(void, glVertexAttribI1uiv, GLuint, index, const GLuint *, v); \ HookWrapper3(void, glVertexAttribI2i, GLuint, index, GLint, x, GLint, y); \ - HookWrapper2(void, glVertexAttribI2iv, GLuint, index, const GLint *, v); \ - HookWrapper3(void, glVertexAttribI2ui, GLuint, index, GLuint, x, GLuint, y); \ - HookWrapper2(void, glVertexAttribI2uiv, GLuint, index, const GLuint *, v); \ HookWrapper4(void, glVertexAttribI3i, GLuint, index, GLint, x, GLint, y, GLint, z); \ - HookWrapper2(void, glVertexAttribI3iv, GLuint, index, const GLint *, v); \ - HookWrapper4(void, glVertexAttribI3ui, GLuint, index, GLuint, x, GLuint, y, GLuint, z); \ - HookWrapper2(void, glVertexAttribI3uiv, GLuint, index, const GLuint *, v); \ - HookWrapper2(void, glVertexAttribI4bv, GLuint, index, const GLbyte *, v); \ 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); \ - HookWrapper5(void, glVertexAttribI4ui, GLuint, index, GLuint, x, GLuint, y, GLuint, z, GLuint, w); \ - HookWrapper2(void, glVertexAttribI4uiv, GLuint, index, const GLuint *, v); \ HookWrapper2(void, glVertexAttribI4usv, GLuint, index, const GLushort *, v); \ - HookWrapper2(void, glVertexAttribL1d, GLuint, index, GLdouble, x); \ - HookWrapper2(void, glVertexAttribL1dv, GLuint, index, const GLdouble *, v); \ - HookWrapper3(void, glVertexAttribL2d, GLuint, index, GLdouble, x, GLdouble, y); \ - HookWrapper2(void, glVertexAttribL2dv, GLuint, index, const GLdouble *, v); \ - HookWrapper4(void, glVertexAttribL3d, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z); \ - HookWrapper2(void, glVertexAttribL3dv, GLuint, index, const GLdouble *, v); \ - HookWrapper5(void, glVertexAttribL4d, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \ - HookWrapper2(void, glVertexAttribL4dv, GLuint, index, const GLdouble *, 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); \ @@ -1315,275 +1271,260 @@ 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); \ - HookWrapper6(void, glVertexAttribPointer, GLuint, index, GLint, size, GLenum, type, GLboolean, normalized, GLsizei, stride, const void *, pointer); \ - HookWrapper5(void, glVertexAttribIPointer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \ - HookWrapper5(void, glVertexAttribLPointer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \ - HookWrapper2(void, glVertexAttribBinding, GLuint, attribindex, GLuint, bindingindex); \ - 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, glVertexAttribDivisor, GLuint, index, GLuint, divisor); \ - HookWrapper3(void, glBindAttribLocation, GLuint, program, GLuint, index, const GLchar *, name); \ - HookWrapper3(void, glBindFragDataLocation, GLuint, program, GLuint, color, const GLchar *, name); \ - HookWrapper4(void, glBindFragDataLocationIndexed, GLuint, program, GLuint, colorNumber, GLuint, index, const GLchar *, name); \ - HookWrapper1(void, glEnableVertexAttribArray, GLuint, index); \ - HookWrapper1(void, glDisableVertexAttribArray, GLuint, index); \ - HookWrapper4(void, glBindVertexBuffer, GLuint, bindingindex, GLuint, buffer, GLintptr, offset, GLsizei, stride); \ - HookWrapper5(void, glBindVertexBuffers, GLuint, first, GLsizei, count, const GLuint *, buffers, const GLintptr *, offsets, const GLsizei *, strides); \ - HookWrapper2(void, glVertexBindingDivisor, GLuint, bindingindex, GLuint, divisor); \ - HookWrapper7(void, glBindImageTexture, GLuint, unit, GLuint, texture, GLint, level, GLboolean, layered, GLint, layer, GLenum, access, GLenum, format); \ - HookWrapper3(void, glBindImageTextures, GLuint, first, GLsizei, count, const GLuint *, textures); \ - HookWrapper2(void, glGenSamplers, GLsizei, count, GLuint *, samplers); \ - HookWrapper2(void, glBindSampler, GLuint, unit, GLuint, sampler); \ - HookWrapper3(void, glBindSamplers, GLuint, first, GLsizei, count, const GLuint *, samplers); \ - HookWrapper3(void, glBindTextures, GLuint, first, GLsizei, count, const GLuint *, textures); \ - HookWrapper2(void, glDeleteSamplers, GLsizei, count, const GLuint *, samplers); \ - HookWrapper3(void, glSamplerParameteri, GLuint, sampler, GLenum, pname, GLint, param); \ - HookWrapper3(void, glSamplerParameterf, GLuint, sampler, GLenum, pname, GLfloat, param); \ - HookWrapper3(void, glSamplerParameteriv, GLuint, sampler, GLenum, pname, const GLint *, 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); \ + 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, 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); \ - HookWrapper3(void, glDispatchCompute, GLuint, num_groups_x, GLuint, num_groups_y, GLuint, num_groups_z); \ - HookWrapper1(void, glDispatchComputeIndirect, GLintptr, indirect); \ - HookWrapper1(void, glMemoryBarrier, GLbitfield, barriers); \ - HookWrapper1(void, glMemoryBarrierByRegion, GLbitfield, barriers); \ - HookWrapper0(void, glTextureBarrier); \ + 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); \ - HookWrapper3(void, glClearBufferfv, GLenum, buffer, GLint, drawbuffer, const GLfloat *, value); \ - HookWrapper3(void, glClearBufferiv, GLenum, buffer, GLint, drawbuffer, const GLint *, value); \ - HookWrapper3(void, glClearBufferuiv, GLenum, buffer, GLint, drawbuffer, const GLuint *, value); \ - HookWrapper4(void, glClearBufferfi, GLenum, buffer, GLint, drawbuffer, GLfloat, depth, GLint, stencil); \ - 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); \ - 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); \ - HookWrapper1(void, glInvalidateBufferData, GLuint, buffer); \ - HookWrapper3(void, glInvalidateBufferSubData, GLuint, buffer, GLintptr, offset, GLsizeiptr, length); \ - 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); \ - HookWrapper2(void, glInvalidateTexImage, GLuint, texture, GLint, level); \ - HookWrapper8(void, glInvalidateTexSubImage, GLuint, texture, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth); \ + 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); \ - HookWrapper5(void, glViewportIndexedf, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, w, GLfloat, h); \ - HookWrapper2(void, glViewportIndexedfv, GLuint, index, const GLfloat *, v); \ - HookWrapper3(void, glViewportArrayv, GLuint, first, GLsizei, count, const GLfloat *, v); \ - HookWrapper3(void, glUniformBlockBinding, GLuint, program, GLuint, uniformBlockIndex, GLuint, uniformBlockBinding); \ - HookWrapper3(void, glShaderStorageBlockBinding, GLuint, program, GLuint, storageBlockIndex, GLuint, storageBlockBinding); \ - HookWrapper3(void, glUniformSubroutinesuiv, GLenum, shadertype, GLsizei, count, const GLuint *, indices); \ - HookWrapper2(void, glUniform1f, GLint, location, GLfloat, v0); \ - HookWrapper2(void, glUniform1i, GLint, location, GLint, v0); \ - HookWrapper2(void, glUniform1ui, GLint, location, GLuint, v0); \ - HookWrapper2(void, glUniform1d, GLint, location, GLdouble, x); \ - HookWrapper3(void, glUniform2f, GLint, location, GLfloat, v0, GLfloat, v1); \ - HookWrapper3(void, glUniform2i, GLint, location, GLint, v0, GLint, v1); \ - HookWrapper3(void, glUniform2ui, GLint, location, GLuint, v0, GLuint, v1); \ - HookWrapper3(void, glUniform2d, GLint, location, GLdouble, x, GLdouble, y); \ - HookWrapper4(void, glUniform3f, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2); \ - HookWrapper4(void, glUniform3i, GLint, location, GLint, v0, GLint, v1, GLint, v2); \ - HookWrapper4(void, glUniform3ui, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2); \ - HookWrapper4(void, glUniform3d, GLint, location, GLdouble, x, GLdouble, y, GLdouble, z); \ - HookWrapper5(void, glUniform4f, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2, GLfloat, v3); \ - HookWrapper5(void, glUniform4i, GLint, location, GLint, v0, GLint, v1, GLint, v2, GLint, v3); \ - HookWrapper5(void, glUniform4ui, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2, GLuint, v3); \ - HookWrapper5(void, glUniform4d, GLint, location, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \ - HookWrapper3(void, glUniform1fv, GLint, location, GLsizei, count, const GLfloat *, value); \ - HookWrapper3(void, glUniform1iv, GLint, location, GLsizei, count, const GLint *, value); \ - HookWrapper3(void, glUniform1uiv, GLint, location, GLsizei, count, const GLuint *, value); \ - HookWrapper3(void, glUniform1dv, GLint, location, GLsizei, count, const GLdouble *, value); \ - HookWrapper3(void, glUniform2fv, GLint, location, GLsizei, count, const GLfloat *, value); \ - HookWrapper3(void, glUniform2iv, GLint, location, GLsizei, count, const GLint *, value); \ - HookWrapper3(void, glUniform2uiv, GLint, location, GLsizei, count, const GLuint *, value); \ - HookWrapper3(void, glUniform2dv, GLint, location, GLsizei, count, const GLdouble *, value); \ - HookWrapper3(void, glUniform3fv, GLint, location, GLsizei, count, const GLfloat *, value); \ - HookWrapper3(void, glUniform3iv, GLint, location, GLsizei, count, const GLint *, value); \ - HookWrapper3(void, glUniform3uiv, GLint, location, GLsizei, count, const GLuint *, value); \ - HookWrapper3(void, glUniform3dv, GLint, location, GLsizei, count, const GLdouble *, value); \ - HookWrapper3(void, glUniform4fv, GLint, location, GLsizei, count, const GLfloat *, value); \ - HookWrapper3(void, glUniform4iv, GLint, location, GLsizei, count, const GLint *, value); \ - HookWrapper3(void, glUniform4uiv, GLint, location, GLsizei, count, const GLuint *, value); \ - HookWrapper3(void, glUniform4dv, GLint, location, GLsizei, count, const GLdouble *, value); \ - HookWrapper4(void, glUniformMatrix2fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \ - HookWrapper4(void, glUniformMatrix2x3fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \ - HookWrapper4(void, glUniformMatrix2x4fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \ - HookWrapper4(void, glUniformMatrix3fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \ - HookWrapper4(void, glUniformMatrix3x2fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \ - HookWrapper4(void, glUniformMatrix3x4fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \ - HookWrapper4(void, glUniformMatrix4fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \ - HookWrapper4(void, glUniformMatrix4x2fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \ - HookWrapper4(void, glUniformMatrix4x3fv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \ - HookWrapper4(void, glUniformMatrix2dv, 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, glUniformMatrix3dv, 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, glUniformMatrix4dv, 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, glProgramUniform1f, GLuint, program, GLint, location, GLfloat, v0); \ - HookWrapper3(void, glProgramUniform1i, GLuint, program, GLint, location, GLint, v0); \ - HookWrapper3(void, glProgramUniform1ui, GLuint, program, GLint, location, GLuint, v0); \ - HookWrapper3(void, glProgramUniform1d, GLuint, program, GLint, location, GLdouble, v0); \ - HookWrapper4(void, glProgramUniform2f, GLuint, program, GLint, location, GLfloat, v0, GLfloat, v1); \ - HookWrapper4(void, glProgramUniform2i, GLuint, program, GLint, location, GLint, v0, GLint, v1); \ - HookWrapper4(void, glProgramUniform2ui, GLuint, program, GLint, location, GLuint, v0, GLuint, v1); \ - HookWrapper4(void, glProgramUniform2d, GLuint, program, GLint, location, GLdouble, v0, GLdouble, v1); \ - HookWrapper5(void, glProgramUniform3f, GLuint, program, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2); \ - HookWrapper5(void, glProgramUniform3i, GLuint, program, GLint, location, GLint, v0, GLint, v1, GLint, v2); \ - HookWrapper5(void, glProgramUniform3ui, GLuint, program, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2); \ - HookWrapper5(void, glProgramUniform3d, GLuint, program, GLint, location, GLdouble, v0, GLdouble, v1, GLdouble, v2); \ - HookWrapper6(void, glProgramUniform4f, GLuint, program, GLint, location, GLfloat, v0, GLfloat, v1, GLfloat, v2, GLfloat, v3); \ - HookWrapper6(void, glProgramUniform4i, GLuint, program, GLint, location, GLint, v0, GLint, v1, GLint, v2, GLint, v3); \ - HookWrapper6(void, glProgramUniform4ui, GLuint, program, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2, GLuint, v3); \ - HookWrapper6(void, glProgramUniform4d, GLuint, program, GLint, location, GLdouble, v0, GLdouble, v1, GLdouble, v2, GLdouble, v3); \ - HookWrapper4(void, glProgramUniform1fv, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \ - HookWrapper4(void, glProgramUniform1iv, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \ - HookWrapper4(void, glProgramUniform1uiv, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \ - HookWrapper4(void, glProgramUniform1dv, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \ - HookWrapper4(void, glProgramUniform2fv, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \ - HookWrapper4(void, glProgramUniform2iv, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \ - HookWrapper4(void, glProgramUniform2uiv, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \ - HookWrapper4(void, glProgramUniform2dv, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \ - HookWrapper4(void, glProgramUniform3fv, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \ - HookWrapper4(void, glProgramUniform3iv, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \ - HookWrapper4(void, glProgramUniform3uiv, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \ - HookWrapper4(void, glProgramUniform3dv, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \ - HookWrapper4(void, glProgramUniform4fv, GLuint, program, GLint, location, GLsizei, count, const GLfloat *, value); \ - HookWrapper4(void, glProgramUniform4iv, GLuint, program, GLint, location, GLsizei, count, const GLint *, value); \ - HookWrapper4(void, glProgramUniform4uiv, GLuint, program, GLint, location, GLsizei, count, const GLuint *, value); \ - HookWrapper4(void, glProgramUniform4dv, GLuint, program, GLint, location, GLsizei, count, const GLdouble *, value); \ - HookWrapper5(void, glProgramUniformMatrix2fv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \ - HookWrapper5(void, glProgramUniformMatrix2x3fv, 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, glProgramUniformMatrix3fv, 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, glProgramUniformMatrix3x4fv, 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, glProgramUniformMatrix4x2fv, 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, glProgramUniformMatrix2dv, GLuint, program, GLint, location, GLsizei, count, GLboolean, transpose, const GLdouble *, value); \ - HookWrapper5(void, glProgramUniformMatrix2x3dv, 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, glProgramUniformMatrix3dv, 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, glProgramUniformMatrix3x4dv, 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, glProgramUniformMatrix4x2dv, 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); \ - HookWrapper6(void, glDrawRangeElements, GLenum, mode, GLuint, start, GLuint, end, GLsizei, count, GLenum, type, const void *, indices); \ - HookWrapper7(void, glDrawRangeElementsBaseVertex, GLenum, mode, GLuint, start, GLuint, end, GLsizei, count, GLenum, type, const void *, indices, GLint, basevertex); \ + 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); \ - 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); \ HookWrapper6(void, glDrawElementsInstancedBaseInstance, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount, GLuint, baseinstance); \ - HookWrapper5(void, glDrawElementsBaseVertex, GLenum, mode, 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); \ HookWrapper7(void, glDrawElementsInstancedBaseVertexBaseInstance, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount, GLint, basevertex, GLuint, baseinstance); \ - 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); \ - HookWrapper6(void, glMultiDrawElementsBaseVertex, GLenum, mode, const GLsizei *, count, GLenum, type, const void *const*, indices, GLsizei, drawcount, const GLint *, basevertex); \ + 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); \ - HookWrapper2(void, glDrawArraysIndirect, GLenum, mode, const void *, indirect); \ - HookWrapper3(void, glDrawElementsIndirect, GLenum, mode, GLenum, type, const void *, indirect); \ - HookWrapper10(void, glBlitFramebuffer, 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); \ - HookWrapper8(void, glCompressedTextureImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, 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); \ - HookWrapper10(void, glCompressedTextureImage3DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, 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); \ - HookWrapper10(void, glCompressedTextureSubImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, 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); \ - HookWrapper3(void, glFramebufferDrawBuffersEXT, GLuint, framebuffer, GLsizei, n, const GLenum *, bufs); \ - HookWrapper2(void, glGenerateTextureMipmapEXT, GLuint, texture, GLenum, target); \ - HookWrapper3(void, glGetPointeri_vEXT, GLenum, pname, GLuint, index, void **, params); \ - 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); \ - HookWrapper3(void, glGetFloatIndexedvEXT, GLenum, target, GLuint, index, GLfloat *, data); \ - 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); \ - HookWrapper4(void, glGetMultiTexParameterIivEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLint *, params); \ - HookWrapper4(void, glGetMultiTexParameterIuivEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLuint *, 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); \ - HookWrapper4(void, glGetCompressedMultiTexImageEXT, GLenum, texunit, GLenum, target, GLint, lod, void *, img); \ - HookWrapper3(void, glGetNamedBufferPointervEXT, GLuint, buffer, GLenum, pname, void **, params); \ - HookWrapper4(void, glGetNamedProgramivEXT, GLuint, program, GLenum, target, GLenum, pname, GLint *, params); \ - HookWrapper4(void, glGetNamedFramebufferAttachmentParameterivEXT, GLuint, framebuffer, GLenum, attachment, GLenum, pname, GLint *, params); \ + 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); \ + 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); \ HookWrapper3(void, glGetNamedBufferParameterivEXT, GLuint, buffer, GLenum, pname, GLint *, params); \ - HookWrapper4(void, glGetNamedBufferSubDataEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, void *, data); \ - HookWrapper3(void, glGetNamedFramebufferParameterivEXT, GLuint, framebuffer, GLenum, pname, GLint *, params); \ + HookWrapper3(void, glGetNamedBufferParameteri64v, GLuint, buffer, GLenum, pname, GLint64 *, params); \ + HookWrapper3(void, glGetNamedBufferPointerv, GLuint, buffer, GLenum, pname, void **, params); \ + HookWrapper4(void, glGetNamedBufferSubData, GLuint, buffer, GLintptr, offset, GLsizei, size, void *, data); \ + HookWrapper3(void, glGetNamedFramebufferParameterivEXT, GLuint, framebuffer, GLenum, pname, GLint *, param); \ + HookWrapper4(void, glGetNamedFramebufferAttachmentParameterivEXT, GLuint, framebuffer, GLenum, attachment, GLenum, pname, GLint *, params); \ HookWrapper3(void, glGetNamedRenderbufferParameterivEXT, GLuint, renderbuffer, GLenum, pname, GLint *, params); \ - 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, glGetCompressedTextureImageEXT, GLuint, texture, GLenum, target, GLint, lod, void *, img); \ - HookWrapper6(void, glGetTextureImageEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, format, GLenum, type, void *, pixels); \ - HookWrapper4(void, glGetTextureParameterivEXT, GLuint, texture, GLenum, target, GLenum, pname, GLint *, params); \ - HookWrapper4(void, glGetTextureParameterfvEXT, GLuint, texture, GLenum, target, GLenum, pname, GLfloat *, params); \ - HookWrapper4(void, glGetTextureParameterIivEXT, GLuint, texture, GLenum, target, GLenum, pname, GLint *, params); \ - HookWrapper4(void, glGetTextureParameterIuivEXT, GLuint, texture, GLenum, target, GLenum, pname, GLuint *, params); \ - HookWrapper5(void, glGetTextureLevelParameterivEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, pname, GLint *, params); \ - HookWrapper5(void, glGetTextureLevelParameterfvEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, pname, GLfloat *, params); \ - HookWrapper3(void, glBindMultiTextureEXT, GLenum, texunit, GLenum, target, GLuint, texture); \ - HookWrapper2(void *, glMapNamedBufferEXT, GLuint, buffer, GLenum, access); \ - HookWrapper4(void *, glMapNamedBufferRangeEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, length, GLbitfield, access); \ - HookWrapper3(void, glFlushMappedNamedBufferRangeEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, length); \ - HookWrapper1(GLboolean, glUnmapNamedBufferEXT, GLuint, buffer); \ - HookWrapper5(void, glClearNamedBufferDataEXT, GLuint, buffer, GLenum, internalformat, GLenum, format, GLenum, type, const void *, data); \ - HookWrapper7(void, glClearNamedBufferSubDataEXT, GLuint, buffer, GLenum, internalformat, GLsizeiptr, offset, GLsizeiptr, size, GLenum, format, GLenum, type, const void *, data); \ - HookWrapper4(void, glNamedBufferDataEXT, GLuint, buffer, GLsizeiptr, size, const void *, data, GLenum, usage); \ - HookWrapper4(void, glNamedBufferStorageEXT, GLuint, buffer, GLsizeiptr, size, const void *, data, GLbitfield, flags); \ - HookWrapper4(void, glNamedBufferSubDataEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, const void *, data); \ - HookWrapper5(void, glNamedCopyBufferSubDataEXT, GLuint, readBuffer, GLuint, writeBuffer, GLintptr, readOffset, GLintptr, writeOffset, GLsizeiptr, size); \ - HookWrapper4(void, glNamedFramebufferTextureEXT, GLuint, framebuffer, GLenum, attachment, GLuint, texture, GLint, level); \ - 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); \ - HookWrapper4(void, glNamedFramebufferRenderbufferEXT, GLuint, framebuffer, GLenum, attachment, GLenum, renderbuffertarget, GLuint, renderbuffer); \ - HookWrapper5(void, glNamedFramebufferTextureLayerEXT, GLuint, framebuffer, GLenum, attachment, GLuint, texture, GLint, level, GLint, layer); \ - HookWrapper3(void, glNamedFramebufferParameteriEXT, GLuint, framebuffer, GLenum, pname, GLint, param); \ - HookWrapper4(void, glNamedRenderbufferStorageEXT, GLuint, renderbuffer, GLenum, internalformat, GLsizei, width, GLsizei, height); \ - HookWrapper5(void, glNamedRenderbufferStorageMultisampleEXT, GLuint, renderbuffer, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \ - HookWrapper2(void, glFramebufferDrawBufferEXT, GLuint, framebuffer, GLenum, mode); \ - HookWrapper2(void, glFramebufferReadBufferEXT, GLuint, framebuffer, GLenum, mode); \ - HookWrapper4(void, glTextureBufferEXT, GLuint, texture, GLenum, target, GLenum, internalformat, GLuint, buffer); \ - HookWrapper6(void, glTextureBufferRangeEXT, GLuint, texture, GLenum, target, GLenum, internalformat, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \ - 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); \ - 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); \ + 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); \ + 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); \ + 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); \ + 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); \ - HookWrapper4(void, glTextureParameterIivEXT, GLuint, texture, GLenum, target, GLenum, pname, const GLint *, params); \ - HookWrapper4(void, glTextureParameterIuivEXT, GLuint, texture, GLenum, target, GLenum, pname, const GLuint *, params); \ - 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); \ + 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); \ - 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); \ 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); \ @@ -1596,23 +1537,86 @@ 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); \ + HookWrapper2(void *, glMapNamedBufferEXT, GLuint, buffer, GLenum, access); \ + HookWrapper1(GLboolean, glUnmapNamedBufferEXT, GLuint, buffer); \ + HookWrapper3(void, glGetNamedBufferPointervEXT, GLuint, buffer, GLenum, pname, void **, params); \ + 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); \ + HookWrapper4(void, glNamedRenderbufferStorageEXT, GLuint, renderbuffer, GLenum, internalformat, GLsizei, width, GLsizei, height); \ + HookWrapper5(void, glNamedRenderbufferStorageMultisampleEXT, GLuint, renderbuffer, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \ + HookWrapper2(GLenum, glCheckNamedFramebufferStatusEXT, GLuint, framebuffer, GLenum, target); \ + 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); \ + HookWrapper4(void, glNamedFramebufferRenderbufferEXT, GLuint, framebuffer, GLenum, attachment, GLenum, renderbuffertarget, GLuint, renderbuffer); \ + HookWrapper2(void, glGenerateTextureMipmapEXT, GLuint, texture, GLenum, target); \ HookWrapper2(void, glGenerateMultiTexMipmapEXT, GLenum, texunit, GLenum, target); \ + HookWrapper2(void, glFramebufferDrawBufferEXT, GLuint, framebuffer, GLenum, mode); \ + HookWrapper3(void, glFramebufferDrawBuffersEXT, GLuint, framebuffer, GLsizei, n, const GLenum *, bufs); \ + HookWrapper2(void, glFramebufferReadBufferEXT, GLuint, framebuffer, GLenum, mode); \ + HookWrapper5(void, glNamedCopyBufferSubDataEXT, GLuint, readBuffer, GLuint, writeBuffer, GLintptr, readOffset, GLintptr, writeOffset, GLsizeiptr, size); \ + HookWrapper4(void, glNamedFramebufferTextureEXT, GLuint, framebuffer, GLenum, attachment, GLuint, texture, GLint, level); \ + HookWrapper5(void, glNamedFramebufferTextureLayerEXT, GLuint, framebuffer, GLenum, attachment, GLuint, texture, GLint, level, GLint, layer); \ 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); \ HookWrapper2(void, glEnableVertexArrayAttribEXT, GLuint, vaobj, GLuint, index); \ HookWrapper2(void, glDisableVertexArrayAttribEXT, GLuint, vaobj, GLuint, index); \ + 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); \ + HookWrapper5(void, glClearNamedBufferDataEXT, GLuint, buffer, GLenum, internalformat, GLenum, format, GLenum, type, const void *, data); \ + HookWrapper7(void, glClearNamedBufferSubDataEXT, GLuint, buffer, GLenum, internalformat, GLsizeiptr, offset, GLsizeiptr, size, GLenum, format, GLenum, type, const void *, data); \ + HookWrapper3(void, glNamedFramebufferParameteriEXT, GLuint, framebuffer, GLenum, pname, GLint, param); \ + 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); \ HookWrapper5(void, glVertexArrayBindVertexBufferEXT, GLuint, vaobj, GLuint, bindingindex, GLuint, buffer, GLintptr, offset, GLsizei, stride); \ 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); \ @@ -1624,4 +1628,3385 @@ +// unsupported entry points - used for dummy functions +#define DefineUnsupportedDummies() \ + 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); \ + 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, glclearnamedbufferdata, 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 *, glmapnamedbuffer, GLuint, buffer, GLenum, access); \ + HookWrapper4(void *, glmapnamedbufferrange, GLuint, buffer, GLintptr, offset, GLsizei, length, GLbitfield, access); \ + HookWrapper1(GLboolean, glunmapnamedbuffer, GLuint, buffer); \ + HookWrapper3(void, glflushmappednamedbufferrange, GLuint, buffer, GLintptr, offset, GLsizei, length); \ + HookWrapper2(void, glcreateframebuffers, GLsizei, n, GLuint *, framebuffers); \ + HookWrapper4(void, glnamedframebufferrenderbuffer, GLuint, framebuffer, GLenum, attachment, GLenum, renderbuffertarget, GLuint, renderbuffer); \ + HookWrapper3(void, glnamedframebufferparameteri, GLuint, framebuffer, GLenum, pname, GLint, param); \ + HookWrapper4(void, glnamedframebuffertexture, GLuint, framebuffer, GLenum, attachment, GLuint, texture, GLint, level); \ + HookWrapper5(void, glnamedframebuffertexturelayer, GLuint, framebuffer, GLenum, attachment, GLuint, texture, GLint, level, GLint, layer); \ + HookWrapper2(void, glnamedframebufferdrawbuffer, GLuint, framebuffer, GLenum, buf); \ + HookWrapper3(void, glnamedframebufferdrawbuffers, GLuint, framebuffer, GLsizei, n, const GLenum *, bufs); \ + HookWrapper2(void, glnamedframebufferreadbuffer, 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, glchecknamedframebufferstatus, GLuint, framebuffer, GLenum, target); \ + HookWrapper2(void, glcreaterenderbuffers, GLsizei, n, GLuint *, renderbuffers); \ + HookWrapper4(void, glnamedrenderbufferstorage, GLuint, renderbuffer, GLenum, internalformat, GLsizei, width, GLsizei, height); \ + HookWrapper5(void, glnamedrenderbufferstoragemultisample, GLuint, renderbuffer, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \ + 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); \ + HookWrapper2(void, glcreatevertexarrays, GLsizei, n, GLuint *, arrays); \ + HookWrapper2(void, gldisablevertexarrayattrib, GLuint, vaobj, GLuint, index); \ + HookWrapper2(void, glenablevertexarrayattrib, GLuint, vaobj, GLuint, index); \ + HookWrapper2(void, glvertexarrayelementbuffer, GLuint, vaobj, GLuint, buffer); \ + HookWrapper5(void, glvertexarrayvertexbuffer, 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, glvertexarrayattribbinding, GLuint, vaobj, GLuint, attribindex, GLuint, bindingindex); \ + HookWrapper6(void, glvertexarrayattribformat, GLuint, vaobj, GLuint, attribindex, GLint, size, GLenum, type, GLboolean, normalized, GLuint, relativeoffset); \ + HookWrapper5(void, glvertexarrayattribiformat, GLuint, vaobj, GLuint, attribindex, GLint, size, GLenum, type, GLuint, relativeoffset); \ + HookWrapper5(void, glvertexarrayattriblformat, GLuint, vaobj, GLuint, attribindex, GLint, size, GLenum, type, GLuint, relativeoffset); \ + HookWrapper3(void, glvertexarraybindingdivisor, GLuint, vaobj, GLuint, bindingindex, GLuint, divisor); \ + HookWrapper2(void, glcreatesamplers, GLsizei, n, GLuint *, samplers); \ + HookWrapper2(void, glcreateprogrampipelines, GLsizei, n, GLuint *, pipelines); \ + HookWrapper3(void, glcreatequeries, GLenum, target, GLsizei, n, GLuint *, ids); \ + 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); \ + 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); \ + HookWrapper4(void, glbufferpagecommitmentarb, GLenum, target, GLintptr, offset, GLsizei, size, GLboolean, commit); \ + HookWrapper4(void, glnamedbufferpagecommitmentext, GLuint, buffer, GLintptr, offset, GLsizei, size, GLboolean, commit); \ + HookWrapper4(void, glnamedbufferpagecommitmentarb, GLuint, buffer, GLintptr, offset, GLsizei, 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); \ + HookWrapper2(void, gldrawbuffersarb, GLsizei, n, const GLenum *, bufs); \ + HookWrapper4(void, gldrawarraysinstancedarb, GLenum, mode, GLint, first, GLsizei, count, GLsizei, primcount); \ + HookWrapper5(void, gldrawelementsinstancedarb, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, primcount); \ + 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); \ + HookWrapper3(void, glprogramparameteriarb, GLuint, program, GLenum, pname, GLint, value); \ + HookWrapper4(void, glframebuffertexturearb, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level); \ + HookWrapper5(void, glframebuffertexturelayerarb, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLint, layer); \ + 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); \ + HookWrapper2(void, glvertexattribdivisorarb, GLuint, index, GLuint, divisor); \ + 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); \ + HookWrapper2(void, glsamplecoveragearb, GLfloat, value, GLboolean, invert); \ + 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); \ + HookWrapper3(void, gltexbufferarb, GLenum, target, GLenum, internalformat, GLuint, buffer); \ + 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); \ + HookWrapper0(void, glblendbarrierkhr); \ + 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, glblendcolorext, GLfloat, red, GLfloat, green, GLfloat, blue, GLfloat, alpha); \ + HookWrapper2(void, glblendequationseparateext, GLenum, modeRGB, GLenum, modeAlpha); \ + HookWrapper4(void, glblendfuncseparateext, GLenum, sfactorRGB, GLenum, dfactorRGB, GLenum, sfactorAlpha, GLenum, dfactorAlpha); \ + HookWrapper1(void, glblendequationext, GLenum, mode); \ + 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); \ + HookWrapper4(void, gllabelobjectext, GLenum, type, GLuint, object, GLsizei, length, const GLchar *, label); \ + HookWrapper5(void, glgetobjectlabelext, GLenum, type, GLuint, object, GLsizei, bufSize, GLsizei *, length, GLchar *, label); \ + HookWrapper2(void, glinserteventmarkerext, GLsizei, length, const GLchar *, marker); \ + HookWrapper2(void, glpushgroupmarkerext, GLsizei, length, const GLchar *, marker); \ + HookWrapper0(void, glpopgroupmarkerext); \ + 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); \ + HookWrapper5(void, glcolormaskindexedext, GLuint, index, GLboolean, r, GLboolean, g, GLboolean, b, GLboolean, a); \ + HookWrapper4(void, gldrawarraysinstancedext, GLenum, mode, GLint, start, GLsizei, count, GLsizei, primcount); \ + HookWrapper5(void, gldrawelementsinstancedext, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, primcount); \ + HookWrapper6(void, gldrawrangeelementsext, GLenum, mode, GLuint, start, GLuint, end, GLsizei, count, GLenum, type, const void *, indices); \ + 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); \ + HookWrapper10(void, glblitframebufferext, GLint, srcX0, GLint, srcY0, GLint, srcX1, GLint, srcY1, GLint, dstX0, GLint, dstY0, GLint, dstX1, GLint, dstY1, GLbitfield, mask, GLenum, filter); \ + HookWrapper5(void, glrenderbufferstoragemultisampleext, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \ + 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); \ + HookWrapper3(void, glgetuniformuivext, GLuint, program, GLint, location, GLuint *, params); \ + HookWrapper3(void, glbindfragdatalocationext, GLuint, program, GLuint, color, const GLchar *, name); \ + HookWrapper2(GLint, glgetfragdatalocationext, GLuint, program, const GLchar *, name); \ + HookWrapper2(void, gluniform1uiext, GLint, location, GLuint, v0); \ + HookWrapper3(void, gluniform2uiext, GLint, location, GLuint, v0, GLuint, v1); \ + HookWrapper4(void, gluniform3uiext, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2); \ + HookWrapper5(void, gluniform4uiext, GLint, location, GLuint, v0, GLuint, v1, GLuint, v2, GLuint, v3); \ + HookWrapper3(void, gluniform1uivext, GLint, location, GLsizei, count, const GLuint *, value); \ + HookWrapper3(void, gluniform2uivext, GLint, location, GLsizei, count, const GLuint *, value); \ + HookWrapper3(void, gluniform3uivext, GLint, location, GLsizei, count, const GLuint *, value); \ + HookWrapper3(void, gluniform4uivext, GLint, location, GLsizei, count, const GLuint *, value); \ + 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); \ + HookWrapper4(void, glmultidrawarraysext, GLenum, mode, const GLint *, first, const GLsizei *, count, GLsizei, primcount); \ + 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); \ + HookWrapper1(void, glprovokingvertexext, GLenum, mode); \ + 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); \ + HookWrapper7(void, glbindimagetextureext, GLuint, index, GLuint, texture, GLint, level, GLboolean, layered, GLint, layer, GLenum, access, GLint, format); \ + HookWrapper1(void, glmemorybarrierext, GLbitfield, barriers); \ + 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); \ + HookWrapper10(void, glteximage3dext, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, 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); \ + HookWrapper5(void, glframebuffertexturelayerext, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLint, layer); \ + HookWrapper3(void, gltexbufferext, GLenum, target, GLenum, internalformat, GLuint, buffer); \ + HookWrapper3(void, gltexparameteriivext, GLenum, target, GLenum, pname, const GLint *, params); \ + HookWrapper3(void, gltexparameteriuivext, GLenum, target, GLenum, pname, const GLuint *, params); \ + HookWrapper3(void, glgettexparameteriivext, GLenum, target, GLenum, pname, GLint *, params); \ + HookWrapper3(void, glgettexparameteriuivext, GLenum, target, GLenum, pname, GLuint *, params); \ + 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); \ + HookWrapper1(void, glbegintransformfeedbackext, GLenum, primitiveMode); \ + HookWrapper0(void, glendtransformfeedbackext); \ + HookWrapper5(void, glbindbufferrangeext, GLenum, target, GLuint, index, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \ + HookWrapper4(void, glbindbufferoffsetext, GLenum, target, GLuint, index, GLuint, buffer, GLintptr, offset); \ + HookWrapper3(void, glbindbufferbaseext, GLenum, target, GLuint, index, GLuint, buffer); \ + HookWrapper4(void, gltransformfeedbackvaryingsext, GLuint, program, GLsizei, count, const GLchar *const*, varyings, GLenum, bufferMode); \ + HookWrapper7(void, glgettransformfeedbackvaryingext, GLuint, program, GLuint, index, GLsizei, bufSize, GLsizei *, length, GLsizei *, size, GLenum *, type, GLchar *, name); \ + 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); \ + HookWrapper2(void, glvertexattribl1dext, GLuint, index, GLdouble, x); \ + HookWrapper3(void, glvertexattribl2dext, GLuint, index, GLdouble, x, GLdouble, y); \ + HookWrapper4(void, glvertexattribl3dext, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z); \ + HookWrapper5(void, glvertexattribl4dext, GLuint, index, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \ + HookWrapper2(void, glvertexattribl1dvext, GLuint, index, const GLdouble *, v); \ + HookWrapper2(void, glvertexattribl2dvext, GLuint, index, const GLdouble *, v); \ + HookWrapper2(void, glvertexattribl3dvext, GLuint, index, const GLdouble *, v); \ + HookWrapper2(void, glvertexattribl4dvext, GLuint, index, const GLdouble *, v); \ + HookWrapper5(void, glvertexattriblpointerext, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \ + HookWrapper3(void, glgetvertexattribldvext, GLuint, index, GLenum, pname, GLdouble *, params); \ + 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); \ + HookWrapper0(void, glframeterminatorgremedy); \ + HookWrapper2(void, glstringmarkergremedy, GLsizei, len, const void *, string); \ + 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); \ + 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); \ + 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); \ + 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); \ + 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); \ + 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); \ + 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); \ + 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); \ + 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); \ + 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); \ + 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); \ + HookWrapper2(void, glvertexattribi1iext, GLuint, index, GLint, x); \ + HookWrapper3(void, glvertexattribi2iext, GLuint, index, GLint, x, GLint, y); \ + HookWrapper4(void, glvertexattribi3iext, GLuint, index, GLint, x, GLint, y, GLint, z); \ + HookWrapper5(void, glvertexattribi4iext, GLuint, index, GLint, x, GLint, y, GLint, z, GLint, w); \ + HookWrapper2(void, glvertexattribi1uiext, GLuint, index, GLuint, x); \ + HookWrapper3(void, glvertexattribi2uiext, GLuint, index, GLuint, x, GLuint, y); \ + HookWrapper4(void, glvertexattribi3uiext, GLuint, index, GLuint, x, GLuint, y, GLuint, z); \ + HookWrapper5(void, glvertexattribi4uiext, GLuint, index, GLuint, x, GLuint, y, GLuint, z, GLuint, w); \ + HookWrapper2(void, glvertexattribi1ivext, GLuint, index, const GLint *, v); \ + HookWrapper2(void, glvertexattribi2ivext, GLuint, index, const GLint *, v); \ + HookWrapper2(void, glvertexattribi3ivext, GLuint, index, const GLint *, v); \ + HookWrapper2(void, glvertexattribi4ivext, GLuint, index, const GLint *, v); \ + HookWrapper2(void, glvertexattribi1uivext, GLuint, index, const GLuint *, v); \ + HookWrapper2(void, glvertexattribi2uivext, GLuint, index, const GLuint *, v); \ + HookWrapper2(void, glvertexattribi3uivext, GLuint, index, const GLuint *, v); \ + HookWrapper2(void, glvertexattribi4uivext, GLuint, index, const GLuint *, v); \ + HookWrapper2(void, glvertexattribi4bvext, GLuint, index, const GLbyte *, v); \ + HookWrapper2(void, glvertexattribi4svext, GLuint, index, const GLshort *, v); \ + HookWrapper2(void, glvertexattribi4ubvext, GLuint, index, const GLubyte *, v); \ + HookWrapper2(void, glvertexattribi4usvext, GLuint, index, const GLushort *, v); \ + HookWrapper5(void, glvertexattribipointerext, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, const void *, pointer); \ + HookWrapper3(void, glgetvertexattribiivext, GLuint, index, GLenum, pname, GLint *, params); \ + HookWrapper3(void, glgetvertexattribiuivext, GLuint, index, GLenum, pname, GLuint *, params); \ + 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(PFNGLCREATETRANSFORMFEEDBACKSPROC, glcreatetransformfeedbacks); \ + HandleUnsupported(PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC, gltransformfeedbackbufferbase); \ + HandleUnsupported(PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC, gltransformfeedbackbufferrange); \ + HandleUnsupported(PFNGLCREATEBUFFERSPROC, glcreatebuffers); \ + HandleUnsupported(PFNGLNAMEDBUFFERSTORAGEPROC, glnamedbufferstorage); \ + HandleUnsupported(PFNGLNAMEDBUFFERDATAPROC, glnamedbufferdata); \ + HandleUnsupported(PFNGLNAMEDBUFFERSUBDATAPROC, glnamedbuffersubdata); \ + HandleUnsupported(PFNGLCOPYNAMEDBUFFERSUBDATAPROC, glcopynamedbuffersubdata); \ + HandleUnsupported(PFNGLCLEARNAMEDBUFFERDATAPROC, glclearnamedbufferdata); \ + HandleUnsupported(PFNGLCLEARNAMEDBUFFERSUBDATAPROC, glclearnamedbuffersubdata); \ + HandleUnsupported(PFNGLMAPNAMEDBUFFERPROC, glmapnamedbuffer); \ + HandleUnsupported(PFNGLMAPNAMEDBUFFERRANGEPROC, glmapnamedbufferrange); \ + HandleUnsupported(PFNGLUNMAPNAMEDBUFFERPROC, glunmapnamedbuffer); \ + HandleUnsupported(PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC, glflushmappednamedbufferrange); \ + HandleUnsupported(PFNGLCREATEFRAMEBUFFERSPROC, glcreateframebuffers); \ + HandleUnsupported(PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC, glnamedframebufferrenderbuffer); \ + HandleUnsupported(PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC, glnamedframebufferparameteri); \ + HandleUnsupported(PFNGLNAMEDFRAMEBUFFERTEXTUREPROC, glnamedframebuffertexture); \ + HandleUnsupported(PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC, glnamedframebuffertexturelayer); \ + HandleUnsupported(PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC, glnamedframebufferdrawbuffer); \ + HandleUnsupported(PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC, glnamedframebufferdrawbuffers); \ + HandleUnsupported(PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC, glnamedframebufferreadbuffer); \ + HandleUnsupported(PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC, glinvalidatenamedframebufferdata); \ + HandleUnsupported(PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC, glinvalidatenamedframebuffersubdata); \ + HandleUnsupported(PFNGLCLEARNAMEDFRAMEBUFFERIVPROC, glclearnamedframebufferiv); \ + HandleUnsupported(PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC, glclearnamedframebufferuiv); \ + HandleUnsupported(PFNGLCLEARNAMEDFRAMEBUFFERFVPROC, glclearnamedframebufferfv); \ + HandleUnsupported(PFNGLCLEARNAMEDFRAMEBUFFERFIPROC, glclearnamedframebufferfi); \ + HandleUnsupported(PFNGLBLITNAMEDFRAMEBUFFERPROC, glblitnamedframebuffer); \ + HandleUnsupported(PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC, glchecknamedframebufferstatus); \ + HandleUnsupported(PFNGLCREATERENDERBUFFERSPROC, glcreaterenderbuffers); \ + HandleUnsupported(PFNGLNAMEDRENDERBUFFERSTORAGEPROC, glnamedrenderbufferstorage); \ + HandleUnsupported(PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC, glnamedrenderbufferstoragemultisample); \ + HandleUnsupported(PFNGLCREATETEXTURESPROC, glcreatetextures); \ + HandleUnsupported(PFNGLTEXTUREBUFFERPROC, gltexturebuffer); \ + HandleUnsupported(PFNGLTEXTUREBUFFERRANGEPROC, gltexturebufferrange); \ + HandleUnsupported(PFNGLTEXTURESTORAGE1DPROC, gltexturestorage1d); \ + HandleUnsupported(PFNGLTEXTURESTORAGE2DPROC, gltexturestorage2d); \ + HandleUnsupported(PFNGLTEXTURESTORAGE3DPROC, gltexturestorage3d); \ + HandleUnsupported(PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC, gltexturestorage2dmultisample); \ + HandleUnsupported(PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC, gltexturestorage3dmultisample); \ + HandleUnsupported(PFNGLTEXTURESUBIMAGE1DPROC, gltexturesubimage1d); \ + HandleUnsupported(PFNGLTEXTURESUBIMAGE2DPROC, gltexturesubimage2d); \ + HandleUnsupported(PFNGLTEXTURESUBIMAGE3DPROC, gltexturesubimage3d); \ + HandleUnsupported(PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC, glcompressedtexturesubimage1d); \ + HandleUnsupported(PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC, glcompressedtexturesubimage2d); \ + HandleUnsupported(PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC, glcompressedtexturesubimage3d); \ + HandleUnsupported(PFNGLCOPYTEXTURESUBIMAGE1DPROC, glcopytexturesubimage1d); \ + HandleUnsupported(PFNGLCOPYTEXTURESUBIMAGE2DPROC, glcopytexturesubimage2d); \ + HandleUnsupported(PFNGLCOPYTEXTURESUBIMAGE3DPROC, glcopytexturesubimage3d); \ + HandleUnsupported(PFNGLTEXTUREPARAMETERFPROC, gltextureparameterf); \ + HandleUnsupported(PFNGLTEXTUREPARAMETERFVPROC, gltextureparameterfv); \ + HandleUnsupported(PFNGLTEXTUREPARAMETERIPROC, gltextureparameteri); \ + HandleUnsupported(PFNGLTEXTUREPARAMETERIIVPROC, gltextureparameteriiv); \ + HandleUnsupported(PFNGLTEXTUREPARAMETERIUIVPROC, gltextureparameteriuiv); \ + HandleUnsupported(PFNGLTEXTUREPARAMETERIVPROC, gltextureparameteriv); \ + HandleUnsupported(PFNGLGENERATETEXTUREMIPMAPPROC, glgeneratetexturemipmap); \ + HandleUnsupported(PFNGLBINDTEXTUREUNITPROC, glbindtextureunit); \ + HandleUnsupported(PFNGLCREATEVERTEXARRAYSPROC, glcreatevertexarrays); \ + HandleUnsupported(PFNGLDISABLEVERTEXARRAYATTRIBPROC, gldisablevertexarrayattrib); \ + HandleUnsupported(PFNGLENABLEVERTEXARRAYATTRIBPROC, glenablevertexarrayattrib); \ + HandleUnsupported(PFNGLVERTEXARRAYELEMENTBUFFERPROC, glvertexarrayelementbuffer); \ + HandleUnsupported(PFNGLVERTEXARRAYVERTEXBUFFERPROC, glvertexarrayvertexbuffer); \ + HandleUnsupported(PFNGLVERTEXARRAYVERTEXBUFFERSPROC, glvertexarrayvertexbuffers); \ + HandleUnsupported(PFNGLVERTEXARRAYATTRIBBINDINGPROC, glvertexarrayattribbinding); \ + HandleUnsupported(PFNGLVERTEXARRAYATTRIBFORMATPROC, glvertexarrayattribformat); \ + HandleUnsupported(PFNGLVERTEXARRAYATTRIBIFORMATPROC, glvertexarrayattribiformat); \ + HandleUnsupported(PFNGLVERTEXARRAYATTRIBLFORMATPROC, glvertexarrayattriblformat); \ + HandleUnsupported(PFNGLVERTEXARRAYBINDINGDIVISORPROC, glvertexarraybindingdivisor); \ + HandleUnsupported(PFNGLCREATESAMPLERSPROC, glcreatesamplers); \ + HandleUnsupported(PFNGLCREATEPROGRAMPIPELINESPROC, glcreateprogrampipelines); \ + HandleUnsupported(PFNGLCREATEQUERIESPROC, glcreatequeries); \ + 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(PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC, gldispatchcomputegroupsizearb); \ + HandleUnsupported(PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC, glmultidrawarraysindirectcountarb); \ + HandleUnsupported(PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC, glmultidrawelementsindirectcountarb); \ + HandleUnsupported(PFNGLNAMEDSTRINGARBPROC, glnamedstringarb); \ + HandleUnsupported(PFNGLDELETENAMEDSTRINGARBPROC, gldeletenamedstringarb); \ + HandleUnsupported(PFNGLCOMPILESHADERINCLUDEARBPROC, glcompileshaderincludearb); \ + HandleUnsupported(PFNGLISNAMEDSTRINGARBPROC, glisnamedstringarb); \ + HandleUnsupported(PFNGLGETNAMEDSTRINGARBPROC, glgetnamedstringarb); \ + HandleUnsupported(PFNGLGETNAMEDSTRINGIVARBPROC, glgetnamedstringivarb); \ + 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(PFNGLDRAWBUFFERSARBPROC, gldrawbuffersarb); \ + HandleUnsupported(PFNGLDRAWARRAYSINSTANCEDARBPROC, gldrawarraysinstancedarb); \ + HandleUnsupported(PFNGLDRAWELEMENTSINSTANCEDARBPROC, gldrawelementsinstancedarb); \ + 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(PFNGLPROGRAMPARAMETERIARBPROC, glprogramparameteriarb); \ + HandleUnsupported(PFNGLFRAMEBUFFERTEXTUREARBPROC, glframebuffertexturearb); \ + HandleUnsupported(PFNGLFRAMEBUFFERTEXTURELAYERARBPROC, glframebuffertexturelayerarb); \ + 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(PFNGLVERTEXATTRIBDIVISORARBPROC, glvertexattribdivisorarb); \ + HandleUnsupported(PFNGLCURRENTPALETTEMATRIXARBPROC, glcurrentpalettematrixarb); \ + HandleUnsupported(PFNGLMATRIXINDEXUBVARBPROC, glmatrixindexubvarb); \ + HandleUnsupported(PFNGLMATRIXINDEXUSVARBPROC, glmatrixindexusvarb); \ + HandleUnsupported(PFNGLMATRIXINDEXUIVARBPROC, glmatrixindexuivarb); \ + HandleUnsupported(PFNGLMATRIXINDEXPOINTERARBPROC, glmatrixindexpointerarb); \ + HandleUnsupported(PFNGLSAMPLECOVERAGEARBPROC, glsamplecoveragearb); \ + 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(PFNGLTEXBUFFERARBPROC, gltexbufferarb); \ + 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(PFNGLBLENDBARRIERKHRPROC, glblendbarrierkhr); \ + 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(PFNGLBLENDCOLOREXTPROC, glblendcolorext); \ + HandleUnsupported(PFNGLBLENDEQUATIONSEPARATEEXTPROC, glblendequationseparateext); \ + HandleUnsupported(PFNGLBLENDFUNCSEPARATEEXTPROC, glblendfuncseparateext); \ + HandleUnsupported(PFNGLBLENDEQUATIONEXTPROC, glblendequationext); \ + 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(PFNGLLABELOBJECTEXTPROC, gllabelobjectext); \ + HandleUnsupported(PFNGLGETOBJECTLABELEXTPROC, glgetobjectlabelext); \ + HandleUnsupported(PFNGLINSERTEVENTMARKEREXTPROC, glinserteventmarkerext); \ + HandleUnsupported(PFNGLPUSHGROUPMARKEREXTPROC, glpushgroupmarkerext); \ + HandleUnsupported(PFNGLPOPGROUPMARKEREXTPROC, glpopgroupmarkerext); \ + 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(PFNGLCOLORMASKINDEXEDEXTPROC, glcolormaskindexedext); \ + HandleUnsupported(PFNGLDRAWARRAYSINSTANCEDEXTPROC, gldrawarraysinstancedext); \ + HandleUnsupported(PFNGLDRAWELEMENTSINSTANCEDEXTPROC, gldrawelementsinstancedext); \ + HandleUnsupported(PFNGLDRAWRANGEELEMENTSEXTPROC, gldrawrangeelementsext); \ + HandleUnsupported(PFNGLFOGCOORDFEXTPROC, glfogcoordfext); \ + HandleUnsupported(PFNGLFOGCOORDFVEXTPROC, glfogcoordfvext); \ + HandleUnsupported(PFNGLFOGCOORDDEXTPROC, glfogcoorddext); \ + HandleUnsupported(PFNGLFOGCOORDDVEXTPROC, glfogcoorddvext); \ + HandleUnsupported(PFNGLFOGCOORDPOINTEREXTPROC, glfogcoordpointerext); \ + HandleUnsupported(PFNGLBLITFRAMEBUFFEREXTPROC, glblitframebufferext); \ + HandleUnsupported(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC, glrenderbufferstoragemultisampleext); \ + HandleUnsupported(PFNGLPROGRAMPARAMETERIEXTPROC, glprogramparameteriext); \ + HandleUnsupported(PFNGLPROGRAMENVPARAMETERS4FVEXTPROC, glprogramenvparameters4fvext); \ + HandleUnsupported(PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC, glprogramlocalparameters4fvext); \ + HandleUnsupported(PFNGLGETUNIFORMUIVEXTPROC, glgetuniformuivext); \ + HandleUnsupported(PFNGLBINDFRAGDATALOCATIONEXTPROC, glbindfragdatalocationext); \ + HandleUnsupported(PFNGLGETFRAGDATALOCATIONEXTPROC, glgetfragdatalocationext); \ + HandleUnsupported(PFNGLUNIFORM1UIEXTPROC, gluniform1uiext); \ + HandleUnsupported(PFNGLUNIFORM2UIEXTPROC, gluniform2uiext); \ + HandleUnsupported(PFNGLUNIFORM3UIEXTPROC, gluniform3uiext); \ + HandleUnsupported(PFNGLUNIFORM4UIEXTPROC, gluniform4uiext); \ + HandleUnsupported(PFNGLUNIFORM1UIVEXTPROC, gluniform1uivext); \ + HandleUnsupported(PFNGLUNIFORM2UIVEXTPROC, gluniform2uivext); \ + HandleUnsupported(PFNGLUNIFORM3UIVEXTPROC, gluniform3uivext); \ + HandleUnsupported(PFNGLUNIFORM4UIVEXTPROC, gluniform4uivext); \ + 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(PFNGLMULTIDRAWARRAYSEXTPROC, glmultidrawarraysext); \ + 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(PFNGLPROVOKINGVERTEXEXTPROC, glprovokingvertexext); \ + 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(PFNGLBINDIMAGETEXTUREEXTPROC, glbindimagetextureext); \ + HandleUnsupported(PFNGLMEMORYBARRIEREXTPROC, glmemorybarrierext); \ + HandleUnsupported(PFNGLSTENCILCLEARTAGEXTPROC, glstencilcleartagext); \ + HandleUnsupported(PFNGLACTIVESTENCILFACEEXTPROC, glactivestencilfaceext); \ + HandleUnsupported(PFNGLTEXSUBIMAGE1DEXTPROC, gltexsubimage1dext); \ + HandleUnsupported(PFNGLTEXSUBIMAGE2DEXTPROC, gltexsubimage2dext); \ + HandleUnsupported(PFNGLTEXIMAGE3DEXTPROC, glteximage3dext); \ + HandleUnsupported(PFNGLTEXSUBIMAGE3DEXTPROC, gltexsubimage3dext); \ + HandleUnsupported(PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC, glframebuffertexturelayerext); \ + HandleUnsupported(PFNGLTEXBUFFEREXTPROC, gltexbufferext); \ + HandleUnsupported(PFNGLTEXPARAMETERIIVEXTPROC, gltexparameteriivext); \ + HandleUnsupported(PFNGLTEXPARAMETERIUIVEXTPROC, gltexparameteriuivext); \ + HandleUnsupported(PFNGLGETTEXPARAMETERIIVEXTPROC, glgettexparameteriivext); \ + HandleUnsupported(PFNGLGETTEXPARAMETERIUIVEXTPROC, glgettexparameteriuivext); \ + 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(PFNGLBEGINTRANSFORMFEEDBACKEXTPROC, glbegintransformfeedbackext); \ + HandleUnsupported(PFNGLENDTRANSFORMFEEDBACKEXTPROC, glendtransformfeedbackext); \ + HandleUnsupported(PFNGLBINDBUFFERRANGEEXTPROC, glbindbufferrangeext); \ + HandleUnsupported(PFNGLBINDBUFFEROFFSETEXTPROC, glbindbufferoffsetext); \ + HandleUnsupported(PFNGLBINDBUFFERBASEEXTPROC, glbindbufferbaseext); \ + HandleUnsupported(PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC, gltransformfeedbackvaryingsext); \ + HandleUnsupported(PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC, glgettransformfeedbackvaryingext); \ + 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(PFNGLVERTEXATTRIBL1DEXTPROC, glvertexattribl1dext); \ + HandleUnsupported(PFNGLVERTEXATTRIBL2DEXTPROC, glvertexattribl2dext); \ + HandleUnsupported(PFNGLVERTEXATTRIBL3DEXTPROC, glvertexattribl3dext); \ + HandleUnsupported(PFNGLVERTEXATTRIBL4DEXTPROC, glvertexattribl4dext); \ + HandleUnsupported(PFNGLVERTEXATTRIBL1DVEXTPROC, glvertexattribl1dvext); \ + HandleUnsupported(PFNGLVERTEXATTRIBL2DVEXTPROC, glvertexattribl2dvext); \ + HandleUnsupported(PFNGLVERTEXATTRIBL3DVEXTPROC, glvertexattribl3dvext); \ + HandleUnsupported(PFNGLVERTEXATTRIBL4DVEXTPROC, glvertexattribl4dvext); \ + HandleUnsupported(PFNGLVERTEXATTRIBLPOINTEREXTPROC, glvertexattriblpointerext); \ + HandleUnsupported(PFNGLGETVERTEXATTRIBLDVEXTPROC, glgetvertexattribldvext); \ + 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(PFNGLFRAMETERMINATORGREMEDYPROC, glframeterminatorgremedy); \ + HandleUnsupported(PFNGLSTRINGMARKERGREMEDYPROC, glstringmarkergremedy); \ + 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(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(PFNGLPROGRAMNAMEDPARAMETER4FNVPROC, glprogramnamedparameter4fnv); \ + HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC, glprogramnamedparameter4fvnv); \ + HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4DNVPROC, glprogramnamedparameter4dnv); \ + HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC, glprogramnamedparameter4dvnv); \ + HandleUnsupported(PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC, glgetprogramnamedparameterfvnv); \ + HandleUnsupported(PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC, glgetprogramnamedparameterdvnv); \ + 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(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(PFNGLPATHCOLORGENNVPROC, glpathcolorgennv); \ + HandleUnsupported(PFNGLPATHTEXGENNVPROC, glpathtexgennv); \ + HandleUnsupported(PFNGLPATHFOGGENNVPROC, glpathfoggennv); \ + 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(PFNGLGETPATHCOLORGENIVNVPROC, glgetpathcolorgenivnv); \ + HandleUnsupported(PFNGLGETPATHCOLORGENFVNVPROC, glgetpathcolorgenfvnv); \ + HandleUnsupported(PFNGLGETPATHTEXGENIVNVPROC, glgetpathtexgenivnv); \ + HandleUnsupported(PFNGLGETPATHTEXGENFVNVPROC, glgetpathtexgenfvnv); \ + 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(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(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(PFNGLVERTEXATTRIBI1IEXTPROC, glvertexattribi1iext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI2IEXTPROC, glvertexattribi2iext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI3IEXTPROC, glvertexattribi3iext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI4IEXTPROC, glvertexattribi4iext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI1UIEXTPROC, glvertexattribi1uiext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI2UIEXTPROC, glvertexattribi2uiext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI3UIEXTPROC, glvertexattribi3uiext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI4UIEXTPROC, glvertexattribi4uiext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI1IVEXTPROC, glvertexattribi1ivext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI2IVEXTPROC, glvertexattribi2ivext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI3IVEXTPROC, glvertexattribi3ivext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI4IVEXTPROC, glvertexattribi4ivext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI1UIVEXTPROC, glvertexattribi1uivext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI2UIVEXTPROC, glvertexattribi2uivext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI3UIVEXTPROC, glvertexattribi3uivext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI4UIVEXTPROC, glvertexattribi4uivext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI4BVEXTPROC, glvertexattribi4bvext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI4SVEXTPROC, glvertexattribi4svext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI4UBVEXTPROC, glvertexattribi4ubvext); \ + HandleUnsupported(PFNGLVERTEXATTRIBI4USVEXTPROC, glvertexattribi4usvext); \ + HandleUnsupported(PFNGLVERTEXATTRIBIPOINTEREXTPROC, glvertexattribipointerext); \ + HandleUnsupported(PFNGLGETVERTEXATTRIBIIVEXTPROC, glgetvertexattribiivext); \ + HandleUnsupported(PFNGLGETVERTEXATTRIBIUIVEXTPROC, glgetvertexattribiuivext); \ + 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); \ + + + diff --git a/renderdoc/driver/gl/hookset.pl b/renderdoc/driver/gl/hookset.pl index 7d8fc4c7a..58d8ab066 100644 --- a/renderdoc/driver/gl/hookset.pl +++ b/renderdoc/driver/gl/hookset.pl @@ -1,20 +1,44 @@ #!/bin/perl +use strict; use POSIX; +binmode(STDOUT, ":crlf") if $^O eq 'msys'; + sub trim { (my $s = $_[0]) =~ s/^\s+|\s+$//g; return $s; } +sub uniq { + my %seen; + grep !$seen{$_}++, @_; +} + +sub uses_typedef +{ + return 1 if $_[0]{'typedef'} eq $_[1]; + return 1 if ("PFN" . uc($_[0]{'name'}) . "PROC") eq $_[1]; + + foreach my $a (@{$_[0]{'aliases'}}) + { + return 1 if ("PFN" . uc($a) . "PROC") eq $_[1]; + } + + return 0; +} + my $printdefs = $ARGV[$1] eq "defs"; open(HOOKSET, ") { @@ -22,12 +46,12 @@ while() if($line =~ /\/\/ --/) { - $mode = ""; + $current = \@unsupported; } elsif($line =~ /\/\/ \+\+ ([a-z]*)/) { - $mode = "dllexport" if $1 eq "dllexport"; - $mode = "glext" if $1 eq "glext"; + $current = \@dllexport if $1 eq "dllexport"; + $current = \@glext if $1 eq "glext"; } elsif($line =~ /^\s*\/\/ .*/) { @@ -37,7 +61,7 @@ while() { # skip blank lines } - elsif($mode ne "") + elsif($current != \@unsupported) { if($line =~ /(PFN.*PROC) (.*);( \/\/ aliases )?([a-zA-Z0-9_ ,]*)?/) { @@ -45,37 +69,94 @@ while() my $name = $2; my $aliases = $4; - my $def = trim(`grep -h $typedef official/*`); + my @alias_split = split(/, */, $aliases); - if($def =~ /^typedef (.*)\([A-Z *]* $typedef\) \((.*)\);/) + my %hook = (name => $name, typedef => $typedef, aliases => \@alias_split, processed => 0); + + push @{$current}, { %hook }; + + push @used, $typedef; + push @used, "PFN" . uc($name) . "PROC"; + foreach my $a (@alias_split) { - my $returnType = trim($1); - my $args = $2; - $args = "" if $args eq "void"; - my $origargs = $args; - $args =~ s/ *([a-zA-Z_][a-zA-Z_0-9]*)(,|\Z)/, $1$2/g; + push @used, "PFN" . uc($a) . "PROC"; + } + } + else + { + print "MALFORMED LINE IN gl_hookset.h: '$line'\n"; + } + } +} - my $argcount = () = $args =~ /,/g; +@used = uniq(@used); - $argcount = floor(($argcount + 1)/2); +my @dllexportfuncs = (); +my @glextfuncs = (); +my @processed = (); - my $funcdefmacro = "HookWrapper$argcount($returnType, $name"; - $funcdefmacro .= ", $args" if $args ne ""; - $funcdefmacro .= ");"; +my $typedefs = `egrep -h PFN[0-9A-Z_-]+PROC official/glcorearb.h official/glext.h`; +foreach my $typedef (split(/\n/, $typedefs)) +{ + if($typedef =~ /^typedef (.*)\([A-Z *]* (.*)\) \((.*)\);/) + { + my $returnType = trim($1); + my $def = $2; + my $args = $3; + $args = "" if $args eq "void"; - my %func = ('name', $name, 'typedef', $typedef, 'macro', $funcdefmacro, 'ret', $returnType, 'args', $origargs, 'aliases', $aliases); + # glPathGlyphIndexRangeNV has an array parameter - GLuint baseAndCount[2] + # just transform these to pointer parameters, it's equivalent. + $args =~ s/([A-Za-z_][a-zA-Z_0-9]*) ([A-Za-z_][a-zA-Z_0-9]*)\[[0-9]*\]/$1 *$2/g; - push @dllexport, { %func } if $mode eq "dllexport"; - push @glext, { %func } if $mode eq "glext"; + my $origargs = $args; + $args =~ s/ *([a-zA-Z_][a-zA-Z_0-9]*)(,|\Z)/, $1$2/g; + + my $argcount = () = $args =~ /,/g; + + $argcount = floor(($argcount + 1)/2); + + my $isused = grep {$_ eq $def} @used; + + $current = \@unsupported; + my $name = $def; + $name =~ s/^PFN(.*)PROC$/$1/g; + $name = lc($name); # todo, fetch the proper name instead of using lowercase (and insensitive compare) + my $aliases = ""; + + if($isused) + { + my @res = grep {uses_typedef($_, $def)} @dllexport; + + if(scalar @res) + { + $name = $res[0]{'name'}; + $aliases = $res[0]{'aliases'}; + + $current = \@dllexportfuncs; } else { - print "MALFORMED $mode DEFINITION OR NO DEFINITION FOUND FOR $typedef: '$def'\n"; + @res = grep {uses_typedef($_, $def)} @glext; + print "SCRIPT ERROR: '$def' reported as used but can't find matching definition\n" if not scalar @res; + + $name = $res[0]{'name'}; + $aliases = $res[0]{'aliases'}; + + $current = \@glextfuncs; } } - else + + my $funcdefmacro = "HookWrapper$argcount($returnType, $name"; + $funcdefmacro .= ", $args" if $args ne ""; + $funcdefmacro .= ");"; + + if(not grep {$_ eq $name} @processed) { - print "MALFORMED $mode LINE IN gl_hookset.h: '$line'\n"; + my %func = ('name', $name, 'typedef', $def, 'macro', $funcdefmacro, 'ret', $returnType, 'args', $origargs, 'aliases', $aliases); + + push @{$current}, { %func }; + push @processed, $name; } } } @@ -84,12 +165,12 @@ close(HOOKSET); if($printdefs) { - foreach my $el (@dllexport) + foreach my $el (@dllexportfuncs) { print " IMPLEMENT_FUNCTION_SERIALISED($el->{ret}, $el->{name}($el->{args}));\n"; } print "\n"; - foreach my $el (@glext) + foreach my $el (@glextfuncs) { print " IMPLEMENT_FUNCTION_SERIALISED($el->{ret}, $el->{name}($el->{args}));\n"; } @@ -97,11 +178,46 @@ if($printdefs) exit; } +print < gl_hookset_defs.h +ENDOFHEADER + print "////////////////////////////////////////////////////\n"; print "\n"; print "// dllexport functions\n"; print "#define DLLExportHooks() \\\n"; -foreach my $el (@dllexport) +foreach my $el (@dllexportfuncs) { print " HookInit($el->{name}); \\\n" } @@ -110,15 +226,15 @@ print "\n"; print "\n"; print "// gl extensions\n"; print "#define HookCheckGLExtensions() \\\n"; -foreach my $el (@glext) +foreach my $el (@glextfuncs) { print " HookExtension($el->{typedef}, $el->{name}); \\\n"; - foreach(split(/, */, $el->{aliases})) + foreach(@{$el->{aliases}}) { print " HookExtensionAlias($el->{typedef}, $el->{name}, $_); \\\n"; } } -foreach my $el (@dllexport) +foreach my $el (@dllexportfuncs) { print " HookExtension($el->{typedef}, $el->{name}); \\\n" } @@ -127,7 +243,7 @@ print "\n"; print "\n"; print "// dllexport functions\n"; print "#define DefineDLLExportHooks() \\\n"; -foreach my $el (@dllexport) +foreach my $el (@dllexportfuncs) { print " $el->{macro} \\\n" } @@ -136,11 +252,29 @@ print "\n"; print "\n"; print "// gl extensions\n"; print "#define DefineGLExtensionHooks() \\\n"; -foreach my $el (@glext) +foreach my $el (@glextfuncs) { print " $el->{macro} \\\n" } print "\n"; print "\n"; print "\n"; +print "// unsupported entry points - used for dummy functions\n"; +print "#define DefineUnsupportedDummies() \\\n"; +foreach my $el (@unsupported) +{ + print " $el->{macro} \\\n" +} print "\n"; +print "\n"; +print "\n"; +print "#define CheckUnsupported() \\\n"; +foreach my $el (@unsupported) +{ + print " HandleUnsupported($el->{typedef}, $el->{name}); \\\n" +} +print "\n"; +print "\n"; +print "\n"; +print "\n"; + diff --git a/renderdoc/driver/gl/wrappers/gl_get_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_get_funcs.cpp index afb931ba5..59aab4230 100644 --- a/renderdoc/driver/gl/wrappers/gl_get_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_get_funcs.cpp @@ -781,6 +781,11 @@ void WrappedOpenGL::glGetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, G m_Real.glGetNamedBufferSubDataEXT(buffer, offset, size, data); } +void WrappedOpenGL::glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, void *data) +{ + m_Real.glGetNamedBufferSubData(buffer, offset, size, data); +} + void WrappedOpenGL::glGetTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params) { m_Real.glGetTextureParameterivEXT(texture, target, pname, params); diff --git a/renderdoc/hooks/gl_linux_hooks.cpp b/renderdoc/hooks/gl_linux_hooks.cpp index db7e8e737..4e5e8164d 100644 --- a/renderdoc/hooks/gl_linux_hooks.cpp +++ b/renderdoc/hooks/gl_linux_hooks.cpp @@ -31,6 +31,8 @@ #include "driver/gl/gl_hookset.h" #include "driver/gl/gl_driver.h" +#include "driver/gl/gl_hookset_defs.h" + #include "common/threading.h" #include "common/string_utils.h" @@ -69,6 +71,23 @@ void *libGLdlsymHandle = RTLD_NEXT; // default to RTLD_NEXT, but overwritten if return (__GLXextFuncPtr)&CONCAT(function, _renderdoc_hooked); \ } +#if 0 // debug print for each unsupported function requested (but not used) +#define HandleUnsupported(funcPtrType, function) \ + if(lowername == STRINGIZE(function)) \ + { \ + CONCAT(unsupported_real_,function) = (CONCAT(function, _hooktype))realFunc; \ + RDCDEBUG("Requesting function pointer for unsupported function " STRINGIZE(function)); \ + return (__GLXextFuncPtr)&CONCAT(function, _renderdoc_hooked); \ + } +#else +#define HandleUnsupported(funcPtrType, function) \ + if(lowername == STRINGIZE(function)) \ + { \ + CONCAT(unsupported_real_,function) = (CONCAT(function, _hooktype))realFunc; \ + return (__GLXextFuncPtr)&CONCAT(function, _renderdoc_hooked); \ + } +#endif + /* in bash: @@ -102,7 +121,7 @@ void *libGLdlsymHandle = RTLD_NEXT; // default to RTLD_NEXT, but overwritten if echo -n "); }"; } - for I in `seq 0 ...`; do HookWrapper $I; echo; done + for I in `seq 0 15`; do HookWrapper $I; echo; done */ @@ -245,16 +264,6 @@ class OpenGLHook : LibraryHook RDCEraseEl(GL); - // TODO: need to check against implementation to ensure we don't claim to support - // an extension that it doesn't! - - glXExts.push_back("GLX_ARB_extensions_string"); - //glXExts.push_back("GLX_ARB_multisample"); - glXExts.push_back("GLX_ARB_create_context"); - glXExts.push_back("GLX_ARB_create_context_profile"); - - merge(glXExts, glXExtsString, ' '); - m_GLDriver = NULL; m_EnabledHooks = true; @@ -362,9 +371,6 @@ class OpenGLHook : LibraryHook WrappedOpenGL *m_GLDriver; GLHookSet GL; - - vector glXExts; - string glXExtsString; set m_Contexts; @@ -379,6 +385,185 @@ class OpenGLHook : LibraryHook DefineDLLExportHooks(); DefineGLExtensionHooks(); +/* + in bash: + + function HookWrapper() + { + N=$1; + echo "#undef HookWrapper$N"; + echo -n "#define HookWrapper$N(ret, function"; + for I in `seq 1 $N`; do echo -n ", t$I, p$I"; done; + echo ") \\"; + + echo -en "\ttypedef ret (*CONCAT(function, _hooktype)) ("; + for I in `seq 1 $N`; do echo -n "t$I"; if [ $I -ne $N ]; then echo -n ", "; fi; done; + echo "); \\"; + + echo -en "\tCONCAT(function, _hooktype) CONCAT(unsupported_real_,function);"; + + echo -en "\tret CONCAT(function,_renderdoc_hooked)("; + for I in `seq 1 $N`; do echo -n "t$I p$I"; if [ $I -ne $N ]; then echo -n ", "; fi; done; + echo ") \\"; + + echo -e "\t{ \\"; + echo -e "\tstatic bool hit = false; if(hit == false) { RDCERR(\"Function \" STRINGIZE(function) \" not supported - capture may be broken\"); hit = true; } \\"; + echo -en "\treturn CONCAT(unsupported_real_,function)("; + for I in `seq 1 $N`; do echo -n "p$I"; if [ $I -ne $N ]; then echo -n ", "; fi; done; + echo -e "); \\"; + echo -e "\t}"; + } + + for I in `seq 0 15`; do HookWrapper $I; echo; done + + */ + +#undef HookWrapper0 +#define HookWrapper0(ret, function) \ + typedef ret (*CONCAT(function, _hooktype)) (); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)() \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(); \ + } + +#undef HookWrapper1 +#define HookWrapper1(ret, function, t1, p1) \ + typedef ret (*CONCAT(function, _hooktype)) (t1); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1); \ + } + +#undef HookWrapper2 +#define HookWrapper2(ret, function, t1, p1, t2, p2) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2); \ + } + +#undef HookWrapper3 +#define HookWrapper3(ret, function, t1, p1, t2, p2, t3, p3) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2, t3); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2, t3 p3) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2, p3); \ + } + +#undef HookWrapper4 +#define HookWrapper4(ret, function, t1, p1, t2, p2, t3, p3, t4, p4) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2, t3, t4); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2, t3 p3, t4 p4) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2, p3, p4); \ + } + +#undef HookWrapper5 +#define HookWrapper5(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5); \ + } + +#undef HookWrapper6 +#define HookWrapper6(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6); \ + } + +#undef HookWrapper7 +#define HookWrapper7(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7); \ + } + +#undef HookWrapper8 +#define HookWrapper8(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8); \ + } + +#undef HookWrapper9 +#define HookWrapper9(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9); \ + } + +#undef HookWrapper10 +#define HookWrapper10(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9, t10, p10) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9, t10 p10) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); \ + } + +#undef HookWrapper11 +#define HookWrapper11(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9, t10, p10, t11, p11) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9, t10 p10, t11 p11) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); \ + } + +#undef HookWrapper12 +#define HookWrapper12(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9, t10, p10, t11, p11, t12, p12) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9, t10 p10, t11 p11, t12 p12) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); \ + } + +#undef HookWrapper13 +#define HookWrapper13(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9, t10, p10, t11, p11, t12, p12, t13, p13) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9, t10 p10, t11 p11, t12 p12, t13 p13) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); \ + } + +#undef HookWrapper14 +#define HookWrapper14(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9, t10, p10, t11, p11, t12, p12, t13, p13, t14, p14) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9, t10 p10, t11 p11, t12 p12, t13 p13, t14 p14) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14); \ + } + +#undef HookWrapper15 +#define HookWrapper15(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9, t10, p10, t11, p11, t12, p12, t13, p13, t14, p14, t15, p15) \ + typedef ret (*CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); ret CONCAT(function,_renderdoc_hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9, t10 p10, t11 p11, t12 p12, t13 p13, t14 p14, t15 p15) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15); \ + } + +DefineUnsupportedDummies(); + __attribute__ ((visibility ("default"))) GLXContext glXCreateContext(Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct) { @@ -552,18 +737,6 @@ Bool glXQueryExtension(Display *dpy, int *errorBase, int *eventBase) return OpenGLHook::glhooks.glXQueryExtension_real(dpy, errorBase, eventBase); } -__attribute__ ((visibility ("default"))) -const char *glXQueryExtensionsString(Display *dpy, int screen) -{ -#if !defined(_RELEASE) && 0 - PFNGLXQUERYEXTENSIONSSTRING glXGetExtStr = (PFNGLXQUERYEXTENSIONSSTRING)dlsym(libGLdlsymHandle, "glXQueryExtensionsString"); - string realExtsString = glXGetExtStr(dpy, screen); - vector realExts; - split(realExtsString, realExts, ' '); -#endif - return OpenGLHook::glhooks.glXExtsString.c_str(); -} - bool OpenGLHook::SetupHooks(GLHookSet &GL) { bool success = true; @@ -608,7 +781,7 @@ __GLXextFuncPtr glXGetProcAddress(const GLubyte *f) if(!strcmp(func, "glXMakeCurrent")) return (__GLXextFuncPtr)&glXMakeCurrent; if(!strcmp(func, "glXSwapBuffers")) return (__GLXextFuncPtr)&glXSwapBuffers; if(!strcmp(func, "glXQueryExtension")) return (__GLXextFuncPtr)&glXQueryExtension; - if(!strcmp(func, "glXQueryExtensionsString")) return (__GLXextFuncPtr)&glXQueryExtensionsString; + if(!strncmp(func, "glX", 3)) return realFunc; // if the real RC doesn't support this function, don't bother hooking if(realFunc == NULL) @@ -617,10 +790,14 @@ __GLXextFuncPtr glXGetProcAddress(const GLubyte *f) DLLExportHooks(); HookCheckGLExtensions(); -#if 0 - // claim not to know this extension! - RDCDEBUG("Claiming not to know extension that is available - %s", func); -#endif + // at the moment the unsupported functions are all lowercase (as their name is generated from the + // typedef name). + string lowername = strlower(string(func)); + + CheckUnsupported(); + + // for any other function, if it's not a core or extension function we know about, + // just return NULL return NULL; } diff --git a/renderdoc/hooks/gl_win32_hooks.cpp b/renderdoc/hooks/gl_win32_hooks.cpp index dd3b727a8..b74f5b8cc 100644 --- a/renderdoc/hooks/gl_win32_hooks.cpp +++ b/renderdoc/hooks/gl_win32_hooks.cpp @@ -27,6 +27,8 @@ #include "driver/gl/gl_hookset.h" #include "driver/gl/gl_driver.h" +#include "driver/gl/gl_hookset_defs.h" + #include "common/threading.h" #include "serialise/string_utils.h" @@ -54,6 +56,23 @@ return (PROC)&glhooks.CONCAT(function,_hooked); \ } +#if 0 // debug print for each unsupported function requested (but not used) +#define HandleUnsupported(funcPtrType, function) \ + if(lowername == STRINGIZE(function)) \ + { \ + glhooks.CONCAT(unsupported_real_,function) = (CONCAT(function, _hooktype))realFunc; \ + RDCDEBUG("Requesting function pointer for unsupported function " STRINGIZE(function)); \ + return (PROC)&glhooks.CONCAT(function,_hooked); \ + } +#else +#define HandleUnsupported(funcPtrType, function) \ + if(lowername == STRINGIZE(function)) \ + { \ + glhooks.CONCAT(unsupported_real_,function) = (CONCAT(function, _hooktype))realFunc; \ + return (PROC)&glhooks.CONCAT(function,_hooked); \ + } +#endif + /* in bash: @@ -81,7 +100,7 @@ echo -n "); }"; } - for I in `seq 0 ...`; do HookWrapper $I; echo; done + for I in `seq 0 15`; do HookWrapper $I; echo; done */ @@ -623,11 +642,15 @@ class OpenGLHook : LibraryHook } HookCheckGLExtensions(); - -#if 0 - // claim not to know this extension! - RDCDEBUG("Claiming not to know extension that is available - %s", func); -#endif + + // at the moment the unsupported functions are all lowercase (as their name is generated from the + // typedef name). + string lowername = strlower(string(func)); + + CheckUnsupported(); + + // for any other function, if it's not a core or extension function we know about, + // just return NULL return NULL; } @@ -690,6 +713,187 @@ class OpenGLHook : LibraryHook DefineDLLExportHooks(); DefineGLExtensionHooks(); + +/* + in bash: + + function HookWrapper() + { + N=$1; + echo "#undef HookWrapper$N"; + echo -n "#define HookWrapper$N(ret, function"; + for I in `seq 1 $N`; do echo -n ", t$I, p$I"; done; + echo ") \\"; + + echo -en "\ttypedef ret (WINAPI *CONCAT(function, _hooktype)) ("; + for I in `seq 1 $N`; do echo -n "t$I"; if [ $I -ne $N ]; then echo -n ", "; fi; done; + echo "); \\"; + + echo -en "\tCONCAT(function, _hooktype) CONCAT(unsupported_real_,function);"; + + + echo -en "\tstatic ret WINAPI CONCAT(function, _hooked)("; + for I in `seq 1 $N`; do echo -n "t$I p$I"; if [ $I -ne $N ]; then echo -n ", "; fi; done; + echo ") \\"; + + echo -e "\t{ \\"; + echo -e "\tstatic bool hit = false; if(hit == false) { RDCERR(\"Function \" STRINGIZE(function) \" not supported - capture may be broken\"); hit = true; } \\"; + echo -en "\treturn glhooks.CONCAT(unsupported_real_,function)("; + for I in `seq 1 $N`; do echo -n "p$I"; if [ $I -ne $N ]; then echo -n ", "; fi; done; + echo -e "); \\"; + echo -e "\t}"; + } + + for I in `seq 0 15`; do HookWrapper $I; echo; done + + */ + + +#undef HookWrapper0 +#define HookWrapper0(ret, function) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)() \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(); \ + } + +#undef HookWrapper1 +#define HookWrapper1(ret, function, t1, p1) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1); \ + } + +#undef HookWrapper2 +#define HookWrapper2(ret, function, t1, p1, t2, p2) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2); \ + } + +#undef HookWrapper3 +#define HookWrapper3(ret, function, t1, p1, t2, p2, t3, p3) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2, t3); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2, t3 p3) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2, p3); \ + } + +#undef HookWrapper4 +#define HookWrapper4(ret, function, t1, p1, t2, p2, t3, p3, t4, p4) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2, t3, t4); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2, t3 p3, t4 p4) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2, p3, p4); \ + } + +#undef HookWrapper5 +#define HookWrapper5(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5); \ + } + +#undef HookWrapper6 +#define HookWrapper6(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6); \ + } + +#undef HookWrapper7 +#define HookWrapper7(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7); \ + } + +#undef HookWrapper8 +#define HookWrapper8(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8); \ + } + +#undef HookWrapper9 +#define HookWrapper9(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9); \ + } + +#undef HookWrapper10 +#define HookWrapper10(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9, t10, p10) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9, t10 p10) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); \ + } + +#undef HookWrapper11 +#define HookWrapper11(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9, t10, p10, t11, p11) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9, t10 p10, t11 p11) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); \ + } + +#undef HookWrapper12 +#define HookWrapper12(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9, t10, p10, t11, p11, t12, p12) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9, t10 p10, t11 p11, t12 p12) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); \ + } + +#undef HookWrapper13 +#define HookWrapper13(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9, t10, p10, t11, p11, t12, p12, t13, p13) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9, t10 p10, t11 p11, t12 p12, t13 p13) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); \ + } + +#undef HookWrapper14 +#define HookWrapper14(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9, t10, p10, t11, p11, t12, p12, t13, p13, t14, p14) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9, t10 p10, t11 p11, t12 p12, t13 p13, t14 p14) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14); \ + } + +#undef HookWrapper15 +#define HookWrapper15(ret, function, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5, t6, p6, t7, p7, t8, p8, t9, p9, t10, p10, t11, p11, t12, p12, t13, p13, t14, p14, t15, p15) \ + typedef ret (WINAPI *CONCAT(function, _hooktype)) (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); \ + CONCAT(function, _hooktype) CONCAT(unsupported_real_,function); static ret WINAPI CONCAT(function, _hooked)(t1 p1, t2 p2, t3 p3, t4 p4, t5 p5, t6 p6, t7 p7, t8 p8, t9 p9, t10 p10, t11 p11, t12 p12, t13 p13, t14 p14, t15 p15) \ + { \ + static bool hit = false; if(hit == false) { RDCERR("Function " STRINGIZE(function) " not supported - capture may be broken"); hit = true; } \ + return glhooks.CONCAT(unsupported_real_,function)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15); \ + } + + DefineUnsupportedDummies(); }; OpenGLHook OpenGLHook::glhooks;