@lightningjs/renderer
Version:
Lightning 3 Renderer
30 lines (29 loc) • 1.27 kB
TypeScript
import type { CoreShaderManager, EffectMap, ShaderMap } from '../core/CoreShaderManager.js';
import type { ExtractProps } from '../core/CoreTextureManager.js';
import type { EffectDesc } from '../core/renderers/webgl/shaders/effects/ShaderEffect.js';
import type { BaseShaderController } from './ShaderController.js';
type OptionalName<T> = T extends string ? T : never;
type MapEffectProps<Effects extends [...{
name?: string;
type: keyof EffectMap;
}[]]> = {
[K in Effects[number] as OptionalName<K['name']>]: ExtractProps<EffectMap[K['type']]>;
};
export type DynamicEffects<T extends [...{
name?: string;
type: keyof EffectMap;
}[]]> = {
[K in keyof T]: EffectDesc<T[K]>;
};
export declare class DynamicShaderController<Effects extends [...{
name?: string;
type: keyof EffectMap;
}[]]> implements BaseShaderController {
readonly shader: InstanceType<ShaderMap['DynamicShader']>;
private resolvedProps;
props: MapEffectProps<Effects>;
type: 'DynamicShader';
constructor(shader: InstanceType<ShaderMap['DynamicShader']>, props: ExtractProps<ShaderMap['DynamicShader']>, shManager: CoreShaderManager);
getResolvedProps(): import("../core/renderers/webgl/shaders/DynamicShader.js").DynamicShaderProps;
}
export {};