glre 0.38.0 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -4
- package/dist/addons.cjs +2 -0
- package/dist/addons.cjs.map +1 -0
- package/dist/addons.d.ts +1287 -0
- package/dist/addons.js +2 -0
- package/dist/addons.js.map +1 -0
- package/dist/index.cjs +31 -43
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +187 -323
- package/dist/index.js +31 -43
- package/dist/index.js.map +1 -1
- package/dist/native.cjs +1 -48
- package/dist/native.cjs.map +1 -1
- package/dist/native.d.ts +536 -10
- package/dist/native.js +1 -48
- package/dist/native.js.map +1 -1
- package/dist/node.cjs +69 -0
- package/dist/node.cjs.map +1 -0
- package/dist/node.d.ts +626 -0
- package/dist/node.js +69 -0
- package/dist/node.js.map +1 -0
- package/dist/react.cjs +1 -48
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.ts +524 -4
- package/dist/react.js +1 -48
- package/dist/react.js.map +1 -1
- package/dist/solid.cjs +1 -48
- package/dist/solid.cjs.map +1 -1
- package/dist/solid.d.ts +524 -4
- package/dist/solid.js +1 -48
- package/dist/solid.js.map +1 -1
- package/package.json +64 -11
- package/src/addons/animation/easing/backIn.ts +10 -0
- package/src/addons/animation/easing/backInOut.ts +12 -0
- package/src/addons/animation/easing/backOut.ts +10 -0
- package/src/addons/animation/easing/bounceIn.ts +10 -0
- package/src/addons/animation/easing/bounceInOut.ts +13 -0
- package/src/addons/animation/easing/bounceOut.ts +30 -0
- package/src/addons/animation/easing/circularIn.ts +9 -0
- package/src/addons/animation/easing/circularInOut.ts +11 -0
- package/src/addons/animation/easing/circularOut.ts +9 -0
- package/src/addons/animation/easing/cubicIn.ts +9 -0
- package/src/addons/animation/easing/cubicInOut.ts +11 -0
- package/src/addons/animation/easing/cubicOut.ts +10 -0
- package/src/addons/animation/easing/elasticIn.ts +10 -0
- package/src/addons/animation/easing/elasticInOut.ts +21 -0
- package/src/addons/animation/easing/elasticOut.ts +12 -0
- package/src/addons/animation/easing/exponentialIn.ts +9 -0
- package/src/addons/animation/easing/exponentialInOut.ts +13 -0
- package/src/addons/animation/easing/exponentialOut.ts +9 -0
- package/src/addons/animation/easing/index.ts +33 -0
- package/src/addons/animation/easing/linearIn.ts +9 -0
- package/src/addons/animation/easing/linearInOut.ts +9 -0
- package/src/addons/animation/easing/linearOut.ts +9 -0
- package/src/addons/animation/easing/quadraticIn.ts +9 -0
- package/src/addons/animation/easing/quadraticInOut.ts +10 -0
- package/src/addons/animation/easing/quadraticOut.ts +9 -0
- package/src/addons/animation/easing/quarticIn.ts +9 -0
- package/src/addons/animation/easing/quarticInOut.ts +11 -0
- package/src/addons/animation/easing/quarticOut.ts +10 -0
- package/src/addons/animation/easing/quinticIn.ts +9 -0
- package/src/addons/animation/easing/quinticInOut.ts +11 -0
- package/src/addons/animation/easing/quinticOut.ts +9 -0
- package/src/addons/animation/easing/sineIn.ts +10 -0
- package/src/addons/animation/easing/sineInOut.ts +10 -0
- package/src/addons/animation/easing/sineOut.ts +10 -0
- package/src/addons/color/palette/macbeth.ts +42 -0
- package/src/addons/color/space/cmyk2rgb.ts +12 -0
- package/src/addons/color/space/gamma2linear.ts +19 -0
- package/src/addons/color/space/hsl2rgb.ts +20 -0
- package/src/addons/color/space/hsv2rgb.ts +18 -0
- package/src/addons/color/space/hue2rgb.ts +12 -0
- package/src/addons/color/space/index.ts +29 -0
- package/src/addons/color/space/lab2lch.ts +22 -0
- package/src/addons/color/space/lab2rgb.ts +19 -0
- package/src/addons/color/space/lab2xyz.ts +32 -0
- package/src/addons/color/space/lch2lab.ts +21 -0
- package/src/addons/color/space/lch2rgb.ts +22 -0
- package/src/addons/color/space/linear2gamma.ts +19 -0
- package/src/addons/color/space/oklab2rgb.ts +35 -0
- package/src/addons/color/space/rgb2cmyk.ts +13 -0
- package/src/addons/color/space/rgb2hcv.ts +29 -0
- package/src/addons/color/space/rgb2hsl.ts +23 -0
- package/src/addons/color/space/rgb2hsv.ts +36 -0
- package/src/addons/color/space/rgb2hue.ts +29 -0
- package/src/addons/color/space/rgb2lab.ts +19 -0
- package/src/addons/color/space/rgb2lch.ts +22 -0
- package/src/addons/color/space/rgb2oklab.ts +45 -0
- package/src/addons/color/space/rgb2srgb.ts +34 -0
- package/src/addons/color/space/rgb2xyz.ts +20 -0
- package/src/addons/color/space/rgb2yiq.ts +22 -0
- package/src/addons/color/space/rgb2yuv.ts +32 -0
- package/src/addons/color/space/srgb2rgb.ts +34 -0
- package/src/addons/color/space/xyz2lab.ts +27 -0
- package/src/addons/color/space/xyz2rgb.ts +30 -0
- package/src/addons/color/space/yiq2rgb.ts +22 -0
- package/src/addons/color/space/yuv2rgb.ts +32 -0
- package/src/addons/draw/arrows.ts +75 -0
- package/src/addons/draw/axis.ts +57 -0
- package/src/addons/draw/bridge.ts +81 -0
- package/src/addons/draw/char.ts +30 -0
- package/src/addons/draw/circle.ts +29 -0
- package/src/addons/draw/fill.ts +25 -0
- package/src/addons/draw/flip.ts +45 -0
- package/src/addons/draw/hex.ts +29 -0
- package/src/addons/draw/index.ts +13 -0
- package/src/addons/draw/line.ts +16 -0
- package/src/addons/draw/point.ts +30 -0
- package/src/addons/draw/rect.ts +52 -0
- package/src/addons/draw/stroke.ts +31 -0
- package/src/addons/draw/tri.ts +29 -0
- package/src/addons/generative/cnoise.ts +239 -0
- package/src/addons/generative/curl.ts +64 -0
- package/src/addons/generative/fbm.ts +69 -0
- package/src/addons/generative/gerstnerWave.ts +21 -0
- package/src/addons/generative/gnoise.ts +113 -0
- package/src/addons/generative/index.ts +15 -0
- package/src/addons/generative/noised.ts +139 -0
- package/src/addons/generative/pnoise.ts +249 -0
- package/src/addons/generative/psrdnoise.ts +277 -0
- package/src/addons/generative/random.ts +136 -0
- package/src/addons/generative/snoise.ts +199 -0
- package/src/addons/generative/srandom.ts +90 -0
- package/src/addons/generative/voronoi.ts +134 -0
- package/src/addons/generative/voronoise.ts +69 -0
- package/src/addons/generative/wavelet.ts +77 -0
- package/src/addons/generative/worley.ts +99 -0
- package/src/addons/geometry/aabb/aabb.ts +8 -0
- package/src/addons/geometry/aabb/centroid.ts +10 -0
- package/src/addons/geometry/aabb/contain.ts +19 -0
- package/src/addons/geometry/aabb/diagonal.ts +10 -0
- package/src/addons/geometry/aabb/expand.ts +16 -0
- package/src/addons/geometry/aabb/index.ts +7 -0
- package/src/addons/geometry/aabb/intersect.ts +20 -0
- package/src/addons/geometry/aabb/square.ts +17 -0
- package/src/addons/geometry/index.ts +2 -0
- package/src/addons/geometry/triangle/area.ts +10 -0
- package/src/addons/geometry/triangle/barycentric.ts +50 -0
- package/src/addons/geometry/triangle/centroid.ts +10 -0
- package/src/addons/geometry/triangle/closestPoint.ts +85 -0
- package/src/addons/geometry/triangle/contain.ts +19 -0
- package/src/addons/geometry/triangle/distanceSq.ts +38 -0
- package/src/addons/geometry/triangle/index.ts +10 -0
- package/src/addons/geometry/triangle/intersect.ts +49 -0
- package/src/addons/geometry/triangle/normal.ts +12 -0
- package/src/addons/geometry/triangle/signedDistance.ts +31 -0
- package/src/addons/geometry/triangle/triangle.ts +9 -0
- package/src/addons/index.ts +8 -0
- package/src/addons/lighting/ray.ts +8 -0
- package/src/addons/math/aafloor.ts +13 -0
- package/src/addons/math/aafract.ts +38 -0
- package/src/addons/math/aamirror.ts +12 -0
- package/src/addons/math/aastep.ts +14 -0
- package/src/addons/math/absi.ts +9 -0
- package/src/addons/math/adaptiveThreshold.ts +24 -0
- package/src/addons/math/bump.ts +20 -0
- package/src/addons/math/const.ts +19 -0
- package/src/addons/math/cubic.ts +101 -0
- package/src/addons/math/cubicMix.ts +49 -0
- package/src/addons/math/decimate.ts +12 -0
- package/src/addons/math/dist.ts +143 -0
- package/src/addons/math/fcos.ts +11 -0
- package/src/addons/math/frac.ts +9 -0
- package/src/addons/math/gain.ts +14 -0
- package/src/addons/math/gaussian.ts +14 -0
- package/src/addons/math/grad4.ts +19 -0
- package/src/addons/math/hammersley.ts +54 -0
- package/src/addons/math/highPass.ts +12 -0
- package/src/addons/math/index.ts +63 -0
- package/src/addons/math/inside.ts +68 -0
- package/src/addons/math/invCubic.ts +9 -0
- package/src/addons/math/invQuartic.ts +9 -0
- package/src/addons/math/inverse.ts +9 -0
- package/src/addons/math/lengthSq.ts +10 -0
- package/src/addons/math/map.ts +27 -0
- package/src/addons/math/mirror.ts +12 -0
- package/src/addons/math/mmax.ts +27 -0
- package/src/addons/math/mmin.ts +28 -0
- package/src/addons/math/mmix.ts +47 -0
- package/src/addons/math/mod2.ts +44 -0
- package/src/addons/math/mod289.ts +46 -0
- package/src/addons/math/modi.ts +15 -0
- package/src/addons/math/nyquist.ts +15 -0
- package/src/addons/math/pack.ts +15 -0
- package/src/addons/math/parabola.ts +12 -0
- package/src/addons/math/permute.ts +42 -0
- package/src/addons/math/pow2.ts +10 -0
- package/src/addons/math/pow3.ts +9 -0
- package/src/addons/math/pow5.ts +10 -0
- package/src/addons/math/pow7.ts +12 -0
- package/src/addons/math/powFast.ts +18 -0
- package/src/addons/math/quartic.ts +15 -0
- package/src/addons/math/quat/index.ts +14 -0
- package/src/addons/math/quat/quat2mat3.ts +28 -0
- package/src/addons/math/quat/quat2mat4.ts +16 -0
- package/src/addons/math/quat/quatAdd.ts +18 -0
- package/src/addons/math/quat/quatConj.ts +14 -0
- package/src/addons/math/quat/quatDiv.ts +18 -0
- package/src/addons/math/quat/quatIdentity.ts +9 -0
- package/src/addons/math/quat/quatInverse.ts +17 -0
- package/src/addons/math/quat/quatLength.ts +15 -0
- package/src/addons/math/quat/quatLengthSq.ts +14 -0
- package/src/addons/math/quat/quatLerp.ts +40 -0
- package/src/addons/math/quat/quatMul.ts +38 -0
- package/src/addons/math/quat/quatNeg.ts +14 -0
- package/src/addons/math/quat/quatNorm.ts +16 -0
- package/src/addons/math/quat/quatSub.ts +18 -0
- package/src/addons/math/quintic.ts +16 -0
- package/src/addons/math/rotate2d.ts +16 -0
- package/src/addons/math/rotate3d.ts +37 -0
- package/src/addons/math/rotate3dX.ts +20 -0
- package/src/addons/math/rotate3dY.ts +20 -0
- package/src/addons/math/rotate3dZ.ts +20 -0
- package/src/addons/math/rotate4d.ts +41 -0
- package/src/addons/math/rotate4dX.ts +21 -0
- package/src/addons/math/rotate4dY.ts +16 -0
- package/src/addons/math/rotate4dZ.ts +21 -0
- package/src/addons/math/saturateMediump.ts +11 -0
- package/src/addons/math/scale2d.ts +44 -0
- package/src/addons/math/scale3d.ts +17 -0
- package/src/addons/math/scale4d.ts +50 -0
- package/src/addons/math/smootherstep.ts +16 -0
- package/src/addons/math/taylorInvSqrt.ts +9 -0
- package/src/addons/math/toMat3.ts +14 -0
- package/src/addons/math/toMat4.ts +14 -0
- package/src/addons/math/translate4d.ts +31 -0
- package/src/addons/math/unpack.ts +88 -0
- package/src/addons/sdf/boxSDF.ts +24 -0
- package/src/addons/sdf/circleSDF.ts +20 -0
- package/src/addons/sdf/crossSDF.ts +17 -0
- package/src/addons/sdf/hexSDF.ts +18 -0
- package/src/addons/sdf/index.ts +7 -0
- package/src/addons/sdf/lineSDF.ts +33 -0
- package/src/addons/sdf/rectSDF.ts +46 -0
- package/src/addons/sdf/sphereSDF.ts +20 -0
- package/src/addons/sdf/triSDF.ts +14 -0
- package/src/addons/space/aspect.ts +14 -0
- package/src/addons/space/bracketing.ts +44 -0
- package/src/addons/space/brickTile.ts +44 -0
- package/src/addons/space/cart2polar.ts +20 -0
- package/src/addons/space/center.ts +32 -0
- package/src/addons/space/checkerTile.ts +41 -0
- package/src/addons/space/depth2viewZ.ts +43 -0
- package/src/addons/space/displace.ts +55 -0
- package/src/addons/space/equirect2xyz.ts +17 -0
- package/src/addons/space/eulerView.ts +19 -0
- package/src/addons/space/fisheye2xyz.ts +18 -0
- package/src/addons/space/flipY.ts +25 -0
- package/src/addons/space/hexTile.ts +18 -0
- package/src/addons/space/index.ts +38 -0
- package/src/addons/space/kaleidoscope.ts +48 -0
- package/src/addons/space/linearizeDepth.ts +17 -0
- package/src/addons/space/lookAt.ts +49 -0
- package/src/addons/space/lookAtView.ts +40 -0
- package/src/addons/space/mirrorTile.ts +73 -0
- package/src/addons/space/nearest.ts +13 -0
- package/src/addons/space/orthographic.ts +25 -0
- package/src/addons/space/parallaxMapping.ts +149 -0
- package/src/addons/space/perspective.ts +24 -0
- package/src/addons/space/polar2cart.ts +24 -0
- package/src/addons/space/ratio.ts +14 -0
- package/src/addons/space/rotate.ts +37 -0
- package/src/addons/space/rotateX.ts +54 -0
- package/src/addons/space/rotateY.ts +54 -0
- package/src/addons/space/rotateZ.ts +54 -0
- package/src/addons/space/scale.ts +13 -0
- package/src/addons/space/sprite.ts +16 -0
- package/src/addons/space/sqTile.ts +20 -0
- package/src/addons/space/tbn.ts +26 -0
- package/src/addons/space/translate.ts +12 -0
- package/src/addons/space/triTile.ts +32 -0
- package/src/addons/space/uncenter.ts +32 -0
- package/src/addons/space/unratio.ts +12 -0
- package/src/addons/space/viewZ2depth.ts +25 -0
- package/src/addons/space/windmillTile.ts +58 -0
- package/src/addons/space/xyz2equirect.ts +10 -0
- package/src/index.ts +10 -23
- package/src/node/build.ts +127 -0
- package/src/node/create.ts +76 -0
- package/src/node/index.ts +64 -49
- package/src/node/scope.ts +66 -62
- package/src/node/types.ts +221 -187
- package/src/node/utils/const.ts +74 -13
- package/src/node/utils/index.ts +19 -14
- package/src/node/utils/infer.ts +32 -34
- package/src/node/utils/parse.ts +48 -24
- package/src/node/utils/utils.ts +52 -29
- package/src/types.ts +11 -6
- package/src/utils/helpers.ts +56 -0
- package/src/utils/pipeline.ts +24 -8
- package/src/utils/program.ts +62 -38
- package/src/{webgl.ts → utils/webgl.ts} +46 -30
- package/src/{webgpu.ts → utils/webgpu.ts} +22 -17
- package/src/node/core.ts +0 -121
- package/src/node/node.ts +0 -65
package/dist/node.d.ts
ADDED
|
@@ -0,0 +1,626 @@
|
|
|
1
|
+
import { EventState, Nested } from 'reev';
|
|
2
|
+
import { Queue, Frame } from 'refr';
|
|
3
|
+
|
|
4
|
+
declare const CONVERSIONS: readonly ["toBool", "toUInt", "toInt", "toFloat", "toBVec2", "toIVec2", "toUVec2", "toVec2", "toBVec3", "toIVec3", "toUVec3", "toVec3", "toBVec4", "toIVec4", "toUVec4", "toVec4", "toColor", "toMat2", "toMat3", "toMat4"];
|
|
5
|
+
declare const TYPE_MAPPING: {
|
|
6
|
+
readonly bool: "bool";
|
|
7
|
+
readonly uint: "u32";
|
|
8
|
+
readonly int: "i32";
|
|
9
|
+
readonly float: "f32";
|
|
10
|
+
readonly bvec2: "vec2<bool>";
|
|
11
|
+
readonly ivec2: "vec2i";
|
|
12
|
+
readonly uvec2: "vec2u";
|
|
13
|
+
readonly vec2: "vec2f";
|
|
14
|
+
readonly bvec3: "vec3<bool>";
|
|
15
|
+
readonly ivec3: "vec3i";
|
|
16
|
+
readonly uvec3: "vec3u";
|
|
17
|
+
readonly vec3: "vec3f";
|
|
18
|
+
readonly bvec4: "vec4<bool>";
|
|
19
|
+
readonly ivec4: "vec4i";
|
|
20
|
+
readonly uvec4: "vec4u";
|
|
21
|
+
readonly vec4: "vec4f";
|
|
22
|
+
readonly color: "color";
|
|
23
|
+
readonly mat2: "mat2x2f";
|
|
24
|
+
readonly mat3: "mat3x3f";
|
|
25
|
+
readonly mat4: "mat4x4f";
|
|
26
|
+
readonly texture: "texture_2d<f32>";
|
|
27
|
+
readonly sampler2D: "sampler";
|
|
28
|
+
readonly struct: "struct";
|
|
29
|
+
};
|
|
30
|
+
declare const CONSTANTS: (keyof typeof TYPE_MAPPING)[];
|
|
31
|
+
declare const OPERATORS: {
|
|
32
|
+
readonly not: "";
|
|
33
|
+
readonly add: "+";
|
|
34
|
+
readonly sub: "-";
|
|
35
|
+
readonly mul: "*";
|
|
36
|
+
readonly div: "/";
|
|
37
|
+
readonly mod: "%";
|
|
38
|
+
readonly equal: "==";
|
|
39
|
+
readonly notEqual: "!=";
|
|
40
|
+
readonly lessThan: "<";
|
|
41
|
+
readonly lessThanEqual: "<=";
|
|
42
|
+
readonly greaterThan: ">";
|
|
43
|
+
readonly greaterThanEqual: ">=";
|
|
44
|
+
readonly and: "&&";
|
|
45
|
+
readonly or: "||";
|
|
46
|
+
readonly bitAnd: "&";
|
|
47
|
+
readonly bitOr: "|";
|
|
48
|
+
readonly bitXor: "^";
|
|
49
|
+
readonly shiftLeft: "<<";
|
|
50
|
+
readonly shiftRight: ">>";
|
|
51
|
+
readonly addAssign: "+=";
|
|
52
|
+
readonly subAssign: "-=";
|
|
53
|
+
readonly mulAssign: "*=";
|
|
54
|
+
readonly divAssign: "/=";
|
|
55
|
+
readonly modAssign: "%=";
|
|
56
|
+
readonly bitAndAssign: "&=";
|
|
57
|
+
readonly bitOrAssign: "|=";
|
|
58
|
+
readonly bitXorAssign: "^=";
|
|
59
|
+
readonly shiftLeftAssign: "<<=";
|
|
60
|
+
readonly shiftRightAssign: ">>=";
|
|
61
|
+
};
|
|
62
|
+
declare const OPERATOR_KEYS: (keyof typeof OPERATORS)[];
|
|
63
|
+
declare const OPERATOR_TYPE_RULES: readonly [readonly ["float", "vec2", "vec2"], readonly ["float", "vec3", "vec3"], readonly ["float", "vec4", "vec4"], readonly ["int", "ivec2", "ivec2"], readonly ["int", "ivec3", "ivec3"], readonly ["int", "ivec4", "ivec4"], readonly ["uint", "uvec2", "uvec2"], readonly ["uint", "uvec3", "uvec3"], readonly ["uint", "uvec4", "uvec4"], readonly ["mat2", "vec2", "vec2"], readonly ["mat3", "vec3", "vec3"], readonly ["mat4", "vec4", "vec4"], readonly ["vec2", "mat2", "vec2"], readonly ["vec3", "mat3", "vec3"], readonly ["vec4", "mat4", "vec4"]];
|
|
64
|
+
/**
|
|
65
|
+
* 2.2. unified with:
|
|
66
|
+
* 1.2. index.ts functions and
|
|
67
|
+
* 3.2. types.ts _N
|
|
68
|
+
*/
|
|
69
|
+
declare const FUNCTIONS: readonly [...("texture" | "all" | "any" | "determinant" | "distance" | "dot" | "length" | "lengthSq" | "luminance" | "cross" | "cubeTexture" | "texelFetch" | "textureLod")[], "abs", "acos", "acosh", "asin", "asinh", "atan", "atanh", "ceil", "cos", "cosh", "dFdx", "dFdy", "degrees", "exp", "exp2", "floor", "fract", "fwidth", "inverse", "inverseSqrt", "log", "log2", "negate", "normalize", "oneMinus", "radians", "reciprocal", "round", "sign", "sin", "sinh", "sqrt", "tan", "tanh", "trunc", "saturate", "atan2", "clamp", "max", "min", "mix", "pow", "reflect", "refract", "smoothstep", "step"];
|
|
70
|
+
|
|
71
|
+
type GL = EventState<{
|
|
72
|
+
/**
|
|
73
|
+
* initial value
|
|
74
|
+
*/
|
|
75
|
+
isNative: boolean;
|
|
76
|
+
isWebGL: boolean;
|
|
77
|
+
isError: boolean;
|
|
78
|
+
isLoop: boolean;
|
|
79
|
+
isDebug: boolean;
|
|
80
|
+
isDepth: boolean;
|
|
81
|
+
isGL: true;
|
|
82
|
+
width?: number;
|
|
83
|
+
height?: number;
|
|
84
|
+
size: [number, number];
|
|
85
|
+
mouse: [number, number];
|
|
86
|
+
count: number;
|
|
87
|
+
instanceCount: number;
|
|
88
|
+
particleCount: number | [number, number] | [number, number, number];
|
|
89
|
+
loading: number;
|
|
90
|
+
el: HTMLCanvasElement;
|
|
91
|
+
vs?: string | Vec4;
|
|
92
|
+
cs?: string | Void;
|
|
93
|
+
fs?: string | Vec4;
|
|
94
|
+
vert?: string | Vec4;
|
|
95
|
+
comp?: string | Void;
|
|
96
|
+
frag?: string | Vec4;
|
|
97
|
+
vertex?: string | Vec4;
|
|
98
|
+
compute?: string | Void;
|
|
99
|
+
fragment?: string | Vec4;
|
|
100
|
+
/**
|
|
101
|
+
* core state
|
|
102
|
+
*/
|
|
103
|
+
webgpu: WebGPUState;
|
|
104
|
+
webgl: WebGLState;
|
|
105
|
+
queue: Queue;
|
|
106
|
+
frame: Frame;
|
|
107
|
+
/**
|
|
108
|
+
* events
|
|
109
|
+
*/
|
|
110
|
+
ref?: any;
|
|
111
|
+
mount(): void;
|
|
112
|
+
clean(): void;
|
|
113
|
+
error(e?: string): void;
|
|
114
|
+
render(): void;
|
|
115
|
+
resize(e?: Event): void;
|
|
116
|
+
mousemove(e: MouseEvent): void;
|
|
117
|
+
loop(): void;
|
|
118
|
+
/**
|
|
119
|
+
* setter
|
|
120
|
+
*/
|
|
121
|
+
_uniform?(key: string, value: Uniform, isMatrix?: boolean): GL;
|
|
122
|
+
uniform(key: string, value: Uniform, isMatrix?: boolean): GL;
|
|
123
|
+
uniform(target: {
|
|
124
|
+
[key: string]: Uniform;
|
|
125
|
+
}): GL;
|
|
126
|
+
_texture?(key: string, value: string): GL;
|
|
127
|
+
texture(key: string, value: string): GL;
|
|
128
|
+
texture(target: {
|
|
129
|
+
[key: string]: string;
|
|
130
|
+
}): GL;
|
|
131
|
+
_attribute?(key: string, value: Attribute, iboValue?: Attribute): GL;
|
|
132
|
+
attribute(key: string, value: Attribute, iboValue?: Attribute): GL;
|
|
133
|
+
attribute(target: {
|
|
134
|
+
[key: string]: Attribute;
|
|
135
|
+
}): GL;
|
|
136
|
+
_instance?(key: string, value: Attribute, at?: number): GL;
|
|
137
|
+
instance(key: string, value: Attribute, at?: number): GL;
|
|
138
|
+
instance(target: {
|
|
139
|
+
[key: string]: Attribute;
|
|
140
|
+
}): GL;
|
|
141
|
+
_storage?(key: string, value: Storage): GL;
|
|
142
|
+
storage(key: string, value: Storage): GL;
|
|
143
|
+
storage(target: {
|
|
144
|
+
[key: string]: Storage;
|
|
145
|
+
}): GL;
|
|
146
|
+
}>;
|
|
147
|
+
type Uniform = number | number[] | Float32Array;
|
|
148
|
+
type Attribute = number[] | Float32Array;
|
|
149
|
+
type Storage = number[] | Float32Array;
|
|
150
|
+
/**
|
|
151
|
+
* for webgpu
|
|
152
|
+
*/
|
|
153
|
+
interface UniformData {
|
|
154
|
+
array: Float32Array;
|
|
155
|
+
buffer: GPUBuffer;
|
|
156
|
+
binding: number;
|
|
157
|
+
group: number;
|
|
158
|
+
}
|
|
159
|
+
interface TextureData {
|
|
160
|
+
binding: number;
|
|
161
|
+
group: number;
|
|
162
|
+
texture: GPUTexture;
|
|
163
|
+
sampler: GPUSampler;
|
|
164
|
+
view: GPUTextureView;
|
|
165
|
+
}
|
|
166
|
+
interface AttribData {
|
|
167
|
+
array: Float32Array;
|
|
168
|
+
buffer: GPUBuffer;
|
|
169
|
+
location: number;
|
|
170
|
+
stride: number;
|
|
171
|
+
isInstance?: boolean;
|
|
172
|
+
}
|
|
173
|
+
interface StorageData {
|
|
174
|
+
array: Float32Array;
|
|
175
|
+
buffer: GPUBuffer;
|
|
176
|
+
binding: number;
|
|
177
|
+
group: number;
|
|
178
|
+
}
|
|
179
|
+
interface WebGPUState {
|
|
180
|
+
device: GPUDevice;
|
|
181
|
+
uniforms: Nested<UniformData>;
|
|
182
|
+
textures: Nested<TextureData>;
|
|
183
|
+
attribs: Nested<AttribData>;
|
|
184
|
+
storages: Nested<StorageData>;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* for webgl
|
|
188
|
+
*/
|
|
189
|
+
interface WebGLState {
|
|
190
|
+
context: WebGLRenderingContext;
|
|
191
|
+
program: WebGLProgram;
|
|
192
|
+
storages: any;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
type Constants = (typeof CONSTANTS)[number] | 'void';
|
|
196
|
+
type Conversions = (typeof CONVERSIONS)[number];
|
|
197
|
+
type Functions = (typeof FUNCTIONS)[number];
|
|
198
|
+
type Operators = (typeof OPERATOR_KEYS)[number];
|
|
199
|
+
/**
|
|
200
|
+
* scope
|
|
201
|
+
*/
|
|
202
|
+
interface FnLayout {
|
|
203
|
+
name: string;
|
|
204
|
+
type: C | 'auto';
|
|
205
|
+
inputs?: Array<{
|
|
206
|
+
name: string;
|
|
207
|
+
type: C | 'auto';
|
|
208
|
+
}>;
|
|
209
|
+
}
|
|
210
|
+
interface FnType<T extends X | Struct | void, Args extends any[]> {
|
|
211
|
+
(...args: Args): T extends void ? Void : T;
|
|
212
|
+
getLayout(): FnLayout;
|
|
213
|
+
setLayout(layout: FnLayout): FnType<T, Args>;
|
|
214
|
+
}
|
|
215
|
+
type StructFields = Record<string, X>;
|
|
216
|
+
interface StructFactory<T extends StructFields> {
|
|
217
|
+
(initialValues?: StructFields, instanceId?: string): Struct<T>;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* node
|
|
221
|
+
*/
|
|
222
|
+
type NodeTypes = 'attribute' | 'instance' | 'storage' | 'uniform' | 'constant' | 'variable' | 'varying' | 'ternary' | 'builtin' | 'conversion' | 'operator' | 'function' | 'struct' | 'member' | 'element' | 'gather' | 'scatter' | 'scope' | 'assign' | 'loop' | 'define' | 'if' | 'switch' | 'declare' | 'return' | 'break' | 'continue';
|
|
223
|
+
interface NodeProps {
|
|
224
|
+
id?: string;
|
|
225
|
+
args?: any[];
|
|
226
|
+
type?: string;
|
|
227
|
+
children?: any[];
|
|
228
|
+
inferFrom?: any[];
|
|
229
|
+
layout?: FnLayout;
|
|
230
|
+
fields?: StructFields;
|
|
231
|
+
initialValues?: StructFields;
|
|
232
|
+
}
|
|
233
|
+
interface NodeContext {
|
|
234
|
+
gl?: Partial<GL>;
|
|
235
|
+
label?: 'vert' | 'frag' | 'compute';
|
|
236
|
+
isWebGL?: boolean;
|
|
237
|
+
units?: any;
|
|
238
|
+
infers?: WeakMap<X, C>;
|
|
239
|
+
onMount?: (name: string) => void;
|
|
240
|
+
code?: {
|
|
241
|
+
headers: Map<string, string>;
|
|
242
|
+
fragInputs: Map<string, string>;
|
|
243
|
+
vertInputs: Map<string, string>;
|
|
244
|
+
vertOutputs: Map<string, string>;
|
|
245
|
+
vertVaryings: Map<string, string>;
|
|
246
|
+
computeInputs: Map<string, string>;
|
|
247
|
+
dependencies: Map<string, Set<string>>;
|
|
248
|
+
structStructFields: Map<string, StructFields>;
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* infer
|
|
253
|
+
*/
|
|
254
|
+
type _StringLength<A extends string> = A extends `${infer _}${infer A}` ? A extends '' ? 1 : A extends `${infer _}${infer B}` ? B extends '' ? 2 : B extends `${infer _}${infer C}` ? C extends '' ? 3 : 4 : never : never : never;
|
|
255
|
+
type InferOperator<L extends C, R extends C> = L extends R ? L : L extends 'float' | 'int' ? R : R extends 'float' | 'int' ? L : L extends 'mat4' ? R extends 'vec4' ? R : L : L extends 'mat3' ? R extends 'vec3' ? R : L : L extends 'mat2' ? R extends 'vec2' ? R : L : L extends 'vec4' ? R extends 'mat4' ? L : L : L extends 'vec3' ? R extends 'mat3' ? L : L : L extends 'vec2' ? R extends 'mat2' ? L : L : L;
|
|
256
|
+
type InferArrayElement<T extends C> = T extends 'mat4' ? 'vec4' : T extends 'mat3' ? 'vec3' : T extends 'mat2' ? 'vec2' : 'float';
|
|
257
|
+
type ExtractPairs<T> = T extends readonly [infer L, infer R, string] ? [L, R] | [R, L] : never;
|
|
258
|
+
type OperatorTypeRules = ExtractPairs<(typeof OPERATOR_TYPE_RULES)[number]>;
|
|
259
|
+
type IsInRules<L extends C, R extends C> = [L, R] extends OperatorTypeRules ? 1 : 0;
|
|
260
|
+
type ValidateOperator<L extends C, R extends C> = L extends R ? 1 : IsInRules<L, R>;
|
|
261
|
+
type InferSwizzleType<S extends string> = _StringLength<S> extends 4 ? 'vec4' : _StringLength<S> extends 3 ? 'vec3' : _StringLength<S> extends 2 ? 'vec2' : 'float';
|
|
262
|
+
/**
|
|
263
|
+
* Swizzles
|
|
264
|
+
*/
|
|
265
|
+
type _Swizzles<T extends string> = T | `${T}${T}` | `${T}${T}${T}` | `${T}${T}${T}${T}`;
|
|
266
|
+
type Swizzles = _Swizzles<'x' | 'y' | 'z' | 'w'> | _Swizzles<'r' | 'g' | 'b' | 'a'> | _Swizzles<'p' | 'q'> | _Swizzles<'s' | 't'>;
|
|
267
|
+
type Void = XImpl<'void'>;
|
|
268
|
+
type Bool = XImpl<'bool'>;
|
|
269
|
+
type UInt = XImpl<'uint'>;
|
|
270
|
+
type Int = XImpl<'int'>;
|
|
271
|
+
type Float = XImpl<'float'>;
|
|
272
|
+
type BVec2 = XImpl<'bvec2'>;
|
|
273
|
+
type IVec2 = XImpl<'ivec2'>;
|
|
274
|
+
type UVec2 = XImpl<'uvec2'>;
|
|
275
|
+
type Vec2 = XImpl<'vec2'>;
|
|
276
|
+
type BVec3 = XImpl<'bvec3'>;
|
|
277
|
+
type IVec3 = XImpl<'ivec3'>;
|
|
278
|
+
type UVec3 = XImpl<'uvec3'>;
|
|
279
|
+
type Vec3 = XImpl<'vec3'>;
|
|
280
|
+
type BVec4 = XImpl<'bvec4'>;
|
|
281
|
+
type IVec4 = XImpl<'ivec4'>;
|
|
282
|
+
type UVec4 = XImpl<'uvec4'>;
|
|
283
|
+
type Vec4 = XImpl<'vec4'>;
|
|
284
|
+
type Color = XImpl<'color'>;
|
|
285
|
+
type Mat2 = XImpl<'mat2'>;
|
|
286
|
+
type Mat3 = XImpl<'mat3'>;
|
|
287
|
+
type Mat4 = XImpl<'mat4'>;
|
|
288
|
+
type Texture = XImpl<'texture'>;
|
|
289
|
+
type Sampler2D = XImpl<'sampler2D'>;
|
|
290
|
+
type StructBase = XImpl<'struct'>;
|
|
291
|
+
type Struct<T extends StructFields = any> = Omit<StructBase, keyof T> & {
|
|
292
|
+
[K in keyof T]: T[K] extends X<infer U> ? X<U> : never;
|
|
293
|
+
} & {
|
|
294
|
+
toVar(id?: string): Struct<T>;
|
|
295
|
+
};
|
|
296
|
+
interface ConstantsToType {
|
|
297
|
+
void: Void;
|
|
298
|
+
bool: Bool;
|
|
299
|
+
uint: UInt;
|
|
300
|
+
int: Int;
|
|
301
|
+
float: Float;
|
|
302
|
+
bvec2: BVec2;
|
|
303
|
+
ivec2: IVec2;
|
|
304
|
+
uvec2: UVec2;
|
|
305
|
+
vec2: Vec2;
|
|
306
|
+
bvec3: BVec3;
|
|
307
|
+
ivec3: IVec3;
|
|
308
|
+
uvec3: UVec3;
|
|
309
|
+
vec3: Vec3;
|
|
310
|
+
bvec4: BVec4;
|
|
311
|
+
ivec4: IVec4;
|
|
312
|
+
uvec4: UVec4;
|
|
313
|
+
vec4: Vec4;
|
|
314
|
+
color: Color;
|
|
315
|
+
mat2: Mat2;
|
|
316
|
+
mat3: Mat3;
|
|
317
|
+
mat4: Mat4;
|
|
318
|
+
texture: Texture;
|
|
319
|
+
sampler2D: Sampler2D;
|
|
320
|
+
struct: StructBase;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* X and Y
|
|
324
|
+
*/
|
|
325
|
+
type XImpl<T extends C> = _X<T> & {
|
|
326
|
+
[K in string as K extends Methods ? never : K]: any;
|
|
327
|
+
} & {
|
|
328
|
+
[K in Swizzles]: X<InferSwizzleType<K>>;
|
|
329
|
+
};
|
|
330
|
+
type C = Constants;
|
|
331
|
+
type X<T extends C = C> = T extends keyof ConstantsToType ? ConstantsToType[T] : _X<T>;
|
|
332
|
+
type Y<T extends C = C> = number | number[] | string | boolean | undefined | X<T>;
|
|
333
|
+
type Methods = Functions | Operators | Conversions | Swizzles | '__nodeType' | 'type' | 'props' | 'isProxy' | 'assign' | 'toVar' | 'toString' | 'element' | 'select';
|
|
334
|
+
interface _X<T extends C> {
|
|
335
|
+
readonly __nodeType?: T;
|
|
336
|
+
assign(x: any): X<T>;
|
|
337
|
+
select(x: number | X<T>, y: X<'bool'>): X<T>;
|
|
338
|
+
fragment(c: NodeContext): string;
|
|
339
|
+
toVar(name?: string): X<T>;
|
|
340
|
+
toString(c?: NodeContext): string;
|
|
341
|
+
fragment(c?: NodeContext): string;
|
|
342
|
+
compute(c?: NodeContext): string;
|
|
343
|
+
vertex(c?: NodeContext): string;
|
|
344
|
+
type: NodeTypes;
|
|
345
|
+
props: NodeProps;
|
|
346
|
+
isProxy: true;
|
|
347
|
+
listeners: Set<(value: any) => void>;
|
|
348
|
+
element<Index extends X>(index: Index): X<InferArrayElement<T>>;
|
|
349
|
+
member<K extends string>(key: K): K extends keyof T ? (T[K] extends X<infer U> ? X<U> : never) : never;
|
|
350
|
+
add<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<InferOperator<T, U>>;
|
|
351
|
+
sub<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<InferOperator<T, U>>;
|
|
352
|
+
mul<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<InferOperator<T, U>>;
|
|
353
|
+
div<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<InferOperator<T, U>>;
|
|
354
|
+
mod<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<InferOperator<T, U>>;
|
|
355
|
+
equal<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): Bool;
|
|
356
|
+
notEqual<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): Bool;
|
|
357
|
+
lessThan<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): Bool;
|
|
358
|
+
lessThanEqual<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): Bool;
|
|
359
|
+
greaterThan<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): Bool;
|
|
360
|
+
greaterThanEqual<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): Bool;
|
|
361
|
+
and(x: Bool): Bool;
|
|
362
|
+
or(x: Bool): Bool;
|
|
363
|
+
not(): Bool;
|
|
364
|
+
bitAnd(x: X<T>): X<T>;
|
|
365
|
+
bitOr(x: X<T>): X<T>;
|
|
366
|
+
bitXor(x: X<T>): X<T>;
|
|
367
|
+
bitNot(): X<T>;
|
|
368
|
+
shiftLeft<U extends C>(x: X<U>): X<InferOperator<T, U>>;
|
|
369
|
+
shiftRight<U extends C>(x: X<U>): X<InferOperator<T, U>>;
|
|
370
|
+
addAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
371
|
+
subAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
372
|
+
mulAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
373
|
+
divAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
374
|
+
modAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
375
|
+
bitAndAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
376
|
+
bitOrAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
377
|
+
bitXorAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
378
|
+
shiftLeftAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
379
|
+
shiftRightAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
380
|
+
toBool(): Bool;
|
|
381
|
+
toUInt(): UInt;
|
|
382
|
+
toInt(): Int;
|
|
383
|
+
toFloat(): Float;
|
|
384
|
+
toBVec2(): BVec2;
|
|
385
|
+
toIVec2(): IVec2;
|
|
386
|
+
toUVec2(): UVec2;
|
|
387
|
+
toVec2(): Vec2;
|
|
388
|
+
toBVec3(): BVec3;
|
|
389
|
+
toIVec3(): IVec3;
|
|
390
|
+
toUVec3(): UVec3;
|
|
391
|
+
toVec3(): Vec3;
|
|
392
|
+
toBVec4(): BVec4;
|
|
393
|
+
toIVec4(): IVec4;
|
|
394
|
+
toUVec4(): UVec4;
|
|
395
|
+
toVec4(): Vec4;
|
|
396
|
+
toColor(): Color;
|
|
397
|
+
toMat2(): Mat2;
|
|
398
|
+
toMat3(): Mat3;
|
|
399
|
+
toMat4(): Mat4;
|
|
400
|
+
/**
|
|
401
|
+
* 3.1. unified logic with:
|
|
402
|
+
* 1.1. index.ts functions and
|
|
403
|
+
* 2.1. const.ts FUNCTION_RETURN_TYPES
|
|
404
|
+
*/
|
|
405
|
+
all(): Bool;
|
|
406
|
+
any(): Bool;
|
|
407
|
+
determinant(): T extends 'mat2' | 'mat3' | 'mat4' ? Float : never;
|
|
408
|
+
distance<U extends C>(y: T extends 'vec2' | 'vec3' | 'vec4' ? (U extends T ? number | X<U> : never) : never): Float;
|
|
409
|
+
dot<U extends C>(y: T extends 'vec2' | 'vec3' | 'vec4' | 'ivec2' | 'ivec3' | 'ivec4' ? U extends T ? number | X<U> : never : never): T extends `ivec${string}` ? Int : Float;
|
|
410
|
+
length(): T extends 'vec2' | 'vec3' | 'vec4' ? Float : never;
|
|
411
|
+
lengthSq(): Float;
|
|
412
|
+
luminance(): Float;
|
|
413
|
+
cross<U extends C = 'vec3'>(y: T extends 'vec3' ? (U extends 'vec3' ? number | X<U> : never) : never): Vec3;
|
|
414
|
+
cubeTexture(...args: X[]): Vec4;
|
|
415
|
+
texture(...args: X[]): Vec4;
|
|
416
|
+
texelFetch(...args: X[]): Vec4;
|
|
417
|
+
textureLod(...args: X[]): Vec4;
|
|
418
|
+
/**
|
|
419
|
+
* 3.2. unified with:
|
|
420
|
+
* 1.2. index.ts functions and
|
|
421
|
+
* 2.2. const.ts FUNCTIONS
|
|
422
|
+
*/
|
|
423
|
+
abs(): X<T>;
|
|
424
|
+
acos(): X<T>;
|
|
425
|
+
acosh(): X<T>;
|
|
426
|
+
asin(): X<T>;
|
|
427
|
+
asinh(): X<T>;
|
|
428
|
+
atan(): X<T>;
|
|
429
|
+
atanh(): X<T>;
|
|
430
|
+
ceil(): X<T>;
|
|
431
|
+
cos(): X<T>;
|
|
432
|
+
cosh(): X<T>;
|
|
433
|
+
degrees(): X<T>;
|
|
434
|
+
dFdx(): X<T>;
|
|
435
|
+
dFdy(): X<T>;
|
|
436
|
+
exp(): X<T>;
|
|
437
|
+
exp2(): X<T>;
|
|
438
|
+
floor(): X<T>;
|
|
439
|
+
fract(): X<T>;
|
|
440
|
+
fwidth(): X<T>;
|
|
441
|
+
inverseSqrt(): X<T>;
|
|
442
|
+
log(): X<T>;
|
|
443
|
+
log2(): X<T>;
|
|
444
|
+
negate(): X<T>;
|
|
445
|
+
normalize(): T extends 'vec2' | 'vec3' | 'vec4' ? X<T> : never;
|
|
446
|
+
oneMinus(): X<T>;
|
|
447
|
+
radians(): X<T>;
|
|
448
|
+
reciprocal(): X<T>;
|
|
449
|
+
round(): X<T>;
|
|
450
|
+
saturate(): X<T>;
|
|
451
|
+
sign(): X<T>;
|
|
452
|
+
sin(): X<T>;
|
|
453
|
+
sinh(): X<T>;
|
|
454
|
+
sqrt(): X<T>;
|
|
455
|
+
tan(): X<T>;
|
|
456
|
+
tanh(): X<T>;
|
|
457
|
+
trunc(): X<T>;
|
|
458
|
+
atan2<U extends C>(x: number | X<U>): X<T>;
|
|
459
|
+
clamp<U extends C>(min: number | X<U>, max: number | X<U>): X<InferOperator<T, U>>;
|
|
460
|
+
max<U extends C>(y: number | X<U>): X<InferOperator<T, U>>;
|
|
461
|
+
min<U extends C>(y: number | X<U>): X<InferOperator<T, U>>;
|
|
462
|
+
mix<U extends C>(y: number | X<U>, a: number | Float | X<U>): X<InferOperator<T, U>>;
|
|
463
|
+
pow<U extends C>(y: number | X<U>): X<T>;
|
|
464
|
+
reflect<U extends C>(N: T extends 'vec2' | 'vec3' | 'vec4' ? (U extends T ? number | X<U> : never) : never): X<T>;
|
|
465
|
+
refract<U extends C>(N: T extends 'vec2' | 'vec3' | 'vec4' ? (U extends T ? number | X<U> : never) : never, eta: number | Float): T extends 'vec2' | 'vec3' | 'vec4' ? X<T> : never;
|
|
466
|
+
smoothstep<U extends C>(edge0: number | X<U>, edge1: number | X<U>): X<InferOperator<T, U>>;
|
|
467
|
+
step<U extends C>(edge: number | X<U>): X<InferOperator<T, U>>;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
declare const fragment: (x: X, c?: NodeContext) => string;
|
|
471
|
+
declare const vertex: (x: X, c?: NodeContext) => string;
|
|
472
|
+
declare const compute: (x: X, c?: NodeContext) => string;
|
|
473
|
+
|
|
474
|
+
declare const create: <T extends Constants>(type: NodeTypes, props?: NodeProps | null, ...args: Y[]) => X<T>;
|
|
475
|
+
declare const attribute: <T extends Constants>(x: Y<T>, id?: string) => X<T>;
|
|
476
|
+
declare const instance: <T extends Constants>(x: Y<T>, id?: string) => X<T>;
|
|
477
|
+
declare const constant: <T extends Constants>(x: Y<T>, id?: string) => X<T>;
|
|
478
|
+
declare const uniform: <T extends Constants>(x: Y<T>, id?: string) => X<T>;
|
|
479
|
+
declare const storage: <T extends Constants>(x: Y<T>, id?: string) => X<T>;
|
|
480
|
+
declare const variable: <T extends Constants>(id?: string) => X<T>;
|
|
481
|
+
declare const builtin: <T extends Constants>(id?: string) => X<T>;
|
|
482
|
+
declare const vertexStage: <T extends Constants>(x: X<T>, id?: string) => X<T>;
|
|
483
|
+
declare const member: <T extends Constants>(x: X, index: Y) => X<T>;
|
|
484
|
+
declare const element: <T extends Constants>(x: X, index: Y) => X<T>;
|
|
485
|
+
declare const gather: <T extends Constants>(x: X, index: Y) => X<T>;
|
|
486
|
+
declare const scatter: <T extends Constants>(x: X, index: Y) => X<T>;
|
|
487
|
+
declare const select: <T extends Constants>(x: Y, y: Y, z: Y) => X<T>;
|
|
488
|
+
declare const operator: <T extends Constants>(key: Operators, ...x: Y[]) => X<T>;
|
|
489
|
+
declare const function_: <T extends Constants>(key: Functions, ...x: Y[]) => X<T>;
|
|
490
|
+
declare const conversion: <T extends Constants>(key: T, ...x: Y[]) => X<T>;
|
|
491
|
+
|
|
492
|
+
declare const addToScope: <T extends Constants>(x: X<T>) => X<T> | undefined;
|
|
493
|
+
declare function toVar<T extends StructFields>(x: Struct<T>, id?: string): Struct<T>;
|
|
494
|
+
declare const assign: <T extends Constants>(x: X<T>, isScatter: boolean | undefined, y: Y<T>) => X<T>;
|
|
495
|
+
declare const Return: <T extends Constants>(x?: Y<T>) => Y<T>;
|
|
496
|
+
declare const Break: () => Y;
|
|
497
|
+
declare const Continue: () => Y;
|
|
498
|
+
declare const struct: <T extends StructFields>(fields: T, id?: string) => StructFactory<T>;
|
|
499
|
+
declare const scoped: (x: X, fun: () => X | void, y?: X | null) => void;
|
|
500
|
+
declare const Scope: <T extends X>(fun: () => T | void) => T;
|
|
501
|
+
declare const If: (x: Y, fun: () => void) => {
|
|
502
|
+
ElseIf: (_x: X, _fun: () => void) => /*elided*/ any;
|
|
503
|
+
Else: (_fun: () => void) => void;
|
|
504
|
+
};
|
|
505
|
+
declare const Loop: (x: Y, fun: (params: {
|
|
506
|
+
i: Int;
|
|
507
|
+
}) => void) => Bool | Color | StructBase | UInt | Int | Float | BVec2 | IVec2 | UVec2 | Vec2 | BVec3 | IVec3 | UVec3 | Vec3 | BVec4 | IVec4 | UVec4 | Vec4 | Mat2 | Mat3 | Mat4 | Texture | Sampler2D | Void | undefined;
|
|
508
|
+
declare const Switch: (x: Y) => {
|
|
509
|
+
Case: (...values: X[]) => (fun: () => void) => /*elided*/ any;
|
|
510
|
+
Default: (fun: () => void) => void;
|
|
511
|
+
};
|
|
512
|
+
declare function Fn<T extends X | Struct | void, Args extends any[]>(fun: (args: Args) => T, layout?: FnLayout): Args extends readonly unknown[] ? FnType<T, Args> : never;
|
|
513
|
+
|
|
514
|
+
declare const position: Vec4;
|
|
515
|
+
declare const vertexIndex: UInt;
|
|
516
|
+
declare const instanceIndex: UInt;
|
|
517
|
+
declare const frontFacing: Bool;
|
|
518
|
+
declare const fragDepth: Float;
|
|
519
|
+
declare const sampleIndex: UInt;
|
|
520
|
+
declare const sampleMask: UInt;
|
|
521
|
+
declare const pointCoord: Vec2;
|
|
522
|
+
declare const id: UVec3;
|
|
523
|
+
declare const positionLocal: Vec3;
|
|
524
|
+
declare const positionWorld: Vec3;
|
|
525
|
+
declare const positionView: Vec3;
|
|
526
|
+
declare const normalLocal: Vec3;
|
|
527
|
+
declare const normalWorld: Vec3;
|
|
528
|
+
declare const normalView: Vec3;
|
|
529
|
+
declare const screenCoordinate: Vec2;
|
|
530
|
+
declare const screenUV: Vec2;
|
|
531
|
+
declare const float: (x?: Y) => Float;
|
|
532
|
+
declare const int: (x?: Y) => Int;
|
|
533
|
+
declare const uint: (x?: Y) => UInt;
|
|
534
|
+
declare const bool: (x?: Y) => Bool;
|
|
535
|
+
declare const vec2: (x?: Y, y?: Y) => Vec2;
|
|
536
|
+
declare const vec3: (x?: Y, y?: Y, z?: Y) => Vec3;
|
|
537
|
+
declare const vec4: (x?: Y, y?: Y, z?: Y, w?: Y) => Vec4;
|
|
538
|
+
declare const mat2: (...args: Y[]) => Mat2;
|
|
539
|
+
declare const mat3: (...args: Y[]) => Mat3;
|
|
540
|
+
declare const mat4: (...args: Y[]) => Mat4;
|
|
541
|
+
declare const ivec2: (x?: Y, y?: Y) => IVec2;
|
|
542
|
+
declare const ivec3: (x?: Y, y?: Y, z?: Y) => IVec3;
|
|
543
|
+
declare const ivec4: (x?: Y, y?: Y, z?: Y, w?: Y) => IVec4;
|
|
544
|
+
declare const uvec2: (x?: Y, y?: Y) => UVec2;
|
|
545
|
+
declare const uvec3: (x?: Y, y?: Y, z?: Y) => UVec3;
|
|
546
|
+
declare const uvec4: (x?: Y, y?: Y, z?: Y, w?: Y) => UVec4;
|
|
547
|
+
declare const bvec2: (x?: Y, y?: Y) => BVec2;
|
|
548
|
+
declare const bvec3: (x?: Y, y?: Y, z?: Y) => BVec3;
|
|
549
|
+
declare const bvec4: (x?: Y, y?: Y, z?: Y, w?: Y) => BVec4;
|
|
550
|
+
declare const texture2D: (x?: Y) => Texture;
|
|
551
|
+
declare const sampler2D: () => Sampler2D;
|
|
552
|
+
declare const color: (r?: Y, g?: Y, b?: Y) => Vec3;
|
|
553
|
+
declare const iResolution: Vec2;
|
|
554
|
+
declare const iMouse: Vec2;
|
|
555
|
+
declare const iTime: Float;
|
|
556
|
+
declare const uv: Vec2;
|
|
557
|
+
/**
|
|
558
|
+
* 1.1. unified with:
|
|
559
|
+
* 2.1. const.ts BUILTIN_VARIABLES and
|
|
560
|
+
* 3.1. types.ts _N
|
|
561
|
+
*/
|
|
562
|
+
declare const all: <T extends Constants>(x: X<T>) => Bool;
|
|
563
|
+
declare const any: <T extends Constants>(x: X<T>) => Bool;
|
|
564
|
+
declare const determinant: <T extends "mat2" | "mat3" | "mat4">(x: X<T>) => Float;
|
|
565
|
+
declare const distance: <T extends "vec2" | "vec3" | "vec4", U extends Constants>(x: X<T>, y: number | X<U>) => Float;
|
|
566
|
+
declare const dot: <T extends "vec2" | "vec3" | "vec4" | "ivec2" | "ivec3" | "ivec4", U extends Constants>(x: X<T>, y: number | X<U>) => X<T extends `ivec${string}` ? "int" : "float">;
|
|
567
|
+
declare const length: <T extends "vec2" | "vec3" | "vec4">(x: X<T>) => Float;
|
|
568
|
+
declare const lengthSq: (x: X) => Float;
|
|
569
|
+
declare const luminance: (x: X) => Float;
|
|
570
|
+
declare const cross: <U extends Constants = "vec3">(x: X<"vec3">, y: number | X<U>) => Vec3;
|
|
571
|
+
declare const cubeTexture: (x: X, y: X, z?: X) => Vec4;
|
|
572
|
+
declare const texture: (x: X, y: X, z?: X) => Vec4;
|
|
573
|
+
declare const texelFetch: (x: X, y: X, z?: X) => Vec4;
|
|
574
|
+
declare const textureLod: (x: X, y: X, z?: X) => Vec4;
|
|
575
|
+
/**
|
|
576
|
+
* 1.2. unified with:
|
|
577
|
+
* 2.2. const.ts FUNCTIONS and
|
|
578
|
+
* 3.2. types.ts _N
|
|
579
|
+
*/
|
|
580
|
+
declare const abs: <T extends Constants>(x: X<T>) => X<T>;
|
|
581
|
+
declare const acos: <T extends Constants>(x: X<T>) => X<T>;
|
|
582
|
+
declare const acosh: <T extends Constants>(x: X<T>) => X<T>;
|
|
583
|
+
declare const asin: <T extends Constants>(x: X<T>) => X<T>;
|
|
584
|
+
declare const asinh: <T extends Constants>(x: X<T>) => X<T>;
|
|
585
|
+
declare const atan: <T extends Constants>(x: X<T>) => X<T>;
|
|
586
|
+
declare const atanh: <T extends Constants>(x: X<T>) => X<T>;
|
|
587
|
+
declare const ceil: <T extends Constants>(x: X<T>) => X<T>;
|
|
588
|
+
declare const cos: <T extends Constants>(x: X<T>) => X<T>;
|
|
589
|
+
declare const cosh: <T extends Constants>(x: X<T>) => X<T>;
|
|
590
|
+
declare const dFdx: <T extends Constants>(x: X<T>) => X<T>;
|
|
591
|
+
declare const dFdy: <T extends Constants>(x: X<T>) => X<T>;
|
|
592
|
+
declare const degrees: <T extends Constants>(x: X<T>) => X<T>;
|
|
593
|
+
declare const exp: <T extends Constants>(x: X<T>) => X<T>;
|
|
594
|
+
declare const exp2: <T extends Constants>(x: X<T>) => X<T>;
|
|
595
|
+
declare const floor: <T extends Constants>(x: X<T>) => X<T>;
|
|
596
|
+
declare const fract: <T extends Constants>(x: X<T>) => X<T>;
|
|
597
|
+
declare const fwidth: <T extends Constants>(x: X<T>) => X<T>;
|
|
598
|
+
declare const inverseSqrt: <T extends Constants>(x: X<T>) => X<T>;
|
|
599
|
+
declare const log: <T extends Constants>(x: X<T>) => X<T>;
|
|
600
|
+
declare const log2: <T extends Constants>(x: X<T>) => X<T>;
|
|
601
|
+
declare const negate: <T extends Constants>(x: X<T>) => X<T>;
|
|
602
|
+
declare const normalize: <T extends "vec2" | "vec3" | "vec4">(x: X<T>) => X<T>;
|
|
603
|
+
declare const oneMinus: <T extends Constants>(x: X<T>) => X<T>;
|
|
604
|
+
declare const radians: <T extends Constants>(x: X<T>) => X<T>;
|
|
605
|
+
declare const reciprocal: <T extends Constants>(x: X<T>) => X<T>;
|
|
606
|
+
declare const round: <T extends Constants>(x: X<T>) => X<T>;
|
|
607
|
+
declare const sign: <T extends Constants>(x: X<T>) => X<T>;
|
|
608
|
+
declare const sin: <T extends Constants>(x: X<T>) => X<T>;
|
|
609
|
+
declare const sinh: <T extends Constants>(x: X<T>) => X<T>;
|
|
610
|
+
declare const sqrt: <T extends Constants>(x: X<T>) => X<T>;
|
|
611
|
+
declare const tan: <T extends Constants>(x: X<T>) => X<T>;
|
|
612
|
+
declare const tanh: <T extends Constants>(x: X<T>) => X<T>;
|
|
613
|
+
declare const trunc: <T extends Constants>(x: X<T>) => X<T>;
|
|
614
|
+
declare const atan2: <T extends Constants, U extends Constants>(x: X<T>, y: number | X<U>) => X<T>;
|
|
615
|
+
declare const clamp: <T extends Constants, U extends Constants>(x: X<T>, min: number | X<U>, max: number | X<U>) => X<T>;
|
|
616
|
+
declare const max: <T extends Constants, U extends Constants>(x: X<T>, y: number | X<U>) => X<T>;
|
|
617
|
+
declare const min: <T extends Constants, U extends Constants>(x: X<T>, y: number | X<U>) => X<T>;
|
|
618
|
+
declare const mix: <T extends Constants, U extends Constants>(x: X<T>, y: number | X<U>, a: number | Float | X<U>) => X<T>;
|
|
619
|
+
declare const pow: <T extends Constants, U extends Constants>(x: X<T>, y: number | X<U>) => X<T>;
|
|
620
|
+
declare const reflect: <T extends "vec2" | "vec3" | "vec4", U extends Constants>(I: X<T>, N: number | X<U>) => X<T>;
|
|
621
|
+
declare const refract: <T extends "vec2" | "vec3" | "vec4", U extends Constants>(I: X<T>, N: number | X<U>, eta: number | Float) => X<T>;
|
|
622
|
+
declare const smoothstep: <T extends Constants, U extends Constants>(e0: number | X<U>, e1: number | X<U>, x: X<T>) => X<T>;
|
|
623
|
+
declare const step: <T extends Constants, U extends Constants>(edge: number | X<U>, x: X<T>) => X<T>;
|
|
624
|
+
declare const mod: <T extends Constants, U extends Constants>(x: X<T>, y: number | X<U>) => X<T>;
|
|
625
|
+
|
|
626
|
+
export { type BVec2, type BVec3, type BVec4, type Bool, Break, type Color, type Constants, type ConstantsToType, Continue, type Conversions, type Float, Fn, type FnLayout, type FnType, type Functions, type IVec2, type IVec3, type IVec4, If, type Int, Loop, type Mat2, type Mat3, type Mat4, type NodeContext, type NodeProps, type NodeTypes, type Operators, Return, type Sampler2D, Scope, type Struct, type StructBase, type StructFactory, type StructFields, Switch, type Swizzles, type Texture, type UInt, type UVec2, type UVec3, type UVec4, type Vec2, type Vec3, type Vec4, type Void, type X, type Y, abs, acos, acosh, addToScope, all, any, asin, asinh, assign, atan, atan2, atanh, attribute, bool, builtin, bvec2, bvec3, bvec4, ceil, clamp, color, compute, constant, conversion, cos, cosh, create, cross, cubeTexture, dFdx, dFdy, degrees, determinant, distance, dot, element, exp, exp2, float, floor, fract, fragDepth, fragment, frontFacing, function_, fwidth, gather, iMouse, iResolution, iTime, id, instance, instanceIndex, int, inverseSqrt, ivec2, ivec3, ivec4, length, lengthSq, log, log2, luminance, mat2, mat3, mat4, max, member, min, mix, mod, negate, normalLocal, normalView, normalWorld, normalize, oneMinus, operator, pointCoord, position, positionLocal, positionView, positionWorld, pow, radians, reciprocal, reflect, refract, round, sampleIndex, sampleMask, sampler2D, scatter, scoped, screenCoordinate, screenUV, select, sign, sin, sinh, smoothstep, sqrt, step, storage, struct, tan, tanh, texelFetch, texture, texture2D, textureLod, toVar, trunc, uint, uniform, uv, uvec2, uvec3, uvec4, variable, vec2, vec3, vec4, vertex, vertexIndex, vertexStage };
|