the current WebGL rendering context
a string containing the GLSL source code to set
a string containing the GLSL source code to set
Optionalprecision: stringfloat precision ('lowp', 'mediump' or 'highp').
// create a basic shader
let myShader = new me.GLShader(
// WebGL rendering context
gl,
// vertex shader
[
"void main() {",
" gl_Position = doMathToMakeClipspaceCoordinates;",
"}"
].join("\n"),
// fragment shader
[
"void main() {",
" gl_FragColor = doMathToMakeAColor;",
"}"
].join("\n")
)
// use the shader
myShader.bind();
the location attributes of the shader
Readonlydestroyedtrue once destroy has been called. After this flag is
true, every method on the shader is a silent no-op — callers
holding a stale reference (e.g. a still-registered update loop)
do not crash the frame.
the active gl rendering context
a reference to the shader program (once compiled)
Readonlysuspendedtrue while the WebGL context is lost (and until it's
restored). The GL program/attributes/uniforms are released
during the suspended window but the shader source code is
preserved so _onContextRestored can rebuild the
program against the new context. User code generally doesn't
read this — methods short-circuit internally — but it's
available for diagnostic / debug-plugin tooling.
the uniforms of the shader
Installs this shader program as part of current rendering state
destroy this shader objects resources (program, attributes, uniforms). Idempotent — calling destroy twice (or after a context-lost suspend) is safe. Unsubscribes from the renderer's context lost / restored events so a destroyed shader is never automatically resurrected.
returns the location of an attribute variable in this shader program
the name of the attribute variable whose location to get.
number indicating the location of the variable name if found. Returns -1 otherwise
activate the given vertex attribute for this shader
the current WebGL rendering context
an array of vertex attributes
the size of a single vertex in bytes
a base GL Shader object