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