/** * Pure static class implementing processing of GLSL shaders. It allocates fixed locations for * attributes, and handles conversion of uniforms to uniform buffers. * * @ignore */ export class ShaderProcessor { /** * Process the shader. * * @param {import('./graphics-device.js').GraphicsDevice} device - The graphics device. * @param {object} shaderDefinition - The shader definition. * @param {import('./shader.js').Shader} shader - The shader definition. * @returns {object} - The processed shader data. */ static run(device: import("./graphics-device.js").GraphicsDevice, shaderDefinition: object, shader: import("./shader.js").Shader): object; static extract(src: any): { src: any; attributes: string[]; varyings: string[]; outs: string[]; uniforms: string[]; }; /** * Process the lines with uniforms. The function receives the lines containing all uniforms, * both numerical as well as textures/samplers. The function also receives the format of uniform * buffers (numerical) and bind groups (textures) for view and material level. All uniforms that * match any of those are ignored, as those would be supplied by view / material level buffers. * All leftover uniforms create uniform buffer and bind group for the mesh itself, containing * uniforms that change on the level of the mesh. * * @param {import('./graphics-device.js').GraphicsDevice} device - The graphics device. * @param {Array} uniforms - Lines containing uniforms. * @param {import('./shader-processor-options.js').ShaderProcessorOptions} processingOptions - * Uniform formats. * @param {import('./shader.js').Shader} shader - The shader definition. * @returns {object} - The uniform data. Returns a shader code block containing uniforms, to be * inserted into the shader, as well as generated uniform format structures for the mesh level. */ static processUniforms(device: import("./graphics-device.js").GraphicsDevice, uniforms: Array, processingOptions: import("./shader-processor-options.js").ShaderProcessorOptions, shader: import("./shader.js").Shader): object; static processVaryings(varyingLines: any, varyingMap: any, isVertex: any): string; static processOuts(outsLines: any): string; static getTypeCount(type: any): number; static processAttributes(attributeLines: any, shaderDefinitionAttributes: any, processingOptions: any): string; static splitToWords(line: any): any; static cutOut(src: any, start: any, end: any, replacement: any): any; } declare class UniformLine { constructor(line: any, shader: any); line: any; precision: any; type: any; name: any; arraySize: number; isSampler: boolean; isSignedInt: boolean; isUnsignedInt: boolean; } export {};