import { IComputeManagerInterface } from '../core/ComputeManagerInterface'; import { ImagePoolInterface } from '../core/ImagePoolInterface'; import { ImageWebGLTexture } from '../core/ImageWebGLTexture'; export interface IShaderInfo { id?: string; vertexFiles: string[]; fragmentFiles: string[]; inputNames?: string[]; } export declare class Filter { protected shaders: IShaderInfo[]; protected programs: WebGLProgram[]; protected computeManager: IComputeManagerInterface; protected imagePool: ImagePoolInterface; protected LINEAR: number; constructor(); /** * Sets up shaders */ protected setupShaders(): void; /** * Runs the shader designated by id on the input texture and writes the result * to the output texture. * * This is a convenience method that handles the common single-input single-output case. * * @param id Number of the shader to run * @param input Input texture * @param output Output texture * * @return Output texture */ protected runShader(id: number, input: ImageWebGLTexture, output: ImageWebGLTexture): ImageWebGLTexture; /** * Returns a unique identifier for a given shader. * @param shader Description of the shader * @return Unique identifier for the shader */ private generateProgramId(shader); }