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