import type { Binding, UniformValue } from '@luma.gl/core'; import { ShaderModule, ShaderModuleInstance } from '@luma.gl/shadertools'; /** * 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. */ export declare class ShaderInputs>> = Partial>>> { /** * The map of modules * @todo should should this include the resolved dependencies? */ modules: Readonly<{ [P in keyof ShaderPropsT]: ShaderModule; }>; /** Stores the uniform values for each module */ moduleUniforms: Record>; /** Stores the uniform bindings for each module */ moduleBindings: Record>; /** Tracks if uniforms have changed */ moduleUniformsChanged: Record; /** * Create a new UniformStore instance * @param modules */ constructor(modules: { [P in keyof ShaderPropsT]?: ShaderModule; }); /** Destroy */ destroy(): void; /** * Set module props */ setProps(props: Partial<{ [P in keyof ShaderPropsT]?: Partial; }>): void; /** Merges all bindings for the shader (from the various modules) */ /** * Return the map of modules * @todo should should this include the resolved dependencies? */ getModules(): ShaderModuleInstance[]; /** Get all uniform values for all modules */ getUniformValues(): Record>; /** Merges all bindings for the shader (from the various modules) */ getBindings(): Record; getDebugTable(): Record>; } //# sourceMappingURL=shader-inputs.d.ts.map