polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
65 lines (64 loc) • 3.91 kB
TypeScript
import { JsVariableConfig } from '../configs/VariableConfig';
import { JsCodeBuilder } from '../utils/CodeBuilder';
import { BaseJsNodeType } from '../../_Base';
import { TypedAssembler } from '../../../utils/shaders/BaseAssembler';
import { ShaderName } from '../../../utils/shaders/ShaderName';
import { OutputJsNode } from '../../Output';
import { GlobalsJsNode } from '../../Globals';
import { AttributeJsNode } from '../../Attribute';
import { AssemblerControllerNode } from '../Controller';
import { LinesController } from '../utils/LinesController';
import { NodeContext } from '../../../../poly/NodeContext';
import { JsLineType } from '../utils/LineType';
import { JsConnectionPoint, JsConnectionPointType } from '../../../utils/io/connections/Js';
import { NodeTypeMap } from '../../../../containers/utils/ContainerMap';
declare type StringArrayByShaderName = Map<ShaderName, string[]>;
export declare class BaseJsFunctionAssembler extends TypedAssembler<NodeContext.JS> {
protected _js_parent_node: AssemblerControllerNode;
protected _shaders_by_name: Map<ShaderName, string>;
protected _lines: StringArrayByShaderName;
protected _code_builder: JsCodeBuilder | undefined;
private _param_config_owner;
protected _root_nodes: BaseJsNodeType[];
protected _leaf_nodes: BaseJsNodeType[];
private _uniforms_time_dependent;
private _variable_configs;
constructor(_js_parent_node: AssemblerControllerNode);
get shader_names(): never[];
input_names_for_shader_name(node: NodeTypeMap[NodeContext.JS], shader_name: ShaderName): string[];
compile(): Promise<void>;
compile_allowed(): boolean;
protected _build_lines(): void;
set_root_nodes(root_nodes: BaseJsNodeType[]): void;
root_nodes_by_shader_name(shader_name: ShaderName): BaseJsNodeType[];
leaf_nodes(): BaseJsNodeType[];
set_node_lines_globals(globals_node: GlobalsJsNode, lines_controller: LinesController): void;
set_node_lines_output(output_node: OutputJsNode, lines_controller: LinesController): void;
set_node_lines_attribute(attribute_node: AttributeJsNode, lines_controller: LinesController): void;
get code_builder(): JsCodeBuilder;
build_code_from_nodes(root_nodes: BaseJsNodeType[]): Promise<void>;
allow_new_param_configs(): void;
disallow_new_param_configs(): void;
builder_param_configs(): readonly import("../utils/ParamConfig").JsParamConfig<import("../../../../poly/ParamType").ParamType>[];
builder_lines(line_type: JsLineType): string[] | undefined;
all_builder_lines(): Map<ShaderName, Map<JsLineType, string[]>>;
param_configs(): readonly import("../utils/ParamConfig").JsParamConfig<import("../../../../poly/ParamType").ParamType>[];
set_param_configs_owner(param_config_owner: JsCodeBuilder): void;
static add_output_inputs(output_child: OutputJsNode): void;
add_output_inputs(output_child: OutputJsNode): void;
static create_globals_node_output_connections(): (JsConnectionPoint<JsConnectionPointType.VEC3> | JsConnectionPoint<JsConnectionPointType.VEC2> | JsConnectionPoint<JsConnectionPointType.FLOAT>)[];
create_globals_node_output_connections(): (JsConnectionPoint<JsConnectionPointType.VEC3> | JsConnectionPoint<JsConnectionPointType.VEC2> | JsConnectionPoint<JsConnectionPointType.FLOAT>)[];
add_globals_outputs(globals_node: GlobalsJsNode): void;
allow_attribute_exports(): boolean;
reset_configs(): void;
variable_configs(): JsVariableConfig[];
set_variable_configs(variable_configs: JsVariableConfig[]): void;
variable_config(name: string): JsVariableConfig;
static create_variable_configs(): JsVariableConfig[];
create_variable_configs(): JsVariableConfig[];
protected _reset_variable_configs(): void;
protected _reset_uniforms_time_dependency(): void;
set_uniforms_time_dependent(): void;
uniforms_time_dependent(): boolean;
}
export {};