@lightningjs/renderer
Version:
Lightning 3 Renderer
20 lines (19 loc) • 622 B
TypeScript
import type { CoreRenderer } from "./CoreRenderer.js";
type ExtractProps<Type> = Type extends {
props: infer Props;
} ? Props : never;
interface Shader {
props?: Record<string, any>;
}
export interface WebGlShader extends Shader {
props?: Record<string, any>;
vertex?: string;
update?: () => void;
fragment: string;
}
export declare abstract class CoreShaderManager<Renderer extends CoreRenderer, shType extends Shader> {
renderer: Renderer;
constructor(renderer: Renderer);
loadShader<Type extends shType>(type: Type | (new () => Type), props?: ExtractProps<Type>): void;
}
export {};