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

Released under the MIT License