/* WARNING: This is auto-generated file. Do not modify, since changes will
 * be lost! Modify the generating script instead.
 *
 * Generated from Khronos GL API description (gl.xml) revision 9d534f9312e56c72df763207e449c6719576fd54.
 */
#define			glActiveShaderProgram								glwActiveShaderProgram
#define			glActiveTexture										glwActiveTexture
#define			glAttachShader										glwAttachShader
#define			glBeginConditionalRender							glwBeginConditionalRender
#define			glBeginQuery										glwBeginQuery
#define			glBeginQueryIndexed									glwBeginQueryIndexed
#define			glBeginTransformFeedback							glwBeginTransformFeedback
#define			glBindAttribLocation								glwBindAttribLocation
#define			glBindBuffer										glwBindBuffer
#define			glBindBufferBase									glwBindBufferBase
#define			glBindBufferRange									glwBindBufferRange
#define			glBindBuffersBase									glwBindBuffersBase
#define			glBindBuffersRange									glwBindBuffersRange
#define			glBindFragDataLocation								glwBindFragDataLocation
#define			glBindFragDataLocationIndexed						glwBindFragDataLocationIndexed
#define			glBindFramebuffer									glwBindFramebuffer
#define			glBindImageTexture									glwBindImageTexture
#define			glBindImageTextures									glwBindImageTextures
#define			glBindMultiTextureEXT								glwBindMultiTextureEXT
#define			glBindProgramPipeline								glwBindProgramPipeline
#define			glBindRenderbuffer									glwBindRenderbuffer
#define			glBindSampler										glwBindSampler
#define			glBindSamplers										glwBindSamplers
#define			glBindTexture										glwBindTexture
#define			glBindTextureUnit									glwBindTextureUnit
#define			glBindTextures										glwBindTextures
#define			glBindTransformFeedback								glwBindTransformFeedback
#define			glBindVertexArray									glwBindVertexArray
#define			glBindVertexBuffer									glwBindVertexBuffer
#define			glBindVertexBuffers									glwBindVertexBuffers
#define			glBlendBarrier										glwBlendBarrier
#define			glBlendColor										glwBlendColor
#define			glBlendEquation										glwBlendEquation
#define			glBlendEquationSeparate								glwBlendEquationSeparate
#define			glBlendEquationSeparatei							glwBlendEquationSeparatei
#define			glBlendEquationi									glwBlendEquationi
#define			glBlendFunc											glwBlendFunc
#define			glBlendFuncSeparate									glwBlendFuncSeparate
#define			glBlendFuncSeparatei								glwBlendFuncSeparatei
#define			glBlendFunci										glwBlendFunci
#define			glBlitFramebuffer									glwBlitFramebuffer
#define			glBlitNamedFramebuffer								glwBlitNamedFramebuffer
#define			glBufferData										glwBufferData
#define			glBufferPageCommitmentARB							glwBufferPageCommitmentARB
#define			glBufferStorage										glwBufferStorage
#define			glBufferSubData										glwBufferSubData
#define			glCheckFramebufferStatus							glwCheckFramebufferStatus
#define			glCheckNamedFramebufferStatus						glwCheckNamedFramebufferStatus
#define			glCheckNamedFramebufferStatusEXT					glwCheckNamedFramebufferStatusEXT
#define			glClampColor										glwClampColor
#define			glClear												glwClear
#define			glClearBufferData									glwClearBufferData
#define			glClearBufferSubData								glwClearBufferSubData
#define			glClearBufferfi										glwClearBufferfi
#define			glClearBufferfv										glwClearBufferfv
#define			glClearBufferiv										glwClearBufferiv
#define			glClearBufferuiv									glwClearBufferuiv
#define			glClearColor										glwClearColor
#define			glClearDepth										glwClearDepth
#define			glClearDepthf										glwClearDepthf
#define			glClearNamedBufferData								glwClearNamedBufferData
#define			glClearNamedBufferDataEXT							glwClearNamedBufferDataEXT
#define			glClearNamedBufferSubData							glwClearNamedBufferSubData
#define			glClearNamedBufferSubDataEXT						glwClearNamedBufferSubDataEXT
#define			glClearNamedFramebufferfi							glwClearNamedFramebufferfi
#define			glClearNamedFramebufferfv							glwClearNamedFramebufferfv
#define			glClearNamedFramebufferiv							glwClearNamedFramebufferiv
#define			glClearNamedFramebufferuiv							glwClearNamedFramebufferuiv
#define			glClearStencil										glwClearStencil
#define			glClearTexImage										glwClearTexImage
#define			glClearTexSubImage									glwClearTexSubImage
#define			glClientAttribDefaultEXT							glwClientAttribDefaultEXT
#define			glClientWaitSync									glwClientWaitSync
#define			glClipControl										glwClipControl
#define			glColorMask											glwColorMask
#define			glColorMaski										glwColorMaski
#define			glCompileShader										glwCompileShader
#define			glCompressedMultiTexImage1DEXT						glwCompressedMultiTexImage1DEXT
#define			glCompressedMultiTexImage2DEXT						glwCompressedMultiTexImage2DEXT
#define			glCompressedMultiTexImage3DEXT						glwCompressedMultiTexImage3DEXT
#define			glCompressedMultiTexSubImage1DEXT					glwCompressedMultiTexSubImage1DEXT
#define			glCompressedMultiTexSubImage2DEXT					glwCompressedMultiTexSubImage2DEXT
#define			glCompressedMultiTexSubImage3DEXT					glwCompressedMultiTexSubImage3DEXT
#define			glCompressedTexImage1D								glwCompressedTexImage1D
#define			glCompressedTexImage2D								glwCompressedTexImage2D
#define			glCompressedTexImage3D								glwCompressedTexImage3D
#define			glCompressedTexImage3DOES							glwCompressedTexImage3DOES
#define			glCompressedTexSubImage1D							glwCompressedTexSubImage1D
#define			glCompressedTexSubImage2D							glwCompressedTexSubImage2D
#define			glCompressedTexSubImage3D							glwCompressedTexSubImage3D
#define			glCompressedTexSubImage3DOES						glwCompressedTexSubImage3DOES
#define			glCompressedTextureImage1DEXT						glwCompressedTextureImage1DEXT
#define			glCompressedTextureImage2DEXT						glwCompressedTextureImage2DEXT
#define			glCompressedTextureImage3DEXT						glwCompressedTextureImage3DEXT
#define			glCompressedTextureSubImage1D						glwCompressedTextureSubImage1D
#define			glCompressedTextureSubImage1DEXT					glwCompressedTextureSubImage1DEXT
#define			glCompressedTextureSubImage2D						glwCompressedTextureSubImage2D
#define			glCompressedTextureSubImage2DEXT					glwCompressedTextureSubImage2DEXT
#define			glCompressedTextureSubImage3D						glwCompressedTextureSubImage3D
#define			glCompressedTextureSubImage3DEXT					glwCompressedTextureSubImage3DEXT
#define			glCopyBufferSubData									glwCopyBufferSubData
#define			glCopyImageSubData									glwCopyImageSubData
#define			glCopyMultiTexImage1DEXT							glwCopyMultiTexImage1DEXT
#define			glCopyMultiTexImage2DEXT							glwCopyMultiTexImage2DEXT
#define			glCopyMultiTexSubImage1DEXT							glwCopyMultiTexSubImage1DEXT
#define			glCopyMultiTexSubImage2DEXT							glwCopyMultiTexSubImage2DEXT
#define			glCopyMultiTexSubImage3DEXT							glwCopyMultiTexSubImage3DEXT
#define			glCopyNamedBufferSubData							glwCopyNamedBufferSubData
#define			glCopyTexImage1D									glwCopyTexImage1D
#define			glCopyTexImage2D									glwCopyTexImage2D
#define			glCopyTexSubImage1D									glwCopyTexSubImage1D
#define			glCopyTexSubImage2D									glwCopyTexSubImage2D
#define			glCopyTexSubImage3D									glwCopyTexSubImage3D
#define			glCopyTexSubImage3DOES								glwCopyTexSubImage3DOES
#define			glCopyTextureImage1DEXT								glwCopyTextureImage1DEXT
#define			glCopyTextureImage2DEXT								glwCopyTextureImage2DEXT
#define			glCopyTextureSubImage1D								glwCopyTextureSubImage1D
#define			glCopyTextureSubImage1DEXT							glwCopyTextureSubImage1DEXT
#define			glCopyTextureSubImage2D								glwCopyTextureSubImage2D
#define			glCopyTextureSubImage2DEXT							glwCopyTextureSubImage2DEXT
#define			glCopyTextureSubImage3D								glwCopyTextureSubImage3D
#define			glCopyTextureSubImage3DEXT							glwCopyTextureSubImage3DEXT
#define			glCreateBuffers										glwCreateBuffers
#define			glCreateFramebuffers								glwCreateFramebuffers
#define			glCreateProgram										glwCreateProgram
#define			glCreateProgramPipelines							glwCreateProgramPipelines
#define			glCreateQueries										glwCreateQueries
#define			glCreateRenderbuffers								glwCreateRenderbuffers
#define			glCreateSamplers									glwCreateSamplers
#define			glCreateShader										glwCreateShader
#define			glCreateShaderProgramv								glwCreateShaderProgramv
#define			glCreateTextures									glwCreateTextures
#define			glCreateTransformFeedbacks							glwCreateTransformFeedbacks
#define			glCreateVertexArrays								glwCreateVertexArrays
#define			glCullFace											glwCullFace
#define			glDebugMessageCallback								glwDebugMessageCallback
#define			glDebugMessageControl								glwDebugMessageControl
#define			glDebugMessageInsert								glwDebugMessageInsert
#define			glDeleteBuffers										glwDeleteBuffers
#define			glDeleteFramebuffers								glwDeleteFramebuffers
#define			glDeleteProgram										glwDeleteProgram
#define			glDeleteProgramPipelines							glwDeleteProgramPipelines
#define			glDeleteQueries										glwDeleteQueries
#define			glDeleteRenderbuffers								glwDeleteRenderbuffers
#define			glDeleteSamplers									glwDeleteSamplers
#define			glDeleteShader										glwDeleteShader
#define			glDeleteSync										glwDeleteSync
#define			glDeleteTextures									glwDeleteTextures
#define			glDeleteTransformFeedbacks							glwDeleteTransformFeedbacks
#define			glDeleteVertexArrays								glwDeleteVertexArrays
#define			glDepthBoundsEXT									glwDepthBoundsEXT
#define			glDepthFunc											glwDepthFunc
#define			glDepthMask											glwDepthMask
#define			glDepthRange										glwDepthRange
#define			glDepthRangeArrayfvOES								glwDepthRangeArrayfvOES
#define			glDepthRangeArrayv									glwDepthRangeArrayv
#define			glDepthRangeIndexed									glwDepthRangeIndexed
#define			glDepthRangeIndexedfOES								glwDepthRangeIndexedfOES
#define			glDepthRangef										glwDepthRangef
#define			glDetachShader										glwDetachShader
#define			glDisable											glwDisable
#define			glDisableClientStateIndexedEXT						glwDisableClientStateIndexedEXT
#define			glDisableClientStateiEXT							glwDisableClientStateiEXT
#define			glDisableVertexArrayAttrib							glwDisableVertexArrayAttrib
#define			glDisableVertexArrayAttribEXT						glwDisableVertexArrayAttribEXT
#define			glDisableVertexArrayEXT								glwDisableVertexArrayEXT
#define			glDisableVertexAttribArray							glwDisableVertexAttribArray
#define			glDisablei											glwDisablei
#define			glDispatchCompute									glwDispatchCompute
#define			glDispatchComputeIndirect							glwDispatchComputeIndirect
#define			glDrawArrays										glwDrawArrays
#define			glDrawArraysIndirect								glwDrawArraysIndirect
#define			glDrawArraysInstanced								glwDrawArraysInstanced
#define			glDrawArraysInstancedBaseInstance					glwDrawArraysInstancedBaseInstance
#define			glDrawBuffer										glwDrawBuffer
#define			glDrawBuffers										glwDrawBuffers
#define			glDrawElements										glwDrawElements
#define			glDrawElementsBaseVertex							glwDrawElementsBaseVertex
#define			glDrawElementsIndirect								glwDrawElementsIndirect
#define			glDrawElementsInstanced								glwDrawElementsInstanced
#define			glDrawElementsInstancedBaseInstance					glwDrawElementsInstancedBaseInstance
#define			glDrawElementsInstancedBaseVertex					glwDrawElementsInstancedBaseVertex
#define			glDrawElementsInstancedBaseVertexBaseInstance		glwDrawElementsInstancedBaseVertexBaseInstance
#define			glDrawRangeElements									glwDrawRangeElements
#define			glDrawRangeElementsBaseVertex						glwDrawRangeElementsBaseVertex
#define			glDrawTransformFeedback								glwDrawTransformFeedback
#define			glDrawTransformFeedbackInstanced					glwDrawTransformFeedbackInstanced
#define			glDrawTransformFeedbackStream						glwDrawTransformFeedbackStream
#define			glDrawTransformFeedbackStreamInstanced				glwDrawTransformFeedbackStreamInstanced
#define			glEGLImageTargetRenderbufferStorageOES				glwEGLImageTargetRenderbufferStorageOES
#define			glEGLImageTargetTexture2DOES						glwEGLImageTargetTexture2DOES
#define			glEnable											glwEnable
#define			glEnableClientStateIndexedEXT						glwEnableClientStateIndexedEXT
#define			glEnableClientStateiEXT								glwEnableClientStateiEXT
#define			glEnableVertexArrayAttrib							glwEnableVertexArrayAttrib
#define			glEnableVertexArrayAttribEXT						glwEnableVertexArrayAttribEXT
#define			glEnableVertexArrayEXT								glwEnableVertexArrayEXT
#define			glEnableVertexAttribArray							glwEnableVertexAttribArray
#define			glEnablei											glwEnablei
#define			glEndConditionalRender								glwEndConditionalRender
#define			glEndQuery											glwEndQuery
#define			glEndQueryIndexed									glwEndQueryIndexed
#define			glEndTransformFeedback								glwEndTransformFeedback
#define			glFenceSync											glwFenceSync
#define			glFinish											glwFinish
#define			glFlush												glwFlush
#define			glFlushMappedBufferRange							glwFlushMappedBufferRange
#define			glFlushMappedNamedBufferRange						glwFlushMappedNamedBufferRange
#define			glFlushMappedNamedBufferRangeEXT					glwFlushMappedNamedBufferRangeEXT
#define			glFramebufferDrawBufferEXT							glwFramebufferDrawBufferEXT
#define			glFramebufferDrawBuffersEXT							glwFramebufferDrawBuffersEXT
#define			glFramebufferParameteri								glwFramebufferParameteri
#define			glFramebufferReadBufferEXT							glwFramebufferReadBufferEXT
#define			glFramebufferRenderbuffer							glwFramebufferRenderbuffer
#define			glFramebufferTexture								glwFramebufferTexture
#define			glFramebufferTexture1D								glwFramebufferTexture1D
#define			glFramebufferTexture2D								glwFramebufferTexture2D
#define			glFramebufferTexture2DMultisampleEXT				glwFramebufferTexture2DMultisampleEXT
#define			glFramebufferTexture3D								glwFramebufferTexture3D
#define			glFramebufferTexture3DOES							glwFramebufferTexture3DOES
#define			glFramebufferTextureLayer							glwFramebufferTextureLayer
#define			glFramebufferTextureMultisampleMultiviewOVR			glwFramebufferTextureMultisampleMultiviewOVR
#define			glFramebufferTextureMultiviewOVR					glwFramebufferTextureMultiviewOVR
#define			glFrontFace											glwFrontFace
#define			glGenBuffers										glwGenBuffers
#define			glGenFramebuffers									glwGenFramebuffers
#define			glGenProgramPipelines								glwGenProgramPipelines
#define			glGenQueries										glwGenQueries
#define			glGenRenderbuffers									glwGenRenderbuffers
#define			glGenSamplers										glwGenSamplers
#define			glGenTextures										glwGenTextures
#define			glGenTransformFeedbacks								glwGenTransformFeedbacks
#define			glGenVertexArrays									glwGenVertexArrays
#define			glGenerateMipmap									glwGenerateMipmap
#define			glGenerateMultiTexMipmapEXT							glwGenerateMultiTexMipmapEXT
#define			glGenerateTextureMipmap								glwGenerateTextureMipmap
#define			glGenerateTextureMipmapEXT							glwGenerateTextureMipmapEXT
#define			glGetActiveAtomicCounterBufferiv					glwGetActiveAtomicCounterBufferiv
#define			glGetActiveAttrib									glwGetActiveAttrib
#define			glGetActiveSubroutineName							glwGetActiveSubroutineName
#define			glGetActiveSubroutineUniformName					glwGetActiveSubroutineUniformName
#define			glGetActiveSubroutineUniformiv						glwGetActiveSubroutineUniformiv
#define			glGetActiveUniform									glwGetActiveUniform
#define			glGetActiveUniformBlockName							glwGetActiveUniformBlockName
#define			glGetActiveUniformBlockiv							glwGetActiveUniformBlockiv
#define			glGetActiveUniformName								glwGetActiveUniformName
#define			glGetActiveUniformsiv								glwGetActiveUniformsiv
#define			glGetAttachedShaders								glwGetAttachedShaders
#define			glGetAttribLocation									glwGetAttribLocation
#define			glGetBooleani_v										glwGetBooleani_v
#define			glGetBooleanv										glwGetBooleanv
#define			glGetBufferParameteri64v							glwGetBufferParameteri64v
#define			glGetBufferParameteriv								glwGetBufferParameteriv
#define			glGetBufferPointerv									glwGetBufferPointerv
#define			glGetBufferSubData									glwGetBufferSubData
#define			glGetCompressedMultiTexImageEXT						glwGetCompressedMultiTexImageEXT
#define			glGetCompressedTexImage								glwGetCompressedTexImage
#define			glGetCompressedTextureImage							glwGetCompressedTextureImage
#define			glGetCompressedTextureImageEXT						glwGetCompressedTextureImageEXT
#define			glGetCompressedTextureSubImage						glwGetCompressedTextureSubImage
#define			glGetDebugMessageLog								glwGetDebugMessageLog
#define			glGetDoublei_v										glwGetDoublei_v
#define			glGetDoublev										glwGetDoublev
#define			glGetError											glwGetError
#define			glGetFloati_v										glwGetFloati_v
#define			glGetFloatv											glwGetFloatv
#define			glGetFragDataIndex									glwGetFragDataIndex
#define			glGetFragDataLocation								glwGetFragDataLocation
#define			glGetFramebufferAttachmentParameteriv				glwGetFramebufferAttachmentParameteriv
#define			glGetFramebufferParameteriv							glwGetFramebufferParameteriv
#define			glGetFramebufferParameterivEXT						glwGetFramebufferParameterivEXT
#define			glGetGraphicsResetStatus							glwGetGraphicsResetStatus
#define			glGetInteger64i_v									glwGetInteger64i_v
#define			glGetInteger64v										glwGetInteger64v
#define			glGetIntegeri_v										glwGetIntegeri_v
#define			glGetIntegerv										glwGetIntegerv
#define			glGetInternalformatSampleivNV						glwGetInternalformatSampleivNV
#define			glGetInternalformati64v								glwGetInternalformati64v
#define			glGetInternalformativ								glwGetInternalformativ
#define			glGetMultiTexEnvfvEXT								glwGetMultiTexEnvfvEXT
#define			glGetMultiTexEnvivEXT								glwGetMultiTexEnvivEXT
#define			glGetMultiTexGendvEXT								glwGetMultiTexGendvEXT
#define			glGetMultiTexGenfvEXT								glwGetMultiTexGenfvEXT
#define			glGetMultiTexGenivEXT								glwGetMultiTexGenivEXT
#define			glGetMultiTexImageEXT								glwGetMultiTexImageEXT
#define			glGetMultiTexLevelParameterfvEXT					glwGetMultiTexLevelParameterfvEXT
#define			glGetMultiTexLevelParameterivEXT					glwGetMultiTexLevelParameterivEXT
#define			glGetMultiTexParameterIivEXT						glwGetMultiTexParameterIivEXT
#define			glGetMultiTexParameterIuivEXT						glwGetMultiTexParameterIuivEXT
#define			glGetMultiTexParameterfvEXT							glwGetMultiTexParameterfvEXT
#define			glGetMultiTexParameterivEXT							glwGetMultiTexParameterivEXT
#define			glGetMultisamplefv									glwGetMultisamplefv
#define			glGetNamedBufferParameteri64v						glwGetNamedBufferParameteri64v
#define			glGetNamedBufferParameteriv							glwGetNamedBufferParameteriv
#define			glGetNamedBufferParameterivEXT						glwGetNamedBufferParameterivEXT
#define			glGetNamedBufferPointerv							glwGetNamedBufferPointerv
#define			glGetNamedBufferPointervEXT							glwGetNamedBufferPointervEXT
#define			glGetNamedBufferSubData								glwGetNamedBufferSubData
#define			glGetNamedBufferSubDataEXT							glwGetNamedBufferSubDataEXT
#define			glGetNamedFramebufferAttachmentParameteriv			glwGetNamedFramebufferAttachmentParameteriv
#define			glGetNamedFramebufferAttachmentParameterivEXT		glwGetNamedFramebufferAttachmentParameterivEXT
#define			glGetNamedFramebufferParameteriv					glwGetNamedFramebufferParameteriv
#define			glGetNamedFramebufferParameterivEXT					glwGetNamedFramebufferParameterivEXT
#define			glGetNamedProgramLocalParameterIivEXT				glwGetNamedProgramLocalParameterIivEXT
#define			glGetNamedProgramLocalParameterIuivEXT				glwGetNamedProgramLocalParameterIuivEXT
#define			glGetNamedProgramLocalParameterdvEXT				glwGetNamedProgramLocalParameterdvEXT
#define			glGetNamedProgramLocalParameterfvEXT				glwGetNamedProgramLocalParameterfvEXT
#define			glGetNamedProgramStringEXT							glwGetNamedProgramStringEXT
#define			glGetNamedProgramivEXT								glwGetNamedProgramivEXT
#define			glGetNamedRenderbufferParameteriv					glwGetNamedRenderbufferParameteriv
#define			glGetNamedRenderbufferParameterivEXT				glwGetNamedRenderbufferParameterivEXT
#define			glGetObjectLabel									glwGetObjectLabel
#define			glGetObjectPtrLabel									glwGetObjectPtrLabel
#define			glGetPointerIndexedvEXT								glwGetPointerIndexedvEXT
#define			glGetPointeri_vEXT									glwGetPointeri_vEXT
#define			glGetPointerv										glwGetPointerv
#define			glGetProgramBinary									glwGetProgramBinary
#define			glGetProgramInfoLog									glwGetProgramInfoLog
#define			glGetProgramInterfaceiv								glwGetProgramInterfaceiv
#define			glGetProgramPipelineInfoLog							glwGetProgramPipelineInfoLog
#define			glGetProgramPipelineiv								glwGetProgramPipelineiv
#define			glGetProgramResourceIndex							glwGetProgramResourceIndex
#define			glGetProgramResourceLocation						glwGetProgramResourceLocation
#define			glGetProgramResourceLocationIndex					glwGetProgramResourceLocationIndex
#define			glGetProgramResourceName							glwGetProgramResourceName
#define			glGetProgramResourceiv								glwGetProgramResourceiv
#define			glGetProgramStageiv									glwGetProgramStageiv
#define			glGetProgramiv										glwGetProgramiv
#define			glGetQueryBufferObjecti64v							glwGetQueryBufferObjecti64v
#define			glGetQueryBufferObjectiv							glwGetQueryBufferObjectiv
#define			glGetQueryBufferObjectui64v							glwGetQueryBufferObjectui64v
#define			glGetQueryBufferObjectuiv							glwGetQueryBufferObjectuiv
#define			glGetQueryIndexediv									glwGetQueryIndexediv
#define			glGetQueryObjecti64v								glwGetQueryObjecti64v
#define			glGetQueryObjectiv									glwGetQueryObjectiv
#define			glGetQueryObjectui64v								glwGetQueryObjectui64v
#define			glGetQueryObjectuiv									glwGetQueryObjectuiv
#define			glGetQueryiv										glwGetQueryiv
#define			glGetRenderbufferParameteriv						glwGetRenderbufferParameteriv
#define			glGetSamplerParameterIiv							glwGetSamplerParameterIiv
#define			glGetSamplerParameterIuiv							glwGetSamplerParameterIuiv
#define			glGetSamplerParameterfv								glwGetSamplerParameterfv
#define			glGetSamplerParameteriv								glwGetSamplerParameteriv
#define			glGetShaderInfoLog									glwGetShaderInfoLog
#define			glGetShaderPrecisionFormat							glwGetShaderPrecisionFormat
#define			glGetShaderSource									glwGetShaderSource
#define			glGetShaderiv										glwGetShaderiv
#define			glGetString											glwGetString
#define			glGetStringi										glwGetStringi
#define			glGetSubroutineIndex								glwGetSubroutineIndex
#define			glGetSubroutineUniformLocation						glwGetSubroutineUniformLocation
#define			glGetSynciv											glwGetSynciv
#define			glGetTexImage										glwGetTexImage
#define			glGetTexLevelParameterfv							glwGetTexLevelParameterfv
#define			glGetTexLevelParameteriv							glwGetTexLevelParameteriv
#define			glGetTexParameterIiv								glwGetTexParameterIiv
#define			glGetTexParameterIuiv								glwGetTexParameterIuiv
#define			glGetTexParameterfv									glwGetTexParameterfv
#define			glGetTexParameteriv									glwGetTexParameteriv
#define			glGetTextureImage									glwGetTextureImage
#define			glGetTextureImageEXT								glwGetTextureImageEXT
#define			glGetTextureLevelParameterfv						glwGetTextureLevelParameterfv
#define			glGetTextureLevelParameterfvEXT						glwGetTextureLevelParameterfvEXT
#define			glGetTextureLevelParameteriv						glwGetTextureLevelParameteriv
#define			glGetTextureLevelParameterivEXT						glwGetTextureLevelParameterivEXT
#define			glGetTextureParameterIiv							glwGetTextureParameterIiv
#define			glGetTextureParameterIivEXT							glwGetTextureParameterIivEXT
#define			glGetTextureParameterIuiv							glwGetTextureParameterIuiv
#define			glGetTextureParameterIuivEXT						glwGetTextureParameterIuivEXT
#define			glGetTextureParameterfv								glwGetTextureParameterfv
#define			glGetTextureParameterfvEXT							glwGetTextureParameterfvEXT
#define			glGetTextureParameteriv								glwGetTextureParameteriv
#define			glGetTextureParameterivEXT							glwGetTextureParameterivEXT
#define			glGetTextureSubImage								glwGetTextureSubImage
#define			glGetTransformFeedbackVarying						glwGetTransformFeedbackVarying
#define			glGetTransformFeedbacki64_v							glwGetTransformFeedbacki64_v
#define			glGetTransformFeedbacki_v							glwGetTransformFeedbacki_v
#define			glGetTransformFeedbackiv							glwGetTransformFeedbackiv
#define			glGetUniformBlockIndex								glwGetUniformBlockIndex
#define			glGetUniformIndices									glwGetUniformIndices
#define			glGetUniformLocation								glwGetUniformLocation
#define			glGetUniformSubroutineuiv							glwGetUniformSubroutineuiv
#define			glGetUniformdv										glwGetUniformdv
#define			glGetUniformfv										glwGetUniformfv
#define			glGetUniformiv										glwGetUniformiv
#define			glGetUniformuiv										glwGetUniformuiv
#define			glGetVertexArrayIndexed64iv							glwGetVertexArrayIndexed64iv
#define			glGetVertexArrayIndexediv							glwGetVertexArrayIndexediv
#define			glGetVertexArrayIntegeri_vEXT						glwGetVertexArrayIntegeri_vEXT
#define			glGetVertexArrayIntegervEXT							glwGetVertexArrayIntegervEXT
#define			glGetVertexArrayPointeri_vEXT						glwGetVertexArrayPointeri_vEXT
#define			glGetVertexArrayPointervEXT							glwGetVertexArrayPointervEXT
#define			glGetVertexArrayiv									glwGetVertexArrayiv
#define			glGetVertexAttribIiv								glwGetVertexAttribIiv
#define			glGetVertexAttribIuiv								glwGetVertexAttribIuiv
#define			glGetVertexAttribLdv								glwGetVertexAttribLdv
#define			glGetVertexAttribPointerv							glwGetVertexAttribPointerv
#define			glGetVertexAttribdv									glwGetVertexAttribdv
#define			glGetVertexAttribfv									glwGetVertexAttribfv
#define			glGetVertexAttribiv									glwGetVertexAttribiv
#define			glGetnCompressedTexImage							glwGetnCompressedTexImage
#define			glGetnTexImage										glwGetnTexImage
#define			glGetnUniformdv										glwGetnUniformdv
#define			glGetnUniformfv										glwGetnUniformfv
#define			glGetnUniformiv										glwGetnUniformiv
#define			glGetnUniformuiv									glwGetnUniformuiv
#define			glHint												glwHint
#define			glInsertEventMarkerEXT								glwInsertEventMarkerEXT
#define			glInvalidateBufferData								glwInvalidateBufferData
#define			glInvalidateBufferSubData							glwInvalidateBufferSubData
#define			glInvalidateFramebuffer								glwInvalidateFramebuffer
#define			glInvalidateNamedFramebufferData					glwInvalidateNamedFramebufferData
#define			glInvalidateNamedFramebufferSubData					glwInvalidateNamedFramebufferSubData
#define			glInvalidateSubFramebuffer							glwInvalidateSubFramebuffer
#define			glInvalidateTexImage								glwInvalidateTexImage
#define			glInvalidateTexSubImage								glwInvalidateTexSubImage
#define			glIsBuffer											glwIsBuffer
#define			glIsEnabled											glwIsEnabled
#define			glIsEnabledi										glwIsEnabledi
#define			glIsFramebuffer										glwIsFramebuffer
#define			glIsProgram											glwIsProgram
#define			glIsProgramPipeline									glwIsProgramPipeline
#define			glIsQuery											glwIsQuery
#define			glIsRenderbuffer									glwIsRenderbuffer
#define			glIsSampler											glwIsSampler
#define			glIsShader											glwIsShader
#define			glIsSync											glwIsSync
#define			glIsTexture											glwIsTexture
#define			glIsTransformFeedback								glwIsTransformFeedback
#define			glIsVertexArray										glwIsVertexArray
#define			glLineWidth											glwLineWidth
#define			glLinkProgram										glwLinkProgram
#define			glLogicOp											glwLogicOp
#define			glMapBuffer											glwMapBuffer
#define			glMapBufferRange									glwMapBufferRange
#define			glMapNamedBuffer									glwMapNamedBuffer
#define			glMapNamedBufferEXT									glwMapNamedBufferEXT
#define			glMapNamedBufferRange								glwMapNamedBufferRange
#define			glMapNamedBufferRangeEXT							glwMapNamedBufferRangeEXT
#define			glMatrixFrustumEXT									glwMatrixFrustumEXT
#define			glMatrixLoadIdentityEXT								glwMatrixLoadIdentityEXT
#define			glMatrixLoadTransposedEXT							glwMatrixLoadTransposedEXT
#define			glMatrixLoadTransposefEXT							glwMatrixLoadTransposefEXT
#define			glMatrixLoaddEXT									glwMatrixLoaddEXT
#define			glMatrixLoadfEXT									glwMatrixLoadfEXT
#define			glMatrixMultTransposedEXT							glwMatrixMultTransposedEXT
#define			glMatrixMultTransposefEXT							glwMatrixMultTransposefEXT
#define			glMatrixMultdEXT									glwMatrixMultdEXT
#define			glMatrixMultfEXT									glwMatrixMultfEXT
#define			glMatrixOrthoEXT									glwMatrixOrthoEXT
#define			glMatrixPopEXT										glwMatrixPopEXT
#define			glMatrixPushEXT										glwMatrixPushEXT
#define			glMatrixRotatedEXT									glwMatrixRotatedEXT
#define			glMatrixRotatefEXT									glwMatrixRotatefEXT
#define			glMatrixScaledEXT									glwMatrixScaledEXT
#define			glMatrixScalefEXT									glwMatrixScalefEXT
#define			glMatrixTranslatedEXT								glwMatrixTranslatedEXT
#define			glMatrixTranslatefEXT								glwMatrixTranslatefEXT
#define			glMaxShaderCompilerThreadsKHR						glwMaxShaderCompilerThreadsKHR
#define			glMemoryBarrier										glwMemoryBarrier
#define			glMemoryBarrierByRegion								glwMemoryBarrierByRegion
#define			glMinSampleShading									glwMinSampleShading
#define			glMultiDrawArrays									glwMultiDrawArrays
#define			glMultiDrawArraysIndirect							glwMultiDrawArraysIndirect
#define			glMultiDrawArraysIndirectCount						glwMultiDrawArraysIndirectCount
#define			glMultiDrawElements									glwMultiDrawElements
#define			glMultiDrawElementsBaseVertex						glwMultiDrawElementsBaseVertex
#define			glMultiDrawElementsIndirect							glwMultiDrawElementsIndirect
#define			glMultiDrawElementsIndirectCount					glwMultiDrawElementsIndirectCount
#define			glMultiTexBufferEXT									glwMultiTexBufferEXT
#define			glMultiTexCoordPointerEXT							glwMultiTexCoordPointerEXT
#define			glMultiTexEnvfEXT									glwMultiTexEnvfEXT
#define			glMultiTexEnvfvEXT									glwMultiTexEnvfvEXT
#define			glMultiTexEnviEXT									glwMultiTexEnviEXT
#define			glMultiTexEnvivEXT									glwMultiTexEnvivEXT
#define			glMultiTexGendEXT									glwMultiTexGendEXT
#define			glMultiTexGendvEXT									glwMultiTexGendvEXT
#define			glMultiTexGenfEXT									glwMultiTexGenfEXT
#define			glMultiTexGenfvEXT									glwMultiTexGenfvEXT
#define			glMultiTexGeniEXT									glwMultiTexGeniEXT
#define			glMultiTexGenivEXT									glwMultiTexGenivEXT
#define			glMultiTexImage1DEXT								glwMultiTexImage1DEXT
#define			glMultiTexImage2DEXT								glwMultiTexImage2DEXT
#define			glMultiTexImage3DEXT								glwMultiTexImage3DEXT
#define			glMultiTexParameterIivEXT							glwMultiTexParameterIivEXT
#define			glMultiTexParameterIuivEXT							glwMultiTexParameterIuivEXT
#define			glMultiTexParameterfEXT								glwMultiTexParameterfEXT
#define			glMultiTexParameterfvEXT							glwMultiTexParameterfvEXT
#define			glMultiTexParameteriEXT								glwMultiTexParameteriEXT
#define			glMultiTexParameterivEXT							glwMultiTexParameterivEXT
#define			glMultiTexRenderbufferEXT							glwMultiTexRenderbufferEXT
#define			glMultiTexSubImage1DEXT								glwMultiTexSubImage1DEXT
#define			glMultiTexSubImage2DEXT								glwMultiTexSubImage2DEXT
#define			glMultiTexSubImage3DEXT								glwMultiTexSubImage3DEXT
#define			glMulticastBarrierNV								glwMulticastBarrierNV
#define			glMulticastBlitFramebufferNV						glwMulticastBlitFramebufferNV
#define			glMulticastBufferSubDataNV							glwMulticastBufferSubDataNV
#define			glMulticastCopyBufferSubDataNV						glwMulticastCopyBufferSubDataNV
#define			glMulticastCopyImageSubDataNV						glwMulticastCopyImageSubDataNV
#define			glMulticastFramebufferSampleLocationsfvNV			glwMulticastFramebufferSampleLocationsfvNV
#define			glMulticastGetQueryObjecti64vNV						glwMulticastGetQueryObjecti64vNV
#define			glMulticastGetQueryObjectivNV						glwMulticastGetQueryObjectivNV
#define			glMulticastGetQueryObjectui64vNV					glwMulticastGetQueryObjectui64vNV
#define			glMulticastGetQueryObjectuivNV						glwMulticastGetQueryObjectuivNV
#define			glMulticastWaitSyncNV								glwMulticastWaitSyncNV
#define			glNamedBufferData									glwNamedBufferData
#define			glNamedBufferDataEXT								glwNamedBufferDataEXT
#define			glNamedBufferPageCommitmentARB						glwNamedBufferPageCommitmentARB
#define			glNamedBufferPageCommitmentEXT						glwNamedBufferPageCommitmentEXT
#define			glNamedBufferStorage								glwNamedBufferStorage
#define			glNamedBufferSubData								glwNamedBufferSubData
#define			glNamedCopyBufferSubDataEXT							glwNamedCopyBufferSubDataEXT
#define			glNamedFramebufferDrawBuffer						glwNamedFramebufferDrawBuffer
#define			glNamedFramebufferDrawBuffers						glwNamedFramebufferDrawBuffers
#define			glNamedFramebufferParameteri						glwNamedFramebufferParameteri
#define			glNamedFramebufferParameteriEXT						glwNamedFramebufferParameteriEXT
#define			glNamedFramebufferReadBuffer						glwNamedFramebufferReadBuffer
#define			glNamedFramebufferRenderbuffer						glwNamedFramebufferRenderbuffer
#define			glNamedFramebufferRenderbufferEXT					glwNamedFramebufferRenderbufferEXT
#define			glNamedFramebufferTexture							glwNamedFramebufferTexture
#define			glNamedFramebufferTexture1DEXT						glwNamedFramebufferTexture1DEXT
#define			glNamedFramebufferTexture2DEXT						glwNamedFramebufferTexture2DEXT
#define			glNamedFramebufferTexture3DEXT						glwNamedFramebufferTexture3DEXT
#define			glNamedFramebufferTextureEXT						glwNamedFramebufferTextureEXT
#define			glNamedFramebufferTextureFaceEXT					glwNamedFramebufferTextureFaceEXT
#define			glNamedFramebufferTextureLayer						glwNamedFramebufferTextureLayer
#define			glNamedFramebufferTextureLayerEXT					glwNamedFramebufferTextureLayerEXT
#define			glNamedProgramLocalParameter4dEXT					glwNamedProgramLocalParameter4dEXT
#define			glNamedProgramLocalParameter4dvEXT					glwNamedProgramLocalParameter4dvEXT
#define			glNamedProgramLocalParameter4fEXT					glwNamedProgramLocalParameter4fEXT
#define			glNamedProgramLocalParameter4fvEXT					glwNamedProgramLocalParameter4fvEXT
#define			glNamedProgramLocalParameterI4iEXT					glwNamedProgramLocalParameterI4iEXT
#define			glNamedProgramLocalParameterI4ivEXT					glwNamedProgramLocalParameterI4ivEXT
#define			glNamedProgramLocalParameterI4uiEXT					glwNamedProgramLocalParameterI4uiEXT
#define			glNamedProgramLocalParameterI4uivEXT				glwNamedProgramLocalParameterI4uivEXT
#define			glNamedProgramLocalParameters4fvEXT					glwNamedProgramLocalParameters4fvEXT
#define			glNamedProgramLocalParametersI4ivEXT				glwNamedProgramLocalParametersI4ivEXT
#define			glNamedProgramLocalParametersI4uivEXT				glwNamedProgramLocalParametersI4uivEXT
#define			glNamedProgramStringEXT								glwNamedProgramStringEXT
#define			glNamedRenderbufferStorage							glwNamedRenderbufferStorage
#define			glNamedRenderbufferStorageEXT						glwNamedRenderbufferStorageEXT
#define			glNamedRenderbufferStorageMultisample				glwNamedRenderbufferStorageMultisample
#define			glNamedRenderbufferStorageMultisampleCoverageEXT	glwNamedRenderbufferStorageMultisampleCoverageEXT
#define			glNamedRenderbufferStorageMultisampleEXT			glwNamedRenderbufferStorageMultisampleEXT
#define			glObjectLabel										glwObjectLabel
#define			glObjectPtrLabel									glwObjectPtrLabel
#define			glPatchParameterfv									glwPatchParameterfv
#define			glPatchParameteri									glwPatchParameteri
#define			glPauseTransformFeedback							glwPauseTransformFeedback
#define			glPixelStoref										glwPixelStoref
#define			glPixelStorei										glwPixelStorei
#define			glPointParameterf									glwPointParameterf
#define			glPointParameterfv									glwPointParameterfv
#define			glPointParameteri									glwPointParameteri
#define			glPointParameteriv									glwPointParameteriv
#define			glPointSize											glwPointSize
#define			glPolygonMode										glwPolygonMode
#define			glPolygonOffset										glwPolygonOffset
#define			glPolygonOffsetClamp								glwPolygonOffsetClamp
#define			glPopDebugGroup										glwPopDebugGroup
#define			glPopGroupMarkerEXT									glwPopGroupMarkerEXT
#define			glPrimitiveBoundingBox								glwPrimitiveBoundingBox
#define			glPrimitiveRestartIndex								glwPrimitiveRestartIndex
#define			glProgramBinary										glwProgramBinary
#define			glProgramParameteri									glwProgramParameteri
#define			glProgramUniform1d									glwProgramUniform1d
#define			glProgramUniform1dEXT								glwProgramUniform1dEXT
#define			glProgramUniform1dv									glwProgramUniform1dv
#define			glProgramUniform1dvEXT								glwProgramUniform1dvEXT
#define			glProgramUniform1f									glwProgramUniform1f
#define			glProgramUniform1fv									glwProgramUniform1fv
#define			glProgramUniform1i									glwProgramUniform1i
#define			glProgramUniform1iv									glwProgramUniform1iv
#define			glProgramUniform1ui									glwProgramUniform1ui
#define			glProgramUniform1uiv								glwProgramUniform1uiv
#define			glProgramUniform2d									glwProgramUniform2d
#define			glProgramUniform2dEXT								glwProgramUniform2dEXT
#define			glProgramUniform2dv									glwProgramUniform2dv
#define			glProgramUniform2dvEXT								glwProgramUniform2dvEXT
#define			glProgramUniform2f									glwProgramUniform2f
#define			glProgramUniform2fv									glwProgramUniform2fv
#define			glProgramUniform2i									glwProgramUniform2i
#define			glProgramUniform2iv									glwProgramUniform2iv
#define			glProgramUniform2ui									glwProgramUniform2ui
#define			glProgramUniform2uiv								glwProgramUniform2uiv
#define			glProgramUniform3d									glwProgramUniform3d
#define			glProgramUniform3dEXT								glwProgramUniform3dEXT
#define			glProgramUniform3dv									glwProgramUniform3dv
#define			glProgramUniform3dvEXT								glwProgramUniform3dvEXT
#define			glProgramUniform3f									glwProgramUniform3f
#define			glProgramUniform3fv									glwProgramUniform3fv
#define			glProgramUniform3i									glwProgramUniform3i
#define			glProgramUniform3iv									glwProgramUniform3iv
#define			glProgramUniform3ui									glwProgramUniform3ui
#define			glProgramUniform3uiv								glwProgramUniform3uiv
#define			glProgramUniform4d									glwProgramUniform4d
#define			glProgramUniform4dEXT								glwProgramUniform4dEXT
#define			glProgramUniform4dv									glwProgramUniform4dv
#define			glProgramUniform4dvEXT								glwProgramUniform4dvEXT
#define			glProgramUniform4f									glwProgramUniform4f
#define			glProgramUniform4fv									glwProgramUniform4fv
#define			glProgramUniform4i									glwProgramUniform4i
#define			glProgramUniform4iv									glwProgramUniform4iv
#define			glProgramUniform4ui									glwProgramUniform4ui
#define			glProgramUniform4uiv								glwProgramUniform4uiv
#define			glProgramUniformMatrix2dv							glwProgramUniformMatrix2dv
#define			glProgramUniformMatrix2dvEXT						glwProgramUniformMatrix2dvEXT
#define			glProgramUniformMatrix2fv							glwProgramUniformMatrix2fv
#define			glProgramUniformMatrix2x3dv							glwProgramUniformMatrix2x3dv
#define			glProgramUniformMatrix2x3dvEXT						glwProgramUniformMatrix2x3dvEXT
#define			glProgramUniformMatrix2x3fv							glwProgramUniformMatrix2x3fv
#define			glProgramUniformMatrix2x4dv							glwProgramUniformMatrix2x4dv
#define			glProgramUniformMatrix2x4dvEXT						glwProgramUniformMatrix2x4dvEXT
#define			glProgramUniformMatrix2x4fv							glwProgramUniformMatrix2x4fv
#define			glProgramUniformMatrix3dv							glwProgramUniformMatrix3dv
#define			glProgramUniformMatrix3dvEXT						glwProgramUniformMatrix3dvEXT
#define			glProgramUniformMatrix3fv							glwProgramUniformMatrix3fv
#define			glProgramUniformMatrix3x2dv							glwProgramUniformMatrix3x2dv
#define			glProgramUniformMatrix3x2dvEXT						glwProgramUniformMatrix3x2dvEXT
#define			glProgramUniformMatrix3x2fv							glwProgramUniformMatrix3x2fv
#define			glProgramUniformMatrix3x4dv							glwProgramUniformMatrix3x4dv
#define			glProgramUniformMatrix3x4dvEXT						glwProgramUniformMatrix3x4dvEXT
#define			glProgramUniformMatrix3x4fv							glwProgramUniformMatrix3x4fv
#define			glProgramUniformMatrix4dv							glwProgramUniformMatrix4dv
#define			glProgramUniformMatrix4dvEXT						glwProgramUniformMatrix4dvEXT
#define			glProgramUniformMatrix4fv							glwProgramUniformMatrix4fv
#define			glProgramUniformMatrix4x2dv							glwProgramUniformMatrix4x2dv
#define			glProgramUniformMatrix4x2dvEXT						glwProgramUniformMatrix4x2dvEXT
#define			glProgramUniformMatrix4x2fv							glwProgramUniformMatrix4x2fv
#define			glProgramUniformMatrix4x3dv							glwProgramUniformMatrix4x3dv
#define			glProgramUniformMatrix4x3dvEXT						glwProgramUniformMatrix4x3dvEXT
#define			glProgramUniformMatrix4x3fv							glwProgramUniformMatrix4x3fv
#define			glProvokingVertex									glwProvokingVertex
#define			glPushClientAttribDefaultEXT						glwPushClientAttribDefaultEXT
#define			glPushDebugGroup									glwPushDebugGroup
#define			glPushGroupMarkerEXT								glwPushGroupMarkerEXT
#define			glQueryCounter										glwQueryCounter
#define			glReadBuffer										glwReadBuffer
#define			glReadPixels										glwReadPixels
#define			glReadnPixels										glwReadnPixels
#define			glReleaseShaderCompiler								glwReleaseShaderCompiler
#define			glRenderGpuMaskNV									glwRenderGpuMaskNV
#define			glRenderbufferStorage								glwRenderbufferStorage
#define			glRenderbufferStorageMultisample					glwRenderbufferStorageMultisample
#define			glRenderbufferStorageMultisampleEXT					glwRenderbufferStorageMultisampleEXT
#define			glResumeTransformFeedback							glwResumeTransformFeedback
#define			glSampleCoverage									glwSampleCoverage
#define			glSampleMaski										glwSampleMaski
#define			glSamplerParameterIiv								glwSamplerParameterIiv
#define			glSamplerParameterIuiv								glwSamplerParameterIuiv
#define			glSamplerParameterf									glwSamplerParameterf
#define			glSamplerParameterfv								glwSamplerParameterfv
#define			glSamplerParameteri									glwSamplerParameteri
#define			glSamplerParameteriv								glwSamplerParameteriv
#define			glScissor											glwScissor
#define			glScissorArrayv										glwScissorArrayv
#define			glScissorIndexed									glwScissorIndexed
#define			glScissorIndexedv									glwScissorIndexedv
#define			glShaderBinary										glwShaderBinary
#define			glShaderSource										glwShaderSource
#define			glShaderStorageBlockBinding							glwShaderStorageBlockBinding
#define			glSpecializeShader									glwSpecializeShader
#define			glStencilFunc										glwStencilFunc
#define			glStencilFuncSeparate								glwStencilFuncSeparate
#define			glStencilMask										glwStencilMask
#define			glStencilMaskSeparate								glwStencilMaskSeparate
#define			glStencilOp											glwStencilOp
#define			glStencilOpSeparate									glwStencilOpSeparate
#define			glTexBuffer											glwTexBuffer
#define			glTexBufferRange									glwTexBufferRange
#define			glTexImage1D										glwTexImage1D
#define			glTexImage2D										glwTexImage2D
#define			glTexImage2DMultisample								glwTexImage2DMultisample
#define			glTexImage3D										glwTexImage3D
#define			glTexImage3DMultisample								glwTexImage3DMultisample
#define			glTexImage3DOES										glwTexImage3DOES
#define			glTexPageCommitmentARB								glwTexPageCommitmentARB
#define			glTexParameterIiv									glwTexParameterIiv
#define			glTexParameterIuiv									glwTexParameterIuiv
#define			glTexParameterf										glwTexParameterf
#define			glTexParameterfv									glwTexParameterfv
#define			glTexParameteri										glwTexParameteri
#define			glTexParameteriv									glwTexParameteriv
#define			glTexStorage1D										glwTexStorage1D
#define			glTexStorage2D										glwTexStorage2D
#define			glTexStorage2DMultisample							glwTexStorage2DMultisample
#define			glTexStorage3D										glwTexStorage3D
#define			glTexStorage3DMultisample							glwTexStorage3DMultisample
#define			glTexSubImage1D										glwTexSubImage1D
#define			glTexSubImage2D										glwTexSubImage2D
#define			glTexSubImage3D										glwTexSubImage3D
#define			glTexSubImage3DOES									glwTexSubImage3DOES
#define			glTextureBarrier									glwTextureBarrier
#define			glTextureBuffer										glwTextureBuffer
#define			glTextureBufferEXT									glwTextureBufferEXT
#define			glTextureBufferRange								glwTextureBufferRange
#define			glTextureBufferRangeEXT								glwTextureBufferRangeEXT
#define			glTextureImage1DEXT									glwTextureImage1DEXT
#define			glTextureImage2DEXT									glwTextureImage2DEXT
#define			glTextureImage3DEXT									glwTextureImage3DEXT
#define			glTexturePageCommitmentEXT							glwTexturePageCommitmentEXT
#define			glTextureParameterIiv								glwTextureParameterIiv
#define			glTextureParameterIivEXT							glwTextureParameterIivEXT
#define			glTextureParameterIuiv								glwTextureParameterIuiv
#define			glTextureParameterIuivEXT							glwTextureParameterIuivEXT
#define			glTextureParameterf									glwTextureParameterf
#define			glTextureParameterfEXT								glwTextureParameterfEXT
#define			glTextureParameterfv								glwTextureParameterfv
#define			glTextureParameterfvEXT								glwTextureParameterfvEXT
#define			glTextureParameteri									glwTextureParameteri
#define			glTextureParameteriEXT								glwTextureParameteriEXT
#define			glTextureParameteriv								glwTextureParameteriv
#define			glTextureParameterivEXT								glwTextureParameterivEXT
#define			glTextureRenderbufferEXT							glwTextureRenderbufferEXT
#define			glTextureStorage1D									glwTextureStorage1D
#define			glTextureStorage1DEXT								glwTextureStorage1DEXT
#define			glTextureStorage2D									glwTextureStorage2D
#define			glTextureStorage2DEXT								glwTextureStorage2DEXT
#define			glTextureStorage2DMultisample						glwTextureStorage2DMultisample
#define			glTextureStorage2DMultisampleEXT					glwTextureStorage2DMultisampleEXT
#define			glTextureStorage3D									glwTextureStorage3D
#define			glTextureStorage3DEXT								glwTextureStorage3DEXT
#define			glTextureStorage3DMultisample						glwTextureStorage3DMultisample
#define			glTextureStorage3DMultisampleEXT					glwTextureStorage3DMultisampleEXT
#define			glTextureSubImage1D									glwTextureSubImage1D
#define			glTextureSubImage1DEXT								glwTextureSubImage1DEXT
#define			glTextureSubImage2D									glwTextureSubImage2D
#define			glTextureSubImage2DEXT								glwTextureSubImage2DEXT
#define			glTextureSubImage3D									glwTextureSubImage3D
#define			glTextureSubImage3DEXT								glwTextureSubImage3DEXT
#define			glTextureView										glwTextureView
#define			glTransformFeedbackBufferBase						glwTransformFeedbackBufferBase
#define			glTransformFeedbackBufferRange						glwTransformFeedbackBufferRange
#define			glTransformFeedbackVaryings							glwTransformFeedbackVaryings
#define			glUniform1d											glwUniform1d
#define			glUniform1dv										glwUniform1dv
#define			glUniform1f											glwUniform1f
#define			glUniform1fv										glwUniform1fv
#define			glUniform1i											glwUniform1i
#define			glUniform1iv										glwUniform1iv
#define			glUniform1ui										glwUniform1ui
#define			glUniform1uiv										glwUniform1uiv
#define			glUniform2d											glwUniform2d
#define			glUniform2dv										glwUniform2dv
#define			glUniform2f											glwUniform2f
#define			glUniform2fv										glwUniform2fv
#define			glUniform2i											glwUniform2i
#define			glUniform2iv										glwUniform2iv
#define			glUniform2ui										glwUniform2ui
#define			glUniform2uiv										glwUniform2uiv
#define			glUniform3d											glwUniform3d
#define			glUniform3dv										glwUniform3dv
#define			glUniform3f											glwUniform3f
#define			glUniform3fv										glwUniform3fv
#define			glUniform3i											glwUniform3i
#define			glUniform3iv										glwUniform3iv
#define			glUniform3ui										glwUniform3ui
#define			glUniform3uiv										glwUniform3uiv
#define			glUniform4d											glwUniform4d
#define			glUniform4dv										glwUniform4dv
#define			glUniform4f											glwUniform4f
#define			glUniform4fv										glwUniform4fv
#define			glUniform4i											glwUniform4i
#define			glUniform4iv										glwUniform4iv
#define			glUniform4ui										glwUniform4ui
#define			glUniform4uiv										glwUniform4uiv
#define			glUniformBlockBinding								glwUniformBlockBinding
#define			glUniformMatrix2dv									glwUniformMatrix2dv
#define			glUniformMatrix2fv									glwUniformMatrix2fv
#define			glUniformMatrix2x3dv								glwUniformMatrix2x3dv
#define			glUniformMatrix2x3fv								glwUniformMatrix2x3fv
#define			glUniformMatrix2x4dv								glwUniformMatrix2x4dv
#define			glUniformMatrix2x4fv								glwUniformMatrix2x4fv
#define			glUniformMatrix3dv									glwUniformMatrix3dv
#define			glUniformMatrix3fv									glwUniformMatrix3fv
#define			glUniformMatrix3x2dv								glwUniformMatrix3x2dv
#define			glUniformMatrix3x2fv								glwUniformMatrix3x2fv
#define			glUniformMatrix3x4dv								glwUniformMatrix3x4dv
#define			glUniformMatrix3x4fv								glwUniformMatrix3x4fv
#define			glUniformMatrix4dv									glwUniformMatrix4dv
#define			glUniformMatrix4fv									glwUniformMatrix4fv
#define			glUniformMatrix4x2dv								glwUniformMatrix4x2dv
#define			glUniformMatrix4x2fv								glwUniformMatrix4x2fv
#define			glUniformMatrix4x3dv								glwUniformMatrix4x3dv
#define			glUniformMatrix4x3fv								glwUniformMatrix4x3fv
#define			glUniformSubroutinesuiv								glwUniformSubroutinesuiv
#define			glUnmapBuffer										glwUnmapBuffer
#define			glUnmapNamedBuffer									glwUnmapNamedBuffer
#define			glUnmapNamedBufferEXT								glwUnmapNamedBufferEXT
#define			glUseProgram										glwUseProgram
#define			glUseProgramStages									glwUseProgramStages
#define			glValidateProgram									glwValidateProgram
#define			glValidateProgramPipeline							glwValidateProgramPipeline
#define			glVertexArrayAttribBinding							glwVertexArrayAttribBinding
#define			glVertexArrayAttribFormat							glwVertexArrayAttribFormat
#define			glVertexArrayAttribIFormat							glwVertexArrayAttribIFormat
#define			glVertexArrayAttribLFormat							glwVertexArrayAttribLFormat
#define			glVertexArrayBindVertexBufferEXT					glwVertexArrayBindVertexBufferEXT
#define			glVertexArrayBindingDivisor							glwVertexArrayBindingDivisor
#define			glVertexArrayColorOffsetEXT							glwVertexArrayColorOffsetEXT
#define			glVertexArrayEdgeFlagOffsetEXT						glwVertexArrayEdgeFlagOffsetEXT
#define			glVertexArrayElementBuffer							glwVertexArrayElementBuffer
#define			glVertexArrayFogCoordOffsetEXT						glwVertexArrayFogCoordOffsetEXT
#define			glVertexArrayIndexOffsetEXT							glwVertexArrayIndexOffsetEXT
#define			glVertexArrayMultiTexCoordOffsetEXT					glwVertexArrayMultiTexCoordOffsetEXT
#define			glVertexArrayNormalOffsetEXT						glwVertexArrayNormalOffsetEXT
#define			glVertexArraySecondaryColorOffsetEXT				glwVertexArraySecondaryColorOffsetEXT
#define			glVertexArrayTexCoordOffsetEXT						glwVertexArrayTexCoordOffsetEXT
#define			glVertexArrayVertexAttribBindingEXT					glwVertexArrayVertexAttribBindingEXT
#define			glVertexArrayVertexAttribDivisorEXT					glwVertexArrayVertexAttribDivisorEXT
#define			glVertexArrayVertexAttribFormatEXT					glwVertexArrayVertexAttribFormatEXT
#define			glVertexArrayVertexAttribIFormatEXT					glwVertexArrayVertexAttribIFormatEXT
#define			glVertexArrayVertexAttribIOffsetEXT					glwVertexArrayVertexAttribIOffsetEXT
#define			glVertexArrayVertexAttribLFormatEXT					glwVertexArrayVertexAttribLFormatEXT
#define			glVertexArrayVertexAttribLOffsetEXT					glwVertexArrayVertexAttribLOffsetEXT
#define			glVertexArrayVertexAttribOffsetEXT					glwVertexArrayVertexAttribOffsetEXT
#define			glVertexArrayVertexBindingDivisorEXT				glwVertexArrayVertexBindingDivisorEXT
#define			glVertexArrayVertexBuffer							glwVertexArrayVertexBuffer
#define			glVertexArrayVertexBuffers							glwVertexArrayVertexBuffers
#define			glVertexArrayVertexOffsetEXT						glwVertexArrayVertexOffsetEXT
#define			glVertexAttrib1d									glwVertexAttrib1d
#define			glVertexAttrib1dv									glwVertexAttrib1dv
#define			glVertexAttrib1f									glwVertexAttrib1f
#define			glVertexAttrib1fv									glwVertexAttrib1fv
#define			glVertexAttrib1s									glwVertexAttrib1s
#define			glVertexAttrib1sv									glwVertexAttrib1sv
#define			glVertexAttrib2d									glwVertexAttrib2d
#define			glVertexAttrib2dv									glwVertexAttrib2dv
#define			glVertexAttrib2f									glwVertexAttrib2f
#define			glVertexAttrib2fv									glwVertexAttrib2fv
#define			glVertexAttrib2s									glwVertexAttrib2s
#define			glVertexAttrib2sv									glwVertexAttrib2sv
#define			glVertexAttrib3d									glwVertexAttrib3d
#define			glVertexAttrib3dv									glwVertexAttrib3dv
#define			glVertexAttrib3f									glwVertexAttrib3f
#define			glVertexAttrib3fv									glwVertexAttrib3fv
#define			glVertexAttrib3s									glwVertexAttrib3s
#define			glVertexAttrib3sv									glwVertexAttrib3sv
#define			glVertexAttrib4Nbv									glwVertexAttrib4Nbv
#define			glVertexAttrib4Niv									glwVertexAttrib4Niv
#define			glVertexAttrib4Nsv									glwVertexAttrib4Nsv
#define			glVertexAttrib4Nub									glwVertexAttrib4Nub
#define			glVertexAttrib4Nubv									glwVertexAttrib4Nubv
#define			glVertexAttrib4Nuiv									glwVertexAttrib4Nuiv
#define			glVertexAttrib4Nusv									glwVertexAttrib4Nusv
#define			glVertexAttrib4bv									glwVertexAttrib4bv
#define			glVertexAttrib4d									glwVertexAttrib4d
#define			glVertexAttrib4dv									glwVertexAttrib4dv
#define			glVertexAttrib4f									glwVertexAttrib4f
#define			glVertexAttrib4fv									glwVertexAttrib4fv
#define			glVertexAttrib4iv									glwVertexAttrib4iv
#define			glVertexAttrib4s									glwVertexAttrib4s
#define			glVertexAttrib4sv									glwVertexAttrib4sv
#define			glVertexAttrib4ubv									glwVertexAttrib4ubv
#define			glVertexAttrib4uiv									glwVertexAttrib4uiv
#define			glVertexAttrib4usv									glwVertexAttrib4usv
#define			glVertexAttribBinding								glwVertexAttribBinding
#define			glVertexAttribDivisor								glwVertexAttribDivisor
#define			glVertexAttribFormat								glwVertexAttribFormat
#define			glVertexAttribI1i									glwVertexAttribI1i
#define			glVertexAttribI1iv									glwVertexAttribI1iv
#define			glVertexAttribI1ui									glwVertexAttribI1ui
#define			glVertexAttribI1uiv									glwVertexAttribI1uiv
#define			glVertexAttribI2i									glwVertexAttribI2i
#define			glVertexAttribI2iv									glwVertexAttribI2iv
#define			glVertexAttribI2ui									glwVertexAttribI2ui
#define			glVertexAttribI2uiv									glwVertexAttribI2uiv
#define			glVertexAttribI3i									glwVertexAttribI3i
#define			glVertexAttribI3iv									glwVertexAttribI3iv
#define			glVertexAttribI3ui									glwVertexAttribI3ui
#define			glVertexAttribI3uiv									glwVertexAttribI3uiv
#define			glVertexAttribI4bv									glwVertexAttribI4bv
#define			glVertexAttribI4i									glwVertexAttribI4i
#define			glVertexAttribI4iv									glwVertexAttribI4iv
#define			glVertexAttribI4sv									glwVertexAttribI4sv
#define			glVertexAttribI4ubv									glwVertexAttribI4ubv
#define			glVertexAttribI4ui									glwVertexAttribI4ui
#define			glVertexAttribI4uiv									glwVertexAttribI4uiv
#define			glVertexAttribI4usv									glwVertexAttribI4usv
#define			glVertexAttribIFormat								glwVertexAttribIFormat
#define			glVertexAttribIPointer								glwVertexAttribIPointer
#define			glVertexAttribL1d									glwVertexAttribL1d
#define			glVertexAttribL1dv									glwVertexAttribL1dv
#define			glVertexAttribL2d									glwVertexAttribL2d
#define			glVertexAttribL2dv									glwVertexAttribL2dv
#define			glVertexAttribL3d									glwVertexAttribL3d
#define			glVertexAttribL3dv									glwVertexAttribL3dv
#define			glVertexAttribL4d									glwVertexAttribL4d
#define			glVertexAttribL4dv									glwVertexAttribL4dv
#define			glVertexAttribLFormat								glwVertexAttribLFormat
#define			glVertexAttribLPointer								glwVertexAttribLPointer
#define			glVertexAttribP1ui									glwVertexAttribP1ui
#define			glVertexAttribP1uiv									glwVertexAttribP1uiv
#define			glVertexAttribP2ui									glwVertexAttribP2ui
#define			glVertexAttribP2uiv									glwVertexAttribP2uiv
#define			glVertexAttribP3ui									glwVertexAttribP3ui
#define			glVertexAttribP3uiv									glwVertexAttribP3uiv
#define			glVertexAttribP4ui									glwVertexAttribP4ui
#define			glVertexAttribP4uiv									glwVertexAttribP4uiv
#define			glVertexAttribPointer								glwVertexAttribPointer
#define			glVertexBindingDivisor								glwVertexBindingDivisor
#define			glViewport											glwViewport
#define			glViewportArrayv									glwViewportArrayv
#define			glViewportIndexedf									glwViewportIndexedf
#define			glViewportIndexedfv									glwViewportIndexedfv
#define			glWaitSync											glwWaitSync
void			glwActiveShaderProgram								(GLuint pipeline, GLuint program);
void			glwActiveTexture									(GLenum texture);
void			glwAttachShader										(GLuint program, GLuint shader);
void			glwBeginConditionalRender							(GLuint id, GLenum mode);
void			glwBeginQuery										(GLenum target, GLuint id);
void			glwBeginQueryIndexed								(GLenum target, GLuint index, GLuint id);
void			glwBeginTransformFeedback							(GLenum primitiveMode);
void			glwBindAttribLocation								(GLuint program, GLuint index, const GLchar *name);
void			glwBindBuffer										(GLenum target, GLuint buffer);
void			glwBindBufferBase									(GLenum target, GLuint index, GLuint buffer);
void			glwBindBufferRange									(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
void			glwBindBuffersBase									(GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
void			glwBindBuffersRange									(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
void			glwBindFragDataLocation								(GLuint program, GLuint color, const GLchar *name);
void			glwBindFragDataLocationIndexed						(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
void			glwBindFramebuffer									(GLenum target, GLuint framebuffer);
void			glwBindImageTexture									(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
void			glwBindImageTextures								(GLuint first, GLsizei count, const GLuint *textures);
void			glwBindMultiTextureEXT								(GLenum texunit, GLenum target, GLuint texture);
void			glwBindProgramPipeline								(GLuint pipeline);
void			glwBindRenderbuffer									(GLenum target, GLuint renderbuffer);
void			glwBindSampler										(GLuint unit, GLuint sampler);
void			glwBindSamplers										(GLuint first, GLsizei count, const GLuint *samplers);
void			glwBindTexture										(GLenum target, GLuint texture);
void			glwBindTextureUnit									(GLuint unit, GLuint texture);
void			glwBindTextures										(GLuint first, GLsizei count, const GLuint *textures);
void			glwBindTransformFeedback							(GLenum target, GLuint id);
void			glwBindVertexArray									(GLuint array);
void			glwBindVertexBuffer									(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
void			glwBindVertexBuffers								(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
void			glwBlendBarrier										();
void			glwBlendColor										(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
void			glwBlendEquation									(GLenum mode);
void			glwBlendEquationSeparate							(GLenum modeRGB, GLenum modeAlpha);
void			glwBlendEquationSeparatei							(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
void			glwBlendEquationi									(GLuint buf, GLenum mode);
void			glwBlendFunc										(GLenum sfactor, GLenum dfactor);
void			glwBlendFuncSeparate								(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
void			glwBlendFuncSeparatei								(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
void			glwBlendFunci										(GLuint buf, GLenum src, GLenum dst);
void			glwBlitFramebuffer									(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
void			glwBlitNamedFramebuffer								(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
void			glwBufferData										(GLenum target, GLsizeiptr size, const void *data, GLenum usage);
void			glwBufferPageCommitmentARB							(GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit);
void			glwBufferStorage									(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
void			glwBufferSubData									(GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
GLenum			glwCheckFramebufferStatus							(GLenum target);
GLenum			glwCheckNamedFramebufferStatus						(GLuint framebuffer, GLenum target);
GLenum			glwCheckNamedFramebufferStatusEXT					(GLuint framebuffer, GLenum target);
void			glwClampColor										(GLenum target, GLenum clamp);
void			glwClear											(GLbitfield mask);
void			glwClearBufferData									(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
void			glwClearBufferSubData								(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
void			glwClearBufferfi									(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
void			glwClearBufferfv									(GLenum buffer, GLint drawbuffer, const GLfloat *value);
void			glwClearBufferiv									(GLenum buffer, GLint drawbuffer, const GLint *value);
void			glwClearBufferuiv									(GLenum buffer, GLint drawbuffer, const GLuint *value);
void			glwClearColor										(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
void			glwClearDepth										(GLdouble depth);
void			glwClearDepthf										(GLfloat d);
void			glwClearNamedBufferData								(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
void			glwClearNamedBufferDataEXT							(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
void			glwClearNamedBufferSubData							(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
void			glwClearNamedBufferSubDataEXT						(GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
void			glwClearNamedFramebufferfi							(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
void			glwClearNamedFramebufferfv							(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
void			glwClearNamedFramebufferiv							(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
void			glwClearNamedFramebufferuiv							(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
void			glwClearStencil										(GLint s);
void			glwClearTexImage									(GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
void			glwClearTexSubImage									(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
void			glwClientAttribDefaultEXT							(GLbitfield mask);
GLenum			glwClientWaitSync									(GLsync sync, GLbitfield flags, GLuint64 timeout);
void			glwClipControl										(GLenum origin, GLenum depth);
void			glwColorMask										(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
void			glwColorMaski										(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
void			glwCompileShader									(GLuint shader);
void			glwCompressedMultiTexImage1DEXT						(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits);
void			glwCompressedMultiTexImage2DEXT						(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits);
void			glwCompressedMultiTexImage3DEXT						(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
void			glwCompressedMultiTexSubImage1DEXT					(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits);
void			glwCompressedMultiTexSubImage2DEXT					(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits);
void			glwCompressedMultiTexSubImage3DEXT					(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);
void			glwCompressedTexImage1D								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
void			glwCompressedTexImage2D								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
void			glwCompressedTexImage3D								(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
void			glwCompressedTexImage3DOES							(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
void			glwCompressedTexSubImage1D							(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
void			glwCompressedTexSubImage2D							(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
void			glwCompressedTexSubImage3D							(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
void			glwCompressedTexSubImage3DOES						(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
void			glwCompressedTextureImage1DEXT						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits);
void			glwCompressedTextureImage2DEXT						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits);
void			glwCompressedTextureImage3DEXT						(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
void			glwCompressedTextureSubImage1D						(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
void			glwCompressedTextureSubImage1DEXT					(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits);
void			glwCompressedTextureSubImage2D						(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
void			glwCompressedTextureSubImage2DEXT					(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits);
void			glwCompressedTextureSubImage3D						(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
void			glwCompressedTextureSubImage3DEXT					(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);
void			glwCopyBufferSubData								(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
void			glwCopyImageSubData									(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);
void			glwCopyMultiTexImage1DEXT							(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
void			glwCopyMultiTexImage2DEXT							(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
void			glwCopyMultiTexSubImage1DEXT						(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
void			glwCopyMultiTexSubImage2DEXT						(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void			glwCopyMultiTexSubImage3DEXT						(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void			glwCopyNamedBufferSubData							(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
void			glwCopyTexImage1D									(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
void			glwCopyTexImage2D									(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
void			glwCopyTexSubImage1D								(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
void			glwCopyTexSubImage2D								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void			glwCopyTexSubImage3D								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void			glwCopyTexSubImage3DOES								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void			glwCopyTextureImage1DEXT							(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
void			glwCopyTextureImage2DEXT							(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
void			glwCopyTextureSubImage1D							(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
void			glwCopyTextureSubImage1DEXT							(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
void			glwCopyTextureSubImage2D							(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void			glwCopyTextureSubImage2DEXT							(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void			glwCopyTextureSubImage3D							(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void			glwCopyTextureSubImage3DEXT							(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
void			glwCreateBuffers									(GLsizei n, GLuint *buffers);
void			glwCreateFramebuffers								(GLsizei n, GLuint *framebuffers);
GLuint			glwCreateProgram									();
void			glwCreateProgramPipelines							(GLsizei n, GLuint *pipelines);
void			glwCreateQueries									(GLenum target, GLsizei n, GLuint *ids);
void			glwCreateRenderbuffers								(GLsizei n, GLuint *renderbuffers);
void			glwCreateSamplers									(GLsizei n, GLuint *samplers);
GLuint			glwCreateShader										(GLenum type);
GLuint			glwCreateShaderProgramv								(GLenum type, GLsizei count, const GLchar *const*strings);
void			glwCreateTextures									(GLenum target, GLsizei n, GLuint *textures);
void			glwCreateTransformFeedbacks							(GLsizei n, GLuint *ids);
void			glwCreateVertexArrays								(GLsizei n, GLuint *arrays);
void			glwCullFace											(GLenum mode);
void			glwDebugMessageCallback								(GLDEBUGPROC callback, const void *userParam);
void			glwDebugMessageControl								(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
void			glwDebugMessageInsert								(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
void			glwDeleteBuffers									(GLsizei n, const GLuint *buffers);
void			glwDeleteFramebuffers								(GLsizei n, const GLuint *framebuffers);
void			glwDeleteProgram									(GLuint program);
void			glwDeleteProgramPipelines							(GLsizei n, const GLuint *pipelines);
void			glwDeleteQueries									(GLsizei n, const GLuint *ids);
void			glwDeleteRenderbuffers								(GLsizei n, const GLuint *renderbuffers);
void			glwDeleteSamplers									(GLsizei count, const GLuint *samplers);
void			glwDeleteShader										(GLuint shader);
void			glwDeleteSync										(GLsync sync);
void			glwDeleteTextures									(GLsizei n, const GLuint *textures);
void			glwDeleteTransformFeedbacks							(GLsizei n, const GLuint *ids);
void			glwDeleteVertexArrays								(GLsizei n, const GLuint *arrays);
void			glwDepthBoundsEXT									(GLclampd zmin, GLclampd zmax);
void			glwDepthFunc										(GLenum func);
void			glwDepthMask										(GLboolean flag);
void			glwDepthRange										(GLdouble n, GLdouble f);
void			glwDepthRangeArrayfvOES								(GLuint first, GLsizei count, const GLfloat *v);
void			glwDepthRangeArrayv									(GLuint first, GLsizei count, const GLdouble *v);
void			glwDepthRangeIndexed								(GLuint index, GLdouble n, GLdouble f);
void			glwDepthRangeIndexedfOES							(GLuint index, GLfloat n, GLfloat f);
void			glwDepthRangef										(GLfloat n, GLfloat f);
void			glwDetachShader										(GLuint program, GLuint shader);
void			glwDisable											(GLenum cap);
void			glwDisableClientStateIndexedEXT						(GLenum array, GLuint index);
void			glwDisableClientStateiEXT							(GLenum array, GLuint index);
void			glwDisableVertexArrayAttrib							(GLuint vaobj, GLuint index);
void			glwDisableVertexArrayAttribEXT						(GLuint vaobj, GLuint index);
void			glwDisableVertexArrayEXT							(GLuint vaobj, GLenum array);
void			glwDisableVertexAttribArray							(GLuint index);
void			glwDisablei											(GLenum target, GLuint index);
void			glwDispatchCompute									(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
void			glwDispatchComputeIndirect							(GLintptr indirect);
void			glwDrawArrays										(GLenum mode, GLint first, GLsizei count);
void			glwDrawArraysIndirect								(GLenum mode, const void *indirect);
void			glwDrawArraysInstanced								(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
void			glwDrawArraysInstancedBaseInstance					(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
void			glwDrawBuffer										(GLenum buf);
void			glwDrawBuffers										(GLsizei n, const GLenum *bufs);
void			glwDrawElements										(GLenum mode, GLsizei count, GLenum type, const void *indices);
void			glwDrawElementsBaseVertex							(GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
void			glwDrawElementsIndirect								(GLenum mode, GLenum type, const void *indirect);
void			glwDrawElementsInstanced							(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
void			glwDrawElementsInstancedBaseInstance				(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
void			glwDrawElementsInstancedBaseVertex					(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
void			glwDrawElementsInstancedBaseVertexBaseInstance		(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
void			glwDrawRangeElements								(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
void			glwDrawRangeElementsBaseVertex						(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
void			glwDrawTransformFeedback							(GLenum mode, GLuint id);
void			glwDrawTransformFeedbackInstanced					(GLenum mode, GLuint id, GLsizei instancecount);
void			glwDrawTransformFeedbackStream						(GLenum mode, GLuint id, GLuint stream);
void			glwDrawTransformFeedbackStreamInstanced				(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
void			glwEGLImageTargetRenderbufferStorageOES				(GLenum target, GLeglImageOES image);
void			glwEGLImageTargetTexture2DOES						(GLenum target, GLeglImageOES image);
void			glwEnable											(GLenum cap);
void			glwEnableClientStateIndexedEXT						(GLenum array, GLuint index);
void			glwEnableClientStateiEXT							(GLenum array, GLuint index);
void			glwEnableVertexArrayAttrib							(GLuint vaobj, GLuint index);
void			glwEnableVertexArrayAttribEXT						(GLuint vaobj, GLuint index);
void			glwEnableVertexArrayEXT								(GLuint vaobj, GLenum array);
void			glwEnableVertexAttribArray							(GLuint index);
void			glwEnablei											(GLenum target, GLuint index);
void			glwEndConditionalRender								();
void			glwEndQuery											(GLenum target);
void			glwEndQueryIndexed									(GLenum target, GLuint index);
void			glwEndTransformFeedback								();
GLsync			glwFenceSync										(GLenum condition, GLbitfield flags);
void			glwFinish											();
void			glwFlush											();
void			glwFlushMappedBufferRange							(GLenum target, GLintptr offset, GLsizeiptr length);
void			glwFlushMappedNamedBufferRange						(GLuint buffer, GLintptr offset, GLsizeiptr length);
void			glwFlushMappedNamedBufferRangeEXT					(GLuint buffer, GLintptr offset, GLsizeiptr length);
void			glwFramebufferDrawBufferEXT							(GLuint framebuffer, GLenum mode);
void			glwFramebufferDrawBuffersEXT						(GLuint framebuffer, GLsizei n, const GLenum *bufs);
void			glwFramebufferParameteri							(GLenum target, GLenum pname, GLint param);
void			glwFramebufferReadBufferEXT							(GLuint framebuffer, GLenum mode);
void			glwFramebufferRenderbuffer							(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
void			glwFramebufferTexture								(GLenum target, GLenum attachment, GLuint texture, GLint level);
void			glwFramebufferTexture1D								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
void			glwFramebufferTexture2D								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
void			glwFramebufferTexture2DMultisampleEXT				(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
void			glwFramebufferTexture3D								(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
void			glwFramebufferTexture3DOES							(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
void			glwFramebufferTextureLayer							(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
void			glwFramebufferTextureMultisampleMultiviewOVR		(GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews);
void			glwFramebufferTextureMultiviewOVR					(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
void			glwFrontFace										(GLenum mode);
void			glwGenBuffers										(GLsizei n, GLuint *buffers);
void			glwGenFramebuffers									(GLsizei n, GLuint *framebuffers);
void			glwGenProgramPipelines								(GLsizei n, GLuint *pipelines);
void			glwGenQueries										(GLsizei n, GLuint *ids);
void			glwGenRenderbuffers									(GLsizei n, GLuint *renderbuffers);
void			glwGenSamplers										(GLsizei count, GLuint *samplers);
void			glwGenTextures										(GLsizei n, GLuint *textures);
void			glwGenTransformFeedbacks							(GLsizei n, GLuint *ids);
void			glwGenVertexArrays									(GLsizei n, GLuint *arrays);
void			glwGenerateMipmap									(GLenum target);
void			glwGenerateMultiTexMipmapEXT						(GLenum texunit, GLenum target);
void			glwGenerateTextureMipmap							(GLuint texture);
void			glwGenerateTextureMipmapEXT							(GLuint texture, GLenum target);
void			glwGetActiveAtomicCounterBufferiv					(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
void			glwGetActiveAttrib									(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
void			glwGetActiveSubroutineName							(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
void			glwGetActiveSubroutineUniformName					(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
void			glwGetActiveSubroutineUniformiv						(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
void			glwGetActiveUniform									(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
void			glwGetActiveUniformBlockName						(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
void			glwGetActiveUniformBlockiv							(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
void			glwGetActiveUniformName								(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
void			glwGetActiveUniformsiv								(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
void			glwGetAttachedShaders								(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
GLint			glwGetAttribLocation								(GLuint program, const GLchar *name);
void			glwGetBooleani_v									(GLenum target, GLuint index, GLboolean *data);
void			glwGetBooleanv										(GLenum pname, GLboolean *data);
void			glwGetBufferParameteri64v							(GLenum target, GLenum pname, GLint64 *params);
void			glwGetBufferParameteriv								(GLenum target, GLenum pname, GLint *params);
void			glwGetBufferPointerv								(GLenum target, GLenum pname, void **params);
void			glwGetBufferSubData									(GLenum target, GLintptr offset, GLsizeiptr size, void *data);
void			glwGetCompressedMultiTexImageEXT					(GLenum texunit, GLenum target, GLint lod, void *img);
void			glwGetCompressedTexImage							(GLenum target, GLint level, void *img);
void			glwGetCompressedTextureImage						(GLuint texture, GLint level, GLsizei bufSize, void *pixels);
void			glwGetCompressedTextureImageEXT						(GLuint texture, GLenum target, GLint lod, void *img);
void			glwGetCompressedTextureSubImage						(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
GLuint			glwGetDebugMessageLog								(GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
void			glwGetDoublei_v										(GLenum target, GLuint index, GLdouble *data);
void			glwGetDoublev										(GLenum pname, GLdouble *data);
GLenum			glwGetError											();
void			glwGetFloati_v										(GLenum target, GLuint index, GLfloat *data);
void			glwGetFloatv										(GLenum pname, GLfloat *data);
GLint			glwGetFragDataIndex									(GLuint program, const GLchar *name);
GLint			glwGetFragDataLocation								(GLuint program, const GLchar *name);
void			glwGetFramebufferAttachmentParameteriv				(GLenum target, GLenum attachment, GLenum pname, GLint *params);
void			glwGetFramebufferParameteriv						(GLenum target, GLenum pname, GLint *params);
void			glwGetFramebufferParameterivEXT						(GLuint framebuffer, GLenum pname, GLint *params);
GLenum			glwGetGraphicsResetStatus							();
void			glwGetInteger64i_v									(GLenum target, GLuint index, GLint64 *data);
void			glwGetInteger64v									(GLenum pname, GLint64 *data);
void			glwGetIntegeri_v									(GLenum target, GLuint index, GLint *data);
void			glwGetIntegerv										(GLenum pname, GLint *data);
void			glwGetInternalformatSampleivNV						(GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint *params);
void			glwGetInternalformati64v							(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params);
void			glwGetInternalformativ								(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
void			glwGetMultiTexEnvfvEXT								(GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
void			glwGetMultiTexEnvivEXT								(GLenum texunit, GLenum target, GLenum pname, GLint *params);
void			glwGetMultiTexGendvEXT								(GLenum texunit, GLenum coord, GLenum pname, GLdouble *params);
void			glwGetMultiTexGenfvEXT								(GLenum texunit, GLenum coord, GLenum pname, GLfloat *params);
void			glwGetMultiTexGenivEXT								(GLenum texunit, GLenum coord, GLenum pname, GLint *params);
void			glwGetMultiTexImageEXT								(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
void			glwGetMultiTexLevelParameterfvEXT					(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params);
void			glwGetMultiTexLevelParameterivEXT					(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params);
void			glwGetMultiTexParameterIivEXT						(GLenum texunit, GLenum target, GLenum pname, GLint *params);
void			glwGetMultiTexParameterIuivEXT						(GLenum texunit, GLenum target, GLenum pname, GLuint *params);
void			glwGetMultiTexParameterfvEXT						(GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
void			glwGetMultiTexParameterivEXT						(GLenum texunit, GLenum target, GLenum pname, GLint *params);
void			glwGetMultisamplefv									(GLenum pname, GLuint index, GLfloat *val);
void			glwGetNamedBufferParameteri64v						(GLuint buffer, GLenum pname, GLint64 *params);
void			glwGetNamedBufferParameteriv						(GLuint buffer, GLenum pname, GLint *params);
void			glwGetNamedBufferParameterivEXT						(GLuint buffer, GLenum pname, GLint *params);
void			glwGetNamedBufferPointerv							(GLuint buffer, GLenum pname, void **params);
void			glwGetNamedBufferPointervEXT						(GLuint buffer, GLenum pname, void **params);
void			glwGetNamedBufferSubData							(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
void			glwGetNamedBufferSubDataEXT							(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
void			glwGetNamedFramebufferAttachmentParameteriv			(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
void			glwGetNamedFramebufferAttachmentParameterivEXT		(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
void			glwGetNamedFramebufferParameteriv					(GLuint framebuffer, GLenum pname, GLint *param);
void			glwGetNamedFramebufferParameterivEXT				(GLuint framebuffer, GLenum pname, GLint *params);
void			glwGetNamedProgramLocalParameterIivEXT				(GLuint program, GLenum target, GLuint index, GLint *params);
void			glwGetNamedProgramLocalParameterIuivEXT				(GLuint program, GLenum target, GLuint index, GLuint *params);
void			glwGetNamedProgramLocalParameterdvEXT				(GLuint program, GLenum target, GLuint index, GLdouble *params);
void			glwGetNamedProgramLocalParameterfvEXT				(GLuint program, GLenum target, GLuint index, GLfloat *params);
void			glwGetNamedProgramStringEXT							(GLuint program, GLenum target, GLenum pname, void *string);
void			glwGetNamedProgramivEXT								(GLuint program, GLenum target, GLenum pname, GLint *params);
void			glwGetNamedRenderbufferParameteriv					(GLuint renderbuffer, GLenum pname, GLint *params);
void			glwGetNamedRenderbufferParameterivEXT				(GLuint renderbuffer, GLenum pname, GLint *params);
void			glwGetObjectLabel									(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
void			glwGetObjectPtrLabel								(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
void			glwGetPointerIndexedvEXT							(GLenum target, GLuint index, void **data);
void			glwGetPointeri_vEXT									(GLenum pname, GLuint index, void **params);
void			glwGetPointerv										(GLenum pname, void **params);
void			glwGetProgramBinary									(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
void			glwGetProgramInfoLog								(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
void			glwGetProgramInterfaceiv							(GLuint program, GLenum programInterface, GLenum pname, GLint *params);
void			glwGetProgramPipelineInfoLog						(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
void			glwGetProgramPipelineiv								(GLuint pipeline, GLenum pname, GLint *params);
GLuint			glwGetProgramResourceIndex							(GLuint program, GLenum programInterface, const GLchar *name);
GLint			glwGetProgramResourceLocation						(GLuint program, GLenum programInterface, const GLchar *name);
GLint			glwGetProgramResourceLocationIndex					(GLuint program, GLenum programInterface, const GLchar *name);
void			glwGetProgramResourceName							(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
void			glwGetProgramResourceiv								(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
void			glwGetProgramStageiv								(GLuint program, GLenum shadertype, GLenum pname, GLint *values);
void			glwGetProgramiv										(GLuint program, GLenum pname, GLint *params);
void			glwGetQueryBufferObjecti64v							(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
void			glwGetQueryBufferObjectiv							(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
void			glwGetQueryBufferObjectui64v						(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
void			glwGetQueryBufferObjectuiv							(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
void			glwGetQueryIndexediv								(GLenum target, GLuint index, GLenum pname, GLint *params);
void			glwGetQueryObjecti64v								(GLuint id, GLenum pname, GLint64 *params);
void			glwGetQueryObjectiv									(GLuint id, GLenum pname, GLint *params);
void			glwGetQueryObjectui64v								(GLuint id, GLenum pname, GLuint64 *params);
void			glwGetQueryObjectuiv								(GLuint id, GLenum pname, GLuint *params);
void			glwGetQueryiv										(GLenum target, GLenum pname, GLint *params);
void			glwGetRenderbufferParameteriv						(GLenum target, GLenum pname, GLint *params);
void			glwGetSamplerParameterIiv							(GLuint sampler, GLenum pname, GLint *params);
void			glwGetSamplerParameterIuiv							(GLuint sampler, GLenum pname, GLuint *params);
void			glwGetSamplerParameterfv							(GLuint sampler, GLenum pname, GLfloat *params);
void			glwGetSamplerParameteriv							(GLuint sampler, GLenum pname, GLint *params);
void			glwGetShaderInfoLog									(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
void			glwGetShaderPrecisionFormat							(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
void			glwGetShaderSource									(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
void			glwGetShaderiv										(GLuint shader, GLenum pname, GLint *params);
const GLubyte *	glwGetString										(GLenum name);
const GLubyte *	glwGetStringi										(GLenum name, GLuint index);
GLuint			glwGetSubroutineIndex								(GLuint program, GLenum shadertype, const GLchar *name);
GLint			glwGetSubroutineUniformLocation						(GLuint program, GLenum shadertype, const GLchar *name);
void			glwGetSynciv										(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
void			glwGetTexImage										(GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
void			glwGetTexLevelParameterfv							(GLenum target, GLint level, GLenum pname, GLfloat *params);
void			glwGetTexLevelParameteriv							(GLenum target, GLint level, GLenum pname, GLint *params);
void			glwGetTexParameterIiv								(GLenum target, GLenum pname, GLint *params);
void			glwGetTexParameterIuiv								(GLenum target, GLenum pname, GLuint *params);
void			glwGetTexParameterfv								(GLenum target, GLenum pname, GLfloat *params);
void			glwGetTexParameteriv								(GLenum target, GLenum pname, GLint *params);
void			glwGetTextureImage									(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
void			glwGetTextureImageEXT								(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
void			glwGetTextureLevelParameterfv						(GLuint texture, GLint level, GLenum pname, GLfloat *params);
void			glwGetTextureLevelParameterfvEXT					(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params);
void			glwGetTextureLevelParameteriv						(GLuint texture, GLint level, GLenum pname, GLint *params);
void			glwGetTextureLevelParameterivEXT					(GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params);
void			glwGetTextureParameterIiv							(GLuint texture, GLenum pname, GLint *params);
void			glwGetTextureParameterIivEXT						(GLuint texture, GLenum target, GLenum pname, GLint *params);
void			glwGetTextureParameterIuiv							(GLuint texture, GLenum pname, GLuint *params);
void			glwGetTextureParameterIuivEXT						(GLuint texture, GLenum target, GLenum pname, GLuint *params);
void			glwGetTextureParameterfv							(GLuint texture, GLenum pname, GLfloat *params);
void			glwGetTextureParameterfvEXT							(GLuint texture, GLenum target, GLenum pname, GLfloat *params);
void			glwGetTextureParameteriv							(GLuint texture, GLenum pname, GLint *params);
void			glwGetTextureParameterivEXT							(GLuint texture, GLenum target, GLenum pname, GLint *params);
void			glwGetTextureSubImage								(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
void			glwGetTransformFeedbackVarying						(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
void			glwGetTransformFeedbacki64_v						(GLuint xfb, GLenum pname, GLuint index, GLint64 *param);
void			glwGetTransformFeedbacki_v							(GLuint xfb, GLenum pname, GLuint index, GLint *param);
void			glwGetTransformFeedbackiv							(GLuint xfb, GLenum pname, GLint *param);
GLuint			glwGetUniformBlockIndex								(GLuint program, const GLchar *uniformBlockName);
void			glwGetUniformIndices								(GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
GLint			glwGetUniformLocation								(GLuint program, const GLchar *name);
void			glwGetUniformSubroutineuiv							(GLenum shadertype, GLint location, GLuint *params);
void			glwGetUniformdv										(GLuint program, GLint location, GLdouble *params);
void			glwGetUniformfv										(GLuint program, GLint location, GLfloat *params);
void			glwGetUniformiv										(GLuint program, GLint location, GLint *params);
void			glwGetUniformuiv									(GLuint program, GLint location, GLuint *params);
void			glwGetVertexArrayIndexed64iv						(GLuint vaobj, GLuint index, GLenum pname, GLint64 *param);
void			glwGetVertexArrayIndexediv							(GLuint vaobj, GLuint index, GLenum pname, GLint *param);
void			glwGetVertexArrayIntegeri_vEXT						(GLuint vaobj, GLuint index, GLenum pname, GLint *param);
void			glwGetVertexArrayIntegervEXT						(GLuint vaobj, GLenum pname, GLint *param);
void			glwGetVertexArrayPointeri_vEXT						(GLuint vaobj, GLuint index, GLenum pname, void **param);
void			glwGetVertexArrayPointervEXT						(GLuint vaobj, GLenum pname, void **param);
void			glwGetVertexArrayiv									(GLuint vaobj, GLenum pname, GLint *param);
void			glwGetVertexAttribIiv								(GLuint index, GLenum pname, GLint *params);
void			glwGetVertexAttribIuiv								(GLuint index, GLenum pname, GLuint *params);
void			glwGetVertexAttribLdv								(GLuint index, GLenum pname, GLdouble *params);
void			glwGetVertexAttribPointerv							(GLuint index, GLenum pname, void **pointer);
void			glwGetVertexAttribdv								(GLuint index, GLenum pname, GLdouble *params);
void			glwGetVertexAttribfv								(GLuint index, GLenum pname, GLfloat *params);
void			glwGetVertexAttribiv								(GLuint index, GLenum pname, GLint *params);
void			glwGetnCompressedTexImage							(GLenum target, GLint lod, GLsizei bufSize, void *pixels);
void			glwGetnTexImage										(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
void			glwGetnUniformdv									(GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
void			glwGetnUniformfv									(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
void			glwGetnUniformiv									(GLuint program, GLint location, GLsizei bufSize, GLint *params);
void			glwGetnUniformuiv									(GLuint program, GLint location, GLsizei bufSize, GLuint *params);
void			glwHint												(GLenum target, GLenum mode);
void			glwInsertEventMarkerEXT								(GLsizei length, const GLchar *marker);
void			glwInvalidateBufferData								(GLuint buffer);
void			glwInvalidateBufferSubData							(GLuint buffer, GLintptr offset, GLsizeiptr length);
void			glwInvalidateFramebuffer							(GLenum target, GLsizei numAttachments, const GLenum *attachments);
void			glwInvalidateNamedFramebufferData					(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments);
void			glwInvalidateNamedFramebufferSubData				(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
void			glwInvalidateSubFramebuffer							(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
void			glwInvalidateTexImage								(GLuint texture, GLint level);
void			glwInvalidateTexSubImage							(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
GLboolean		glwIsBuffer											(GLuint buffer);
GLboolean		glwIsEnabled										(GLenum cap);
GLboolean		glwIsEnabledi										(GLenum target, GLuint index);
GLboolean		glwIsFramebuffer									(GLuint framebuffer);
GLboolean		glwIsProgram										(GLuint program);
GLboolean		glwIsProgramPipeline								(GLuint pipeline);
GLboolean		glwIsQuery											(GLuint id);
GLboolean		glwIsRenderbuffer									(GLuint renderbuffer);
GLboolean		glwIsSampler										(GLuint sampler);
GLboolean		glwIsShader											(GLuint shader);
GLboolean		glwIsSync											(GLsync sync);
GLboolean		glwIsTexture										(GLuint texture);
GLboolean		glwIsTransformFeedback								(GLuint id);
GLboolean		glwIsVertexArray									(GLuint array);
void			glwLineWidth										(GLfloat width);
void			glwLinkProgram										(GLuint program);
void			glwLogicOp											(GLenum opcode);
void *			glwMapBuffer										(GLenum target, GLenum access);
void *			glwMapBufferRange									(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
void *			glwMapNamedBuffer									(GLuint buffer, GLenum access);
void *			glwMapNamedBufferEXT								(GLuint buffer, GLenum access);
void *			glwMapNamedBufferRange								(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
void *			glwMapNamedBufferRangeEXT							(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
void			glwMatrixFrustumEXT									(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
void			glwMatrixLoadIdentityEXT							(GLenum mode);
void			glwMatrixLoadTransposedEXT							(GLenum mode, const GLdouble *m);
void			glwMatrixLoadTransposefEXT							(GLenum mode, const GLfloat *m);
void			glwMatrixLoaddEXT									(GLenum mode, const GLdouble *m);
void			glwMatrixLoadfEXT									(GLenum mode, const GLfloat *m);
void			glwMatrixMultTransposedEXT							(GLenum mode, const GLdouble *m);
void			glwMatrixMultTransposefEXT							(GLenum mode, const GLfloat *m);
void			glwMatrixMultdEXT									(GLenum mode, const GLdouble *m);
void			glwMatrixMultfEXT									(GLenum mode, const GLfloat *m);
void			glwMatrixOrthoEXT									(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
void			glwMatrixPopEXT										(GLenum mode);
void			glwMatrixPushEXT									(GLenum mode);
void			glwMatrixRotatedEXT									(GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
void			glwMatrixRotatefEXT									(GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
void			glwMatrixScaledEXT									(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
void			glwMatrixScalefEXT									(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
void			glwMatrixTranslatedEXT								(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
void			glwMatrixTranslatefEXT								(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
void			glwMaxShaderCompilerThreadsKHR						(GLuint count);
void			glwMemoryBarrier									(GLbitfield barriers);
void			glwMemoryBarrierByRegion							(GLbitfield barriers);
void			glwMinSampleShading									(GLfloat value);
void			glwMultiDrawArrays									(GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
void			glwMultiDrawArraysIndirect							(GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride);
void			glwMultiDrawArraysIndirectCount						(GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
void			glwMultiDrawElements								(GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount);
void			glwMultiDrawElementsBaseVertex						(GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex);
void			glwMultiDrawElementsIndirect						(GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride);
void			glwMultiDrawElementsIndirectCount					(GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
void			glwMultiTexBufferEXT								(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
void			glwMultiTexCoordPointerEXT							(GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer);
void			glwMultiTexEnvfEXT									(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
void			glwMultiTexEnvfvEXT									(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
void			glwMultiTexEnviEXT									(GLenum texunit, GLenum target, GLenum pname, GLint param);
void			glwMultiTexEnvivEXT									(GLenum texunit, GLenum target, GLenum pname, const GLint *params);
void			glwMultiTexGendEXT									(GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
void			glwMultiTexGendvEXT									(GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params);
void			glwMultiTexGenfEXT									(GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
void			glwMultiTexGenfvEXT									(GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params);
void			glwMultiTexGeniEXT									(GLenum texunit, GLenum coord, GLenum pname, GLint param);
void			glwMultiTexGenivEXT									(GLenum texunit, GLenum coord, GLenum pname, const GLint *params);
void			glwMultiTexImage1DEXT								(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
void			glwMultiTexImage2DEXT								(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
void			glwMultiTexImage3DEXT								(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
void			glwMultiTexParameterIivEXT							(GLenum texunit, GLenum target, GLenum pname, const GLint *params);
void			glwMultiTexParameterIuivEXT							(GLenum texunit, GLenum target, GLenum pname, const GLuint *params);
void			glwMultiTexParameterfEXT							(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
void			glwMultiTexParameterfvEXT							(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
void			glwMultiTexParameteriEXT							(GLenum texunit, GLenum target, GLenum pname, GLint param);
void			glwMultiTexParameterivEXT							(GLenum texunit, GLenum target, GLenum pname, const GLint *params);
void			glwMultiTexRenderbufferEXT							(GLenum texunit, GLenum target, GLuint renderbuffer);
void			glwMultiTexSubImage1DEXT							(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
void			glwMultiTexSubImage2DEXT							(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
void			glwMultiTexSubImage3DEXT							(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);
void			glwMulticastBarrierNV								();
void			glwMulticastBlitFramebufferNV						(GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
void			glwMulticastBufferSubDataNV							(GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
void			glwMulticastCopyBufferSubDataNV						(GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
void			glwMulticastCopyImageSubDataNV						(GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
void			glwMulticastFramebufferSampleLocationsfvNV			(GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v);
void			glwMulticastGetQueryObjecti64vNV					(GLuint gpu, GLuint id, GLenum pname, GLint64 *params);
void			glwMulticastGetQueryObjectivNV						(GLuint gpu, GLuint id, GLenum pname, GLint *params);
void			glwMulticastGetQueryObjectui64vNV					(GLuint gpu, GLuint id, GLenum pname, GLuint64 *params);
void			glwMulticastGetQueryObjectuivNV						(GLuint gpu, GLuint id, GLenum pname, GLuint *params);
void			glwMulticastWaitSyncNV								(GLuint signalGpu, GLbitfield waitGpuMask);
void			glwNamedBufferData									(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
void			glwNamedBufferDataEXT								(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
void			glwNamedBufferPageCommitmentARB						(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
void			glwNamedBufferPageCommitmentEXT						(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
void			glwNamedBufferStorage								(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
void			glwNamedBufferSubData								(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
void			glwNamedCopyBufferSubDataEXT						(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
void			glwNamedFramebufferDrawBuffer						(GLuint framebuffer, GLenum buf);
void			glwNamedFramebufferDrawBuffers						(GLuint framebuffer, GLsizei n, const GLenum *bufs);
void			glwNamedFramebufferParameteri						(GLuint framebuffer, GLenum pname, GLint param);
void			glwNamedFramebufferParameteriEXT					(GLuint framebuffer, GLenum pname, GLint param);
void			glwNamedFramebufferReadBuffer						(GLuint framebuffer, GLenum src);
void			glwNamedFramebufferRenderbuffer						(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
void			glwNamedFramebufferRenderbufferEXT					(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
void			glwNamedFramebufferTexture							(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
void			glwNamedFramebufferTexture1DEXT						(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
void			glwNamedFramebufferTexture2DEXT						(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
void			glwNamedFramebufferTexture3DEXT						(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
void			glwNamedFramebufferTextureEXT						(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
void			glwNamedFramebufferTextureFaceEXT					(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
void			glwNamedFramebufferTextureLayer						(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
void			glwNamedFramebufferTextureLayerEXT					(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
void			glwNamedProgramLocalParameter4dEXT					(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
void			glwNamedProgramLocalParameter4dvEXT					(GLuint program, GLenum target, GLuint index, const GLdouble *params);
void			glwNamedProgramLocalParameter4fEXT					(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
void			glwNamedProgramLocalParameter4fvEXT					(GLuint program, GLenum target, GLuint index, const GLfloat *params);
void			glwNamedProgramLocalParameterI4iEXT					(GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
void			glwNamedProgramLocalParameterI4ivEXT				(GLuint program, GLenum target, GLuint index, const GLint *params);
void			glwNamedProgramLocalParameterI4uiEXT				(GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
void			glwNamedProgramLocalParameterI4uivEXT				(GLuint program, GLenum target, GLuint index, const GLuint *params);
void			glwNamedProgramLocalParameters4fvEXT				(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params);
void			glwNamedProgramLocalParametersI4ivEXT				(GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params);
void			glwNamedProgramLocalParametersI4uivEXT				(GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params);
void			glwNamedProgramStringEXT							(GLuint program, GLenum target, GLenum format, GLsizei len, const void *string);
void			glwNamedRenderbufferStorage							(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
void			glwNamedRenderbufferStorageEXT						(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
void			glwNamedRenderbufferStorageMultisample				(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
void			glwNamedRenderbufferStorageMultisampleCoverageEXT	(GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
void			glwNamedRenderbufferStorageMultisampleEXT			(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
void			glwObjectLabel										(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
void			glwObjectPtrLabel									(const void *ptr, GLsizei length, const GLchar *label);
void			glwPatchParameterfv									(GLenum pname, const GLfloat *values);
void			glwPatchParameteri									(GLenum pname, GLint value);
void			glwPauseTransformFeedback							();
void			glwPixelStoref										(GLenum pname, GLfloat param);
void			glwPixelStorei										(GLenum pname, GLint param);
void			glwPointParameterf									(GLenum pname, GLfloat param);
void			glwPointParameterfv									(GLenum pname, const GLfloat *params);
void			glwPointParameteri									(GLenum pname, GLint param);
void			glwPointParameteriv									(GLenum pname, const GLint *params);
void			glwPointSize										(GLfloat size);
void			glwPolygonMode										(GLenum face, GLenum mode);
void			glwPolygonOffset									(GLfloat factor, GLfloat units);
void			glwPolygonOffsetClamp								(GLfloat factor, GLfloat units, GLfloat clamp);
void			glwPopDebugGroup									();
void			glwPopGroupMarkerEXT								();
void			glwPrimitiveBoundingBox								(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
void			glwPrimitiveRestartIndex							(GLuint index);
void			glwProgramBinary									(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
void			glwProgramParameteri								(GLuint program, GLenum pname, GLint value);
void			glwProgramUniform1d									(GLuint program, GLint location, GLdouble v0);
void			glwProgramUniform1dEXT								(GLuint program, GLint location, GLdouble x);
void			glwProgramUniform1dv								(GLuint program, GLint location, GLsizei count, const GLdouble *value);
void			glwProgramUniform1dvEXT								(GLuint program, GLint location, GLsizei count, const GLdouble *value);
void			glwProgramUniform1f									(GLuint program, GLint location, GLfloat v0);
void			glwProgramUniform1fv								(GLuint program, GLint location, GLsizei count, const GLfloat *value);
void			glwProgramUniform1i									(GLuint program, GLint location, GLint v0);
void			glwProgramUniform1iv								(GLuint program, GLint location, GLsizei count, const GLint *value);
void			glwProgramUniform1ui								(GLuint program, GLint location, GLuint v0);
void			glwProgramUniform1uiv								(GLuint program, GLint location, GLsizei count, const GLuint *value);
void			glwProgramUniform2d									(GLuint program, GLint location, GLdouble v0, GLdouble v1);
void			glwProgramUniform2dEXT								(GLuint program, GLint location, GLdouble x, GLdouble y);
void			glwProgramUniform2dv								(GLuint program, GLint location, GLsizei count, const GLdouble *value);
void			glwProgramUniform2dvEXT								(GLuint program, GLint location, GLsizei count, const GLdouble *value);
void			glwProgramUniform2f									(GLuint program, GLint location, GLfloat v0, GLfloat v1);
void			glwProgramUniform2fv								(GLuint program, GLint location, GLsizei count, const GLfloat *value);
void			glwProgramUniform2i									(GLuint program, GLint location, GLint v0, GLint v1);
void			glwProgramUniform2iv								(GLuint program, GLint location, GLsizei count, const GLint *value);
void			glwProgramUniform2ui								(GLuint program, GLint location, GLuint v0, GLuint v1);
void			glwProgramUniform2uiv								(GLuint program, GLint location, GLsizei count, const GLuint *value);
void			glwProgramUniform3d									(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
void			glwProgramUniform3dEXT								(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
void			glwProgramUniform3dv								(GLuint program, GLint location, GLsizei count, const GLdouble *value);
void			glwProgramUniform3dvEXT								(GLuint program, GLint location, GLsizei count, const GLdouble *value);
void			glwProgramUniform3f									(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
void			glwProgramUniform3fv								(GLuint program, GLint location, GLsizei count, const GLfloat *value);
void			glwProgramUniform3i									(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
void			glwProgramUniform3iv								(GLuint program, GLint location, GLsizei count, const GLint *value);
void			glwProgramUniform3ui								(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
void			glwProgramUniform3uiv								(GLuint program, GLint location, GLsizei count, const GLuint *value);
void			glwProgramUniform4d									(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
void			glwProgramUniform4dEXT								(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
void			glwProgramUniform4dv								(GLuint program, GLint location, GLsizei count, const GLdouble *value);
void			glwProgramUniform4dvEXT								(GLuint program, GLint location, GLsizei count, const GLdouble *value);
void			glwProgramUniform4f									(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
void			glwProgramUniform4fv								(GLuint program, GLint location, GLsizei count, const GLfloat *value);
void			glwProgramUniform4i									(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
void			glwProgramUniform4iv								(GLuint program, GLint location, GLsizei count, const GLint *value);
void			glwProgramUniform4ui								(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
void			glwProgramUniform4uiv								(GLuint program, GLint location, GLsizei count, const GLuint *value);
void			glwProgramUniformMatrix2dv							(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix2dvEXT						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix2fv							(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwProgramUniformMatrix2x3dv						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix2x3dvEXT						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix2x3fv						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwProgramUniformMatrix2x4dv						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix2x4dvEXT						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix2x4fv						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwProgramUniformMatrix3dv							(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix3dvEXT						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix3fv							(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwProgramUniformMatrix3x2dv						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix3x2dvEXT						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix3x2fv						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwProgramUniformMatrix3x4dv						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix3x4dvEXT						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix3x4fv						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwProgramUniformMatrix4dv							(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix4dvEXT						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix4fv							(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwProgramUniformMatrix4x2dv						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix4x2dvEXT						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix4x2fv						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwProgramUniformMatrix4x3dv						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix4x3dvEXT						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwProgramUniformMatrix4x3fv						(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwProvokingVertex									(GLenum mode);
void			glwPushClientAttribDefaultEXT						(GLbitfield mask);
void			glwPushDebugGroup									(GLenum source, GLuint id, GLsizei length, const GLchar *message);
void			glwPushGroupMarkerEXT								(GLsizei length, const GLchar *marker);
void			glwQueryCounter										(GLuint id, GLenum target);
void			glwReadBuffer										(GLenum src);
void			glwReadPixels										(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
void			glwReadnPixels										(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
void			glwReleaseShaderCompiler							();
void			glwRenderGpuMaskNV									(GLbitfield mask);
void			glwRenderbufferStorage								(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
void			glwRenderbufferStorageMultisample					(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
void			glwRenderbufferStorageMultisampleEXT				(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
void			glwResumeTransformFeedback							();
void			glwSampleCoverage									(GLfloat value, GLboolean invert);
void			glwSampleMaski										(GLuint maskNumber, GLbitfield mask);
void			glwSamplerParameterIiv								(GLuint sampler, GLenum pname, const GLint *param);
void			glwSamplerParameterIuiv								(GLuint sampler, GLenum pname, const GLuint *param);
void			glwSamplerParameterf								(GLuint sampler, GLenum pname, GLfloat param);
void			glwSamplerParameterfv								(GLuint sampler, GLenum pname, const GLfloat *param);
void			glwSamplerParameteri								(GLuint sampler, GLenum pname, GLint param);
void			glwSamplerParameteriv								(GLuint sampler, GLenum pname, const GLint *param);
void			glwScissor											(GLint x, GLint y, GLsizei width, GLsizei height);
void			glwScissorArrayv									(GLuint first, GLsizei count, const GLint *v);
void			glwScissorIndexed									(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
void			glwScissorIndexedv									(GLuint index, const GLint *v);
void			glwShaderBinary										(GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
void			glwShaderSource										(GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
void			glwShaderStorageBlockBinding						(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
void			glwSpecializeShader									(GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue);
void			glwStencilFunc										(GLenum func, GLint ref, GLuint mask);
void			glwStencilFuncSeparate								(GLenum face, GLenum func, GLint ref, GLuint mask);
void			glwStencilMask										(GLuint mask);
void			glwStencilMaskSeparate								(GLenum face, GLuint mask);
void			glwStencilOp										(GLenum fail, GLenum zfail, GLenum zpass);
void			glwStencilOpSeparate								(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
void			glwTexBuffer										(GLenum target, GLenum internalformat, GLuint buffer);
void			glwTexBufferRange									(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
void			glwTexImage1D										(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
void			glwTexImage2D										(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
void			glwTexImage2DMultisample							(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
void			glwTexImage3D										(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
void			glwTexImage3DMultisample							(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
void			glwTexImage3DOES									(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
void			glwTexPageCommitmentARB								(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
void			glwTexParameterIiv									(GLenum target, GLenum pname, const GLint *params);
void			glwTexParameterIuiv									(GLenum target, GLenum pname, const GLuint *params);
void			glwTexParameterf									(GLenum target, GLenum pname, GLfloat param);
void			glwTexParameterfv									(GLenum target, GLenum pname, const GLfloat *params);
void			glwTexParameteri									(GLenum target, GLenum pname, GLint param);
void			glwTexParameteriv									(GLenum target, GLenum pname, const GLint *params);
void			glwTexStorage1D										(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
void			glwTexStorage2D										(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
void			glwTexStorage2DMultisample							(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
void			glwTexStorage3D										(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
void			glwTexStorage3DMultisample							(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
void			glwTexSubImage1D									(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
void			glwTexSubImage2D									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
void			glwTexSubImage3D									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
void			glwTexSubImage3DOES									(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
void			glwTextureBarrier									();
void			glwTextureBuffer									(GLuint texture, GLenum internalformat, GLuint buffer);
void			glwTextureBufferEXT									(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
void			glwTextureBufferRange								(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
void			glwTextureBufferRangeEXT							(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
void			glwTextureImage1DEXT								(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
void			glwTextureImage2DEXT								(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
void			glwTextureImage3DEXT								(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
void			glwTexturePageCommitmentEXT							(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
void			glwTextureParameterIiv								(GLuint texture, GLenum pname, const GLint *params);
void			glwTextureParameterIivEXT							(GLuint texture, GLenum target, GLenum pname, const GLint *params);
void			glwTextureParameterIuiv								(GLuint texture, GLenum pname, const GLuint *params);
void			glwTextureParameterIuivEXT							(GLuint texture, GLenum target, GLenum pname, const GLuint *params);
void			glwTextureParameterf								(GLuint texture, GLenum pname, GLfloat param);
void			glwTextureParameterfEXT								(GLuint texture, GLenum target, GLenum pname, GLfloat param);
void			glwTextureParameterfv								(GLuint texture, GLenum pname, const GLfloat *param);
void			glwTextureParameterfvEXT							(GLuint texture, GLenum target, GLenum pname, const GLfloat *params);
void			glwTextureParameteri								(GLuint texture, GLenum pname, GLint param);
void			glwTextureParameteriEXT								(GLuint texture, GLenum target, GLenum pname, GLint param);
void			glwTextureParameteriv								(GLuint texture, GLenum pname, const GLint *param);
void			glwTextureParameterivEXT							(GLuint texture, GLenum target, GLenum pname, const GLint *params);
void			glwTextureRenderbufferEXT							(GLuint texture, GLenum target, GLuint renderbuffer);
void			glwTextureStorage1D									(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
void			glwTextureStorage1DEXT								(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
void			glwTextureStorage2D									(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
void			glwTextureStorage2DEXT								(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
void			glwTextureStorage2DMultisample						(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
void			glwTextureStorage2DMultisampleEXT					(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
void			glwTextureStorage3D									(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
void			glwTextureStorage3DEXT								(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
void			glwTextureStorage3DMultisample						(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
void			glwTextureStorage3DMultisampleEXT					(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
void			glwTextureSubImage1D								(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
void			glwTextureSubImage1DEXT								(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
void			glwTextureSubImage2D								(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
void			glwTextureSubImage2DEXT								(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
void			glwTextureSubImage3D								(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
void			glwTextureSubImage3DEXT								(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);
void			glwTextureView										(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
void			glwTransformFeedbackBufferBase						(GLuint xfb, GLuint index, GLuint buffer);
void			glwTransformFeedbackBufferRange						(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
void			glwTransformFeedbackVaryings						(GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
void			glwUniform1d										(GLint location, GLdouble x);
void			glwUniform1dv										(GLint location, GLsizei count, const GLdouble *value);
void			glwUniform1f										(GLint location, GLfloat v0);
void			glwUniform1fv										(GLint location, GLsizei count, const GLfloat *value);
void			glwUniform1i										(GLint location, GLint v0);
void			glwUniform1iv										(GLint location, GLsizei count, const GLint *value);
void			glwUniform1ui										(GLint location, GLuint v0);
void			glwUniform1uiv										(GLint location, GLsizei count, const GLuint *value);
void			glwUniform2d										(GLint location, GLdouble x, GLdouble y);
void			glwUniform2dv										(GLint location, GLsizei count, const GLdouble *value);
void			glwUniform2f										(GLint location, GLfloat v0, GLfloat v1);
void			glwUniform2fv										(GLint location, GLsizei count, const GLfloat *value);
void			glwUniform2i										(GLint location, GLint v0, GLint v1);
void			glwUniform2iv										(GLint location, GLsizei count, const GLint *value);
void			glwUniform2ui										(GLint location, GLuint v0, GLuint v1);
void			glwUniform2uiv										(GLint location, GLsizei count, const GLuint *value);
void			glwUniform3d										(GLint location, GLdouble x, GLdouble y, GLdouble z);
void			glwUniform3dv										(GLint location, GLsizei count, const GLdouble *value);
void			glwUniform3f										(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
void			glwUniform3fv										(GLint location, GLsizei count, const GLfloat *value);
void			glwUniform3i										(GLint location, GLint v0, GLint v1, GLint v2);
void			glwUniform3iv										(GLint location, GLsizei count, const GLint *value);
void			glwUniform3ui										(GLint location, GLuint v0, GLuint v1, GLuint v2);
void			glwUniform3uiv										(GLint location, GLsizei count, const GLuint *value);
void			glwUniform4d										(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
void			glwUniform4dv										(GLint location, GLsizei count, const GLdouble *value);
void			glwUniform4f										(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
void			glwUniform4fv										(GLint location, GLsizei count, const GLfloat *value);
void			glwUniform4i										(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
void			glwUniform4iv										(GLint location, GLsizei count, const GLint *value);
void			glwUniform4ui										(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
void			glwUniform4uiv										(GLint location, GLsizei count, const GLuint *value);
void			glwUniformBlockBinding								(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
void			glwUniformMatrix2dv									(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwUniformMatrix2fv									(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwUniformMatrix2x3dv								(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwUniformMatrix2x3fv								(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwUniformMatrix2x4dv								(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwUniformMatrix2x4fv								(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwUniformMatrix3dv									(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwUniformMatrix3fv									(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwUniformMatrix3x2dv								(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwUniformMatrix3x2fv								(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwUniformMatrix3x4dv								(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwUniformMatrix3x4fv								(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwUniformMatrix4dv									(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwUniformMatrix4fv									(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwUniformMatrix4x2dv								(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwUniformMatrix4x2fv								(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwUniformMatrix4x3dv								(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
void			glwUniformMatrix4x3fv								(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
void			glwUniformSubroutinesuiv							(GLenum shadertype, GLsizei count, const GLuint *indices);
GLboolean		glwUnmapBuffer										(GLenum target);
GLboolean		glwUnmapNamedBuffer									(GLuint buffer);
GLboolean		glwUnmapNamedBufferEXT								(GLuint buffer);
void			glwUseProgram										(GLuint program);
void			glwUseProgramStages									(GLuint pipeline, GLbitfield stages, GLuint program);
void			glwValidateProgram									(GLuint program);
void			glwValidateProgramPipeline							(GLuint pipeline);
void			glwVertexArrayAttribBinding							(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
void			glwVertexArrayAttribFormat							(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
void			glwVertexArrayAttribIFormat							(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
void			glwVertexArrayAttribLFormat							(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
void			glwVertexArrayBindVertexBufferEXT					(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
void			glwVertexArrayBindingDivisor						(GLuint vaobj, GLuint bindingindex, GLuint divisor);
void			glwVertexArrayColorOffsetEXT						(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
void			glwVertexArrayEdgeFlagOffsetEXT						(GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset);
void			glwVertexArrayElementBuffer							(GLuint vaobj, GLuint buffer);
void			glwVertexArrayFogCoordOffsetEXT						(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
void			glwVertexArrayIndexOffsetEXT						(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
void			glwVertexArrayMultiTexCoordOffsetEXT				(GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset);
void			glwVertexArrayNormalOffsetEXT						(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
void			glwVertexArraySecondaryColorOffsetEXT				(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
void			glwVertexArrayTexCoordOffsetEXT						(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
void			glwVertexArrayVertexAttribBindingEXT				(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
void			glwVertexArrayVertexAttribDivisorEXT				(GLuint vaobj, GLuint index, GLuint divisor);
void			glwVertexArrayVertexAttribFormatEXT					(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
void			glwVertexArrayVertexAttribIFormatEXT				(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
void			glwVertexArrayVertexAttribIOffsetEXT				(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
void			glwVertexArrayVertexAttribLFormatEXT				(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
void			glwVertexArrayVertexAttribLOffsetEXT				(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
void			glwVertexArrayVertexAttribOffsetEXT					(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset);
void			glwVertexArrayVertexBindingDivisorEXT				(GLuint vaobj, GLuint bindingindex, GLuint divisor);
void			glwVertexArrayVertexBuffer							(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
void			glwVertexArrayVertexBuffers							(GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
void			glwVertexArrayVertexOffsetEXT						(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
void			glwVertexAttrib1d									(GLuint index, GLdouble x);
void			glwVertexAttrib1dv									(GLuint index, const GLdouble *v);
void			glwVertexAttrib1f									(GLuint index, GLfloat x);
void			glwVertexAttrib1fv									(GLuint index, const GLfloat *v);
void			glwVertexAttrib1s									(GLuint index, GLshort x);
void			glwVertexAttrib1sv									(GLuint index, const GLshort *v);
void			glwVertexAttrib2d									(GLuint index, GLdouble x, GLdouble y);
void			glwVertexAttrib2dv									(GLuint index, const GLdouble *v);
void			glwVertexAttrib2f									(GLuint index, GLfloat x, GLfloat y);
void			glwVertexAttrib2fv									(GLuint index, const GLfloat *v);
void			glwVertexAttrib2s									(GLuint index, GLshort x, GLshort y);
void			glwVertexAttrib2sv									(GLuint index, const GLshort *v);
void			glwVertexAttrib3d									(GLuint index, GLdouble x, GLdouble y, GLdouble z);
void			glwVertexAttrib3dv									(GLuint index, const GLdouble *v);
void			glwVertexAttrib3f									(GLuint index, GLfloat x, GLfloat y, GLfloat z);
void			glwVertexAttrib3fv									(GLuint index, const GLfloat *v);
void			glwVertexAttrib3s									(GLuint index, GLshort x, GLshort y, GLshort z);
void			glwVertexAttrib3sv									(GLuint index, const GLshort *v);
void			glwVertexAttrib4Nbv									(GLuint index, const GLbyte *v);
void			glwVertexAttrib4Niv									(GLuint index, const GLint *v);
void			glwVertexAttrib4Nsv									(GLuint index, const GLshort *v);
void			glwVertexAttrib4Nub									(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
void			glwVertexAttrib4Nubv								(GLuint index, const GLubyte *v);
void			glwVertexAttrib4Nuiv								(GLuint index, const GLuint *v);
void			glwVertexAttrib4Nusv								(GLuint index, const GLushort *v);
void			glwVertexAttrib4bv									(GLuint index, const GLbyte *v);
void			glwVertexAttrib4d									(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
void			glwVertexAttrib4dv									(GLuint index, const GLdouble *v);
void			glwVertexAttrib4f									(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
void			glwVertexAttrib4fv									(GLuint index, const GLfloat *v);
void			glwVertexAttrib4iv									(GLuint index, const GLint *v);
void			glwVertexAttrib4s									(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
void			glwVertexAttrib4sv									(GLuint index, const GLshort *v);
void			glwVertexAttrib4ubv									(GLuint index, const GLubyte *v);
void			glwVertexAttrib4uiv									(GLuint index, const GLuint *v);
void			glwVertexAttrib4usv									(GLuint index, const GLushort *v);
void			glwVertexAttribBinding								(GLuint attribindex, GLuint bindingindex);
void			glwVertexAttribDivisor								(GLuint index, GLuint divisor);
void			glwVertexAttribFormat								(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
void			glwVertexAttribI1i									(GLuint index, GLint x);
void			glwVertexAttribI1iv									(GLuint index, const GLint *v);
void			glwVertexAttribI1ui									(GLuint index, GLuint x);
void			glwVertexAttribI1uiv								(GLuint index, const GLuint *v);
void			glwVertexAttribI2i									(GLuint index, GLint x, GLint y);
void			glwVertexAttribI2iv									(GLuint index, const GLint *v);
void			glwVertexAttribI2ui									(GLuint index, GLuint x, GLuint y);
void			glwVertexAttribI2uiv								(GLuint index, const GLuint *v);
void			glwVertexAttribI3i									(GLuint index, GLint x, GLint y, GLint z);
void			glwVertexAttribI3iv									(GLuint index, const GLint *v);
void			glwVertexAttribI3ui									(GLuint index, GLuint x, GLuint y, GLuint z);
void			glwVertexAttribI3uiv								(GLuint index, const GLuint *v);
void			glwVertexAttribI4bv									(GLuint index, const GLbyte *v);
void			glwVertexAttribI4i									(GLuint index, GLint x, GLint y, GLint z, GLint w);
void			glwVertexAttribI4iv									(GLuint index, const GLint *v);
void			glwVertexAttribI4sv									(GLuint index, const GLshort *v);
void			glwVertexAttribI4ubv								(GLuint index, const GLubyte *v);
void			glwVertexAttribI4ui									(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
void			glwVertexAttribI4uiv								(GLuint index, const GLuint *v);
void			glwVertexAttribI4usv								(GLuint index, const GLushort *v);
void			glwVertexAttribIFormat								(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
void			glwVertexAttribIPointer								(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
void			glwVertexAttribL1d									(GLuint index, GLdouble x);
void			glwVertexAttribL1dv									(GLuint index, const GLdouble *v);
void			glwVertexAttribL2d									(GLuint index, GLdouble x, GLdouble y);
void			glwVertexAttribL2dv									(GLuint index, const GLdouble *v);
void			glwVertexAttribL3d									(GLuint index, GLdouble x, GLdouble y, GLdouble z);
void			glwVertexAttribL3dv									(GLuint index, const GLdouble *v);
void			glwVertexAttribL4d									(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
void			glwVertexAttribL4dv									(GLuint index, const GLdouble *v);
void			glwVertexAttribLFormat								(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
void			glwVertexAttribLPointer								(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
void			glwVertexAttribP1ui									(GLuint index, GLenum type, GLboolean normalized, GLuint value);
void			glwVertexAttribP1uiv								(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
void			glwVertexAttribP2ui									(GLuint index, GLenum type, GLboolean normalized, GLuint value);
void			glwVertexAttribP2uiv								(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
void			glwVertexAttribP3ui									(GLuint index, GLenum type, GLboolean normalized, GLuint value);
void			glwVertexAttribP3uiv								(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
void			glwVertexAttribP4ui									(GLuint index, GLenum type, GLboolean normalized, GLuint value);
void			glwVertexAttribP4uiv								(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
void			glwVertexAttribPointer								(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
void			glwVertexBindingDivisor								(GLuint bindingindex, GLuint divisor);
void			glwViewport											(GLint x, GLint y, GLsizei width, GLsizei height);
void			glwViewportArrayv									(GLuint first, GLsizei count, const GLfloat *v);
void			glwViewportIndexedf									(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
void			glwViewportIndexedfv								(GLuint index, const GLfloat *v);
void			glwWaitSync											(GLsync sync, GLbitfield flags, GLuint64 timeout);
