@lightningjs/renderer
Version:
Lightning 3 Renderer
32 lines (31 loc) • 1.13 kB
TypeScript
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]>;
}