UNPKG

typegpu

Version:

A thin layer between JS and WebGPU/WGSL that improves development experience and allows for faster iteration.

26 lines (25 loc) 1.7 kB
import type * as wgsl from './wgslTypes.ts'; import type { VecKind } from './wgslTypes.ts'; type vBase = { kind: VecKind; }; type MatKind = 'mat2x2f' | 'mat3x3f' | 'mat4x4f'; /** * Functions that cannot be simply generalized via `generalizeFn` * have their overloads listed explicitly here. */ export declare const VectorOps: { all: Record<VecKind, (v: wgsl.AnyBooleanVecInstance) => boolean>; length: Record<VecKind, (v: vBase) => number>; mulMxM: Record<VecKind | MatKind, <T extends vBase | wgsl.AnyMatInstance>(lhs: T, rhs: T) => T>; mulMxV: Record<MatKind, <T extends wgsl.AnyMatInstance>(m: T, v: wgsl.vBaseForMat<T>) => wgsl.vBaseForMat<T>>; mulVxM: Record<MatKind, <T extends wgsl.AnyMatInstance>(v: wgsl.vBaseForMat<T>, m: T) => wgsl.vBaseForMat<T>>; dot: Record<VecKind, <T extends vBase>(lhs: T, rhs: T) => number>; cross: Record<"vec3f" | "vec3h", <T extends wgsl.v3f | wgsl.v3h>(a: T, b: T) => T>; bitShiftLeft: Record<VecKind, <T extends wgsl.AnyIntegerVecInstance, U extends wgsl.AnyUnsignedVecInstance>(a: T, b: U) => T>; bitShiftRight: Record<VecKind, <T extends wgsl.AnyIntegerVecInstance, U extends wgsl.AnyUnsignedVecInstance>(a: T, b: U) => T>; bitcastU32toF32: Record<VecKind, <T extends wgsl.AnyUnsignedVecInstance>(v: T) => T extends wgsl.v2u ? wgsl.v2f : T extends wgsl.v3u ? wgsl.v3f : wgsl.v4f>; bitcastU32toI32: Record<VecKind, <T extends wgsl.AnyUnsignedVecInstance>(v: T) => T extends wgsl.v2u ? wgsl.v2i : T extends wgsl.v3u ? wgsl.v3i : wgsl.v4i>; bitcastF32toU32: Record<VecKind, <T extends wgsl.AnyFloatVecInstance>(v: T) => T extends wgsl.v2f ? wgsl.v2u : T extends wgsl.v3f ? wgsl.v3u : wgsl.v4u>; }; export {};