Skip to main content

Abstract Class: ShaderAssembler

Defined in: lib/shader-assembler-base.ts:21

A stateful version of assembleShaders that can be used to assemble shaders. Supports setting of default modules and hooks.

Extended by​

Constructors​

Constructor​

new ShaderAssembler(): ShaderAssembler

Returns​

ShaderAssembler

Properties​

shaderLanguage​

abstract readonly shaderLanguage: "glsl" | "wgsl"

Defined in: lib/shader-assembler-base.ts:23

Shader language accepted by this assembler.

Methods​

_getModuleList()​

_getModuleList(appModules?): ShaderModule[]

Defined in: lib/shader-assembler-base.ts:143

Dedupe and combine with default modules

Parameters​

appModules?​

ShaderModule[] = []

Returns​

ShaderModule[]


addDefaultModule()​

addDefaultModule(module): void

Defined in: lib/shader-assembler-base.ts:105

Add a default module that does not have to be provided with every assembly call.

Parameters​

module​

ShaderModule

Shader module to include in later assembly calls.

Returns​

void


addShaderInjectionTarget()​

addShaderInjectionTarget(injectionTarget): void

Defined in: lib/shader-assembler-base.ts:128

Register a shader injection target

Parameters​

injectionTarget​

ShaderInjectionTarget

Shared stage and name with language-specific parameters, return type, and source.

Returns​

void


addShaderTranspiler()​

addShaderTranspiler(transpiler): void

Defined in: lib/shader-assembler-base.ts:32

Register or replace the compiler for one input language.

Parameters​

transpiler​

ShaderTranspiler

Returns​

void


removeDefaultModule()​

removeDefaultModule(module): void

Defined in: lib/shader-assembler-base.ts:119

Remove a default module

Parameters​

module​

ShaderModule

Shader module to remove from later assembly calls.

Returns​

void


removeShaderTranspiler()​

removeShaderTranspiler(sourceLanguage): void

Defined in: lib/shader-assembler-base.ts:37

Remove the compiler for one input language.

Parameters​

sourceLanguage​

string

Returns​

void


resetShaderInjectionTargets()​

resetShaderInjectionTargets(): void

Defined in: lib/shader-assembler-base.ts:136

Remove all registered shader injection targets, for example before re-registering targets for a new application configuration. Default modules are not affected.

Returns​

void