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<keyofShaderPropsT,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<keyofShaderPropsT,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<keyofShaderPropsT,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