UNPKG

@lightningjs/renderer

Version:
32 lines (31 loc) 1.13 kB
import type { ShaderMap } from '../core/CoreShaderManager.js'; import type { ExtractProps } from '../core/CoreTextureManager.js'; import type { Stage } from '../core/Stage.js'; import type { CoreShader } from '../core/renderers/CoreShader.js'; /** * Shader Controller Base Interface * * @remarks * Used directly this interface is like an `any` type for Shader Controllers. * But it is also used as a base for more specific Shader Controller interfaces. */ export interface BaseShaderController { type: keyof ShaderMap; shader: CoreShader; props: Record<string, any>; getResolvedProps: () => Record<string, any>; } /** * Shader Controller Class * * @remarks * This class is used to control shader props. */ export declare class ShaderController<S extends keyof ShaderMap> implements BaseShaderController { readonly type: S; readonly shader: InstanceType<ShaderMap[S]>; private resolvedProps; props: ExtractProps<ShaderMap[S]>; constructor(type: S, shader: InstanceType<ShaderMap[S]>, props: ExtractProps<ShaderMap[S]>, stage: Stage); getResolvedProps(): ExtractProps<ShaderMap[S]>; }