@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
41 lines (40 loc) • 2.2 kB
TypeScript
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 {};