import { type Effect } from "@onerjs/core/Materials/effect.js"; import { type SmartFilter } from "../smartFilter.js"; import { type ShaderProgram } from "../utils/shaderCodeUtils.js"; import { type RuntimeData } from "../connection/connectionPoint.js"; import { ShaderBlock } from "../blockFoundation/shaderBlock.js"; import { ShaderBinding } from "../runtime/shaderRuntime.js"; import { ConnectionPointType } from "../connection/connectionPointType.js"; /** * The shader bindings for the OptimizedShader block. * @internal */ export declare class OptimizedShaderBinding extends ShaderBinding { private _shaderBindings; private _inputTextures; /** * Creates a new shader binding instance for the OptimizedShader block. * @param shaderBindings - The list of shader bindings to process * @param inputTextures - The list of input textures to bind */ constructor(shaderBindings: ShaderBinding[], inputTextures: { [name: string]: RuntimeData; }); /** * Binds all the required data to the shader when rendering. * @param effect - defines the effect to bind the data to * @param width - defines the width of the output * @param height - defines the height of the output */ bind(effect: Effect, width: number, height: number): void; } /** * A block used by the smart filter optimizer to group shader blocks together. * Should be for internal use only. * @internal */ export declare class OptimizedShaderBlock extends ShaderBlock { private _shaderBindings; private _inputTextures; private _shaderProgram; /** * The class name of the block. */ static ClassName: string; /** * Returns if the block is an input block. */ get isInput(): boolean; /** * Creates a new OptimizedShaderBlock. * @param smartFilter - The smart filter to add the block to * @param name - The name of the block */ constructor(smartFilter: SmartFilter, name: string); /** * Gets the shader program to use to render the block. * @returns The shader program to use to render the block */ getShaderProgram(): ShaderProgram; /** * Sets the shader program to use to render the block. * @param shaderProgram - The shader program to use to render the block */ setShaderProgram(shaderProgram: ShaderProgram): void; /** * Sets the list of shader bindings to use to render the block. * @param shaderBindings - The list of shader bindings to use to render the block */ setShaderBindings(shaderBindings: ShaderBinding[]): void; /** * Get the class instance that binds all the required data to the shader (effect) when rendering. * @returns The class instance that binds the data to the effect */ getShaderBinding(): ShaderBinding; } //# sourceMappingURL=optimizedShaderBlock.d.ts.map