Skip to content

ShaderProgram ​

Methods ​

attachShader ​

Attach a compiled shader to the program.

ArgumentTypeRequiredDescription
shaderYesThe shader to attach.

bind ​

Make this program the current one, linking it first if needed.

Returns ​

TypeDescription
booleanTrue when the program is bound.

cleanup ​

Release the program and detach and delete its shaders.

compileShader ​

Compile the vertex and fragment shaders, attach them and link the program.

Returns ​

TypeDescription
number1 on success, 0 on failure.

detachShader ​

Detach a shader from the program.

ArgumentTypeRequiredDescription
shaderYesThe shader to detach.

findUniform ​

Get the cached location of a uniform, or -1 when it is not used.

ArgumentTypeRequiredDescription
nameYesThe uniform name.

getBound ​

Whether the program is currently bound.

getCompiled ​

Whether the program has been compiled.

getError ​

Get the last error message.

getFragmentShader ​

Get the fragment shader.

getGeometryShader ​

Get the geometry shader. WebGL has no geometry stage; it is kept for source substitution only.

getHandle ​

Get the underlying GL program object, or 0 when it has not been created.

getLastCameraMTime ​

Get the MTime of the camera the camera uniforms were last set from.

getLinked ​

Whether the program has been linked.

getMd5Hash ​

Get the hash of the shader sources this program was built from.

getVertexShader ​

Get the vertex shader.

isAttributeUsed ​

Whether the given attribute exists in the linked program.

ArgumentTypeRequiredDescription
nameYesThe attribute name.

isBound ​

Whether this program is the current one.

isUniformUsed ​

Whether the given uniform exists in the linked program.

ArgumentTypeRequiredDescription
nameYesThe uniform name.

Link the program.

Returns ​

TypeDescription
booleanTrue when the program is linked.

release ​

Unbind this program.

replace ​

Whether the substitution changed the source.

result ​

The resulting source.

setBound ​

Set the bound flag.

ArgumentTypeRequiredDescription
boundYesThe bound flag.

setCompiled ​

Set the compiled flag.

ArgumentTypeRequiredDescription
compiledYesThe compiled flag.

setContext ​

Set the WebGL context of the program and of its shaders.

ArgumentTypeRequiredDescription
contextYesThe WebGL context.

setError ​

Set the error message.

ArgumentTypeRequiredDescription
errorYesThe error message.

setFragmentShader ​

Set the fragment shader.

ArgumentTypeRequiredDescription
fragmentShaderYesThe fragment shader.

setGeometryShader ​

Set the geometry shader.

ArgumentTypeRequiredDescription
geometryShaderYesThe geometry shader.

setHandle ​

Set the underlying GL program object.

ArgumentTypeRequiredDescription
handleYesThe GL program object.

setLastCameraMTime ​

Set the MTime of the camera the camera uniforms were last set from.

ArgumentTypeRequiredDescription
mtimeYesThe camera MTime.

setLinked ​

Set the linked flag.

ArgumentTypeRequiredDescription
linkedYesThe linked flag.

setMd5Hash ​

Set the hash of the shader sources this program was built from.

ArgumentTypeRequiredDescription
md5HashYesThe hash.

setUniform2f ​

Set a vec2 uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
v1YesThe first component.
v2YesThe second component.

setUniform2fv ​

Set a vec2 array uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
vYesThe values.

setUniform2i ​

Set an ivec2 uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
v1YesThe first component.
v2YesThe second component.

setUniform2iv ​

Set an ivec2 array uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
vYesThe values.

setUniform3f ​

Set a vec3 uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
a1YesThe first component.
a2YesThe second component.
a3YesThe third component.

setUniform3fArray ​

Set a vec3 uniform from an array of exactly three values.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
aYesThe three components.

setUniform3fv ​

Set a vec3 array uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
vYesThe values.

setUniform3i ​

Set an ivec3 uniform, either as three arguments or as a single array of three values.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
argsYesThe three components.

setUniform3iv ​

Set an ivec3 array uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
vYesThe values.

setUniform4f ​

Set a vec4 uniform, either as four arguments or as a single array of four values.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
argsYesThe four components.

setUniform4fv ​

Set a vec4 array uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
vYesThe values.

setUniform4i ​

Set an ivec4 uniform, either as four arguments or as a single array of four values.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
argsYesThe four components.

setUniform4iv ​

Set an ivec4 array uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
vYesThe values.

setUniformMatrix ​

Set a mat4 uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
vYesThe 16 matrix values.

setUniformMatrix3x3 ​

Set a mat3 uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
vYesThe 9 matrix values.

setUniformf ​

Set a float uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
vYesThe value.

setUniformfv ​

Set a float array uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
vYesThe values.

setUniformi ​

Set an int uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
vYesThe value.

setUniformiv ​

Set an int array uniform.

ArgumentTypeRequiredDescription
nameYesThe uniform name.
vYesThe values.

setVertexShader ​

Set the vertex shader.

ArgumentTypeRequiredDescription
vertexShaderYesThe vertex shader.

substitute ​

Perform string substitutions on shader source, used to build up shader strings from templates.

ArgumentTypeRequiredDescription
sourceYesThe source to substitute into.
searchYesThe string or pattern to replace.
replaceYesThe replacement, joined with newlines when an array.
allBooleanNo(default: true) When false, only the first occurrence is replaced.