@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
42 lines (41 loc) • 2.2 kB
TypeScript
import { Constructor, valueof } from '../../../../types/GlobalTypes';
import { TypedNode } from '../../_Base';
import { BaseJsShaderAssembler } from './assemblers/_Base';
import { GlobalsJsBaseController } from './globals/_Base';
import { OutputJsNode } from '../Output';
import { GlobalsJsNode } from '../Globals';
import { JsNodeChildrenMap } from '../../../poly/registers/nodes/Js';
import { BaseJsNodeType } from '../_Base';
import { NodeCreateOptions } from '../../utils/hierarchy/ChildrenController';
declare class BaseJsParentNode extends TypedNode<any, any> {
createNode<S extends keyof JsNodeChildrenMap>(node_class: S, options?: NodeCreateOptions): JsNodeChildrenMap[S];
createNode<K extends valueof<JsNodeChildrenMap>>(node_class: Constructor<K>, options?: NodeCreateOptions): K;
children(): BaseJsNodeType[];
nodesByType<K extends keyof JsNodeChildrenMap>(type: K): JsNodeChildrenMap[K][];
}
export declare abstract class AssemblerControllerNode<A extends BaseJsShaderAssembler> extends BaseJsParentNode {
abstract assemblerController(): JsAssemblerController<A> | undefined;
abstract compile(): void;
}
type BaseJsShaderAssemblerConstructor<A extends BaseJsShaderAssembler> = new (...args: any[]) => A;
export declare class JsAssemblerController<A extends BaseJsShaderAssembler> {
private node;
protected _assembler: A;
private _spareParamsController;
private _globalsHandler;
private _compileRequired;
constructor(node: AssemblerControllerNode<A>, assembler_class: BaseJsShaderAssemblerConstructor<A>);
setAssemblerGlobalsHandler(globalsHandler: GlobalsJsBaseController): void;
get assembler(): A;
globalsHandler(): GlobalsJsBaseController | undefined;
add_output_inputs(output_child: OutputJsNode): void;
add_globals_outputs(globals_node: GlobalsJsNode): void;
allow_attribute_exports(): boolean;
setCompilationRequired(newState?: boolean): void;
setCompilationRequiredAndDirty(triggerNode?: BaseJsNodeType): void;
compileRequired(): boolean;
post_compile(): void;
createSpareParameters(): void;
}
export type JsAssemblerControllerType = JsAssemblerController<BaseJsShaderAssembler>;
export {};