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/index.js CHANGED
@@ -1,187 +1,32 @@
1
- import { __export } from "../_virtual/rolldown_runtime.js";
2
- import { identity2, identity3, identity4, rotationX4, rotationY4, rotationZ4, scaling4, translation4 } from "../data/matrix.js";
3
- import { add, bitShiftLeft, bitShiftRight, div, mod, mul, neg, sub } from "./operators.js";
4
- import { abs, acos, acosh, asin, asinh, atan, atan2, atanh, ceil, clamp, cos, cosh, countLeadingZeros, countOneBits, countTrailingZeros, cross, degrees, determinant, distance, dot, dot4I8Packed, dot4U8Packed, exp, exp2, extractBits, faceForward, firstLeadingBit, firstTrailingBit, floor, fma, fract, frexp, insertBits, inverseSqrt, ldexp, length, log, log2, max, min, mix, modf, normalize, pow, quantizeToF16, radians, reflect, refract, reverseBits, round, saturate, sign, sin, sinh, smoothstep, sqrt, step, tan, tanh, transpose, trunc } from "./numeric.js";
5
- import { arrayLength } from "./array.js";
6
- import { range } from "./range.js";
7
- import { all, allEq, and, any, eq, ge, gt, isCloseTo, le, lt, ne, not, or, select } from "./boolean.js";
8
- import { bitcastU32toF32, bitcastU32toI32 } from "./bitcast.js";
9
- import { pack2x16float, pack4x8unorm, unpack2x16float, unpack4x8unorm } from "./packing.js";
10
- import { copy } from "./copy.js";
11
- import { discard } from "./discard.js";
12
- import { rotateX4, rotateY4, rotateZ4, scale4, translate4 } from "./matrix.js";
13
- import { atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, storageBarrier, textureBarrier, workgroupBarrier } from "./atomic.js";
14
- import { dpdx, dpdxCoarse, dpdxFine, dpdy, dpdyCoarse, dpdyFine, fwidth, fwidthCoarse, fwidthFine } from "./derivative.js";
15
- import { textureDimensions, textureGather, textureLoad, textureSample, textureSampleBaseClampToEdge, textureSampleBias, textureSampleCompare, textureSampleCompareLevel, textureSampleGrad, textureSampleLevel, textureStore } from "./texture.js";
16
- import { subgroupAdd, subgroupAll, subgroupAnd, subgroupAny, subgroupBallot, subgroupBroadcast, subgroupBroadcastFirst, subgroupElect, subgroupExclusiveAdd, subgroupExclusiveMul, subgroupInclusiveAdd, subgroupInclusiveMul, subgroupMax, subgroupMin, subgroupMul, subgroupOr, subgroupShuffle, subgroupShuffleDown, subgroupShuffleUp, subgroupShuffleXor, subgroupXor } from "./subgroup.js";
17
- import { extensionEnabled } from "./extensions.js";
18
- import { getTargetShaderLanguage, isBeingTranspiled } from "./environment.js";
19
-
20
- //#region src/std/index.ts
21
- var std_exports = /* @__PURE__ */ __export({
22
- abs: () => abs,
23
- acos: () => acos,
24
- acosh: () => acosh,
25
- add: () => add,
26
- all: () => all,
27
- allEq: () => allEq,
28
- and: () => and,
29
- any: () => any,
30
- arrayLength: () => arrayLength,
31
- asin: () => asin,
32
- asinh: () => asinh,
33
- atan: () => atan,
34
- atan2: () => atan2,
35
- atanh: () => atanh,
36
- atomicAdd: () => atomicAdd,
37
- atomicAnd: () => atomicAnd,
38
- atomicLoad: () => atomicLoad,
39
- atomicMax: () => atomicMax,
40
- atomicMin: () => atomicMin,
41
- atomicOr: () => atomicOr,
42
- atomicStore: () => atomicStore,
43
- atomicSub: () => atomicSub,
44
- atomicXor: () => atomicXor,
45
- bitShiftLeft: () => bitShiftLeft,
46
- bitShiftRight: () => bitShiftRight,
47
- bitcastU32toF32: () => bitcastU32toF32,
48
- bitcastU32toI32: () => bitcastU32toI32,
49
- ceil: () => ceil,
50
- clamp: () => clamp,
51
- copy: () => copy,
52
- cos: () => cos,
53
- cosh: () => cosh,
54
- countLeadingZeros: () => countLeadingZeros,
55
- countOneBits: () => countOneBits,
56
- countTrailingZeros: () => countTrailingZeros,
57
- cross: () => cross,
58
- degrees: () => degrees,
59
- determinant: () => determinant,
60
- discard: () => discard,
61
- distance: () => distance,
62
- div: () => div,
63
- dot: () => dot,
64
- dot4I8Packed: () => dot4I8Packed,
65
- dot4U8Packed: () => dot4U8Packed,
66
- dpdx: () => dpdx,
67
- dpdxCoarse: () => dpdxCoarse,
68
- dpdxFine: () => dpdxFine,
69
- dpdy: () => dpdy,
70
- dpdyCoarse: () => dpdyCoarse,
71
- dpdyFine: () => dpdyFine,
72
- eq: () => eq,
73
- exp: () => exp,
74
- exp2: () => exp2,
75
- extensionEnabled: () => extensionEnabled,
76
- extractBits: () => extractBits,
77
- faceForward: () => faceForward,
78
- firstLeadingBit: () => firstLeadingBit,
79
- firstTrailingBit: () => firstTrailingBit,
80
- floor: () => floor,
81
- fma: () => fma,
82
- fract: () => fract,
83
- frexp: () => frexp,
84
- fwidth: () => fwidth,
85
- fwidthCoarse: () => fwidthCoarse,
86
- fwidthFine: () => fwidthFine,
87
- ge: () => ge,
88
- getTargetShaderLanguage: () => getTargetShaderLanguage,
89
- gt: () => gt,
90
- identity2: () => identity2,
91
- identity3: () => identity3,
92
- identity4: () => identity4,
93
- insertBits: () => insertBits,
94
- inverseSqrt: () => inverseSqrt,
95
- isBeingTranspiled: () => isBeingTranspiled,
96
- isCloseTo: () => isCloseTo,
97
- ldexp: () => ldexp,
98
- le: () => le,
99
- length: () => length,
100
- log: () => log,
101
- log2: () => log2,
102
- lt: () => lt,
103
- max: () => max,
104
- min: () => min,
105
- mix: () => mix,
106
- mod: () => mod,
107
- modf: () => modf,
108
- mul: () => mul,
109
- ne: () => ne,
110
- neg: () => neg,
111
- normalize: () => normalize,
112
- not: () => not,
113
- or: () => or,
114
- pack2x16float: () => pack2x16float,
115
- pack4x8unorm: () => pack4x8unorm,
116
- pow: () => pow,
117
- quantizeToF16: () => quantizeToF16,
118
- radians: () => radians,
119
- range: () => range,
120
- reflect: () => reflect,
121
- refract: () => refract,
122
- reverseBits: () => reverseBits,
123
- rotateX4: () => rotateX4,
124
- rotateY4: () => rotateY4,
125
- rotateZ4: () => rotateZ4,
126
- rotationX4: () => rotationX4,
127
- rotationY4: () => rotationY4,
128
- rotationZ4: () => rotationZ4,
129
- round: () => round,
130
- saturate: () => saturate,
131
- scale4: () => scale4,
132
- scaling4: () => scaling4,
133
- select: () => select,
134
- sign: () => sign,
135
- sin: () => sin,
136
- sinh: () => sinh,
137
- smoothstep: () => smoothstep,
138
- sqrt: () => sqrt,
139
- step: () => step,
140
- storageBarrier: () => storageBarrier,
141
- sub: () => sub,
142
- subgroupAdd: () => subgroupAdd,
143
- subgroupAll: () => subgroupAll,
144
- subgroupAnd: () => subgroupAnd,
145
- subgroupAny: () => subgroupAny,
146
- subgroupBallot: () => subgroupBallot,
147
- subgroupBroadcast: () => subgroupBroadcast,
148
- subgroupBroadcastFirst: () => subgroupBroadcastFirst,
149
- subgroupElect: () => subgroupElect,
150
- subgroupExclusiveAdd: () => subgroupExclusiveAdd,
151
- subgroupExclusiveMul: () => subgroupExclusiveMul,
152
- subgroupInclusiveAdd: () => subgroupInclusiveAdd,
153
- subgroupInclusiveMul: () => subgroupInclusiveMul,
154
- subgroupMax: () => subgroupMax,
155
- subgroupMin: () => subgroupMin,
156
- subgroupMul: () => subgroupMul,
157
- subgroupOr: () => subgroupOr,
158
- subgroupShuffle: () => subgroupShuffle,
159
- subgroupShuffleDown: () => subgroupShuffleDown,
160
- subgroupShuffleUp: () => subgroupShuffleUp,
161
- subgroupShuffleXor: () => subgroupShuffleXor,
162
- subgroupXor: () => subgroupXor,
163
- tan: () => tan,
164
- tanh: () => tanh,
165
- textureBarrier: () => textureBarrier,
166
- textureDimensions: () => textureDimensions,
167
- textureGather: () => textureGather,
168
- textureLoad: () => textureLoad,
169
- textureSample: () => textureSample,
170
- textureSampleBaseClampToEdge: () => textureSampleBaseClampToEdge,
171
- textureSampleBias: () => textureSampleBias,
172
- textureSampleCompare: () => textureSampleCompare,
173
- textureSampleCompareLevel: () => textureSampleCompareLevel,
174
- textureSampleGrad: () => textureSampleGrad,
175
- textureSampleLevel: () => textureSampleLevel,
176
- textureStore: () => textureStore,
177
- translate4: () => translate4,
178
- translation4: () => translation4,
179
- transpose: () => transpose,
180
- trunc: () => trunc,
181
- unpack2x16float: () => unpack2x16float,
182
- unpack4x8unorm: () => unpack4x8unorm,
183
- workgroupBarrier: () => workgroupBarrier
184
- });
185
-
186
- //#endregion
187
- export { abs, acos, acosh, add, all, allEq, and, any, arrayLength, asin, asinh, atan, atan2, atanh, atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, bitShiftLeft, bitShiftRight, bitcastU32toF32, bitcastU32toI32, ceil, clamp, copy, cos, cosh, countLeadingZeros, countOneBits, countTrailingZeros, cross, degrees, determinant, discard, distance, div, dot, dot4I8Packed, dot4U8Packed, dpdx, dpdxCoarse, dpdxFine, dpdy, dpdyCoarse, dpdyFine, eq, exp, exp2, extensionEnabled, extractBits, faceForward, firstLeadingBit, firstTrailingBit, floor, fma, fract, frexp, fwidth, fwidthCoarse, fwidthFine, ge, getTargetShaderLanguage, gt, identity2, identity3, identity4, insertBits, inverseSqrt, isBeingTranspiled, isCloseTo, ldexp, le, length, log, log2, lt, max, min, mix, mod, modf, mul, ne, neg, normalize, not, or, pack2x16float, pack4x8unorm, pow, quantizeToF16, radians, range, reflect, refract, reverseBits, rotateX4, rotateY4, rotateZ4, rotationX4, rotationY4, rotationZ4, round, saturate, scale4, scaling4, select, sign, sin, sinh, smoothstep, sqrt, std_exports, step, storageBarrier, sub, subgroupAdd, subgroupAll, subgroupAnd, subgroupAny, subgroupBallot, subgroupBroadcast, subgroupBroadcastFirst, subgroupElect, subgroupExclusiveAdd, subgroupExclusiveMul, subgroupInclusiveAdd, subgroupInclusiveMul, subgroupMax, subgroupMin, subgroupMul, subgroupOr, subgroupShuffle, subgroupShuffleDown, subgroupShuffleUp, subgroupShuffleXor, subgroupXor, tan, tanh, textureBarrier, textureDimensions, textureGather, textureLoad, textureSample, textureSampleBaseClampToEdge, textureSampleBias, textureSampleCompare, textureSampleCompareLevel, textureSampleGrad, textureSampleLevel, textureStore, translate4, translation4, transpose, trunc, unpack2x16float, unpack4x8unorm, workgroupBarrier };
1
+ /**
2
+ * @module typegpu/std
3
+ */
4
+ // NOTE: This is a barrel file, internal files should not import things from this file
5
+ export { copy } from "./copy.js";
6
+ export { discard } from "./discard.js";
7
+ export { abs, acos, acosh, asin, asinh, atan, atan2, atanh, ceil, clamp, cos, cosh, countLeadingZeros, countOneBits, countTrailingZeros, cross, degrees, determinant, distance, dot, dot4I8Packed, dot4U8Packed, exp, exp2, extractBits, faceForward, firstLeadingBit, firstTrailingBit, floor, fma, fract, frexp, insertBits, inverseSqrt, ldexp, length, log, log2, max, min, mix, modf, normalize, pow, quantizeToF16, radians, reflect, refract, reverseBits, round, saturate, sign, sin, sinh, smoothstep, sqrt, step, tan, tanh, transpose, trunc, intdiv, } from "./numeric.js";
8
+ export { add, bitShiftLeft, bitShiftRight, div, mod, mul, neg, sub } from "./operators.js";
9
+ export { rotateX4, rotateY4, rotateZ4, scale4, translate4 } from "./matrix.js";
10
+ export { identity2, identity3, identity4, rotationX4, rotationY4, rotationZ4, scaling4, translation4, } from "../data/matrix.js";
11
+ export {
12
+ // comparison
13
+ allEq, eq, ne, lt, le, gt, ge,
14
+ // logical ops
15
+ not, or, and,
16
+ // logical aggregation
17
+ all, any,
18
+ // other
19
+ isCloseTo, select, } from "./boolean.js";
20
+ export { atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor,
21
+ // synchronization
22
+ workgroupBarrier, storageBarrier, textureBarrier, } from "./atomic.js";
23
+ export { dpdx, dpdxCoarse, dpdxFine, dpdy, dpdyCoarse, dpdyFine, fwidth, fwidthCoarse, fwidthFine, } from "./derivative.js";
24
+ export { arrayLength } from "./array.js";
25
+ // oxfmt-ignore
26
+ export { pack4x8unorm, pack2x16float, unpack4x8unorm, unpack2x16float, } from "./packing.js";
27
+ export { textureDimensions, textureGather, textureLoad, textureSample, textureSampleBaseClampToEdge, textureSampleBias, textureSampleCompare, textureSampleCompareLevel, textureSampleGrad, textureSampleLevel, textureStore, } from "./texture.js";
28
+ export { subgroupAdd, subgroupAll, subgroupAnd, subgroupAny, subgroupBallot, subgroupBroadcast, subgroupBroadcastFirst, subgroupElect, subgroupExclusiveAdd, subgroupExclusiveMul, subgroupInclusiveAdd, subgroupInclusiveMul, subgroupMax, subgroupMin, subgroupMul, subgroupOr, subgroupShuffle, subgroupShuffleDown, subgroupShuffleUp, subgroupShuffleXor, subgroupXor, } from "./subgroup.js";
29
+ export { extensionEnabled } from "./extensions.js";
30
+ export { bitcastU32toF32, bitcastU32toI32, bitcastF32toU32, bitcast } from "./bitcast.js";
31
+ export { range } from "./range.js";
32
+ export { isBeingTranspiled, getTargetShaderLanguage, getShaderStage } from "./environment.js";
package/std/matrix.d.ts CHANGED
@@ -1,42 +1,36 @@
1
- import { DualFn } from "../types.js";
2
- import { m4x4f, v3f } from "../data/wgslTypes.js";
3
-
4
- //#region src/std/matrix.d.ts
5
-
1
+ import type { m4x4f, v3f } from '../data/wgslTypes.ts';
6
2
  /**
7
3
  * Translates the given 4-by-4 matrix by the given vector.
8
4
  * @param {m4x4f} matrix - The matrix to be modified.
9
5
  * @param {v3f} vector - The vector by which to translate the matrix.
10
6
  * @returns {m4x4f} The translated matrix.
11
7
  */
12
- declare const translate4: DualFn<(matrix: m4x4f, vector: v3f) => m4x4f>;
8
+ export declare const translate4: import("../types.ts").DualFn<(matrix: m4x4f, vector: v3f) => m4x4f>;
13
9
  /**
14
10
  * Scales the given 4-by-4 matrix in each dimension by an amount given by the corresponding entry in the given vector.
15
11
  * @param {m4x4f} matrix - The matrix to be modified.
16
12
  * @param {v3f} vector - A vector of three entries specifying the factor by which to scale in each dimension.
17
13
  * @returns {m4x4f} The scaled matrix.
18
14
  */
19
- declare const scale4: DualFn<(matrix: m4x4f, vector: v3f) => m4x4f>;
15
+ export declare const scale4: import("../types.ts").DualFn<(matrix: m4x4f, vector: v3f) => m4x4f>;
20
16
  /**
21
17
  * Rotates the given 4-by-4 matrix around the x-axis by the given angle.
22
18
  * @param {m4x4f} matrix - The matrix to be modified.
23
19
  * @param {number} angle - The angle by which to rotate (in radians).
24
20
  * @returns {m4x4f} The rotated matrix.
25
21
  */
26
- declare const rotateX4: DualFn<(matrix: m4x4f, angle: number) => m4x4f>;
22
+ export declare const rotateX4: import("../types.ts").DualFn<(matrix: m4x4f, angle: number) => m4x4f>;
27
23
  /**
28
24
  * Rotates the given 4-by-4 matrix around the y-axis by the given angle.
29
25
  * @param {m4x4f} matrix - The matrix to be modified.
30
26
  * @param {number} angle - The angle by which to rotate (in radians).
31
27
  * @returns {m4x4f} The rotated matrix.
32
28
  */
33
- declare const rotateY4: DualFn<(matrix: m4x4f, angle: number) => m4x4f>;
29
+ export declare const rotateY4: import("../types.ts").DualFn<(matrix: m4x4f, angle: number) => m4x4f>;
34
30
  /**
35
31
  * Rotates the given 4-by-4 matrix around the z-axis by the given angle.
36
32
  * @param {m4x4f} matrix - The matrix to be modified.
37
33
  * @param {number} angle - The angle by which to rotate (in radians).
38
34
  * @returns {m4x4f} The rotated matrix.
39
35
  */
40
- declare const rotateZ4: DualFn<(matrix: m4x4f, angle: number) => m4x4f>;
41
- //#endregion
42
- export { rotateX4, rotateY4, rotateZ4, scale4, translate4 };
36
+ export declare const rotateZ4: import("../types.ts").DualFn<(matrix: m4x4f, angle: number) => m4x4f>;
package/std/matrix.js CHANGED
@@ -1,87 +1,78 @@
1
- import { $gpuCallable } from "../shared/symbols.js";
2
1
  import { stitch } from "../core/resolve/stitch.js";
3
- import { f32 } from "../data/numeric.js";
4
- import { vec3f } from "../data/vector.js";
2
+ import { mat4x4f, rotationX4, rotationY4, rotationZ4, scaling4, translation4, } from "../data/matrix.js";
5
3
  import { dualImpl } from "../core/function/dualImpl.js";
6
- import { mat4x4f, rotationX4, rotationY4, rotationZ4, scaling4, translation4 } from "../data/matrix.js";
7
4
  import { mul } from "./operators.js";
8
-
9
- //#region src/std/matrix.ts
5
+ import { $gpuCallable } from "../shared/symbols.js";
6
+ import { vec3f } from "../data/vector.js";
7
+ import { f32 } from "../data/numeric.js";
10
8
  const gpuTranslation4 = translation4[$gpuCallable].call.bind(translation4);
11
9
  const gpuScaling4 = scaling4[$gpuCallable].call.bind(scaling4);
12
10
  const gpuRotationX4 = rotationX4[$gpuCallable].call.bind(rotationX4);
13
11
  const gpuRotationY4 = rotationY4[$gpuCallable].call.bind(rotationY4);
14
12
  const gpuRotationZ4 = rotationZ4[$gpuCallable].call.bind(rotationZ4);
15
13
  /**
16
- * Translates the given 4-by-4 matrix by the given vector.
17
- * @param {m4x4f} matrix - The matrix to be modified.
18
- * @param {v3f} vector - The vector by which to translate the matrix.
19
- * @returns {m4x4f} The translated matrix.
20
- */
21
- const translate4 = dualImpl({
22
- name: "translate4",
23
- normalImpl: (matrix, vector) => mul(translation4(vector), matrix),
24
- signature: {
25
- argTypes: [mat4x4f, vec3f],
26
- returnType: mat4x4f
27
- },
28
- codegenImpl: (ctx, [matrix, vector]) => stitch`(${gpuTranslation4(ctx, [vector])} * ${matrix})`
14
+ * Translates the given 4-by-4 matrix by the given vector.
15
+ * @param {m4x4f} matrix - The matrix to be modified.
16
+ * @param {v3f} vector - The vector by which to translate the matrix.
17
+ * @returns {m4x4f} The translated matrix.
18
+ */
19
+ export const translate4 = dualImpl({
20
+ name: 'translate4',
21
+ normalImpl: (matrix, vector) => mul(translation4(vector), matrix),
22
+ signature: { argTypes: [mat4x4f, vec3f], returnType: mat4x4f },
23
+ codegenImpl: (ctx, [matrix, vector]) => stitch `(${gpuTranslation4(ctx, [vector])} * ${matrix})`,
24
+ sideEffects: false,
29
25
  });
30
26
  /**
31
- * Scales the given 4-by-4 matrix in each dimension by an amount given by the corresponding entry in the given vector.
32
- * @param {m4x4f} matrix - The matrix to be modified.
33
- * @param {v3f} vector - A vector of three entries specifying the factor by which to scale in each dimension.
34
- * @returns {m4x4f} The scaled matrix.
35
- */
36
- const scale4 = dualImpl({
37
- name: "scale4",
38
- normalImpl: (matrix, vector) => mul(scaling4(vector), matrix),
39
- signature: {
40
- argTypes: [mat4x4f, vec3f],
41
- returnType: mat4x4f
42
- },
43
- codegenImpl: (ctx, [matrix, vector]) => stitch`(${gpuScaling4(ctx, [vector])} * ${matrix})`
27
+ * Scales the given 4-by-4 matrix in each dimension by an amount given by the corresponding entry in the given vector.
28
+ * @param {m4x4f} matrix - The matrix to be modified.
29
+ * @param {v3f} vector - A vector of three entries specifying the factor by which to scale in each dimension.
30
+ * @returns {m4x4f} The scaled matrix.
31
+ */
32
+ export const scale4 = dualImpl({
33
+ name: 'scale4',
34
+ normalImpl: (matrix, vector) => mul(scaling4(vector), matrix),
35
+ signature: { argTypes: [mat4x4f, vec3f], returnType: mat4x4f },
36
+ codegenImpl: (ctx, [matrix, vector]) => stitch `(${gpuScaling4(ctx, [vector])} * ${matrix})`,
37
+ sideEffects: false,
44
38
  });
45
- const rotateSignature = {
46
- argTypes: [mat4x4f, f32],
47
- returnType: mat4x4f
48
- };
39
+ const rotateSignature = { argTypes: [mat4x4f, f32], returnType: mat4x4f };
49
40
  /**
50
- * Rotates the given 4-by-4 matrix around the x-axis by the given angle.
51
- * @param {m4x4f} matrix - The matrix to be modified.
52
- * @param {number} angle - The angle by which to rotate (in radians).
53
- * @returns {m4x4f} The rotated matrix.
54
- */
55
- const rotateX4 = dualImpl({
56
- name: "rotateX4",
57
- normalImpl: (matrix, angle) => mul(rotationX4(angle), matrix),
58
- signature: rotateSignature,
59
- codegenImpl: (ctx, [matrix, angle]) => stitch`(${gpuRotationX4(ctx, [angle])} * ${matrix})`
41
+ * Rotates the given 4-by-4 matrix around the x-axis by the given angle.
42
+ * @param {m4x4f} matrix - The matrix to be modified.
43
+ * @param {number} angle - The angle by which to rotate (in radians).
44
+ * @returns {m4x4f} The rotated matrix.
45
+ */
46
+ export const rotateX4 = dualImpl({
47
+ name: 'rotateX4',
48
+ normalImpl: (matrix, angle) => mul(rotationX4(angle), matrix),
49
+ signature: rotateSignature,
50
+ codegenImpl: (ctx, [matrix, angle]) => stitch `(${gpuRotationX4(ctx, [angle])} * ${matrix})`,
51
+ sideEffects: false,
60
52
  });
61
53
  /**
62
- * Rotates the given 4-by-4 matrix around the y-axis by the given angle.
63
- * @param {m4x4f} matrix - The matrix to be modified.
64
- * @param {number} angle - The angle by which to rotate (in radians).
65
- * @returns {m4x4f} The rotated matrix.
66
- */
67
- const rotateY4 = dualImpl({
68
- name: "rotateY4",
69
- normalImpl: (matrix, angle) => mul(rotationY4(angle), matrix),
70
- signature: rotateSignature,
71
- codegenImpl: (ctx, [matrix, angle]) => stitch`(${gpuRotationY4(ctx, [angle])} * ${matrix})`
54
+ * Rotates the given 4-by-4 matrix around the y-axis by the given angle.
55
+ * @param {m4x4f} matrix - The matrix to be modified.
56
+ * @param {number} angle - The angle by which to rotate (in radians).
57
+ * @returns {m4x4f} The rotated matrix.
58
+ */
59
+ export const rotateY4 = dualImpl({
60
+ name: 'rotateY4',
61
+ normalImpl: (matrix, angle) => mul(rotationY4(angle), matrix),
62
+ signature: rotateSignature,
63
+ codegenImpl: (ctx, [matrix, angle]) => stitch `(${gpuRotationY4(ctx, [angle])} * ${matrix})`,
64
+ sideEffects: false,
72
65
  });
73
66
  /**
74
- * Rotates the given 4-by-4 matrix around the z-axis by the given angle.
75
- * @param {m4x4f} matrix - The matrix to be modified.
76
- * @param {number} angle - The angle by which to rotate (in radians).
77
- * @returns {m4x4f} The rotated matrix.
78
- */
79
- const rotateZ4 = dualImpl({
80
- name: "rotateZ4",
81
- normalImpl: (matrix, angle) => mul(rotationZ4(angle), matrix),
82
- signature: rotateSignature,
83
- codegenImpl: (ctx, [matrix, angle]) => stitch`(${gpuRotationZ4(ctx, [angle])} * ${matrix})`
67
+ * Rotates the given 4-by-4 matrix around the z-axis by the given angle.
68
+ * @param {m4x4f} matrix - The matrix to be modified.
69
+ * @param {number} angle - The angle by which to rotate (in radians).
70
+ * @returns {m4x4f} The rotated matrix.
71
+ */
72
+ export const rotateZ4 = dualImpl({
73
+ name: 'rotateZ4',
74
+ normalImpl: (matrix, angle) => mul(rotationZ4(angle), matrix),
75
+ signature: rotateSignature,
76
+ codegenImpl: (ctx, [matrix, angle]) => stitch `(${gpuRotationZ4(ctx, [angle])} * ${matrix})`,
77
+ sideEffects: false,
84
78
  });
85
-
86
- //#endregion
87
- export { rotateX4, rotateY4, rotateZ4, scale4, translate4 };