/* 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 b7aee529f02340247e45621e9dbd054817d39c71.
 */
#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			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			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			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			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);
