Skip to main content

Class: ShaderInputs<ShaderPropsT>

Defined in: modules/engine/src/shader-inputs.ts:42

ShaderInputs holds uniform and binding values for one or more shader modules,

  • It can generate binary data for any uniform buffer
  • It can manage a uniform buffer for each block
  • It can update managed uniform buffers with a single call
  • It performs some book keeping on what has changed to minimize unnecessary writes to uniform buffers.

Type Parameters​

ShaderPropsT​

ShaderPropsT extends Partial<Record<string, Record<string, unknown>>> = Partial<Record<string, Record<string, unknown>>>

Constructors​

Constructor​

new ShaderInputs<ShaderPropsT>(modules, options?): ShaderInputs<ShaderPropsT>

Defined in: modules/engine/src/shader-inputs.ts:69

Creates shader input storage for one or more shader modules.

Parameters​

modules​

{ [P in string | number | symbol]?: ShaderInputsModule }

Initial shader modules keyed by module name.

options?​

ShaderInputsOptions

Shader input behavior options.

Returns​

ShaderInputs<ShaderPropsT>

Properties​

directBindings​

directBindings: Record<string, ShaderInputBinding> = {}

Defined in: modules/engine/src/shader-inputs.ts:60

Stores shader resource bindings that are not owned by a shader module.


moduleBindings​

moduleBindings: Record<keyof ShaderPropsT, Record<string, ShaderInputBinding>>

Defined in: modules/engine/src/shader-inputs.ts:58

Stores resource bindings for each module.


modules​

modules: Readonly<{ [P in keyof ShaderPropsT]: ShaderInputsModule }>

Defined in: modules/engine/src/shader-inputs.ts:53

Registered shader modules, including resolved dependencies.


moduleUniforms​

moduleUniforms: Record<keyof ShaderPropsT, Record<string, ShaderModuleUniformValue>>

Defined in: modules/engine/src/shader-inputs.ts:56

Stores the uniform values for each module


options​

options: Required<ShaderInputsOptions>

Defined in: modules/engine/src/shader-inputs.ts:47

Methods​

_addModule()​

_addModule(module): void

Defined in: modules/engine/src/shader-inputs.ts:223

Parameters​

module​

ShaderInputsModule

Returns​

void


addModules()​

addModules(modules): void

Defined in: modules/engine/src/shader-inputs.ts:164

Adds shader modules that should participate in subsequent uniform and binding updates. Module dependencies are resolved before new module state is initialized.

Parameters​

modules​

ShaderInputsModule[]

Shader modules to register after construction.

Returns​

void


destroy()​

destroy(): void

Defined in: modules/engine/src/shader-inputs.ts:108

Destroy

Returns​

void


getBindingValues()​

getBindingValues(): Record<string, ShaderInputBinding>

Defined in: modules/engine/src/shader-inputs.ts:185

Merges concrete and deferred bindings for the shader from the registered modules.

Returns​

Record<string, ShaderInputBinding>


getDebugTable()​

getDebugTable(): Record<string, Record<string, unknown>>

Defined in: modules/engine/src/shader-inputs.ts:210

Return a debug table that can be used for console.table() or log.table()

Returns​

Record<string, Record<string, unknown>>


getModuleBindingValues()​

getModuleBindingValues(moduleName): Record<string, ShaderInputBinding>

Defined in: modules/engine/src/shader-inputs.ts:200

Gets binding values for a single shader module without flattening them into the full shader map.

This is used by systems such as ShaderPassRenderer that execute one shader module at a time and need the defaults for just that module.

Parameters​

moduleName​

string | keyof ShaderPropsT

Returns​

Record<string, ShaderInputBinding>


getModules()​

getModules(): ShaderModule[]

Defined in: modules/engine/src/shader-inputs.ts:155

Returns registered shader modules, including resolved dependencies.

Returns​

ShaderModule[]


getUniformValues()​

getUniformValues(): Partial<Record<keyof ShaderPropsT, Record<string, ShaderModuleUniformValue>>>

Defined in: modules/engine/src/shader-inputs.ts:178

Get all uniform values for all modules

Returns​

Partial<Record<keyof ShaderPropsT, Record<string, ShaderModuleUniformValue>>>


setProps()​

setProps(props): void

Defined in: modules/engine/src/shader-inputs.ts:113

Set module props

Parameters​

props​

ShaderInputsProps<ShaderPropsT>

Returns​

void