UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

41 lines (40 loc) 2.2 kB
import { BaseGlNodeType } from '../../_Base'; import { TypedNodeTraverser } from '../../../utils/shaders/NodeTraverser'; import { ShaderName } from '../../../utils/shaders/ShaderName'; import { ShadersCollectionController } from './ShadersCollectionController'; import { LineType } from './LineType'; import { GlParamConfig } from './GLParamConfig'; import { ParamType } from '../../../../poly/ParamType'; import { NodeContext } from '../../../../poly/NodeContext'; import { TypedAssembler } from '../../../utils/shaders/BaseAssembler'; type RootNodesForShaderMethod = (shader_name: ShaderName, rootNodes: BaseGlNodeType[]) => BaseGlNodeType[]; export interface CodeBuilderSetCodeLinesOptions { otherFragmentShaderCollectionController?: ShadersCollectionController; } export declare class CodeBuilder { private _nodeTraverser; private _root_nodes_for_shader_method; private _assembler; private _param_configs_controller; private _param_configs_set_allowed; private _shadersCollectionController; private _lines; constructor(_nodeTraverser: TypedNodeTraverser<NodeContext.GL>, _root_nodes_for_shader_method: RootNodesForShaderMethod, _assembler: TypedAssembler<NodeContext.GL>); nodeTraverser(): TypedNodeTraverser<NodeContext.GL>; shaderNames(): ShaderName[]; buildFromNodes(rootNodes: BaseGlNodeType[], paramNodes: BaseGlNodeType[], setCodeLinesOptions?: CodeBuilderSetCodeLinesOptions): void; shadersCollectionController(): ShadersCollectionController | undefined; disallow_new_param_configs(): void; allow_new_param_configs(): void; private reset; param_configs(): readonly GlParamConfig<ParamType>[]; lines(shader_name: ShaderName, line_type: LineType): string[]; all_lines(): Map<ShaderName, Map<LineType, string[]>>; setParamConfigs(nodes: BaseGlNodeType[]): void; private _setCodeLines; private _addCodeLines; private addDefinitions; add_code_line_for_nodes_and_line_type(nodes: BaseGlNodeType[], shader_name: ShaderName, line_type: LineType): void; add_code_line_for_node_and_line_type(node: BaseGlNodeType, shader_name: ShaderName, line_type: LineType, is_last: boolean): void; } export {};