ShaderProgram

Source: ShaderProgram.ts:43

Modifiers: public

Represents more comfortable using WebGL shader program.


Constructor

new ShaderProgram( name: string, material: ProgramMaterial, ): ShaderProgram

Shader 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.