UNPKG

@thi.ng/shader-ast

Version:

DSL to define shader code in TypeScript and cross-compile to GLSL, JS and other targets

123 lines 7.68 kB
import type { Maybe } from "@thi.ng/api"; import type { Lit, Term } from "../api/nodes.js"; import type { BVec2Term, BVec3Term, BVec4Term, IVec2Term, IVec3Term, IVec4Term, UVec2Term, UVec3Term, UVec4Term, Vec2Term, Vec3Term, Vec4Term } from "../api/terms.js"; import { type NumericB, type NumericF, type Type } from "../api/types.js"; export declare const lit: <T extends Type>(type: T, val: any, info?: string) => Lit<T>; export declare const bool: (x: NumericB) => Lit<"bool">; export declare const float: (x: NumericB) => Lit<"float">; export declare const int: (x: NumericB) => Lit<"int">; export declare const uint: (x: NumericB) => Lit<"uint">; /** * Takes a plain number or numeric term and wraps it as float literal if * needed. * * @param x - */ export declare const wrapFloat: (x?: any) => Maybe<Term<"float">>; /** * Takes a plain number or numeric term and wraps it as signed integer * literal if needed. * * @param x - */ export declare const wrapInt: (x?: any) => Maybe<Term<"int">>; /** * Takes a plain number or numeric term and wraps it as unsigned integer * literal if needed. * * @param x - */ export declare const wrapUint: (x?: any) => Maybe<Term<"uint">>; /** * Takes a plain number or numeric term and wraps it as boolean literal * if needed. * * @param x - */ export declare const wrapBool: (x?: any) => Maybe<Term<"bool">>; export declare const TRUE: Lit<"bool">; export declare const FALSE: Lit<"bool">; export declare const FLOAT0: Lit<"float">; export declare const FLOAT1: Lit<"float">; export declare const FLOAT2: Lit<"float">; export declare const FLOAT05: Lit<"float">; export declare const INT0: Lit<"int">; export declare const INT1: Lit<"int">; export declare const UINT0: Lit<"uint">; export declare const UINT1: Lit<"uint">; export declare const PI: Lit<"float">; export declare const TAU: Lit<"float">; export declare const HALF_PI: Lit<"float">; export declare const SQRT2: Lit<"float">; export declare const PHI: Lit<"float">; export declare function vec2(): Lit<"vec2">; export declare function vec2(x: NumericB | IVec2Term | UVec2Term | BVec2Term): Lit<"vec2">; export declare function vec2(x: NumericB, y: NumericB): Lit<"vec2">; export declare function vec3(): Lit<"vec3">; export declare function vec3(x: NumericB | IVec3Term | UVec3Term | BVec3Term): Lit<"vec3">; export declare function vec3(xy: Vec2Term | IVec2Term | UVec2Term | BVec2Term, z: NumericB): Lit<"vec3">; export declare function vec3(x: NumericB, y: NumericB, z: NumericB): Lit<"vec3">; export declare function vec4(): Lit<"vec4">; export declare function vec4(x: NumericB | IVec4Term | UVec4Term | BVec4Term): Lit<"vec4">; export declare function vec4(xyz: Vec3Term | IVec3Term | UVec3Term | BVec3Term, w: NumericB): Lit<"vec4">; export declare function vec4(xy: Vec2Term | IVec2Term | UVec2Term | BVec2Term, zw: Vec2Term | IVec2Term | UVec2Term | BVec2Term): Lit<"vec4">; export declare function vec4(xy: Vec2Term | IVec2Term | UVec2Term | BVec2Term, z: NumericB, w: NumericB): Lit<"vec4">; export declare function vec4(x: NumericB, y: NumericB, z: NumericB, w: NumericB): Lit<"vec4">; export declare function ivec2(): Lit<"ivec2">; export declare function ivec2(x: NumericB | Vec2Term | UVec2Term | BVec2Term): Lit<"ivec2">; export declare function ivec2(x: NumericB, y: NumericB): Lit<"ivec2">; export declare function ivec3(): Lit<"ivec3">; export declare function ivec3(x: NumericB | Vec3Term | UVec3Term | BVec3Term): Lit<"ivec3">; export declare function ivec3(xy: Vec2Term | BVec2Term, z: NumericB): Lit<"ivec3">; export declare function ivec3(x: NumericB, y: NumericB, z: NumericB): Lit<"ivec3">; export declare function ivec4(): Lit<"ivec4">; export declare function ivec4(x: NumericB | Vec4Term | UVec4Term | BVec4Term): Lit<"ivec4">; export declare function ivec4(x: Vec3Term | BVec3Term, y: NumericB): Lit<"ivec4">; export declare function ivec4(x: Vec2Term | BVec2Term, y: Vec2Term | BVec2Term): Lit<"ivec4">; export declare function ivec4(x: Vec2Term | BVec2Term, y: NumericB, z: NumericB): Lit<"ivec4">; export declare function ivec4(x: NumericB, y: NumericB, z: NumericB, w: NumericB): Lit<"ivec4">; export declare function uvec2(): Lit<"uvec2">; export declare function uvec2(x: NumericB | Vec2Term | IVec2Term | BVec2Term): Lit<"uvec2">; export declare function uvec2(x: NumericB, y: NumericB): Lit<"uvec2">; export declare function uvec3(): Lit<"uvec3">; export declare function uvec3(x: NumericB | Vec3Term | IVec3Term | BVec3Term): Lit<"uvec3">; export declare function uvec3(xy: Vec2Term | BVec2Term, z: NumericB): Lit<"uvec3">; export declare function uvec3(x: NumericB, y: NumericB, z: NumericB): Lit<"uvec3">; export declare function uvec4(): Lit<"uvec4">; export declare function uvec4(x: NumericB | Vec4Term | IVec4Term | BVec4Term): Lit<"uvec4">; export declare function uvec4(xyz: Vec3Term | BVec3Term, w: NumericB): Lit<"uvec4">; export declare function uvec4(xy: Vec2Term | BVec2Term, zw: Vec2Term | BVec2Term): Lit<"uvec4">; export declare function uvec4(xy: Vec2Term | BVec2Term, z: NumericB, w: NumericB): Lit<"uvec4">; export declare function uvec4(x: NumericB, y: NumericB, z: NumericB, w: NumericB): Lit<"uvec4">; export declare function bvec2(): Lit<"bvec2">; export declare function bvec2(x: NumericB | Vec2Term | IVec2Term | UVec2Term): Lit<"bvec2">; export declare function bvec2(x: NumericB, y: NumericB): Lit<"bvec2">; export declare function bvec3(): Lit<"bvec3">; export declare function bvec3(x: NumericB | Vec3Term | IVec3Term | UVec3Term): Lit<"bvec3">; export declare function bvec3(xy: Vec2Term | IVec2Term | UVec2Term | BVec2Term, z: NumericB): Lit<"bvec3">; export declare function bvec3(x: NumericB, y: NumericB, z: NumericB): Lit<"bvec3">; export declare function bvec4(): Lit<"bvec4">; export declare function bvec4(x: NumericB | Vec4Term | IVec4Term | UVec4Term): Lit<"bvec4">; export declare function bvec4(xyz: Vec3Term | IVec3Term | UVec3Term | BVec3Term, w: NumericB): Lit<"bvec4">; export declare function bvec4(xy: Vec2Term | IVec2Term | UVec2Term | BVec2Term, zw: Vec2Term | IVec2Term | UVec2Term | BVec2Term): Lit<"bvec4">; export declare function bvec4(xy: Vec2Term | IVec2Term | UVec2Term | BVec2Term, z: NumericB, w: NumericB): Lit<"bvec4">; export declare function bvec4(x: NumericB, y: NumericB, z: NumericB, w: NumericB): Lit<"bvec4">; export declare function mat2(): Lit<"mat2">; export declare function mat2(x: NumericF): Lit<"mat2">; export declare function mat2(x: Vec2Term, y: Vec2Term): Lit<"mat2">; export declare function mat2(a: NumericF, b: NumericF, c: NumericF, d: NumericF): Lit<"mat2">; export declare function mat3(): Lit<"mat3">; export declare function mat3(x: NumericF): Lit<"mat3">; export declare function mat3(x: Vec3Term, y: Vec3Term, z: Vec3Term): Lit<"mat3">; export declare function mat3(a: NumericF, b: NumericF, c: NumericF, d: NumericF, e: NumericF, f: NumericF, g: NumericF, h: NumericF, i: NumericF): Lit<"mat3">; export declare function mat4(): Lit<"mat4">; export declare function mat4(x: NumericF): Lit<"mat4">; export declare function mat4(x: Vec4Term, y: Vec4Term, z: Vec4Term, w: Vec4Term): Lit<"mat4">; export declare function mat4(a: NumericF, b: NumericF, c: NumericF, d: NumericF, e: NumericF, f: NumericF, g: NumericF, h: NumericF, i: NumericF, j: NumericF, k: NumericF, l: NumericF, m: NumericF, n: NumericF, o: NumericF, p: NumericF): Lit<"mat4">; export declare const VEC2_0: Lit<"vec2">; export declare const VEC2_1: Lit<"vec2">; export declare const VEC2_2: Lit<"vec2">; export declare const VEC3_0: Lit<"vec3">; export declare const VEC3_1: Lit<"vec3">; export declare const VEC3_2: Lit<"vec3">; //# sourceMappingURL=lit.d.ts.map