UNPKG

@polygonjs/polygonjs

Version:

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

43 lines (42 loc) 2.33 kB
import { Constructor, valueof } from '../../../../types/GlobalTypes'; import { TypedNode } from '../../_Base'; import { BaseGlShaderAssembler } from './assemblers/_Base'; import { GlobalsBaseController } from './globals/_Base'; import { OutputGlNode } from '../Output'; import { GlobalsGlNode } from '../Globals'; import { GlNodeChildrenMap } from '../../../poly/registers/nodes/Gl'; import { BaseGlNodeType } from '../_Base'; import { NodeCreateOptions } from '../../utils/hierarchy/ChildrenController'; export declare class BaseGlParentNode extends TypedNode<any, any> { createNode<S extends keyof GlNodeChildrenMap>(node_class: S, options?: NodeCreateOptions): GlNodeChildrenMap[S]; createNode<K extends valueof<GlNodeChildrenMap>>(node_class: Constructor<K>, options?: NodeCreateOptions): K; children(): BaseGlNodeType[]; nodesByType<K extends keyof GlNodeChildrenMap>(type: K): GlNodeChildrenMap[K][]; } export declare abstract class AssemblerGlControllerNode extends BaseGlParentNode { abstract assemblerController(): GlAssemblerController<BaseGlShaderAssembler> | undefined; } type BaseGlShaderAssemblerConstructor<A extends BaseGlShaderAssembler> = new (...args: any[]) => A; export declare class GlAssemblerController<A extends BaseGlShaderAssembler> { private node; protected _assembler: A; private _spareParamsController; private _globalsHandler; private _compile_required; constructor(node: AssemblerGlControllerNode, assembler_class: BaseGlShaderAssemblerConstructor<A>); setAssemblerGlobalsHandler(globalsHandler: GlobalsBaseController): void; get assembler(): A; globalsHandler(): GlobalsBaseController | undefined; add_output_inputs(output_child: OutputGlNode): void; add_globals_outputs(globals_node: GlobalsGlNode): void; allow_attribute_exports(): boolean; setCompilationRequired(newState?: boolean): void; setCompilationRequiredAndDirty(triggerNode?: BaseGlNodeType): void; compileRequired(): boolean; post_compile(): void; createSpareParameters(): void; addFilterFragmentShaderCallback(callbackName: string, callback: (s: string) => string): void; removeFilterFragmentShaderCallback(callbackName: string): void; } export type GlAssemblerControllerType = GlAssemblerController<BaseGlShaderAssembler>; export {};