UNPKG

@polygonjs/polygonjs

Version:

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

67 lines (66 loc) 4.05 kB
import { BaseGlShaderAssembler } from '../_Base'; import { OutputGlNode } from '../../../Output'; import { AttributeGlNode } from '../../../Attribute'; import { ShaderName } from '../../../../utils/shaders/ShaderName'; import { GlobalsGlNode } from '../../../Globals'; import { BaseGLDefinition } from '../../../utils/GLDefinition'; import { CustomMaterialName, MaterialWithCustomMaterials } from '../../../../../../core/geometry/Material'; import { ShadersCollectionController } from '../../utils/ShadersCollectionController'; import { Material } from 'three'; import { OnBeforeCompileData } from './OnBeforeCompile'; import { IUniformTexture } from '../../../../utils/code/gl/Uniforms'; import { CodeBuilderSetCodeLinesOptions } from '../../utils/CodeBuilder'; export type CustomAssemblerMap = Map<CustomMaterialName, typeof ShaderAssemblerMaterial>; interface HandleGlobalsOutputOptions { globals_node: GlobalsGlNode; shaders_collection_controller: ShadersCollectionController; output_name: string; globals_shader_name: ShaderName; definitions_by_shader_name: Map<ShaderName, BaseGLDefinition[]>; body_lines: string[]; var_name: string; shader_name: ShaderName; dependencies: ShaderName[]; body_lines_by_shader_name: Map<ShaderName, string[]>; } type CustomAssemblerCallback = (a: ShaderAssemblerMaterial, assemblerName: CustomMaterialName) => void; export declare class ShaderAssemblerMaterial extends BaseGlShaderAssembler { private _assemblersByCustomName; createMaterial(): Material; customAssemblerClassByCustomName(): CustomAssemblerMap | undefined; traverseCustomAssemblers(callback: CustomAssemblerCallback): void; protected _addCustomMaterials(material: Material): void; private _addCustomMaterial; compileCustomMaterials(material: MaterialWithCustomMaterials, parentAssembler: ShaderAssemblerMaterial): void; private _filterFragmentShaderCallbacks; protected _resetFilterFragmentShaderCallbacks(): void; _addFilterFragmentShaderCallback(callbackName: string, callback: (s: string) => string): void; _removeFilterFragmentShaderCallback(callbackName: string): void; private _filterFragmentShaderMethodOwner; setFilterFragmentShaderMethodOwner(owner: ShaderAssemblerMaterial | undefined): void; filterFragmentShader(fragmentShader: string): string; processFilterFragmentShader(fragmentShader: string): string; private _onBeforeCompileData; onBeforeCompileData(): OnBeforeCompileData | undefined; private _additionalTextureUniforms; clearAdditionalTextureUniforms(): void; addAdditionalTextureUniforms(uniformName: string, uniform: IUniformTexture): void; private _setAdditionalTextureUniforms; compileMaterial(material: Material, codeBuilderOptions?: CodeBuilderSetCodeLinesOptions): void; prepareOnBeforeCompileData(material: Material): void; protected updateShaders(codeBuilderOptions?: CodeBuilderSetCodeLinesOptions): void; shadow_assembler_class_by_custom_name(): {}; add_output_body_line(output_node: OutputGlNode, shaders_collection_controller: ShadersCollectionController, input_name: string): void; set_node_lines_output(output_node: OutputGlNode, shadersCollectionController: ShadersCollectionController): void; setNodeLinesAttribute(attribute_node: AttributeGlNode, shadersCollectionController: ShadersCollectionController): void; handle_globals_output_name(options: HandleGlobalsOutputOptions): void; handleTime(options: HandleGlobalsOutputOptions): void; handle_resolution(options: HandleGlobalsOutputOptions): void; handle_mvPosition(options: HandleGlobalsOutputOptions): void; handle_gl_Position(options: HandleGlobalsOutputOptions): void; handle_gl_FragCoord(options: HandleGlobalsOutputOptions): void; handle_gl_PointCoord(options: HandleGlobalsOutputOptions): void; set_node_lines_globals(globals_node: GlobalsGlNode, shaders_collection_controller: ShadersCollectionController): void; private used_output_names_for_shader; } export {};