void glReadBuffer ( GLenum mode )
void glDrawRangeElements ( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices )
void glDrawRangeElements ( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLsizei offset )
void glTexImage3D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels )
void glTexImage3D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei offset )
void glTexSubImage3D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels )
void glTexSubImage3D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei offset )
void glCopyTexSubImage3D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height )
void glCompressedTexImage3D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data )
void glCompressedTexImage3D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLsizei offset )
void glCompressedTexSubImage3D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data )
void glCompressedTexSubImage3D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLsizei offset )
void glGenQueries ( GLsizei n, GLuint *ids )
void glDeleteQueries ( GLsizei n, const GLuint *ids )
GLboolean glIsQuery ( GLuint id )
void glBeginQuery ( GLenum target, GLuint id )
void glEndQuery ( GLenum target )
void glGetQueryiv ( GLenum target, GLenum pname, GLint *params )
void glGetQueryObjectuiv ( GLuint id, GLenum pname, GLuint *params )
GLboolean glUnmapBuffer ( GLenum target )
void glGetBufferPointerv ( GLenum target, GLenum pname, GLvoid **params )
void glDrawBuffers ( GLsizei n, const GLenum *bufs )
void glUniformMatrix2x3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
void glUniformMatrix3x2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
void glUniformMatrix2x4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
void glUniformMatrix4x2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
void glUniformMatrix3x4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
void glUniformMatrix4x3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value )
void glBlitFramebuffer ( GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter )
void glRenderbufferStorageMultisample ( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height )
void glFramebufferTextureLayer ( GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer )
GLvoid * glMapBufferRange ( GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access )
void glFlushMappedBufferRange ( GLenum target, GLintptr offset, GLsizeiptr length )
void glBindVertexArray ( GLuint array )
void glDeleteVertexArrays ( GLsizei n, const GLuint *arrays )
void glGenVertexArrays ( GLsizei n, GLuint *arrays )
GLboolean glIsVertexArray ( GLuint array )
void glGetIntegeri_v ( GLenum target, GLuint index, GLint *data )
void glBeginTransformFeedback ( GLenum primitiveMode )
void glEndTransformFeedback ( void )
void glBindBufferRange ( GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size )
void glBindBufferBase ( GLenum target, GLuint index, GLuint buffer )
void glTransformFeedbackVaryings ( GLuint program, GLsizei count, const GLchar *varyings, GLenum bufferMode )
void glGetTransformFeedbackVarying ( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name )
void glVertexAttribIPointer ( GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer )
void glVertexAttribIPointer ( GLuint index, GLint size, GLenum type, GLsizei stride, GLsizei offset )
void glGetVertexAttribIiv ( GLuint index, GLenum pname, GLint *params )
void glGetVertexAttribIuiv ( GLuint index, GLenum pname, GLuint *params )
void glVertexAttribI4i ( GLuint index, GLint x, GLint y, GLint z, GLint w )
void glVertexAttribI4ui ( GLuint index, GLuint x, GLuint y, GLuint z, GLuint w )
void glVertexAttribI4iv ( GLuint index, const GLint *v )
void glVertexAttribI4uiv ( GLuint index, const GLuint *v )
void glGetUniformuiv ( GLuint program, GLint location, GLuint *params )
GLint glGetFragDataLocation ( GLuint program, const GLchar *name )
void glUniform1ui ( GLint location, GLuint v0 )
void glUniform2ui ( GLint location, GLuint v0, GLuint v1 )
void glUniform3ui ( GLint location, GLuint v0, GLuint v1, GLuint v2 )
void glUniform4ui ( GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3 )
void glUniform1uiv ( GLint location, GLsizei count, const GLuint *value )
void glUniform2uiv ( GLint location, GLsizei count, const GLuint *value )
void glUniform3uiv ( GLint location, GLsizei count, const GLuint *value )
void glUniform4uiv ( GLint location, GLsizei count, const GLuint *value )
void glClearBufferiv ( GLenum buffer, GLint drawbuffer, const GLint *value )
void glClearBufferuiv ( GLenum buffer, GLint drawbuffer, const GLuint *value )
void glClearBufferfv ( GLenum buffer, GLint drawbuffer, const GLfloat *value )
void glClearBufferfi ( GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil )
const GLubyte * glGetStringi ( GLenum name, GLuint index )
void glCopyBufferSubData ( GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size )
void glGetUniformIndices ( GLuint program, GLsizei uniformCount, const GLchar *const *uniformNames, GLuint *uniformIndices )
void glGetActiveUniformsiv ( GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params )
GLuint glGetUniformBlockIndex ( GLuint program, const GLchar *uniformBlockName )
void glGetActiveUniformBlockiv ( GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params )
void glGetActiveUniformBlockName ( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName )
void glUniformBlockBinding ( GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding )
void glDrawArraysInstanced ( GLenum mode, GLint first, GLsizei count, GLsizei instanceCount )
void glDrawElementsInstanced ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCount )
GLsync glFenceSync ( GLenum condition, GLbitfield flags )
GLboolean glIsSync ( GLsync sync )
void glDeleteSync ( GLsync sync )
GLenum glClientWaitSync ( GLsync sync, GLbitfield flags, GLuint64 timeout )
void glWaitSync ( GLsync sync, GLbitfield flags, GLuint64 timeout )
void glGetInteger64v ( GLenum pname, GLint64 *params )
void glGetSynciv ( GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values )
void glGetInteger64i_v ( GLenum target, GLuint index, GLint64 *data )
void glGetBufferParameteri64v ( GLenum target, GLenum pname, GLint64 *params )
void glGenSamplers ( GLsizei count, GLuint *samplers )
void glDeleteSamplers ( GLsizei count, const GLuint *samplers )
GLboolean glIsSampler ( GLuint sampler )
void glBindSampler ( GLuint unit, GLuint sampler )
void glSamplerParameteri ( GLuint sampler, GLenum pname, GLint param )
void glSamplerParameteriv ( GLuint sampler, GLenum pname, const GLint *param )
void glSamplerParameterf ( GLuint sampler, GLenum pname, GLfloat param )
void glSamplerParameterfv ( GLuint sampler, GLenum pname, const GLfloat *param )
void glGetSamplerParameteriv ( GLuint sampler, GLenum pname, GLint *params )
void glGetSamplerParameterfv ( GLuint sampler, GLenum pname, GLfloat *params )
void glVertexAttribDivisor ( GLuint index, GLuint divisor )
void glBindTransformFeedback ( GLenum target, GLuint id )
void glDeleteTransformFeedbacks ( GLsizei n, const GLuint *ids )
void glGenTransformFeedbacks ( GLsizei n, GLuint *ids )
GLboolean glIsTransformFeedback ( GLuint id )
void glPauseTransformFeedback ( void )
void glResumeTransformFeedback ( void )
void glGetProgramBinary ( GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary )
void glProgramBinary ( GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length )
void glProgramParameteri ( GLuint program, GLenum pname, GLint value )
void glInvalidateFramebuffer ( GLenum target, GLsizei numAttachments, const GLenum *attachments )
void glInvalidateSubFramebuffer ( GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height )
void glTexStorage2D ( GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height )
void glTexStorage3D ( GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth )
void glGetInternalformativ ( GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params )
void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint offset )
