@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
41 lines (35 loc) • 1.34 kB
text/typescript
/**
* Allows to set the result of the shader
*
*
*/
import {GlType} from './../../poly/registers/nodes/types/Gl';
import {TypedGlNode} from './_Base';
import {NodeParamsConfig} from '../utils/params/ParamsConfig';
import {ShadersCollectionController} from './code/utils/ShadersCollectionController';
import {BaseGlShaderAssembler} from './code/assemblers/_Base';
class OutputGlParamsConfig extends NodeParamsConfig {}
const ParamsConfig = new OutputGlParamsConfig();
export class OutputGlNode extends TypedGlNode<OutputGlParamsConfig> {
override paramsConfig = ParamsConfig;
static override type() {
return GlType.OUTPUT;
}
override initializeNode() {
super.initializeNode();
this.addPostDirtyHook('_setMatToRecompile', this._setMatToRecompile.bind(this));
this.lifecycle.onAfterAdded(() => {
this.materialNode()?.assemblerController()?.add_output_inputs(this);
this._setMatToRecompile();
});
}
override setLines(shaders_collection_controller: ShadersCollectionController) {
// if (shaders_collection_controller.shader_name) {
const assembler = shaders_collection_controller.assembler() as BaseGlShaderAssembler;
assembler.set_node_lines_output(this, shaders_collection_controller);
// }
}
// set_color_declaration(color_declaration: string){
// this._color_declaration = color_declaration
// }
}