import { Nullable } from "../../types"; import { ShaderProcessingContext } from "./shaderProcessingOptions"; /** @hidden */ export interface IShaderProcessor { attributeProcessor?: (attribute: string, processingContext: Nullable) => string; varyingProcessor?: (varying: string, isFragment: boolean, processingContext: Nullable) => string; uniformProcessor?: (uniform: string, isFragment: boolean, preProcessors: { [key: string]: string }, processingContext: Nullable) => string; uniformBufferProcessor?: (uniformBuffer: string, isFragment: boolean, processingContext: Nullable) => string; endOfUniformBufferProcessor?: (closingBracketLine: string, isFragment: boolean, processingContext: Nullable) => string; lineProcessor?: (line: string, isFragment: boolean, processingContext: Nullable) => string; preProcessor?: (code: string, defines: string[], isFragment: boolean, processingContext: Nullable) => string; postProcessor?: (code: string, defines: string[], isFragment: boolean, processingContext: Nullable) => string; finalizeShaders?: (vertexCode: string, fragmentCode: string, processingContext: Nullable) => { vertexCode: string, fragmentCode: string }; }