UNPKG

@thi.ng/shader-ast-stdlib

Version:

Function collection for modular GPGPU / shader programming with @thi.ng/shader-ast

31 lines (30 loc) 880 B
import { F, V2 } from "@thi.ng/shader-ast/api/types"; import { defn, ret } from "@thi.ng/shader-ast/ast/function"; import { VEC2_1, bvec4, vec2 } from "@thi.ng/shader-ast/ast/lit"; import { add, div, mul, sub } from "@thi.ng/shader-ast/ast/ops"; import { $xy, $y } from "@thi.ng/shader-ast/ast/swizzle"; import { _any, greaterThan, lessThan } from "@thi.ng/shader-ast/builtin/bvec"; const fragUV = (fragCoord, res) => div($xy(fragCoord), res); const aspectCorrectedUV = defn( V2, "aspectCorrectedUV2", [V2, V2], (fragCoord, resolution) => [ ret(div(sub(mul(2, fragCoord), resolution), $y(resolution))) ] ); const borderMask = defn("bool", "borderMask", [V2, F], (uv, width) => [ ret( _any( bvec4( lessThan(uv, vec2(width)), greaterThan(add(uv, width), VEC2_1) ) ) ) ]); export { aspectCorrectedUV, borderMask, fragUV };