UNPKG

polygonjs-engine

Version:

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

36 lines (35 loc) 2.07 kB
import { BaseGlNodeType } from '../../_Base'; import { TypedNodeTraverser } from '../../../utils/shaders/NodeTraverser'; import { ShaderName } from '../../../utils/shaders/ShaderName'; import { ParamConfigsController } from '../../../../nodes/utils/code/controllers/ParamConfigsController'; import { ShadersCollectionController } from './ShadersCollectionController'; import { LineType } from './LineType'; import { GlParamConfig } from './ParamConfig'; import { ParamType } from '../../../../poly/ParamType'; import { NodeContext } from '../../../../poly/NodeContext'; declare type RootNodesForShaderMethod = (shader_name: ShaderName) => BaseGlNodeType[]; export declare class CodeBuilder { private _node_traverser; private _root_nodes_for_shader_method; _param_configs_controller: ParamConfigsController<GlParamConfig<ParamType>>; _param_configs_set_allowed: boolean; private _shaders_collection_controller; _lines: Map<ShaderName, Map<LineType, string[]>>; constructor(_node_traverser: TypedNodeTraverser<NodeContext.GL>, _root_nodes_for_shader_method: RootNodesForShaderMethod); shader_names(): ShaderName[]; build_from_nodes(root_nodes: BaseGlNodeType[], param_nodes: BaseGlNodeType[]): void; shaders_collection_controller(): 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[]>>; set_param_configs(nodes: BaseGlNodeType[]): void; set_code_lines(nodes: BaseGlNodeType[]): void; add_code_lines(nodes: BaseGlNodeType[], shader_name: ShaderName): void; private add_definitions; 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 {};