ShaderProgram
Source: ShaderProgram.ts:43
Modifiers: public
Represents more comfortable using WebGL shader program.
Constructor
new ShaderProgram(
name: string,
material: ProgramMaterial,
): ShaderProgramShader program name.
Parameters
name(string) — ShaderProgram name.material(ProgramMaterial) — Object stores uniforms, attributes and program codes:material.uniforms(Record.<string, any>) — Uniforms definition section.material.attributes(Record.<string, any>) — Attributes definition section.material.vertexShader(string) — Vertex glsl code.material.fragmentShader(string) — Fragment glsl code.
Instance Methods
attach(handler: Handler): ShaderProgram
Attaches this shader program to a handler.
Parameters
handler(Handler) — WebGL handler.
Returns
initialize(): ShaderProgram
Initializes this shader program using handler WebGL context.
Returns
use()
Makes this shader program current in WebGL context.
activate(): ShaderProgram
Activates this shader program and disables previously active one.
Returns
deactivate(): ShaderProgram
Deactivates this shader program.
Returns
isActive(): boolean
Returns true if this shader program is active.
Returns
boolean
remove()
Removes this shader program from its handler and releases WebGL program.
set(material: Record.<string, any>): ShaderProgram
Sets provided shader variables and applies them. Automatically activates this shader program.
Parameters
material(Record.<string, any>) — Variable values by variable name.
Returns
apply()
Applies currently stored shader variable values.
drawIndexBuffer(
mode: number,
buffer: WebGLBufferExt,
): ShaderProgram
Draws indexed geometry from provided index buffer.
Parameters
mode(number) — WebGL draw mode.buffer(WebGLBufferExt) — Index buffer.
Returns
drawArrays(mode: number, numItems: number): ShaderProgram
Draws non-indexed geometry.
Parameters
mode(number) — WebGL draw mode.numItems(number) — Vertex count to draw.
Returns
disableAttribArrays()
Disables all attribute arrays used by this shader program.
enableAttribArrays()
Enables all attribute arrays used by this shader program.
delete()
Deletes underlying WebGL program.
createProgram(gl: WebGL2RenderingContext)
Compiles shaders, links WebGL program and resolves variable locations.
Parameters
gl(WebGL2RenderingContext) — WebGL context.
Static Methods
bindBuffer(program: ShaderProgram, variable: ProgramVariable)
Binds attribute buffer and sets its pointer.
Parameters
program(ShaderProgram) — Shader program instance.variable(ProgramVariable) — Attribute variable descriptor.