Skip to content

@orillusion/core


Class: Shader ​

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:23

A shader is the collection of render passes (grouped by PassType) and compute passes that drive a material's rendering. It exposes convenience methods that forward uniform, texture, buffer and define changes to all of its render passes.

Extended by ​

Constructors ​

Constructor ​

new Shader(): Shader

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:32

Returns ​

Shader

Properties ​

computes ​

computes: RenderShaderCompute[]

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:27

Compute passes attached to this shader.


passShader ​

passShader: Map<PassType, RenderShaderPass[]>

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:30

Render passes grouped by pass type.

Methods ​

addRenderPass() ​

addRenderPass(renderShader, index?): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:42

Add a render pass to this shader.

Parameters ​

renderShader ​

RenderShaderPass

the render pass to add

index? ​

number = -1

optional insertion index; appended when -1

Returns ​

void


removeShader() ​

removeShader(renderShader, index?): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:57

Remove a render pass from this shader.

Parameters ​

renderShader ​

RenderShaderPass

the render pass to remove

index? ​

number = -1

optional index within the pass type bucket

Returns ​

void


removeShaderByIndex() ​

removeShaderByIndex(passType, index?): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:76

Remove a render pass by pass type and index.

Parameters ​

passType ​

PassType

the pass type bucket

index? ​

number = -1

optional index; removes the whole bucket when -1

Returns ​

void


getSubShaders() ​

getSubShaders(passType): RenderShaderPass[]

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:91

Get the render passes registered for the given pass type.

Parameters ​

passType ​

PassType

the pass type bucket

Returns ​

RenderShaderPass[]


hasSubShaders() ​

hasSubShaders(passType): boolean

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:99

Whether any render pass is registered for the given pass type.

Parameters ​

passType ​

PassType

the pass type bucket

Returns ​

boolean


getDefaultShaders() ​

getDefaultShaders(): RenderShaderPass[]

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:107

Get the default (COLOR) render passes.

Returns ​

RenderShaderPass[]


getDefaultColorShader() ​

getDefaultColorShader(): RenderShaderPass

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:114

Get the first default (COLOR) render pass.

Returns ​

RenderShaderPass


setDefine() ​

setDefine(arg0, arg1): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:123

Set a preprocessor define on all render passes.

Parameters ​

arg0 ​

string

the define name

arg1 ​

boolean

the define value

Returns ​

void


getDefine() ​

getDefine(arg0): boolean

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:135

Get the value of a preprocessor define from the render passes.

Parameters ​

arg0 ​

string

the define name

Returns ​

boolean


hasDefine() ​

hasDefine(arg0): boolean

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:149

Whether any render pass declares the given preprocessor define.

Parameters ​

arg0 ​

string

the define name

Returns ​

boolean


deleteDefine() ​

deleteDefine(arg0): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:164

Remove a preprocessor define from all render passes.

Parameters ​

arg0 ​

string

the define name

Returns ​

void


setUniform() ​

setUniform(arg0, arg1): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:177

Set a uniform value on all render passes.

Parameters ​

arg0 ​

string

the uniform name

arg1 ​

any

the uniform value

Returns ​

void


setUniformFloat() ​

setUniformFloat(arg0, arg1): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:190

Set a float uniform on all render passes.

Parameters ​

arg0 ​

string

the uniform name

arg1 ​

number

the float value

Returns ​

void


setUniformInt32() ​

setUniformInt32(arg0, arg1): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:203

Set a 32-bit integer uniform on all render passes.

Parameters ​

arg0 ​

string

the uniform name

arg1 ​

number

the integer value

Returns ​

void


setUniformVector2() ​

setUniformVector2(arg0, arg1): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:216

Set a Vector2 uniform on all render passes.

Parameters ​

arg0 ​

string

the uniform name

arg1 ​

Vector2

the vector value

Returns ​

void


setUniformVector3() ​

setUniformVector3(arg0, arg1): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:229

Set a Vector3 uniform on all render passes.

Parameters ​

arg0 ​

string

the uniform name

arg1 ​

Vector3

the vector value

Returns ​

void


setUniformVector4() ​

setUniformVector4(arg0, arg1): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:242

Set a Vector4 uniform on all render passes.

Parameters ​

arg0 ​

string

the uniform name

arg1 ​

Vector4

the vector value

Returns ​

void


setUniformColor() ​

setUniformColor(arg0, arg1): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:255

Set a color uniform on all render passes.

Parameters ​

arg0 ​

string

the uniform name

arg1 ​

Color

the color value

Returns ​

void


getUniform() ​

getUniform(arg0): any

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:267

Get a uniform value from the default color pass.

Parameters ​

arg0 ​

string

the uniform name

Returns ​

any


getUniformFloat() ​

getUniformFloat(arg0): number

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:275

Get a float uniform from the default color pass.

Parameters ​

arg0 ​

string

the uniform name

Returns ​

number


getUniformVector2() ​

getUniformVector2(arg0): Vector2

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:283

Get a Vector2 uniform from the default color pass.

Parameters ​

arg0 ​

string

the uniform name

Returns ​

Vector2


getUniformVector3() ​

getUniformVector3(arg0): Vector3

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:291

Get a Vector3 uniform from the default color pass.

Parameters ​

arg0 ​

string

the uniform name

Returns ​

Vector3


getUniformVector4() ​

getUniformVector4(arg0): Vector4

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:299

Get a Vector4 uniform from the default color pass.

Parameters ​

arg0 ​

string

the uniform name

Returns ​

Vector4


getUniformColor() ​

getUniformColor(arg0): Color

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:307

Get a color uniform from the default color pass.

Parameters ​

arg0 ​

string

the uniform name

Returns ​

Color


setTexture() ​

setTexture(arg0, arg1): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:316

Set a texture on all render passes and enable its USE_* define.

Parameters ​

arg0 ​

string

the texture name

arg1 ​

Texture

the texture

Returns ​

void


getTexture() ​

getTexture(arg0): Texture

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:329

Get a texture from the default color pass.

Parameters ​

arg0 ​

string

the texture name

Returns ​

Texture


setUniformBuffer() ​

setUniformBuffer(arg0, arg1): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:338

Set a uniform buffer on all render passes.

Parameters ​

arg0 ​

string

the buffer name

arg1 ​

UniformGPUBuffer

the uniform buffer

Returns ​

void


getUniformBuffer() ​

getUniformBuffer(arg0): GPUBufferBase

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:350

Get a uniform buffer from the default color pass.

Parameters ​

arg0 ​

string

the buffer name

Returns ​

GPUBufferBase


setStorageBuffer() ​

setStorageBuffer(arg0, arg1): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:359

Set a storage buffer on all render passes.

Parameters ​

arg0 ​

string

the buffer name

arg1 ​

StorageGPUBuffer

the storage buffer

Returns ​

void


getStorageBuffer() ​

getStorageBuffer(arg0): StorageGPUBuffer

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:371

Get a storage buffer from the default color pass.

Parameters ​

arg0 ​

string

the buffer name

Returns ​

StorageGPUBuffer


setStructStorageBuffer() ​

setStructStorageBuffer<T>(arg0, arg1): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:380

Set a struct storage buffer on all render passes.

Type Parameters ​

T ​

T extends Struct

Parameters ​

arg0 ​

string

the buffer name

arg1 ​

StructStorageGPUBuffer<T>

the struct storage buffer

Returns ​

void


getStructStorageBuffer() ​

getStructStorageBuffer(arg0): GPUBufferBase

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:392

Get a struct storage buffer from the default color pass.

Parameters ​

arg0 ​

string

the buffer name

Returns ​

GPUBufferBase


noticeValueChange() ​

noticeValueChange(): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:399

Notify all render passes that uniform values have changed.

Returns ​

void


destroy() ​

destroy(force?): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:411

Destroy all render passes and clear the pass map.

Parameters ​

force? ​

boolean

force destruction of GPU resources

Returns ​

void


clone() ​

clone(): Shader

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:431

Deep-clone this shader, copying every render pass.

Returns ​

Shader


applyUniform() ​

applyUniform(): void

Defined in: src/gfx/graphics/webGpu/shader/Shader.ts:452

Apply pending uniform values to all render passes.

Returns ​

void