ShaderProgram

Represents more comfortable using WebGL shader program.

Constructor

new ShaderProgram(name, material)

Shader program name.

Parameters:
NameTypeDescription
namestring

ShaderProgram name.

materialProgramMaterial

Object stores uniforms, attributes and program codes:

Properties
NameTypeDescription
uniformsRecord.<string, any>

Uniforms definition section.

attributesRecord.<string, any>

Attributes definition section.

vertexShaderstring

Vertex glsl code.

fragmentShaderstring

Fragment glsl code.

Methods

activate() → {ShaderProgram}

Activates this shader program and disables previously active one.

Returns:
Type: 
ShaderProgram

apply()

Applies currently stored shader variable values.

attach(handler) → {ShaderProgram}

Attaches this shader program to a handler.

Parameters:
NameTypeDescription
handlerHandler

WebGL handler.

Returns:
Type: 
ShaderProgram

createProgram(gl)

Compiles shaders, links WebGL program and resolves variable locations.

Parameters:
NameTypeDescription
glWebGL2RenderingContext

WebGL context.

deactivate() → {ShaderProgram}

Deactivates this shader program.

Returns:
Type: 
ShaderProgram

delete()

Deletes underlying WebGL program.

disableAttribArrays()

Disables all attribute arrays used by this shader program.

drawArrays(mode, numItems) → {ShaderProgram}

Draws non-indexed geometry.

Parameters:
NameTypeDescription
modenumber

WebGL draw mode.

numItemsnumber

Vertex count to draw.

Returns:
Type: 
ShaderProgram

drawIndexBuffer(mode, buffer) → {ShaderProgram}

Draws indexed geometry from provided index buffer.

Parameters:
NameTypeDescription
modenumber

WebGL draw mode.

bufferWebGLBufferExt

Index buffer.

Returns:
Type: 
ShaderProgram

enableAttribArrays()

Enables all attribute arrays used by this shader program.

initialize() → {ShaderProgram}

Initializes this shader program using handler WebGL context.

Returns:
Type: 
ShaderProgram

isActive() → {boolean}

Returns true if this shader program is active.

Returns:
Type: 
boolean

remove()

Removes this shader program from its handler and releases WebGL program.

set(material) → {ShaderProgram}

Sets provided shader variables and applies them. Automatically activates this shader program.

Parameters:
NameTypeDescription
materialRecord.<string, any>

Variable values by variable name.

Returns:
Type: 
ShaderProgram

use()

Makes this shader program current in WebGL context.

(static) bindBuffer(program, variable)

Binds attribute buffer and sets its pointer.

Parameters:
NameTypeDescription
programShaderProgram

Shader program instance.

variableProgramVariable

Attribute variable descriptor.