Expand description
Supported Features:
global_loader
: Include all mechanisms necessary for calling GL using global functions.struct_loader
: Include all mechanisms necessary for calling GL as methods on a struct.debug_trace_calls
: if cfg!(debug_assertions), any call to a GL function willtrace!
what was called and with what args.debug_automatic_glGetError
: If cfg!(debug_assertions), this will automatically callglGetError
after every call to any other GL function. If an error code occurs it’s shown viaerror!
along with the name of the fn that had the error.log
: importstrace!
anderror!
macros from thelog
crate. Otherwise they just callprintln!
andeprintln!
respectively.chlorine
: gets all C types from thechlorine
crate (which isno_std
friendly). Otherwise they will be imported fromstd::os::raw
.bytemuck
: Adds support for thebytemuck
crate, mostly in the form ofbytemuck::Zeroable
onGlFns
.inline
: Tags all GL calls as#[inline]
.inline_always
: Tags all GL calls as#[inline(always)]
. This will effectively override theinline
feature.
The crate is no_std
friendly by default, but features above can end up
requiring std
to be available.
GL Loaders
The docs for this crate hosted on docs.rs generate both the
global_loader
and struct_loader
documentation for sake of completeness.
However, you are generally expected to use only one loader style in any particular project.
Each loader style has its own small advantages:
- The
global_loader
stores the GL fn pointers in staticAtomicPtr
values.- Call
load_global_gl_with
to initialize the pointers. - Each GL fn is available as a global fn under its standard
name, eg
glGetError()
. - This lets you call GL functions from anywhere at all, and it’s how you might expect to use GL if you have a C background.
- Being able to call GL from anywhere makes it easy to write Drop impls,
among other things.
In both styles, if you call a fn that isn’t loaded you will get a
panic. This generally only happens if the context doesn’t fully support
the GL version. You can check if a GL command is loaded or not before
actually calling it by adding
_is_loaded
to the name of the command. In other words,glGetError_is_loaded
to check ifglGetError
is globally loaded, andgl.GetError_is_loaded
to check if it’s loaded in aGlFns
. All of the “_is_loaded
” functions are hidden in the generated docs just to keep things tidy, but they’re there.
- Call
Safety
In general, there’s many ways that GL can go wrong.
For the purposes of this library, it’s important to focus on the fact that:
- Initially all functions are None pointers. If a fn is called when it’s in a None state then you’ll get a panic (reminder: a panic is safe).
- You can load pointers from the current GL context (described above).
- These pointers are technically context specific, though in practice different contexts for the same graphics driver often all share the same fn pointers.
- The loader has no way to verify that pointers it gets are actually pointers to the correct functions, it just trusts what you tell it.
- Since loading a fn pointer transitions the world from “it will definitely (safely) panic to call that GL command” to “it might be UB to call that GL command (even with the correct arguments)”, the act of simply loading a fn pointer is itself considered to be
unsafe
. - Individual GL commands are generally safe to use once they’ve been properly loaded for the current context, but this crate doesn’t attempt to sort out what is safe and what’s not. All GL commands are blanket marked as being
unsafe
. It’s up to you to try and manage this unsafety! Sorry, but this crate just does what you tell it to.
Modules
Contains functions for using the global GL loader.
Functions
glActiveShaderProgram(pipeline, program)
pipeline
class: program pipeline
program
class: program
glActiveTexture(texture)
texture
group: TextureUnit
glAttachShader(program, shader)
program
class: program
shader
class: shader
glBeginQuery(target, id)
target
group: QueryTarget
id
class: query
glBeginTransformFeedback(primitiveMode)
primitiveMode
group: PrimitiveType
glBindAttribLocation(program, index, name)
program
class: program
glBindBuffer(target, buffer)
target
group: BufferTargetARB
buffer
class: buffer
glBindBufferBase(target, index, buffer)
target
group: BufferTargetARB
buffer
class: buffer
glBindBufferRange(target, index, buffer, offset, size)
target
group: BufferTargetARB
buffer
class: buffer
offset
group: BufferOffset
size
group: BufferSize
glBindFramebuffer(target, framebuffer)
target
group: FramebufferTarget
framebuffer
class: framebuffer
glBindImageTexture(unit, texture, level, layered, layer, access, format)
texture
class: texture
access
group: BufferAccessARB
format
group: InternalFormat
glBindProgramPipeline(pipeline)
pipeline
class: program pipeline
glBindRenderbuffer(target, renderbuffer)
target
group: RenderbufferTarget
renderbuffer
class: renderbuffer
glBindSampler(unit, sampler)
sampler
class: sampler
glBindTexture(target, texture)
target
group: TextureTarget
texture
group: Texture
texture
class: texture
glBindTransformFeedback(target, id)
target
group: BindTransformFeedbackTarget
id
class: transform feedback
glBindVertexArray(array)
array
class: vertex array
glBindVertexBuffer(bindingindex, buffer, offset, stride)
buffer
class: buffer
offset
group: BufferOffset
glBlendColor(red, green, blue, alpha)
red
group: ColorF
green
group: ColorF
blue
group: ColorF
alpha
group: ColorF
glBlendEquation(mode)
mode
group: BlendEquationModeEXT
glBlendEquationSeparate(modeRGB, modeAlpha)
modeRGB
group: BlendEquationModeEXT
modeAlpha
group: BlendEquationModeEXT
glBlendEquationSeparatei(buf, modeRGB, modeAlpha)
modeRGB
group: BlendEquationModeEXT
modeAlpha
group: BlendEquationModeEXT
glBlendEquationi(buf, mode)
mode
group: BlendEquationModeEXT
glBlendFunc(sfactor, dfactor)
sfactor
group: BlendingFactor
dfactor
group: BlendingFactor
glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha)
sfactorRGB
group: BlendingFactor
dfactorRGB
group: BlendingFactor
sfactorAlpha
group: BlendingFactor
dfactorAlpha
group: BlendingFactor
glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha)
srcRGB
group: BlendingFactor
dstRGB
group: BlendingFactor
srcAlpha
group: BlendingFactor
dstAlpha
group: BlendingFactor
glBlendFunci(buf, src, dst)
src
group: BlendingFactor
dst
group: BlendingFactor
glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter)
mask
group: ClearBufferMask
filter
group: BlitFramebufferFilter
glBufferData(target, size, data, usage)
target
group: BufferTargetARB
size
group: BufferSize
data
len: size
usage
group: BufferUsageARB
glBufferSubData(target, offset, size, data)
target
group: BufferTargetARB
offset
group: BufferOffset
size
group: BufferSize
data
len: size
glCheckFramebufferStatus(target)
target
group: FramebufferTarget
return value group: FramebufferStatus
glClearBufferfi(buffer, drawbuffer, depth, stencil)
buffer
group: Buffer
drawbuffer
group: DrawBufferName
glClearBufferfv(buffer, drawbuffer, value)
buffer
group: Buffer
drawbuffer
group: DrawBufferName
value
len: COMPSIZE(buffer)
glClearBufferiv(buffer, drawbuffer, value)
buffer
group: Buffer
drawbuffer
group: DrawBufferName
value
len: COMPSIZE(buffer)
glClearBufferuiv(buffer, drawbuffer, value)
buffer
group: Buffer
drawbuffer
group: DrawBufferName
value
len: COMPSIZE(buffer)
glClearColor(red, green, blue, alpha)
red
group: ColorF
green
group: ColorF
blue
group: ColorF
alpha
group: ColorF
glClearStencil(s)
s
group: StencilValue
glClientWaitSync(sync, flags, timeout)
sync
group: sync
sync
class: sync
flags
group: SyncObjectMask
return value group: SyncStatus
glColorMask(red, green, blue, alpha)
glColorMaski(index, r, g, b, a)
glCompileShader(shader)
shader
class: shader
glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data)
target
group: TextureTarget
level
group: CheckedInt32
internalformat
group: InternalFormat
border
group: CheckedInt32
data
group: CompressedTextureARB
data
len: imageSize
glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data)
target
group: TextureTarget
level
group: CheckedInt32
internalformat
group: InternalFormat
border
group: CheckedInt32
data
group: CompressedTextureARB
data
len: imageSize
glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data)
target
group: TextureTarget
level
group: CheckedInt32
xoffset
group: CheckedInt32
yoffset
group: CheckedInt32
format
group: PixelFormat
data
group: CompressedTextureARB
data
len: imageSize
glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data)
target
group: TextureTarget
level
group: CheckedInt32
xoffset
group: CheckedInt32
yoffset
group: CheckedInt32
zoffset
group: CheckedInt32
format
group: PixelFormat
data
group: CompressedTextureARB
data
len: imageSize
glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size)
readTarget
group: CopyBufferSubDataTarget
writeTarget
group: CopyBufferSubDataTarget
readOffset
group: BufferOffset
writeOffset
group: BufferOffset
size
group: BufferSize
glCopyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth)
srcTarget
group: CopyImageSubDataTarget
dstTarget
group: CopyImageSubDataTarget
glCopyTexImage2D(target, level, internalformat, x, y, width, height, border)
target
group: TextureTarget
level
group: CheckedInt32
internalformat
group: InternalFormat
x
group: WinCoord
y
group: WinCoord
border
group: CheckedInt32
glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height)
target
group: TextureTarget
level
group: CheckedInt32
xoffset
group: CheckedInt32
yoffset
group: CheckedInt32
x
group: WinCoord
y
group: WinCoord
glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height)
target
group: TextureTarget
level
group: CheckedInt32
xoffset
group: CheckedInt32
yoffset
group: CheckedInt32
zoffset
group: CheckedInt32
x
group: WinCoord
y
group: WinCoord
glCreateProgram() return value class: program
glCreateShader(type_)
type_
group: ShaderType
return value class: shader
glCreateShaderProgramv(type_, count, strings)
type_
group: ShaderType
strings
len: count
return value class: program
glCullFace(mode)
mode
group: CullFaceMode
glDebugMessageCallback(callback, userParam)
glDebugMessageControl(source, type_, severity, count, ids, enabled)
source
group: DebugSource
type_
group: DebugType
severity
group: DebugSeverity
ids
len: count
glDebugMessageInsert(source, type_, id, severity, length, buf)
source
group: DebugSource
type_
group: DebugType
severity
group: DebugSeverity
buf
len: COMPSIZE(buf,length)
glDeleteBuffers(n, buffers)
buffers
len: n
buffers
class: buffer
glDeleteFramebuffers(n, framebuffers)
framebuffers
len: n
framebuffers
class: framebuffer
glDeleteProgram(program)
program
class: program
glDeleteProgramPipelines(n, pipelines)
pipelines
len: n
pipelines
class: program pipeline
glDeleteQueries(n, ids)
ids
len: n
ids
class: query
glDeleteRenderbuffers(n, renderbuffers)
renderbuffers
len: n
renderbuffers
class: renderbuffer
glDeleteSamplers(count, samplers)
samplers
len: count
samplers
class: sampler
glDeleteShader(shader)
shader
class: shader
glDeleteSync(sync)
sync
group: sync
sync
class: sync
glDeleteTextures(n, textures)
textures
group: Texture
textures
len: n
textures
class: texture
glDeleteTransformFeedbacks(n, ids)
ids
len: n
ids
class: transform feedback
glDeleteVertexArrays(n, arrays)
arrays
len: n
arrays
class: vertex array
glDepthFunc(func)
func
group: DepthFunction
glDepthMask(flag)
glDetachShader(program, shader)
program
class: program
shader
class: shader
glDisablei(target, index)
target
group: EnableCap
glDispatchCompute(num_groups_x, num_groups_y, num_groups_z)
glDispatchComputeIndirect(indirect)
indirect
group: BufferOffset
glDrawArrays(mode, first, count)
mode
group: PrimitiveType
glDrawArraysIndirect(mode, indirect)
mode
group: PrimitiveType
glDrawArraysInstanced(mode, first, count, instancecount)
mode
group: PrimitiveType
glDrawBuffers(n, bufs)
bufs
group: DrawBufferMode
bufs
len: n
glDrawElements(mode, count, type_, indices)
mode
group: PrimitiveType
type_
group: DrawElementsType
indices
len: COMPSIZE(count,type)
glDrawElementsBaseVertex(mode, count, type_, indices, basevertex)
mode
group: PrimitiveType
type_
group: DrawElementsType
indices
len: COMPSIZE(count,type)
glDrawElementsIndirect(mode, type_, indirect)
mode
group: PrimitiveType
type_
group: DrawElementsType
glDrawElementsInstanced(mode, count, type_, indices, instancecount)
mode
group: PrimitiveType
type_
group: DrawElementsType
indices
len: COMPSIZE(count,type)
glDrawElementsInstancedBaseVertex(mode, count, type_, indices, instancecount, basevertex)
mode
group: PrimitiveType
type_
group: DrawElementsType
indices
len: COMPSIZE(count,type)
glDrawRangeElements(mode, start, end, count, type_, indices)
mode
group: PrimitiveType
type_
group: DrawElementsType
indices
len: COMPSIZE(count,type)
glDrawRangeElementsBaseVertex(mode, start, end, count, type_, indices, basevertex)
mode
group: PrimitiveType
type_
group: DrawElementsType
indices
len: COMPSIZE(count,type)
glEndQuery(target)
target
group: QueryTarget
glFenceSync(condition, flags)
condition
group: SyncCondition
flags
group: SyncBehaviorFlags
return value group: sync
return value class: sync
glFlushMappedBufferRange(target, offset, length)
target
group: BufferTargetARB
offset
group: BufferOffset
length
group: BufferSize
glFramebufferParameteri(target, pname, param)
target
group: FramebufferTarget
pname
group: FramebufferParameterName
glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer)
target
group: FramebufferTarget
attachment
group: FramebufferAttachment
renderbuffertarget
group: RenderbufferTarget
renderbuffer
class: renderbuffer
glFramebufferTexture(target, attachment, texture, level)
target
group: FramebufferTarget
attachment
group: FramebufferAttachment
texture
class: texture
glFramebufferTexture2D(target, attachment, textarget, texture, level)
target
group: FramebufferTarget
attachment
group: FramebufferAttachment
textarget
group: TextureTarget
texture
class: texture
glFramebufferTextureLayer(target, attachment, texture, level, layer)
target
group: FramebufferTarget
attachment
group: FramebufferAttachment
texture
group: Texture
texture
class: texture
level
group: CheckedInt32
layer
group: CheckedInt32
glFrontFace(mode)
mode
group: FrontFaceDirection
glGenBuffers(n, buffers)
buffers
len: n
buffers
class: buffer
glGenFramebuffers(n, framebuffers)
framebuffers
len: n
framebuffers
class: framebuffer
glGenProgramPipelines(n, pipelines)
pipelines
len: n
pipelines
class: program pipeline
glGenQueries(n, ids)
ids
len: n
ids
class: query
glGenRenderbuffers(n, renderbuffers)
renderbuffers
len: n
renderbuffers
class: renderbuffer
glGenSamplers(count, samplers)
samplers
len: count
samplers
class: sampler
glGenTextures(n, textures)
textures
group: Texture
textures
len: n
textures
class: texture
glGenTransformFeedbacks(n, ids)
ids
len: n
ids
class: transform feedback
glGenVertexArrays(n, arrays)
arrays
len: n
arrays
class: vertex array
glGenerateMipmap(target)
target
group: TextureTarget
glGetActiveAttrib(program, index, bufSize, length, size, type_, name)
program
class: program
length
len: 1
size
len: 1
type_
group: AttributeType
type_
len: 1
name
len: bufSize
glGetActiveUniform(program, index, bufSize, length, size, type_, name)
program
class: program
length
len: 1
size
len: 1
type_
group: UniformType
type_
len: 1
name
len: bufSize
glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName)
program
class: program
length
len: 1
uniformBlockName
len: bufSize
glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params)
program
class: program
pname
group: UniformBlockPName
params
len: COMPSIZE(program,uniformBlockIndex,pname)
glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params)
program
class: program
uniformIndices
len: uniformCount
pname
group: UniformPName
params
len: COMPSIZE(uniformCount,pname)
glGetAttachedShaders(program, maxCount, count, shaders)
program
class: program
count
len: 1
shaders
len: maxCount
shaders
class: shader
glGetAttribLocation(program, name)
program
class: program
glGetBooleani_v(target, index, data)
target
group: BufferTargetARB
data
len: COMPSIZE(target)
glGetBooleanv(pname, data)
pname
group: GetPName
data
len: COMPSIZE(pname)
glGetBufferParameteri64v(target, pname, params)
target
group: BufferTargetARB
pname
group: BufferPNameARB
params
len: COMPSIZE(pname)
glGetBufferParameteriv(target, pname, params)
target
group: BufferTargetARB
pname
group: BufferPNameARB
params
len: COMPSIZE(pname)
glGetBufferPointerv(target, pname, params)
target
group: BufferTargetARB
pname
group: BufferPointerNameARB
params
len: 1
glGetDebugMessageLog(count, bufSize, sources, types, ids, severities, lengths, messageLog)
sources
group: DebugSource
sources
len: count
types
group: DebugType
types
len: count
ids
len: count
severities
group: DebugSeverity
severities
len: count
lengths
len: count
messageLog
len: bufSize
glGetError() return value group: ErrorCode
glGetFloatv(pname, data)
pname
group: GetPName
data
len: COMPSIZE(pname)
glGetFragDataLocation(program, name)
program
class: program
name
len: COMPSIZE(name)
glGetFramebufferAttachmentParameteriv(target, attachment, pname, params)
target
group: FramebufferTarget
attachment
group: FramebufferAttachment
pname
group: FramebufferAttachmentParameterName
params
len: COMPSIZE(pname)
glGetFramebufferParameteriv(target, pname, params)
target
group: FramebufferTarget
pname
group: FramebufferAttachmentParameterName
params
len: COMPSIZE(pname)
glGetGraphicsResetStatus() return value group: GraphicsResetStatus
glGetInteger64i_v(target, index, data)
target
group: GetPName
data
len: COMPSIZE(target)
glGetInteger64v(pname, data)
pname
group: GetPName
data
len: COMPSIZE(pname)
glGetIntegeri_v(target, index, data)
target
group: GetPName
data
len: COMPSIZE(target)
glGetIntegerv(pname, data)
pname
group: GetPName
data
len: COMPSIZE(pname)
glGetInternalformativ(target, internalformat, pname, count, params)
target
group: TextureTarget
internalformat
group: InternalFormat
pname
group: InternalFormatPName
params
len: count
glGetMultisamplefv(pname, index, val)
pname
group: GetMultisamplePNameNV
val
len: COMPSIZE(pname)
glGetObjectLabel(identifier, name, bufSize, length, label)
identifier
group: ObjectIdentifier
length
len: 1
label
len: bufSize
glGetObjectPtrLabel(ptr, bufSize, length, label)
length
len: 1
label
len: bufSize
glGetPointerv(pname, params)
pname
group: GetPointervPName
params
len: 1
glGetProgramBinary(program, bufSize, length, binaryFormat, binary)
program
class: program
length
len: 1
binaryFormat
len: 1
binary
len: bufSize
glGetProgramInfoLog(program, bufSize, length, infoLog)
program
class: program
length
len: 1
infoLog
len: bufSize
glGetProgramInterfaceiv(program, programInterface, pname, params)
program
class: program
programInterface
group: ProgramInterface
pname
group: ProgramInterfacePName
params
len: COMPSIZE(pname)
glGetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog)
pipeline
class: program pipeline
length
len: 1
infoLog
len: bufSize
glGetProgramPipelineiv(pipeline, pname, params)
pipeline
class: program pipeline
pname
group: PipelineParameterName
params
len: COMPSIZE(pname)
glGetProgramResourceIndex(program, programInterface, name)
program
class: program
programInterface
group: ProgramInterface
name
len: COMPSIZE(name)
glGetProgramResourceLocation(program, programInterface, name)
program
class: program
programInterface
group: ProgramInterface
name
len: COMPSIZE(name)
glGetProgramResourceName(program, programInterface, index, bufSize, length, name)
program
class: program
programInterface
group: ProgramInterface
length
len: 1
name
len: bufSize
glGetProgramResourceiv(program, programInterface, index, propCount, props, count, length, params)
program
class: program
programInterface
group: ProgramInterface
props
group: ProgramResourceProperty
props
len: propCount
length
len: 1
params
len: count
glGetProgramiv(program, pname, params)
program
class: program
pname
group: ProgramPropertyARB
params
len: COMPSIZE(pname)
glGetQueryObjectuiv(id, pname, params)
id
class: query
pname
group: QueryObjectParameterName
params
len: COMPSIZE(pname)
glGetQueryiv(target, pname, params)
target
group: QueryTarget
pname
group: QueryParameterName
params
len: COMPSIZE(pname)
glGetRenderbufferParameteriv(target, pname, params)
target
group: RenderbufferTarget
pname
group: RenderbufferParameterName
params
len: COMPSIZE(pname)
glGetSamplerParameterIiv(sampler, pname, params)
sampler
class: sampler
pname
group: SamplerParameterI
params
len: COMPSIZE(pname)
glGetSamplerParameterIuiv(sampler, pname, params)
sampler
class: sampler
pname
group: SamplerParameterI
params
len: COMPSIZE(pname)
glGetSamplerParameterfv(sampler, pname, params)
sampler
class: sampler
pname
group: SamplerParameterF
params
len: COMPSIZE(pname)
glGetSamplerParameteriv(sampler, pname, params)
sampler
class: sampler
pname
group: SamplerParameterI
params
len: COMPSIZE(pname)
glGetShaderInfoLog(shader, bufSize, length, infoLog)
shader
class: shader
length
len: 1
infoLog
len: bufSize
glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision)
shadertype
group: ShaderType
precisiontype
group: PrecisionType
range
len: 2
precision
len: 1
glGetShaderSource(shader, bufSize, length, source)
shader
class: shader
length
len: 1
source
len: bufSize
glGetShaderiv(shader, pname, params)
shader
class: shader
pname
group: ShaderParameterName
params
len: COMPSIZE(pname)
glGetString(name)
name
group: StringName
return value group: String
glGetStringi(name, index)
name
group: StringName
return value group: String
glGetSynciv(sync, pname, count, length, values)
sync
group: sync
sync
class: sync
pname
group: SyncParameterName
length
len: 1
values
len: count
glGetTexLevelParameterfv(target, level, pname, params)
target
group: TextureTarget
level
group: CheckedInt32
pname
group: GetTextureParameter
params
len: COMPSIZE(pname)
glGetTexLevelParameteriv(target, level, pname, params)
target
group: TextureTarget
level
group: CheckedInt32
pname
group: GetTextureParameter
params
len: COMPSIZE(pname)
glGetTexParameterIiv(target, pname, params)
target
group: TextureTarget
pname
group: GetTextureParameter
params
len: COMPSIZE(pname)
glGetTexParameterIuiv(target, pname, params)
target
group: TextureTarget
pname
group: GetTextureParameter
params
len: COMPSIZE(pname)
glGetTexParameterfv(target, pname, params)
target
group: TextureTarget
pname
group: GetTextureParameter
params
len: COMPSIZE(pname)
glGetTexParameteriv(target, pname, params)
target
group: TextureTarget
pname
group: GetTextureParameter
params
len: COMPSIZE(pname)
glGetTransformFeedbackVarying(program, index, bufSize, length, size, type_, name)
program
class: program
length
len: 1
size
len: 1
type_
group: AttributeType
type_
len: 1
name
len: bufSize
glGetUniformBlockIndex(program, uniformBlockName)
program
class: program
uniformBlockName
len: COMPSIZE()
glGetUniformIndices(program, uniformCount, uniformNames, uniformIndices)
program
class: program
uniformNames
len: COMPSIZE(uniformCount)
uniformIndices
len: COMPSIZE(uniformCount)
glGetUniformLocation(program, name)
program
class: program
glGetUniformfv(program, location, params)
program
class: program
params
len: COMPSIZE(program,location)
glGetUniformiv(program, location, params)
program
class: program
params
len: COMPSIZE(program,location)
glGetUniformuiv(program, location, params)
program
class: program
params
len: COMPSIZE(program,location)
glGetVertexAttribIiv(index, pname, params)
pname
group: VertexAttribEnum
params
len: 1
glGetVertexAttribIuiv(index, pname, params)
pname
group: VertexAttribEnum
params
len: 1
glGetVertexAttribPointerv(index, pname, pointer)
pname
group: VertexAttribPointerPropertyARB
pointer
len: 1
glGetVertexAttribfv(index, pname, params)
pname
group: VertexAttribPropertyARB
params
len: 4
glGetVertexAttribiv(index, pname, params)
pname
group: VertexAttribPropertyARB
params
len: 4
glGetnUniformfv(program, location, bufSize, params)
program
class: program
params
len: bufSize / 4
glGetnUniformiv(program, location, bufSize, params)
program
class: program
params
len: bufSize / 4
glGetnUniformuiv(program, location, bufSize, params)
program
class: program
params
len: bufSize / 4
glInvalidateFramebuffer(target, numAttachments, attachments)
target
group: FramebufferTarget
attachments
group: InvalidateFramebufferAttachment
attachments
len: numAttachments
glInvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height)
target
group: FramebufferTarget
attachments
group: InvalidateFramebufferAttachment
attachments
len: numAttachments
glIsBuffer(buffer)
buffer
class: buffer
glIsEnabled(cap)
cap
group: EnableCap
glIsEnabledi(target, index)
target
group: EnableCap
glIsFramebuffer(framebuffer)
framebuffer
class: framebuffer
glIsProgram(program)
program
class: program
glIsProgramPipeline(pipeline)
pipeline
class: program pipeline
glIsRenderbuffer(renderbuffer)
renderbuffer
class: renderbuffer
glIsSampler(sampler)
sampler
class: sampler
glIsShader(shader)
shader
class: shader
glIsTexture(texture)
texture
group: Texture
texture
class: texture
glIsTransformFeedback(id)
id
class: transform feedback
glIsVertexArray(array)
array
class: vertex array
glLineWidth(width)
width
group: CheckedFloat32
glLinkProgram(program)
program
class: program
glMapBufferRange(target, offset, length, access)
target
group: BufferTargetARB
offset
group: BufferOffset
length
group: BufferSize
access
group: MapBufferAccessMask
glMemoryBarrier(barriers)
barriers
group: MemoryBarrierMask
glMemoryBarrierByRegion(barriers)
barriers
group: MemoryBarrierMask
glMinSampleShading(value)
value
group: ColorF
glObjectLabel(identifier, name, length, label)
identifier
group: ObjectIdentifier
label
len: COMPSIZE(label,length)
glObjectPtrLabel(ptr, length, label)
label
len: COMPSIZE(label,length)
glPatchParameteri(pname, value)
pname
group: PatchParameterName
glPixelStorei(pname, param)
pname
group: PixelStoreParameter
param
group: CheckedInt32
glPolygonOffset(factor, units)
glPrimitiveBoundingBox(minX, minY, minZ, minW, maxX, maxY, maxZ, maxW)
glProgramBinary(program, binaryFormat, binary, length)
program
class: program
binary
len: length
glProgramParameteri(program, pname, value)
program
class: program
pname
group: ProgramParameterPName
glProgramUniform1f(program, location, v0)
program
class: program
glProgramUniform1fv(program, location, count, value)
program
class: program
value
len: count
glProgramUniform1i(program, location, v0)
program
class: program
glProgramUniform1iv(program, location, count, value)
program
class: program
value
len: count
glProgramUniform1ui(program, location, v0)
program
class: program
glProgramUniform1uiv(program, location, count, value)
program
class: program
value
len: count
glProgramUniform2f(program, location, v0, v1)
program
class: program
glProgramUniform2fv(program, location, count, value)
program
class: program
value
len: count*2
glProgramUniform2i(program, location, v0, v1)
program
class: program
glProgramUniform2iv(program, location, count, value)
program
class: program
value
len: count*2
glProgramUniform2ui(program, location, v0, v1)
program
class: program
glProgramUniform2uiv(program, location, count, value)
program
class: program
value
len: count*2
glProgramUniform3f(program, location, v0, v1, v2)
program
class: program
glProgramUniform3fv(program, location, count, value)
program
class: program
value
len: count*3
glProgramUniform3i(program, location, v0, v1, v2)
program
class: program
glProgramUniform3iv(program, location, count, value)
program
class: program
value
len: count*3
glProgramUniform3ui(program, location, v0, v1, v2)
program
class: program
glProgramUniform3uiv(program, location, count, value)
program
class: program
value
len: count*3
glProgramUniform4f(program, location, v0, v1, v2, v3)
program
class: program
glProgramUniform4fv(program, location, count, value)
program
class: program
value
len: count*4
glProgramUniform4i(program, location, v0, v1, v2, v3)
program
class: program
glProgramUniform4iv(program, location, count, value)
program
class: program
value
len: count*4
glProgramUniform4ui(program, location, v0, v1, v2, v3)
program
class: program
glProgramUniform4uiv(program, location, count, value)
program
class: program
value
len: count*4
glProgramUniformMatrix2fv(program, location, count, transpose, value)
program
class: program
value
len: count*4
glProgramUniformMatrix2x3fv(program, location, count, transpose, value)
program
class: program
value
len: count*6
glProgramUniformMatrix2x4fv(program, location, count, transpose, value)
program
class: program
value
len: count*8
glProgramUniformMatrix3fv(program, location, count, transpose, value)
program
class: program
value
len: count*9
glProgramUniformMatrix3x2fv(program, location, count, transpose, value)
program
class: program
value
len: count*6
glProgramUniformMatrix3x4fv(program, location, count, transpose, value)
program
class: program
value
len: count*12
glProgramUniformMatrix4fv(program, location, count, transpose, value)
program
class: program
value
len: count*16
glProgramUniformMatrix4x2fv(program, location, count, transpose, value)
program
class: program
value
len: count*8
glProgramUniformMatrix4x3fv(program, location, count, transpose, value)
program
class: program
value
len: count*12
glPushDebugGroup(source, id, length, message)
source
group: DebugSource
message
len: COMPSIZE(message,length)
glReadBuffer(src)
src
group: ReadBufferMode
glReadPixels(x, y, width, height, format, type_, pixels)
x
group: WinCoord
y
group: WinCoord
format
group: PixelFormat
type_
group: PixelType
pixels
len: COMPSIZE(format,type,width,height)
glReadnPixels(x, y, width, height, format, type_, bufSize, data)
format
group: PixelFormat
type_
group: PixelType
data
len: bufSize
glRenderbufferStorage(target, internalformat, width, height)
target
group: RenderbufferTarget
internalformat
group: InternalFormat
glRenderbufferStorageMultisample(target, samples, internalformat, width, height)
target
group: RenderbufferTarget
internalformat
group: InternalFormat
glSampleCoverage(value, invert)
glSampleMaski(maskNumber, mask)
glSamplerParameterIiv(sampler, pname, param)
sampler
class: sampler
pname
group: SamplerParameterI
param
len: COMPSIZE(pname)
glSamplerParameterIuiv(sampler, pname, param)
sampler
class: sampler
pname
group: SamplerParameterI
param
len: COMPSIZE(pname)
glSamplerParameterf(sampler, pname, param)
sampler
class: sampler
pname
group: SamplerParameterF
glSamplerParameterfv(sampler, pname, param)
sampler
class: sampler
pname
group: SamplerParameterF
param
len: COMPSIZE(pname)
glSamplerParameteri(sampler, pname, param)
sampler
class: sampler
pname
group: SamplerParameterI
glSamplerParameteriv(sampler, pname, param)
sampler
class: sampler
pname
group: SamplerParameterI
param
len: COMPSIZE(pname)
glShaderBinary(count, shaders, binaryFormat, binary, length)
shaders
len: count
shaders
class: shader
binaryFormat
group: ShaderBinaryFormat
binary
len: length
glShaderSource(shader, count, string, length)
shader
class: shader
string
len: count
length
len: count
glStencilFunc(func, ref_, mask)
func
group: StencilFunction
ref_
group: StencilValue
mask
group: MaskedStencilValue
glStencilFuncSeparate(face, func, ref_, mask)
face
group: StencilFaceDirection
func
group: StencilFunction
ref_
group: StencilValue
mask
group: MaskedStencilValue
glStencilMask(mask)
mask
group: MaskedStencilValue
glStencilMaskSeparate(face, mask)
face
group: StencilFaceDirection
mask
group: MaskedStencilValue
glStencilOp(fail, zfail, zpass)
fail
group: StencilOp
zfail
group: StencilOp
zpass
group: StencilOp
glStencilOpSeparate(face, sfail, dpfail, dppass)
face
group: StencilFaceDirection
sfail
group: StencilOp
dpfail
group: StencilOp
dppass
group: StencilOp
glTexBuffer(target, internalformat, buffer)
target
group: TextureTarget
internalformat
group: SizedInternalFormat
buffer
class: buffer
glTexBufferRange(target, internalformat, buffer, offset, size)
target
group: TextureTarget
internalformat
group: SizedInternalFormat
buffer
class: buffer
offset
group: BufferOffset
size
group: BufferSize
glTexImage2D(target, level, internalformat, width, height, border, format, type_, pixels)
target
group: TextureTarget
level
group: CheckedInt32
internalformat
group: InternalFormat
border
group: CheckedInt32
format
group: PixelFormat
type_
group: PixelType
pixels
len: COMPSIZE(format,type,width,height)
glTexImage3D(target, level, internalformat, width, height, depth, border, format, type_, pixels)
target
group: TextureTarget
level
group: CheckedInt32
internalformat
group: InternalFormat
border
group: CheckedInt32
format
group: PixelFormat
type_
group: PixelType
pixels
len: COMPSIZE(format,type,width,height,depth)
glTexParameterIiv(target, pname, params)
target
group: TextureTarget
pname
group: TextureParameterName
params
len: COMPSIZE(pname)
glTexParameterIuiv(target, pname, params)
target
group: TextureTarget
pname
group: TextureParameterName
params
len: COMPSIZE(pname)
glTexParameterf(target, pname, param)
target
group: TextureTarget
pname
group: TextureParameterName
param
group: CheckedFloat32
glTexParameterfv(target, pname, params)
target
group: TextureTarget
pname
group: TextureParameterName
params
group: CheckedFloat32
params
len: COMPSIZE(pname)
glTexParameteri(target, pname, param)
target
group: TextureTarget
pname
group: TextureParameterName
param
group: CheckedInt32
glTexParameteriv(target, pname, params)
target
group: TextureTarget
pname
group: TextureParameterName
params
group: CheckedInt32
params
len: COMPSIZE(pname)
glTexStorage2D(target, levels, internalformat, width, height)
target
group: TextureTarget
internalformat
group: SizedInternalFormat
glTexStorage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations)
target
group: TextureTarget
internalformat
group: SizedInternalFormat
glTexStorage3D(target, levels, internalformat, width, height, depth)
target
group: TextureTarget
internalformat
group: SizedInternalFormat
glTexStorage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations)
target
group: TextureTarget
internalformat
group: SizedInternalFormat
glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type_, pixels)
target
group: TextureTarget
level
group: CheckedInt32
xoffset
group: CheckedInt32
yoffset
group: CheckedInt32
format
group: PixelFormat
type_
group: PixelType
pixels
len: COMPSIZE(format,type,width,height)
glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type_, pixels)
target
group: TextureTarget
level
group: CheckedInt32
xoffset
group: CheckedInt32
yoffset
group: CheckedInt32
zoffset
group: CheckedInt32
format
group: PixelFormat
type_
group: PixelType
pixels
len: COMPSIZE(format,type,width,height,depth)
glTransformFeedbackVaryings(program, count, varyings, bufferMode)
program
class: program
varyings
len: count
bufferMode
group: TransformFeedbackBufferMode
glUniform1f(location, v0)
glUniform1fv(location, count, value)
value
len: count*1
glUniform1i(location, v0)
glUniform1iv(location, count, value)
value
len: count*1
glUniform1ui(location, v0)
glUniform1uiv(location, count, value)
value
len: count*1
glUniform2f(location, v0, v1)
glUniform2fv(location, count, value)
value
len: count*2
glUniform2i(location, v0, v1)
glUniform2iv(location, count, value)
value
len: count*2
glUniform2ui(location, v0, v1)
glUniform2uiv(location, count, value)
value
len: count*2
glUniform3f(location, v0, v1, v2)
glUniform3fv(location, count, value)
value
len: count*3
glUniform3i(location, v0, v1, v2)
glUniform3iv(location, count, value)
value
len: count*3
glUniform3ui(location, v0, v1, v2)
glUniform3uiv(location, count, value)
value
len: count*3
glUniform4f(location, v0, v1, v2, v3)
glUniform4fv(location, count, value)
value
len: count*4
glUniform4i(location, v0, v1, v2, v3)
glUniform4iv(location, count, value)
value
len: count*4
glUniform4ui(location, v0, v1, v2, v3)
glUniform4uiv(location, count, value)
value
len: count*4
glUniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding)
program
class: program
glUniformMatrix2fv(location, count, transpose, value)
value
len: count*4
glUniformMatrix2x3fv(location, count, transpose, value)
value
len: count*6
glUniformMatrix2x4fv(location, count, transpose, value)
value
len: count*8
glUniformMatrix3fv(location, count, transpose, value)
value
len: count*9
glUniformMatrix3x2fv(location, count, transpose, value)
value
len: count*6
glUniformMatrix3x4fv(location, count, transpose, value)
value
len: count*12
glUniformMatrix4fv(location, count, transpose, value)
value
len: count*16
glUniformMatrix4x2fv(location, count, transpose, value)
value
len: count*8
glUniformMatrix4x3fv(location, count, transpose, value)
value
len: count*12
glUnmapBuffer(target)
target
group: BufferTargetARB
glUseProgram(program)
program
class: program
glUseProgramStages(pipeline, stages, program)
pipeline
class: program pipeline
stages
group: UseProgramStageMask
program
class: program
glValidateProgram(program)
program
class: program
glValidateProgramPipeline(pipeline)
pipeline
class: program pipeline
glVertexAttrib1f(index, x)
vector equivalent: glVertexAttrib1fv
glVertexAttrib1fv(index, v)
v
len: 1
glVertexAttrib2f(index, x, y)
vector equivalent: glVertexAttrib2fv
glVertexAttrib2fv(index, v)
v
len: 2
glVertexAttrib3f(index, x, y, z)
vector equivalent: glVertexAttrib3fv
glVertexAttrib3fv(index, v)
v
len: 3
glVertexAttrib4f(index, x, y, z, w)
vector equivalent: glVertexAttrib4fv
glVertexAttrib4fv(index, v)
v
len: 4
glVertexAttribBinding(attribindex, bindingindex)
glVertexAttribDivisor(index, divisor)
glVertexAttribFormat(attribindex, size, type_, normalized, relativeoffset)
type_
group: VertexAttribType
glVertexAttribI4i(index, x, y, z, w)
vector equivalent: glVertexAttribI4iv
glVertexAttribI4iv(index, v)
v
len: 4
glVertexAttribI4ui(index, x, y, z, w)
vector equivalent: glVertexAttribI4uiv
glVertexAttribI4uiv(index, v)
v
len: 4
glVertexAttribIFormat(attribindex, size, type_, relativeoffset)
type_
group: VertexAttribIType
glVertexAttribIPointer(index, size, type_, stride, pointer)
type_
group: VertexAttribIType
pointer
len: COMPSIZE(size,type,stride)
glVertexAttribPointer(index, size, type_, normalized, stride, pointer)
type_
group: VertexAttribPointerType
pointer
len: COMPSIZE(size,type,stride)
glVertexBindingDivisor(bindingindex, divisor)
glViewport(x, y, width, height)
x
group: WinCoord
y
group: WinCoord
glWaitSync(sync, flags, timeout)
sync
group: sync
sync
class: sync
flags
group: SyncBehaviorFlags
Loads all global functions using the get_proc_address
given.