import { EffectRenderer } from "@onerjs/core/Materials/effectRenderer.js"; import { type ThinEngine } from "@onerjs/core/Engines/thinEngine.js"; import { CommandBuffer } from "../command/commandBuffer.js"; import { type IDisposable } from "../IDisposable.js"; import { type Command } from "../command/command.js"; /** * A runtime is a snapshot of a smart filter containing all the * required data to render it as well as the entire command buffer. */ export type SmartFilterRuntime = { /** * The command buffer containing all the commands to execute during a frame. */ readonly commandBuffer: Readonly; /** * Renders one frame of the smart filter. */ render(): void; /** * Dispose the runtime and all its associated resources */ dispose(): void; }; /** * The internal runtime implementation exposing more information than @see SmartFilterRuntime. * This is used internally to render the smart filter. * * It is not fully exposed publicly to prevent any misuse of the runtime. */ export declare class InternalSmartFilterRuntime implements SmartFilterRuntime { /** * The engine used by the smart filter. */ readonly engine: ThinEngine; /** * The effect renderer used by the smart filter. */ readonly effectRenderer: EffectRenderer; /** * The command buffer containing all the commands to execute during a frame. */ readonly commandBuffer: CommandBuffer; private readonly _resources; /** * Instantiates a new smart filter runtime for one given engine. * @param engine - the engine to use to render the smart filter */ constructor(engine: ThinEngine); /** * Register a resource to be disposed when the runtime is disposed. * @param resource - defines the resource to dispose once the runtime is disposed */ registerResource(resource: IDisposable): void; /** * Registers a command to be executed during the render loop. * @param command - defines the command to execute */ registerCommand(command: Command): void; /** * Renders the smart filter. * This function will execute all the commands contained int the command buffer. */ render(): void; /** * Dispose the runtime and all its associated resources */ dispose(): void; } //# sourceMappingURL=smartFilterRuntime.d.ts.map