import "@onerjs/core/Engines/Extensions/engine.renderTarget.js"; import { type InitializationData, type SmartFilter } from "../smartFilter.js"; import { type ShaderProgram } from "../utils/shaderCodeUtils.js"; import { type ShaderBinding } from "../runtime/shaderRuntime.js"; import { type ConnectionPoint } from "../connection/connectionPoint.js"; import { ConnectionPointType } from "../connection/connectionPointType.js"; import { BaseBlock } from "./baseBlock.js"; import { type OutputTextureOptions } from "./textureOptions.js"; /** * This is the base class for all shader blocks. * * It contains the redundant part of wrapping a shader for a full screen pass. * * The only required function to implement is the bind function. */ export declare abstract class ShaderBlock extends BaseBlock { /** * The class name of the block. */ static ClassName: string; /** * Get the class instance that binds all the required data to the shader (effect) when rendering. * It should throw an error if required inputs are missing. * @returns The class instance that binds the data to the effect */ abstract getShaderBinding(): ShaderBinding; /** * The shader program (vertex and fragment code) to use to render the block */ static ShaderCode: ShaderProgram; /** * The output connection point of the block. */ readonly output: ConnectionPoint; /** * The options used when creating the texture this block outputs to */ outputTextureOptions: OutputTextureOptions; /** * Disconnects the block from the graph. * @param disconnectedConnections - Stores the connections that have been broken in the process. You can reconnect them later if needed. */ disconnectFromGraph(disconnectedConnections?: [ConnectionPoint, ConnectionPoint][]): void; protected _getConnectionForMainInputTexture(): ConnectionPoint; /** * Instantiates a new block. * @param smartFilter - Defines the smart filter the block belongs to * @param name - Defines the name of the block * @param disableOptimization - Defines if the block should not be optimized (default: false) */ constructor(smartFilter: SmartFilter, name: string, disableOptimization?: boolean); /** * Gets the shader program to use to render the block. * @returns The shader program to use to render the block */ getShaderProgram(): ShaderProgram; /** * Generates the commands needed to execute the block at runtime and gathers promises for initialization work * @param initializationData - The initialization data to use * @param finalOutput - Defines if the block is the final output of the smart filter */ generateCommandsAndGatherInitPromises(initializationData: InitializationData, finalOutput: boolean): void; } //# sourceMappingURL=shaderBlock.d.ts.map