UNPKG

@lightningjs/renderer

Version:
30 lines (29 loc) 1.27 kB
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 {};