@thi.ng/shader-ast
Version:
DSL to define shader code in TypeScript and cross-compile to GLSL, JS and other targets
24 lines • 1.61 kB
TypeScript
import type { Lit, Sym, Term } from "../api/nodes.js";
import type { SymOpts } from "../api/syms.js";
import type { ArrayTypeMap, Type } from "../api/types.js";
export declare function sym<T extends Type>(init: Term<T>): Sym<T>;
export declare function sym<T extends Type>(type: T): Sym<T>;
export declare function sym<T extends Type>(type: T, opts: SymOpts): Sym<T>;
export declare function sym<T extends Type>(type: T, init: Term<T>): Sym<T>;
export declare function sym<T extends Type>(type: T, id: string): Sym<T>;
export declare function sym<T extends Type>(type: T, id: string, opts: SymOpts): Sym<T>;
export declare function sym<T extends Type>(type: T, opts: SymOpts, init: Term<T>): Sym<T>;
export declare function sym<T extends Type>(type: T, id: string, opts: SymOpts, init: Term<T>): Sym<T>;
export declare const constSym: <T extends Type>(type: T, id?: string, opts?: SymOpts, init?: Term<T>) => Sym<T>;
/**
* Defines a new symbol with optional initial array values.
*
* Important: Array initializers are UNSUPPORTED in GLSL ES v1 (WebGL),
* any code using such initializers will only work under WebGL2 or other
* targets.
*/
export declare const arraySym: <T extends keyof ArrayTypeMap>(type: T, id?: string, opts?: SymOpts, init?: (Lit<T> | Sym<T>)[]) => Sym<ArrayTypeMap[T]>;
export declare const input: <T extends Type>(type: T, id: string, opts?: SymOpts) => Sym<T>;
export declare const output: <T extends Type>(type: T, id: string, opts?: SymOpts) => Sym<T>;
export declare const uniform: <T extends Type>(type: T, id: string, opts?: SymOpts) => Sym<T>;
//# sourceMappingURL=sym.d.ts.map