/* 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 33312.
 */
#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			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			glClearNamedBufferSubData							glwClearNamedBufferSubData
#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			glDisableIndexedEXT									glwDisableIndexedEXT
#define			glDisableVertexArrayAttrib							glwDisableVertexArrayAttrib
#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			glEnableIndexedEXT									glwEnableIndexedEXT
#define			glEnableVertexArrayAttrib							glwEnableVertexArrayAttrib
#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			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			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			glGetBooleanIndexedvEXT								glwGetBooleanIndexedvEXT
#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			glGetCompressedTextureSubImage						glwGetCompressedTextureSubImage
#define			glGetDebugMessageLog								glwGetDebugMessageLog
#define			glGetDoubleIndexedvEXT								glwGetDoubleIndexedvEXT
#define			glGetDoublei_v										glwGetDoublei_v
#define			glGetDoublev										glwGetDoublev
#define			glGetError											glwGetError
#define			glGetFloatIndexedvEXT								glwGetFloatIndexedvEXT
#define			glGetFloati_v										glwGetFloati_v
#define			glGetFloatv											glwGetFloatv
#define			glGetFragDataIndex									glwGetFragDataIndex
#define			glGetFragDataLocation								glwGetFragDataLocation
#define			glGetFramebufferAttachmentParameteriv				glwGetFramebufferAttachmentParameteriv
#define			glGetFramebufferParameteriv							glwGetFramebufferParameteriv
#define			glGetGraphicsResetStatus							glwGetGraphicsResetStatus
#define			glGetInteger64i_v									glwGetInteger64i_v
#define			glGetInteger64v										glwGetInteger64v
#define			glGetIntegerIndexedvEXT								glwGetIntegerIndexedvEXT
#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			glGetNamedBufferPointerv							glwGetNamedBufferPointerv
#define			glGetNamedBufferSubData								glwGetNamedBufferSubData
#define			glGetNamedFramebufferAttachmentParameteriv			glwGetNamedFramebufferAttachmentParameteriv
#define			glGetNamedFramebufferParameteriv					glwGetNamedFramebufferParameteriv
#define			glGetNamedProgramLocalParameterIivEXT				glwGetNamedProgramLocalParameterIivEXT
#define			glGetNamedProgramLocalParameterIuivEXT				glwGetNamedProgramLocalParameterIuivEXT
#define			glGetNamedProgramLocalParameterdvEXT				glwGetNamedProgramLocalParameterdvEXT
#define			glGetNamedProgramLocalParameterfvEXT				glwGetNamedProgramLocalParameterfvEXT
#define			glGetNamedProgramStringEXT							glwGetNamedProgramStringEXT
#define			glGetNamedProgramivEXT								glwGetNamedProgramivEXT
#define			glGetNamedRenderbufferParameteriv					glwGetNamedRenderbufferParameteriv
#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			glGetTextureLevelParameterfv						glwGetTextureLevelParameterfv
#define			glGetTextureLevelParameteriv						glwGetTextureLevelParameteriv
#define			glGetTextureParameterIiv							glwGetTextureParameterIiv
#define			glGetTextureParameterIuiv							glwGetTextureParameterIuiv
#define			glGetTextureParameterfv								glwGetTextureParameterfv
#define			glGetTextureParameteriv								glwGetTextureParameteriv
#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			glIsEnabledIndexedEXT								glwIsEnabledIndexedEXT
#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			glMapNamedBufferRange								glwMapNamedBufferRange
#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			glMaxShaderCompilerThreadsARB						glwMaxShaderCompilerThreadsARB
#define			glMemoryBarrier										glwMemoryBarrier
#define			glMemoryBarrierByRegion								glwMemoryBarrierByRegion
#define			glMinSampleShading									glwMinSampleShading
#define			glMultiDrawArrays									glwMultiDrawArrays
#define			glMultiDrawArraysIndirect							glwMultiDrawArraysIndirect
#define			glMultiDrawElements									glwMultiDrawElements
#define			glMultiDrawElementsBaseVertex						glwMultiDrawElementsBaseVertex
#define			glMultiDrawElementsIndirect							glwMultiDrawElementsIndirect
#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			glNamedBufferData									glwNamedBufferData
#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			glNamedFramebufferReadBuffer						glwNamedFramebufferReadBuffer
#define			glNamedFramebufferRenderbuffer						glwNamedFramebufferRenderbuffer
#define			glNamedFramebufferTexture							glwNamedFramebufferTexture
#define			glNamedFramebufferTexture1DEXT						glwNamedFramebufferTexture1DEXT
#define			glNamedFramebufferTexture2DEXT						glwNamedFramebufferTexture2DEXT
#define			glNamedFramebufferTexture3DEXT						glwNamedFramebufferTexture3DEXT
#define			glNamedFramebufferTextureFaceEXT					glwNamedFramebufferTextureFaceEXT
#define			glNamedFramebufferTextureLayer						glwNamedFramebufferTextureLayer
#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			glNamedRenderbufferStorageMultisample				glwNamedRenderbufferStorageMultisample
#define			glNamedRenderbufferStorageMultisampleCoverageEXT	glwNamedRenderbufferStorageMultisampleCoverageEXT
#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			glPopDebugGroup										glwPopDebugGroup
#define			glPopGroupMarkerEXT									glwPopGroupMarkerEXT
#define			glPrimitiveBoundingBox								glwPrimitiveBoundingBox
#define			glPrimitiveRestartIndex								glwPrimitiveRestartIndex
#define			glProgramBinary										glwProgramBinary
#define			glProgramParameteri									glwProgramParameteri
#define			glProgramUniform1d									glwProgramUniform1d
#define			glProgramUniform1dv									glwProgramUniform1dv
#define			glProgramUniform1f									glwProgramUniform1f
#define			glProgramUniform1fv									glwProgramUniform1fv
#define			glProgramUniform1i									glwProgramUniform1i
#define			glProgramUniform1iv									glwProgramUniform1iv
#define			glProgramUniform1ui									glwProgramUniform1ui
#define			glProgramUniform1uiv								glwProgramUniform1uiv
#define			glProgramUniform2d									glwProgramUniform2d
#define			glProgramUniform2dv									glwProgramUniform2dv
#define			glProgramUniform2f									glwProgramUniform2f
#define			glProgramUniform2fv									glwProgramUniform2fv
#define			glProgramUniform2i									glwProgramUniform2i
#define			glProgramUniform2iv									glwProgramUniform2iv
#define			glProgramUniform2ui									glwProgramUniform2ui
#define			glProgramUniform2uiv								glwProgramUniform2uiv
#define			glProgramUniform3d									glwProgramUniform3d
#define			glProgramUniform3dv									glwProgramUniform3dv
#define			glProgramUniform3f									glwProgramUniform3f
#define			glProgramUniform3fv									glwProgramUniform3fv
#define			glProgramUniform3i									glwProgramUniform3i
#define			glProgramUniform3iv									glwProgramUniform3iv
#define			glProgramUniform3ui									glwProgramUniform3ui
#define			glProgramUniform3uiv								glwProgramUniform3uiv
#define			glProgramUniform4d									glwProgramUniform4d
#define			glProgramUniform4dv									glwProgramUniform4dv
#define			glProgramUniform4f									glwProgramUniform4f
#define			glProgramUniform4fv									glwProgramUniform4fv
#define			glProgramUniform4i									glwProgramUniform4i
#define			glProgramUniform4iv									glwProgramUniform4iv
#define			glProgramUniform4ui									glwProgramUniform4ui
#define			glProgramUniform4uiv								glwProgramUniform4uiv
#define			glProgramUniformMatrix2dv							glwProgramUniformMatrix2dv
#define			glProgramUniformMatrix2fv							glwProgramUniformMatrix2fv
#define			glProgramUniformMatrix2x3dv							glwProgramUniformMatrix2x3dv
#define			glProgramUniformMatrix2x3fv							glwProgramUniformMatrix2x3fv
#define			glProgramUniformMatrix2x4dv							glwProgramUniformMatrix2x4dv
#define			glProgramUniformMatrix2x4fv							glwProgramUniformMatrix2x4fv
#define			glProgramUniformMatrix3dv							glwProgramUniformMatrix3dv
#define			glProgramUniformMatrix3fv							glwProgramUniformMatrix3fv
#define			glProgramUniformMatrix3x2dv							glwProgramUniformMatrix3x2dv
#define			glProgramUniformMatrix3x2fv							glwProgramUniformMatrix3x2fv
#define			glProgramUniformMatrix3x4dv							glwProgramUniformMatrix3x4dv
#define			glProgramUniformMatrix3x4fv							glwProgramUniformMatrix3x4fv
#define			glProgramUniformMatrix4dv							glwProgramUniformMatrix4dv
#define			glProgramUniformMatrix4fv							glwProgramUniformMatrix4fv
#define			glProgramUniformMatrix4x2dv							glwProgramUniformMatrix4x2dv
#define			glProgramUniformMatrix4x2fv							glwProgramUniformMatrix4x2fv
#define			glProgramUniformMatrix4x3dv							glwProgramUniformMatrix4x3dv
#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			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			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			glTexStorage1DEXT									glwTexStorage1DEXT
#define			glTexStorage2D										glwTexStorage2D
#define			glTexStorage2DEXT									glwTexStorage2DEXT
#define			glTexStorage2DMultisample							glwTexStorage2DMultisample
#define			glTexStorage3D										glwTexStorage3D
#define			glTexStorage3DEXT									glwTexStorage3DEXT
#define			glTexStorage3DMultisample							glwTexStorage3DMultisample
#define			glTexSubImage1D										glwTexSubImage1D
#define			glTexSubImage2D										glwTexSubImage2D
#define			glTexSubImage3D										glwTexSubImage3D
#define			glTexSubImage3DOES									glwTexSubImage3DOES
#define			glTextureBarrier									glwTextureBarrier
#define			glTextureBuffer										glwTextureBuffer
#define			glTextureBufferRange								glwTextureBufferRange
#define			glTextureImage1DEXT									glwTextureImage1DEXT
#define			glTextureImage2DEXT									glwTextureImage2DEXT
#define			glTextureImage3DEXT									glwTextureImage3DEXT
#define			glTexturePageCommitmentEXT							glwTexturePageCommitmentEXT
#define			glTextureParameterIiv								glwTextureParameterIiv
#define			glTextureParameterIuiv								glwTextureParameterIuiv
#define			glTextureParameterf									glwTextureParameterf
#define			glTextureParameterfv								glwTextureParameterfv
#define			glTextureParameteri									glwTextureParameteri
#define			glTextureParameteriv								glwTextureParameteriv
#define			glTextureRenderbufferEXT							glwTextureRenderbufferEXT
#define			glTextureStorage1D									glwTextureStorage1D
#define			glTextureStorage1DEXT								glwTextureStorage1DEXT
#define			glTextureStorage2D									glwTextureStorage2D
#define			glTextureStorage2DEXT								glwTextureStorage2DEXT
#define			glTextureStorage2DMultisample						glwTextureStorage2DMultisample
#define			glTextureStorage3D									glwTextureStorage3D
#define			glTextureStorage3DEXT								glwTextureStorage3DEXT
#define			glTextureStorage3DMultisample						glwTextureStorage3DMultisample
#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			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);
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			glwClearNamedBufferSubData							(GLuint buffer, GLenum internalformat, GLintptr 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			glwDisableIndexedEXT								(GLenum target, GLuint index);
void			glwDisableVertexArrayAttrib							(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			glwEnableIndexedEXT									(GLenum target, GLuint index);
void			glwEnableVertexArrayAttrib							(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			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			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			glwGetBooleanIndexedvEXT							(GLenum target, GLuint index, GLboolean *data);
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			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			glwGetDoubleIndexedvEXT								(GLenum target, GLuint index, GLdouble *data);
void			glwGetDoublei_v										(GLenum target, GLuint index, GLdouble *data);
void			glwGetDoublev										(GLenum pname, GLdouble *data);
GLenum			glwGetError											();
void			glwGetFloatIndexedvEXT								(GLenum target, GLuint index, GLfloat *data);
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);
GLenum			glwGetGraphicsResetStatus							();
void			glwGetInteger64i_v									(GLenum target, GLuint index, GLint64 *data);
void			glwGetInteger64v									(GLenum pname, GLint64 *data);
void			glwGetIntegerIndexedvEXT							(GLenum target, GLuint index, GLint *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			glwGetNamedBufferPointerv							(GLuint buffer, GLenum pname, void **params);
void			glwGetNamedBufferSubData							(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
void			glwGetNamedFramebufferAttachmentParameteriv			(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
void			glwGetNamedFramebufferParameteriv					(GLuint framebuffer, GLenum pname, GLint *param);
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			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			glwGetTextureLevelParameterfv						(GLuint texture, GLint level, GLenum pname, GLfloat *params);
void			glwGetTextureLevelParameteriv						(GLuint texture, GLint level, GLenum pname, GLint *params);
void			glwGetTextureParameterIiv							(GLuint texture, GLenum pname, GLint *params);
void			glwGetTextureParameterIuiv							(GLuint texture, GLenum pname, GLuint *params);
void			glwGetTextureParameterfv							(GLuint texture, GLenum pname, GLfloat *params);
void			glwGetTextureParameteriv							(GLuint texture, 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		glwIsEnabledIndexedEXT								(GLenum target, GLuint index);
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 *			glwMapNamedBufferRange								(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			glwMaxShaderCompilerThreadsARB						(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			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			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			glwNamedBufferData									(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			glwNamedFramebufferReadBuffer						(GLuint framebuffer, GLenum src);
void			glwNamedFramebufferRenderbuffer						(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			glwNamedFramebufferTextureFaceEXT					(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
void			glwNamedFramebufferTextureLayer						(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			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			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			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			glwProgramUniform1dv								(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			glwProgramUniform2dv								(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			glwProgramUniform3dv								(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			glwProgramUniform4dv								(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			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			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			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			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			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			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			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			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			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			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			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			glwTexStorage1DEXT									(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
void			glwTexStorage2D										(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
void			glwTexStorage2DEXT									(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			glwTexStorage3DEXT									(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			glwTextureBufferRange								(GLuint texture, 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			glwTextureParameterIuiv								(GLuint texture, GLenum pname, const GLuint *params);
void			glwTextureParameterf								(GLuint texture, GLenum pname, GLfloat param);
void			glwTextureParameterfv								(GLuint texture, GLenum pname, const GLfloat *param);
void			glwTextureParameteri								(GLuint texture, GLenum pname, GLint param);
void			glwTextureParameteriv								(GLuint texture, GLenum pname, const GLint *param);
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			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			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);
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);
