/* 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 97ab881f0ab9e03a59388214f9c36dfe4c206c76.
 */
#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			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			glGetGraphicsResetStatusEXT							glwGetGraphicsResetStatusEXT
#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 near, GLdouble far);
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			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							();
GLenum			glwGetGraphicsResetStatusEXT						();
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);
