@lightningjs/renderer
Version:
Lightning 3 Renderer
28 lines (27 loc) • 1.53 kB
TypeScript
import { type DynamicEffects, DynamicShaderController } from '../../../main-api/DynamicShaderController.js';
import type { ShaderController } from '../../../main-api/ShaderController.js';
import { CoreShaderManager, type ShaderMap } from '../../CoreShaderManager.js';
import type { ExtractProps } from '../../CoreTextureManager.js';
import { type DynamicShaderProps } from './shaders/DynamicShader.js';
import type { WebGlCoreRenderer } from './WebGlCoreRenderer.js';
export interface DynamicShaderEffectMap {
}
export declare class WebGlCoreShaderManager extends CoreShaderManager {
protected effectConstructors: Partial<DynamicShaderEffectMap>;
constructor(renderer: WebGlCoreRenderer);
registerEffectType<Type extends keyof DynamicShaderEffectMap>(effectType: Type, effectClass: DynamicShaderEffectMap[Type]): void;
getRegisteredEffects(): Partial<DynamicShaderEffectMap>;
loadShader<Type extends keyof ShaderMap>(shType: Type, props?: ExtractProps<ShaderMap[Type]>): ShaderController<Type>;
loadDynamicShader<T extends DynamicEffects<[
...{
name?: string;
type: keyof DynamicShaderEffectMap;
}[]
]>>(props: DynamicShaderProps): DynamicShaderController<T>;
protected _createDynShaderCtr<T extends DynamicEffects<[
...{
name?: string;
type: keyof DynamicShaderEffectMap;
}[]
]>>(shader: InstanceType<ShaderMap['DynamicShader']>, props: ExtractProps<ShaderMap['DynamicShader']>): DynamicShaderController<T>;
}