UNPKG

@polygonjs/polygonjs

Version:

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

51 lines (50 loc) 2.61 kB
import { Material, IUniform } from 'three'; import { PolyScene } from '../../../../../scene/PolyScene'; import { GlParamConfig, GlParamConfigJSON } from '../../utils/GLParamConfig'; import { ParamType } from '../../../../../poly/ParamType'; import { PolyDictionary } from '../../../../../../types/GlobalTypes'; import { IUniformTexture } from '../../../../utils/code/gl/Uniforms'; export interface OnBeforeCompileData { vertexShader: string; fragmentShader: string; paramConfigs: readonly GlParamConfig<ParamType>[]; additionalTextureUniforms: PolyDictionary<IUniformTexture>; timeDependent: boolean; resolutionDependent: boolean; raymarchingLightsWorldCoordsDependent: boolean; } interface CloneOptions { clonedParamConfigName: string; clonedParamConfig?: GlParamConfig<ParamType>; } export declare function cloneOnBeforeCompileData(data: OnBeforeCompileData, options: CloneOptions): OnBeforeCompileData; type RemoveParamConfigField<Type> = { [Property in keyof Type as Exclude<Property, 'paramConfigs' | 'additionalTextureUniforms'>]: Type[Property]; }; export interface OnBeforeCompileDataJSON extends RemoveParamConfigField<OnBeforeCompileData> { paramConfigs: GlParamConfigJSON<ParamType>[]; } export declare function assignUniformViaUserData(material: Material, uniformName: string, newUniform: IUniformTexture): void; export declare class MaterialUserDataUniforms { static getUniforms(material: Material): PolyDictionary<IUniform> | undefined; static setUniforms(material: Material, uniforms: PolyDictionary<IUniform>): void; static removeUniforms(material: Material): PolyDictionary<IUniform<any>> | undefined; } export declare function assignOnBeforeCompileDataAndFunction(scene: PolyScene, material: Material, data: OnBeforeCompileData): void; interface CopyParams { src: Material; dest: Material; shareCustomUniforms: boolean; } export declare function copyOnBeforeCompileData(scene: PolyScene, params: CopyParams): void; export declare class OnBeforeCompileDataHandler { static setData(material: Material, data: OnBeforeCompileData): void; static addAdditionalTexture(material: Material, uniformName: string, newUniform: IUniformTexture): void; static getData(material: Material): OnBeforeCompileData | undefined; static removeData(material: Material): OnBeforeCompileData | undefined; } export declare class OnBeforeCompileDataConverter { static toJSON(onBeforeCompileData: OnBeforeCompileData): OnBeforeCompileDataJSON; static fromJSON(json: OnBeforeCompileDataJSON): OnBeforeCompileData; } export {};