typegpu 0.11.9 → 0.12.1

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 (366) hide show
  1. package/bin.mjs +28 -6
  2. package/builtin.d.ts +51 -53
  3. package/builtin.js +30 -34
  4. package/common/fullScreenTriangle.d.ts +2 -10
  5. package/common/fullScreenTriangle.js +20 -28
  6. package/common/index.d.ts +2 -9
  7. package/common/index.js +3 -12
  8. package/common/writeSoA.d.ts +11 -12
  9. package/common/writeSoA.js +88 -76
  10. package/core/buffer/buffer.d.ts +79 -62
  11. package/core/buffer/buffer.js +283 -205
  12. package/core/buffer/bufferBinding.d.ts +71 -0
  13. package/core/buffer/bufferBinding.js +154 -0
  14. package/core/buffer/bufferUsage.d.ts +14 -45
  15. package/core/buffer/bufferUsage.js +1 -171
  16. package/core/buffer/laidOutBuffer.d.ts +25 -0
  17. package/core/buffer/laidOutBuffer.js +55 -0
  18. package/core/commandEncoder/attachments.d.ts +125 -0
  19. package/core/commandEncoder/attachments.js +29 -0
  20. package/core/commandEncoder/commandEncoder.d.ts +53 -0
  21. package/core/commandEncoder/commandEncoder.js +56 -0
  22. package/core/commandEncoder/computePass.d.ts +58 -0
  23. package/core/commandEncoder/computePass.js +63 -0
  24. package/core/commandEncoder/renderPass.d.ts +121 -0
  25. package/core/commandEncoder/renderPass.js +196 -0
  26. package/core/constant/tgpuConstant.d.ts +26 -26
  27. package/core/constant/tgpuConstant.js +76 -65
  28. package/core/declare/tgpuDeclare.d.ts +3 -6
  29. package/core/declare/tgpuDeclare.js +36 -36
  30. package/core/function/autoIO.d.ts +61 -33
  31. package/core/function/autoIO.js +68 -73
  32. package/core/function/comptime.d.ts +11 -13
  33. package/core/function/comptime.js +60 -52
  34. package/core/function/createCallableSchema.d.ts +16 -0
  35. package/core/function/createCallableSchema.js +50 -40
  36. package/core/function/dualImpl.d.ts +44 -0
  37. package/core/function/dualImpl.js +71 -50
  38. package/core/function/entryInputRouter.d.ts +26 -0
  39. package/core/function/entryInputRouter.js +31 -33
  40. package/core/function/extractArgs.d.ts +38 -0
  41. package/core/function/extractArgs.js +202 -200
  42. package/core/function/fnCore.d.ts +44 -5
  43. package/core/function/fnCore.js +148 -93
  44. package/core/function/fnTypes.d.ts +31 -29
  45. package/core/function/fnTypes.js +1 -0
  46. package/core/function/ioSchema.d.ts +12 -10
  47. package/core/function/ioSchema.js +65 -47
  48. package/core/function/shelllessImpl.d.ts +9 -12
  49. package/core/function/shelllessImpl.js +17 -22
  50. package/core/function/templateUtils.d.ts +2 -0
  51. package/core/function/templateUtils.js +9 -8
  52. package/core/function/tgpuComputeFn.d.ts +26 -28
  53. package/core/function/tgpuComputeFn.js +47 -48
  54. package/core/function/tgpuFn.d.ts +34 -37
  55. package/core/function/tgpuFn.js +179 -153
  56. package/core/function/tgpuFragmentFn.d.ts +52 -53
  57. package/core/function/tgpuFragmentFn.js +63 -56
  58. package/core/function/tgpuVertexFn.d.ts +36 -39
  59. package/core/function/tgpuVertexFn.js +56 -53
  60. package/core/pipeline/computePipeline.d.ts +141 -53
  61. package/core/pipeline/computePipeline.js +291 -225
  62. package/core/pipeline/connectAttachmentToShader.d.ts +4 -0
  63. package/core/pipeline/connectAttachmentToShader.js +25 -22
  64. package/core/pipeline/connectTargetsToShader.d.ts +3 -0
  65. package/core/pipeline/connectTargetsToShader.js +29 -27
  66. package/core/pipeline/drawState.d.ts +52 -0
  67. package/core/pipeline/drawState.js +225 -0
  68. package/core/pipeline/performanceTracker.d.ts +14 -0
  69. package/core/pipeline/performanceTracker.js +34 -0
  70. package/core/pipeline/pipelineUtils.d.ts +18 -0
  71. package/core/pipeline/pipelineUtils.js +54 -25
  72. package/core/pipeline/priors.d.ts +1 -0
  73. package/core/pipeline/priors.js +12 -0
  74. package/core/pipeline/renderPipeline.d.ts +246 -261
  75. package/core/pipeline/renderPipeline.js +487 -480
  76. package/core/pipeline/timeable.d.ts +28 -18
  77. package/core/pipeline/timeable.js +90 -52
  78. package/core/pipeline/typeGuards.d.ts +17 -0
  79. package/core/pipeline/typeGuards.js +52 -22
  80. package/core/pipeline/webgpuLimitations.d.ts +10 -0
  81. package/core/pipeline/webgpuLimitations.js +81 -0
  82. package/core/querySet/querySet.d.ts +26 -21
  83. package/core/querySet/querySet.js +127 -103
  84. package/core/rawCodeSnippet/tgpuRawCodeSnippet.d.ts +13 -18
  85. package/core/rawCodeSnippet/tgpuRawCodeSnippet.js +89 -90
  86. package/core/resolve/externals.d.ts +25 -8
  87. package/core/resolve/externals.js +78 -54
  88. package/core/resolve/namespace.d.ts +22 -25
  89. package/core/resolve/namespace.js +16 -21
  90. package/core/resolve/resolvableString.d.ts +7 -0
  91. package/core/resolve/resolvableString.js +13 -0
  92. package/core/resolve/resolveData.d.ts +10 -0
  93. package/core/resolve/resolveData.js +162 -121
  94. package/core/resolve/stitch.d.ts +8 -0
  95. package/core/resolve/stitch.js +23 -21
  96. package/core/resolve/tgpuResolve.d.ts +55 -53
  97. package/core/resolve/tgpuResolve.js +106 -53
  98. package/core/root/configurableImpl.d.ts +10 -0
  99. package/core/root/configurableImpl.js +17 -19
  100. package/core/root/init.d.ts +76 -38
  101. package/core/root/init.js +346 -455
  102. package/core/root/rootTypes.d.ts +461 -636
  103. package/core/root/rootTypes.js +1 -0
  104. package/core/sampler/sampler.d.ts +50 -31
  105. package/core/sampler/sampler.js +120 -113
  106. package/core/simulate/tgpuSimulate.d.ts +9 -12
  107. package/core/simulate/tgpuSimulate.js +68 -71
  108. package/core/slot/accessor.d.ts +36 -13
  109. package/core/slot/accessor.js +138 -91
  110. package/core/slot/internalSlots.d.ts +2 -0
  111. package/core/slot/internalSlots.js +1 -6
  112. package/core/slot/lazy.d.ts +2 -6
  113. package/core/slot/lazy.js +71 -39
  114. package/core/slot/slot.d.ts +2 -6
  115. package/core/slot/slot.js +45 -38
  116. package/core/slot/slotTypes.d.ts +78 -80
  117. package/core/slot/slotTypes.js +11 -16
  118. package/core/texture/externalTexture.d.ts +20 -11
  119. package/core/texture/externalTexture.js +46 -46
  120. package/core/texture/texture.d.ts +152 -97
  121. package/core/texture/texture.js +407 -314
  122. package/core/texture/textureFormats.d.ts +42 -23
  123. package/core/texture/textureFormats.js +104 -75
  124. package/core/texture/textureProps.d.ts +7 -10
  125. package/core/texture/textureProps.js +1 -0
  126. package/core/texture/textureUtils.d.ts +8 -0
  127. package/core/texture/textureUtils.js +185 -179
  128. package/core/texture/usageExtension.d.ts +21 -18
  129. package/core/texture/usageExtension.js +13 -17
  130. package/core/unroll/tgpuUnroll.d.ts +20 -19
  131. package/core/unroll/tgpuUnroll.js +82 -91
  132. package/core/valueProxyUtils.d.ts +3 -0
  133. package/core/valueProxyUtils.js +52 -41
  134. package/core/variable/tgpuVariable.d.ts +26 -27
  135. package/core/variable/tgpuVariable.js +93 -96
  136. package/core/vertexLayout/connectAttributesToShader.d.ts +9 -0
  137. package/core/vertexLayout/connectAttributesToShader.js +61 -56
  138. package/core/vertexLayout/vertexAttribute.d.ts +21 -17
  139. package/core/vertexLayout/vertexAttribute.js +1 -0
  140. package/core/vertexLayout/vertexLayout.d.ts +24 -18
  141. package/core/vertexLayout/vertexLayout.js +130 -99
  142. package/core/whitespaces.d.ts +2 -0
  143. package/core/whitespaces.js +16 -0
  144. package/data/alignIO.d.ts +7 -0
  145. package/data/alignIO.js +13 -13
  146. package/data/alignmentOf.d.ts +5 -8
  147. package/data/alignmentOf.js +90 -75
  148. package/data/array.d.ts +17 -9
  149. package/data/array.js +57 -40
  150. package/data/atomic.d.ts +2 -7
  151. package/data/atomic.js +26 -23
  152. package/data/attributes.d.ts +19 -21
  153. package/data/attributes.js +192 -132
  154. package/data/autoStruct.d.ts +36 -3
  155. package/data/autoStruct.js +84 -81
  156. package/data/compiledIO.d.ts +5 -0
  157. package/data/compiledIO.js +231 -215
  158. package/data/dataIO.d.ts +13 -11
  159. package/data/dataIO.js +643 -589
  160. package/data/dataTypes.d.ts +83 -65
  161. package/data/dataTypes.js +66 -68
  162. package/data/deepEqual.d.ts +2 -7
  163. package/data/deepEqual.js +80 -55
  164. package/data/disarray.d.ts +6 -10
  165. package/data/disarray.js +52 -46
  166. package/data/float16Conversion.d.ts +4 -0
  167. package/data/float16Conversion.js +7 -0
  168. package/data/generalizeFn.d.ts +25 -0
  169. package/data/generalizeFn.js +89 -0
  170. package/data/getLongestContiguousPrefix.d.ts +4 -8
  171. package/data/getLongestContiguousPrefix.js +6 -11
  172. package/data/index.d.ts +30 -31
  173. package/data/index.js +39 -172
  174. package/data/instanceToSchema.d.ts +24 -27
  175. package/data/instanceToSchema.js +1 -0
  176. package/data/isContiguous.d.ts +4 -8
  177. package/data/isContiguous.js +6 -11
  178. package/data/matrix.d.ts +21 -21
  179. package/data/matrix.js +513 -505
  180. package/data/numberOps.d.ts +5 -0
  181. package/data/numberOps.js +21 -21
  182. package/data/numeric.d.ts +21 -12
  183. package/data/numeric.js +287 -197
  184. package/data/offsetUtils.d.ts +9 -13
  185. package/data/offsetUtils.js +204 -144
  186. package/data/offsets.d.ts +8 -0
  187. package/data/offsets.js +33 -33
  188. package/data/partialIO.d.ts +13 -8
  189. package/data/partialIO.js +124 -113
  190. package/data/ptr.d.ts +12 -12
  191. package/data/ptr.js +42 -44
  192. package/data/ref.d.ts +40 -27
  193. package/data/ref.js +125 -95
  194. package/data/sampler.d.ts +99 -101
  195. package/data/sampler.js +17 -21
  196. package/data/schemaCallWrapper.d.ts +19 -0
  197. package/data/schemaCallWrapper.js +31 -26
  198. package/data/schemaMemoryLayout.d.ts +8 -0
  199. package/data/schemaMemoryLayout.js +213 -185
  200. package/data/sizeOf.d.ts +4 -8
  201. package/data/sizeOf.js +6 -11
  202. package/data/snippet.d.ts +96 -20
  203. package/data/snippet.js +75 -86
  204. package/data/struct.d.ts +4 -7
  205. package/data/struct.js +51 -39
  206. package/data/texture.d.ts +253 -250
  207. package/data/texture.js +238 -200
  208. package/data/unstruct.d.ts +2 -7
  209. package/data/unstruct.js +43 -37
  210. package/data/vector.d.ts +33 -21
  211. package/data/vector.js +234 -221
  212. package/data/vectorImpl.d.ts +231 -0
  213. package/data/vectorImpl.js +563 -515
  214. package/data/vectorOps.d.ts +25 -0
  215. package/data/vectorOps.js +118 -669
  216. package/data/vertexFormatData.d.ts +181 -184
  217. package/data/vertexFormatData.js +104 -106
  218. package/data/wgslTypes.d.ts +665 -600
  219. package/data/wgslTypes.js +220 -198
  220. package/errors.d.ts +50 -24
  221. package/errors.js +146 -126
  222. package/execMode.d.ts +16 -0
  223. package/execMode.js +47 -40
  224. package/extension.d.ts +13 -8
  225. package/extension.js +10 -16
  226. package/getGPUValue.d.ts +1 -0
  227. package/getGPUValue.js +2 -7
  228. package/index.d.ts +28 -68
  229. package/index.js +8 -28
  230. package/indexNamedExports.d.ts +69 -42
  231. package/indexNamedExports.js +25 -0
  232. package/internal.d.ts +16 -0
  233. package/internal.js +12 -0
  234. package/mathUtils.d.ts +5 -0
  235. package/mathUtils.js +7 -11
  236. package/memo.d.ts +11 -0
  237. package/memo.js +20 -22
  238. package/minify.d.ts +5 -0
  239. package/minify.js +93 -0
  240. package/nameUtils.d.ts +29 -0
  241. package/nameUtils.js +427 -394
  242. package/package.json +5 -1
  243. package/resolutionCtx.d.ts +162 -22
  244. package/resolutionCtx.js +911 -629
  245. package/serial/registry.d.ts +15 -0
  246. package/serial/registry.js +106 -0
  247. package/serial/restore.d.ts +49 -0
  248. package/serial/restore.js +68 -0
  249. package/serial/schema.d.ts +58 -0
  250. package/serial/schema.js +209 -0
  251. package/serial/types.d.ts +5 -0
  252. package/serial/types.js +1 -0
  253. package/shared/env.d.ts +9 -0
  254. package/shared/env.js +9 -12
  255. package/shared/generators.d.ts +4 -0
  256. package/shared/generators.js +10 -12
  257. package/shared/meta.d.ts +29 -14
  258. package/shared/meta.js +71 -55
  259. package/shared/normalizeMetadata.d.ts +32 -27
  260. package/shared/normalizeMetadata.js +23 -36
  261. package/shared/repr.d.ts +73 -55
  262. package/shared/repr.js +1 -0
  263. package/shared/soul.d.ts +17 -0
  264. package/shared/soul.js +1 -0
  265. package/shared/stringify.d.ts +2 -0
  266. package/shared/stringify.js +29 -20
  267. package/shared/symbols.d.ts +26 -20
  268. package/shared/symbols.js +79 -79
  269. package/shared/tseynit.d.ts +2 -0
  270. package/shared/tseynit.js +160 -75
  271. package/shared/utilityTypes.d.ts +30 -14
  272. package/shared/utilityTypes.js +2 -6
  273. package/shared/vertexFormat.d.ts +41 -43
  274. package/shared/vertexFormat.js +59 -62
  275. package/std/array.d.ts +2 -7
  276. package/std/array.js +18 -23
  277. package/std/atomic.d.ts +14 -18
  278. package/std/atomic.js +96 -95
  279. package/std/bitcast.d.ts +193 -10
  280. package/std/bitcast.js +309 -39
  281. package/std/boolean.d.ts +19 -33
  282. package/std/boolean.js +296 -292
  283. package/std/copy.d.ts +2 -7
  284. package/std/copy.js +27 -24
  285. package/std/derivative.d.ts +11 -15
  286. package/std/derivative.js +56 -79
  287. package/std/discard.d.ts +1 -6
  288. package/std/discard.js +7 -14
  289. package/std/environment.d.ts +19 -14
  290. package/std/environment.js +71 -51
  291. package/std/extensions.d.ts +2 -8
  292. package/std/extensions.js +10 -11
  293. package/std/index.d.ts +20 -24
  294. package/std/index.js +32 -187
  295. package/std/matrix.d.ts +6 -12
  296. package/std/matrix.js +60 -69
  297. package/std/numeric.d.ts +150 -146
  298. package/std/numeric.js +771 -727
  299. package/std/operators.d.ts +19 -27
  300. package/std/operators.js +195 -194
  301. package/std/packing.d.ts +5 -11
  302. package/std/packing.js +67 -75
  303. package/std/range.d.ts +6 -11
  304. package/std/range.js +48 -36
  305. package/std/subgroup.d.ts +33 -37
  306. package/std/subgroup.js +180 -217
  307. package/std/texture.d.ts +70 -38
  308. package/std/texture.js +176 -172
  309. package/taskQueue.d.ts +6 -0
  310. package/taskQueue.js +30 -0
  311. package/tgpu.d.ts +16 -0
  312. package/tgpu.js +17 -44
  313. package/tgpuBindGroupLayout.d.ts +132 -152
  314. package/tgpuBindGroupLayout.js +346 -268
  315. package/tgpuLogger.d.ts +34 -0
  316. package/tgpuLogger.js +64 -0
  317. package/tgpuUnstable.d.ts +16 -22
  318. package/tgpuUnstable.js +13 -35
  319. package/tgsl/accessIndex.d.ts +2 -0
  320. package/tgsl/accessIndex.js +76 -33
  321. package/tgsl/accessProp.d.ts +2 -0
  322. package/tgsl/accessProp.js +142 -101
  323. package/tgsl/accessStructProp.d.ts +5 -0
  324. package/tgsl/accessStructProp.js +13 -15
  325. package/tgsl/consoleLog/deserializers.d.ts +13 -0
  326. package/tgsl/consoleLog/deserializers.js +119 -103
  327. package/tgsl/consoleLog/logGenerator.d.ts +21 -0
  328. package/tgsl/consoleLog/logGenerator.js +85 -80
  329. package/tgsl/consoleLog/serializers.d.ts +21 -0
  330. package/tgsl/consoleLog/serializers.js +119 -100
  331. package/tgsl/consoleLog/types.d.ts +40 -39
  332. package/tgsl/consoleLog/types.js +1 -0
  333. package/tgsl/conversion.d.ts +33 -0
  334. package/tgsl/conversion.js +271 -216
  335. package/tgsl/forOfUtils.d.ts +15 -0
  336. package/tgsl/forOfUtils.js +85 -70
  337. package/tgsl/generationHelpers.d.ts +22 -39
  338. package/tgsl/generationHelpers.js +85 -58
  339. package/tgsl/infixDispatch.d.ts +70 -0
  340. package/tgsl/infixDispatch.js +48 -46
  341. package/tgsl/jsPolyfills.d.ts +16 -19
  342. package/tgsl/jsPolyfills.js +44 -42
  343. package/tgsl/makeDereferenceable.d.ts +48 -0
  344. package/tgsl/makeDereferenceable.js +86 -0
  345. package/tgsl/makeResolvable.d.ts +22 -0
  346. package/tgsl/makeResolvable.js +33 -0
  347. package/tgsl/shaderGenerator.d.ts +77 -17
  348. package/tgsl/shaderGenerator.js +1 -0
  349. package/tgsl/shellless.d.ts +6 -9
  350. package/tgsl/shellless.js +73 -43
  351. package/tgsl/wgslGenerator.d.ts +66 -59
  352. package/tgsl/wgslGenerator.js +1345 -760
  353. package/types.d.ts +287 -222
  354. package/types.js +61 -44
  355. package/unwrapper.d.ts +31 -26
  356. package/unwrapper.js +1 -0
  357. package/wgslExtensions.d.ts +3 -5
  358. package/wgslExtensions.js +12 -16
  359. package/_virtual/rolldown_runtime.js +0 -13
  360. package/core/buffer/bufferShorthand.d.ts +0 -50
  361. package/core/buffer/bufferShorthand.js +0 -55
  362. package/core/pipeline/applyPipelineState.js +0 -37
  363. package/core/pipeline/limitsOverflow.js +0 -13
  364. package/package.js +0 -5
  365. package/tgsl/shaderGenerator_members.d.ts +0 -33
  366. package/tgsl/shaderGenerator_members.js +0 -12
package/std/boolean.d.ts CHANGED
@@ -1,8 +1,4 @@
1
- import { DualFn } from "../types.js";
2
- import { AnyBooleanVecInstance, AnyFloatVecInstance, AnyNumericVecInstance, AnyVec2Instance, AnyVec3Instance, AnyVecInstance, v2b, v3b, v4b } from "../data/wgslTypes.js";
3
-
4
- //#region src/std/boolean.d.ts
5
-
1
+ import { type AnyBooleanVecInstance, type AnyFloatVecInstance, type AnyNumericVecInstance, type AnyVec2Instance, type AnyVec3Instance, type AnyVecInstance, type AnyWgslData, type v2b, type v3b, type v4b } from '../data/wgslTypes.ts';
6
2
  /**
7
3
  * Checks whether `lhs == rhs` on all components.
8
4
  * Equivalent to `all(eq(lhs, rhs))`.
@@ -10,7 +6,7 @@ import { AnyBooleanVecInstance, AnyFloatVecInstance, AnyNumericVecInstance, AnyV
10
6
  * allEq(vec2f(0.0, 1.0), vec2f(0.0, 2.0)) // returns false
11
7
  * allEq(vec3u(0, 1, 2), vec3u(0, 1, 2)) // returns true
12
8
  */
13
- declare const allEq: DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => boolean)>;
9
+ export declare const allEq: import("../types.ts").DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => boolean)>;
14
10
  /**
15
11
  * Checks **component-wise** whether `lhs == rhs`.
16
12
  * This function does **not** return `bool`, for that use-case, wrap the result in `all`, or use `allEq`.
@@ -20,7 +16,7 @@ declare const allEq: DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => boole
20
16
  * all(eq(vec4i(4, 3, 2, 1), vec4i(4, 3, 2, 1))) // returns true
21
17
  * allEq(vec4i(4, 3, 2, 1), vec4i(4, 3, 2, 1)) // returns true
22
18
  */
23
- declare const eq: DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
19
+ export declare const eq: import("../types.ts").DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => import("../data/generalizeFn.ts").ToBool<T>)>;
24
20
  /**
25
21
  * Checks **component-wise** whether `lhs != rhs`.
26
22
  * This function does **not** return `bool`, for that use-case, wrap the result in `any`.
@@ -29,7 +25,7 @@ declare const eq: DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => T extend
29
25
  * ne(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(true, false, true)
30
26
  * any(ne(vec4i(4, 3, 2, 1), vec4i(4, 2, 2, 1))) // returns true
31
27
  */
32
- declare const ne: DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => VecInstanceToBooleanVecInstance<T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b>)>;
28
+ export declare const ne: import("../types.ts").DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => import("../data/generalizeFn.ts").ToBool<T>)>;
33
29
  /**
34
30
  * Checks **component-wise** whether `lhs < rhs`.
35
31
  * This function does **not** return `bool`, for that use-case, wrap the result in `all`.
@@ -38,7 +34,7 @@ declare const ne: DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => VecInsta
38
34
  * lt(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(true, false, false)
39
35
  * all(lt(vec4i(1, 2, 3, 4), vec4i(2, 3, 4, 5))) // returns true
40
36
  */
41
- declare const lt: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
37
+ export declare const lt: import("../types.ts").DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => import("../data/generalizeFn.ts").ToBool<T>)>;
42
38
  /**
43
39
  * Checks **component-wise** whether `lhs <= rhs`.
44
40
  * This function does **not** return `bool`, for that use-case, wrap the result in `all`.
@@ -47,7 +43,7 @@ declare const lt: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => T
47
43
  * le(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(true, true, false)
48
44
  * all(le(vec4i(1, 2, 3, 4), vec4i(2, 3, 3, 5))) // returns true
49
45
  */
50
- declare const le: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
46
+ export declare const le: import("../types.ts").DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => import("../data/generalizeFn.ts").ToBool<import("../data/generalizeFn.ts").ToBool<T>>)>;
51
47
  /**
52
48
  * Checks **component-wise** whether `lhs > rhs`.
53
49
  * This function does **not** return `bool`, for that use-case, wrap the result in `all`.
@@ -56,7 +52,7 @@ declare const le: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => T
56
52
  * gt(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(false, false, true)
57
53
  * all(gt(vec4i(2, 3, 4, 5), vec4i(1, 2, 3, 4))) // returns true
58
54
  */
59
- declare const gt: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => VecInstanceToBooleanVecInstance<VecInstanceToBooleanVecInstance<VecInstanceToBooleanVecInstance<T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b>>>)>;
55
+ export declare const gt: import("../types.ts").DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => import("../data/generalizeFn.ts").ToBool<import("../data/generalizeFn.ts").ToBool<T>>)>;
60
56
  /**
61
57
  * Checks **component-wise** whether `lhs >= rhs`.
62
58
  * This function does **not** return `bool`, for that use-case, wrap the result in `all`.
@@ -65,56 +61,46 @@ declare const gt: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => V
65
61
  * ge(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(false, true, true)
66
62
  * all(ge(vec4i(2, 2, 4, 5), vec4i(1, 2, 3, 4))) // returns true
67
63
  */
68
- declare const ge: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => VecInstanceToBooleanVecInstance<T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b>)>;
69
- type VecInstanceToBooleanVecInstance<T extends AnyVecInstance> = T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b;
64
+ export declare const ge: import("../types.ts").DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => import("../data/generalizeFn.ts").ToBool<T>)>;
70
65
  declare function cpuNot(value: boolean): boolean;
71
- declare function cpuNot(value: number): boolean;
72
- declare function cpuNot<T extends AnyVecInstance>(value: T): VecInstanceToBooleanVecInstance<T>;
73
- declare function cpuNot(value: unknown): boolean;
66
+ declare function cpuNot<T extends AnyBooleanVecInstance>(value: T): T;
74
67
  /**
75
68
  * Returns the logical negation of the given value.
76
- * For scalars (bool, number), returns `!value`.
69
+ * For booleans returns `!value`.
77
70
  * For boolean vectors, returns **component-wise** `!value`.
78
- * For numeric vectors, returns a boolean vector with component-wise truthiness negation.
79
- * For all other types, returns the truthiness negation (in WGSL, this applies only if the value is known at compile-time).
80
71
  * @example
81
72
  * not(true) // returns false
82
- * not(-1) // returns false
83
- * not(0) // returns true
84
73
  * not(vec3b(true, true, false)) // returns vec3b(false, false, true)
85
- * not(vec3f(1.0, 0.0, -1.0)) // returns vec3b(false, true, false)
86
- * not({a: 1882}) // returns false
87
- * not(NaN) // returns false **as in WGSL**
88
74
  */
89
- declare const not: DualFn<typeof cpuNot>;
75
+ export declare const not: import("../types.ts").DualFn<typeof cpuNot>;
90
76
  /**
91
77
  * Returns **component-wise** logical `or` result.
92
78
  * @example
93
79
  * or(vec2b(false, true), vec2b(false, false)) // returns vec2b(false, true)
94
80
  * or(vec3b(true, true, false), vec3b(false, true, false)) // returns vec3b(true, true, false)
95
81
  */
96
- declare const or: DualFn<(<T extends AnyBooleanVecInstance>(lhs: T, rhs: T) => T)>;
82
+ export declare const or: import("../types.ts").DualFn<(<T extends AnyBooleanVecInstance>(lhs: T, rhs: T) => import("../data/generalizeFn.ts").ToBool<T>)>;
97
83
  /**
98
84
  * Returns **component-wise** logical `and` result.
99
85
  * @example
100
86
  * and(vec2b(false, true), vec2b(true, true)) // returns vec2b(false, true)
101
87
  * and(vec3b(true, true, false), vec3b(false, true, false)) // returns vec3b(false, true, false)
102
88
  */
103
- declare const and: DualFn<(<T extends AnyBooleanVecInstance>(lhs: T, rhs: T) => VecInstanceToBooleanVecInstance<VecInstanceToBooleanVecInstance<T>>)>;
89
+ export declare const and: import("../types.ts").DualFn<(<T extends AnyBooleanVecInstance>(lhs: T, rhs: T) => import("../data/generalizeFn.ts").ToBool<T>)>;
104
90
  /**
105
91
  * Returns `true` if each component of `value` is true.
106
92
  * @example
107
93
  * all(vec2b(false, true)) // returns false
108
94
  * all(vec3b(true, true, true)) // returns true
109
95
  */
110
- declare const all: DualFn<(value: AnyBooleanVecInstance) => boolean>;
96
+ export declare const all: import("../types.ts").DualFn<(value: AnyBooleanVecInstance) => boolean>;
111
97
  /**
112
98
  * Returns `true` if any component of `value` is true.
113
99
  * @example
114
100
  * any(vec2b(false, true)) // returns true
115
101
  * any(vec3b(false, false, false)) // returns false
116
102
  */
117
- declare const any: DualFn<(value: AnyBooleanVecInstance) => boolean>;
103
+ export declare const any: import("../types.ts").DualFn<(value: AnyBooleanVecInstance) => boolean>;
118
104
  /**
119
105
  * Checks whether the given elements differ by at most the `precision` value.
120
106
  * Checks all elements of `lhs` and `rhs` if arguments are vectors.
@@ -124,10 +110,11 @@ declare const any: DualFn<(value: AnyBooleanVecInstance) => boolean>;
124
110
  *
125
111
  * @param {number} precision argument that specifies the maximum allowed difference, 0.01 by default.
126
112
  */
127
- declare const isCloseTo: DualFn<(<T extends AnyFloatVecInstance | number>(lhs: T, rhs: T, precision?: number) => boolean)>;
113
+ export declare const isCloseTo: import("../types.ts").DualFn<(<T extends AnyFloatVecInstance | number>(lhs: T, rhs: T, precision?: number) => boolean)>;
128
114
  declare function cpuSelect(f: boolean, t: boolean, cond: boolean): boolean;
129
115
  declare function cpuSelect(f: number, t: number, cond: boolean): number;
130
116
  declare function cpuSelect<T extends AnyVecInstance>(f: T, t: T, cond: boolean | (T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)): T;
117
+ export declare const validSelectBranchTypes: AnyWgslData[];
131
118
  /**
132
119
  * Returns `t` if `cond` is `true`, and `f` otherwise.
133
120
  * Component-wise if `cond` is a vector.
@@ -137,6 +124,5 @@ declare function cpuSelect<T extends AnyVecInstance>(f: T, t: T, cond: boolean |
137
124
  * select(vec2i(1, 2), vec2i(3, 4), true) // returns vec2i(3, 4)
138
125
  * select(vec2i(1, 2), vec2i(3, 4), vec2b(false, true)) // returns vec2i(1, 4)
139
126
  */
140
- declare const select: DualFn<typeof cpuSelect>;
141
- //#endregion
142
- export { all, allEq, and, any, eq, ge, gt, isCloseTo, le, lt, ne, not, or, select };
127
+ export declare const select: import("../types.ts").DualFn<typeof cpuSelect>;
128
+ export {};