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
@@ -1,43 +1,70 @@
1
- import { INTERNAL_GlobalExt } from "./shared/meta.js";
2
- import { Storage, StorageFlag, isUsableAsStorage } from "./extension.js";
3
- import { TgpuQuerySet } from "./core/querySet/querySet.js";
4
- import { TgpuBufferMutable, TgpuBufferReadonly, TgpuBufferUniform, isUsableAsUniform } from "./core/buffer/bufferUsage.js";
5
- import { TgpuMutable, TgpuReadonly, TgpuUniform, isBufferShorthand } from "./core/buffer/bufferShorthand.js";
6
- import { TgpuComputeFn, TgpuComputeFnShell, isTgpuComputeFn } from "./core/function/tgpuComputeFn.js";
7
- import { TgpuVar, VariableScope, isVariable } from "./core/variable/tgpuVariable.js";
8
- import { Eventual, TgpuAccessor, TgpuLazy, TgpuMutableAccessor, TgpuSlot, isAccessor, isLazy, isMutableAccessor, isSlot } from "./core/slot/slotTypes.js";
9
- import { TgpuComputePipeline } from "./core/pipeline/computePipeline.js";
10
- import { AnyAutoCustoms, AutoFragmentIn, AutoFragmentOut, AutoVertexOut, _AutoVertexIn } from "./core/function/autoIO.js";
11
- import { TgpuFragmentFn, TgpuFragmentFnShell, isTgpuFragmentFn } from "./core/function/tgpuFragmentFn.js";
12
- import { TgpuVertexFn, TgpuVertexFnShell, isTgpuVertexFn } from "./core/function/tgpuVertexFn.js";
13
- import { TextureProps } from "./core/texture/textureProps.js";
14
- import { RenderFlag, SampledFlag, isUsableAsRender, isUsableAsSampled } from "./core/texture/usageExtension.js";
15
- import { TgpuVertexLayout } from "./core/vertexLayout/vertexLayout.js";
16
- import { ColorAttachment, TgpuPrimitiveState, TgpuRenderPipeline } from "./core/pipeline/renderPipeline.js";
17
- import { TgpuComparisonSampler, TgpuFixedComparisonSampler, TgpuFixedSampler, TgpuSampler, isComparisonSampler, isSampler } from "./core/sampler/sampler.js";
18
- import { BindLayoutEntry, ExtractBindGroupInputFromLayout, LayoutEntryToInput, TgpuBindGroup, TgpuBindGroupLayout, TgpuLayoutComparisonSampler, TgpuLayoutEntry, TgpuLayoutExternalTexture, TgpuLayoutSampler, TgpuLayoutStorage, TgpuLayoutTexture, TgpuLayoutUniform } from "./tgpuBindGroupLayout.js";
19
- import { ShaderGenerator } from "./tgsl/shaderGenerator.js";
20
- import { Configurable, TgpuGuardedComputePipeline, TgpuRoot, ValidateBufferSchema, ValidateStorageSchema, ValidateUniformSchema, WithBinding, WithCompute, WithFragment, WithVertex, Withable } from "./core/root/rootTypes.js";
21
- import { IndexFlag, TgpuBuffer, Uniform, UniformFlag, ValidUsagesFor, Vertex, VertexFlag, isBuffer, isUsableAsVertex } from "./core/buffer/buffer.js";
22
- import { TgpuDeclare } from "./core/declare/tgpuDeclare.js";
23
- import { TgpuFn, TgpuFnShell, TgpuGenericFn, isTgpuFn } from "./core/function/tgpuFn.js";
24
- import { TgpuTexture, TgpuTextureView, isTexture } from "./core/texture/texture.js";
25
- import { TgpuConst } from "./core/constant/tgpuConstant.js";
26
- import { TgpuComptime } from "./core/function/comptime.js";
27
- import { Namespace } from "./core/resolve/namespace.js";
28
- import { InitFromDeviceOptions, InitOptions } from "./core/root/init.js";
29
- import { RawCodeSnippetOrigin, TgpuRawCodeSnippet } from "./core/rawCodeSnippet/tgpuRawCodeSnippet.js";
30
- import { index_d_exports } from "./data/index.js";
31
- import { index_d_exports as index_d_exports$1 } from "./std/index.js";
32
- import { index_d_exports as index_d_exports$2 } from "./common/index.js";
33
- import { MissingBindGroupsError, MissingSlotValueError, MissingVertexBuffersError, NotUniformError, ResolutionError } from "./errors.js";
34
- import { WgslGenerator } from "./tgsl/wgslGenerator.js";
35
- import { readFromArrayBuffer, writeToArrayBuffer } from "./data/dataIO.js";
36
- import { patchArrayBuffer } from "./data/partialIO.js";
37
-
38
- //#region src/indexNamedExports.d.ts
39
-
1
+ export * as d from './data/index.ts';
2
+ export * as std from './std/index.ts';
3
+ export * as common from './common/index.ts';
4
+ export { MissingBindGroupsError, MissingSlotValueError, MissingVertexBuffersError, NotUniformError, ResolutionError, } from './errors.ts';
5
+ export { isAccessor, isLazy, isMutableAccessor, isSlot } from './core/slot/slotTypes.ts';
6
+ export { isComparisonSampler, isSampler } from './core/sampler/sampler.ts';
7
+ export { isTexture } from './core/texture/texture.ts';
8
+ export { isUsableAsRender, isUsableAsSampled } from './core/texture/usageExtension.ts';
9
+ export { isBuffer, isUsableAsUniform, isUsableAsVertex, isUsableAsIndex, isUsableAsStorage, } from './types.ts';
10
+ export { isBufferBinding, isBufferShorthand, isMutableBinding, isReadonlyBinding, isUniformBinding, } from './core/buffer/bufferBinding.ts';
11
+ export { isBindGroup, isBindGroupLayout } from './tgpuBindGroupLayout.ts';
12
+ export { isTgpuFn } from './core/function/tgpuFn.ts';
13
+ export { isTgpuFragmentFn } from './core/function/tgpuFragmentFn.ts';
14
+ export { isTgpuVertexFn } from './core/function/tgpuVertexFn.ts';
15
+ export { isTgpuComputeFn } from './core/function/tgpuComputeFn.ts';
16
+ export { isComputePipeline, isPipeline, isRenderPipeline } from './core/pipeline/typeGuards.ts';
17
+ export { isQuerySet } from './core/querySet/querySet.ts';
18
+ export { isVariable } from './core/variable/tgpuVariable.ts';
19
+ export { isVertexLayout } from './core/vertexLayout/vertexLayout.ts';
20
+ export type {
21
+ /** @deprecated Import from 'typegpu/~internal' instead */ ShaderGenerator, } from './tgsl/shaderGenerator.ts';
22
+ export {
23
+ /** @deprecated Import from 'typegpu/~internal' instead */ WgslGenerator, } from './tgsl/wgslGenerator.ts';
24
+ export { readFromArrayBuffer, writeToArrayBuffer } from './data/dataIO.ts';
25
+ export { patchArrayBuffer } from './data/partialIO.ts';
26
+ export { warn } from './tgpuLogger.ts';
27
+ export type { ResolvableObject, ShaderStage } from './types.ts';
28
+ export type { ResolvedDeclaration } from './resolutionCtx.ts';
29
+ export type { Configurable, TgpuGuardedComputePipeline, TgpuRoot, ValidateBufferSchema, ValidateStorageSchema, ValidateUniformSchema, Withable, WithBinding, } from './core/root/rootTypes.ts';
30
+ export type { Storage, StorageFlag } from './extension.ts';
31
+ export type { TgpuVertexLayout } from './core/vertexLayout/vertexLayout.ts';
32
+ export type { TgpuPrimitiveState, TgpuRenderPipeline } from './core/pipeline/renderPipeline.ts';
33
+ export type { ColorAttachment, DepthStencilAttachment } from './core/commandEncoder/attachments.ts';
34
+ export type { TgpuComputePipeline } from './core/pipeline/computePipeline.ts';
35
+ export type { TgpuCommandEncoder } from './core/commandEncoder/commandEncoder.ts';
36
+ export type { TgpuRenderBundleEncoder, TgpuRenderCommands, TgpuRenderPass, TgpuRenderPassDescriptor, } from './core/commandEncoder/renderPass.ts';
37
+ export type { TgpuComputePass, TgpuComputePassDescriptor, } from './core/commandEncoder/computePass.ts';
38
+ export type { IndirectFlag, IndexFlag, TgpuBuffer, Uniform, UniformFlag, UsageLiteral, ValidUsagesFor, Vertex, VertexFlag, TgpuStorageBuffer, TgpuUniformBuffer, TgpuVertexBuffer, TgpuIndexBuffer, BufferWriteOptions, BufferInitCallback, BufferInitialData, } from './core/buffer/buffer.ts';
39
+ export type { TgpuBufferMutable, TgpuBufferReadonly, TgpuBufferUniform, } from './core/buffer/bufferUsage.ts';
40
+ export type { TgpuBufferBinding, TgpuMutable, TgpuReadonly, TgpuUniform, } from './core/buffer/bufferBinding.ts';
41
+ export type { Eventual, TgpuAccessor, TgpuLazy, TgpuMutableAccessor, TgpuSlot, } from './core/slot/slotTypes.ts';
42
+ export type { RawCodeSnippetOrigin, TgpuRawCodeSnippet, } from './core/rawCodeSnippet/tgpuRawCodeSnippet.ts';
43
+ export type { TextureWriteFit, TextureWriteOptions, TgpuTexture, TgpuTextureView, } from './core/texture/texture.ts';
44
+ export type { TextureProps } from './core/texture/textureProps.ts';
45
+ export type { RenderFlag, SampledFlag } from './core/texture/usageExtension.ts';
46
+ export type { InitFromDeviceOptions, InitOptions } from './core/root/init.ts';
47
+ export type { TgpuConst } from './core/constant/tgpuConstant.ts';
48
+ export type { TgpuVar, VariableScope } from './core/variable/tgpuVariable.ts';
49
+ export type { TgpuComparisonSampler, TgpuFixedComparisonSampler, TgpuFixedSampler, TgpuSampler, } from './core/sampler/sampler.ts';
50
+ export type { TgpuQuerySet } from './core/querySet/querySet.ts';
51
+ export type { ExtractBindGroupInputFromLayout, LayoutEntryToInput, TgpuBindGroup, TgpuBindGroupLayout, TgpuLayoutComparisonSampler, TgpuLayoutEntry, TgpuLayoutExternalTexture, TgpuLayoutSampler, TgpuLayoutStorage, TgpuLayoutTexture, TgpuLayoutUniform, } from './tgpuBindGroupLayout.ts';
52
+ export type { TgpuFn, TgpuFnShell, TgpuGenericFn } from './core/function/tgpuFn.ts';
53
+ export type { TgpuComptime } from './core/function/comptime.ts';
54
+ export type { TgpuVertexFn, TgpuVertexFnShell } from './core/function/tgpuVertexFn.ts';
55
+ export type { TgpuFragmentFn, TgpuFragmentFnShell } from './core/function/tgpuFragmentFn.ts';
56
+ export type { TgpuComputeFn, TgpuComputeFnShell } from './core/function/tgpuComputeFn.ts';
57
+ export type { AnyAutoCustoms,
58
+ /** @deprecated use TgpuFragmentFn.AutoIn */
59
+ AutoFragmentIn,
60
+ /** @deprecated use TgpuFragmentFn.AutoOut */
61
+ AutoFragmentOut,
62
+ /** @deprecated use TgpuVertexFn.AutoIn */
63
+ _AutoVertexIn as AutoVertexIn,
64
+ /** @deprecated use TgpuVertexFn.AutoOut */
65
+ AutoVertexOut, } from './core/function/autoIO.ts';
66
+ export type { TgpuDeclare } from './core/declare/tgpuDeclare.ts';
67
+ export type { Namespace } from './core/resolve/namespace.ts';
68
+ export type { INTERNAL_GlobalExt } from './shared/meta.ts';
40
69
  /** @deprecated Use TgpuRenderPipeline.Descriptor */
41
- type TgpuRenderPipelineDescriptor = TgpuRenderPipeline.Descriptor;
42
- //#endregion
43
- export { TgpuRenderPipelineDescriptor };
70
+ export type TgpuRenderPipelineDescriptor = import('./core/pipeline/renderPipeline.ts').TgpuRenderPipeline.Descriptor;
@@ -0,0 +1,25 @@
1
+ // NOTE: This is a barrel file, internal files should not import things from this file
2
+ export * as d from "./data/index.js";
3
+ export * as std from "./std/index.js";
4
+ export * as common from "./common/index.js";
5
+ export { MissingBindGroupsError, MissingSlotValueError, MissingVertexBuffersError, NotUniformError, ResolutionError, } from "./errors.js";
6
+ export { isAccessor, isLazy, isMutableAccessor, isSlot } from "./core/slot/slotTypes.js";
7
+ export { isComparisonSampler, isSampler } from "./core/sampler/sampler.js";
8
+ export { isTexture } from "./core/texture/texture.js";
9
+ export { isUsableAsRender, isUsableAsSampled } from "./core/texture/usageExtension.js";
10
+ export { isBuffer, isUsableAsUniform, isUsableAsVertex, isUsableAsIndex, isUsableAsStorage, } from "./types.js";
11
+ export { isBufferBinding, isBufferShorthand, isMutableBinding, isReadonlyBinding, isUniformBinding, } from "./core/buffer/bufferBinding.js";
12
+ export { isBindGroup, isBindGroupLayout } from "./tgpuBindGroupLayout.js";
13
+ export { isTgpuFn } from "./core/function/tgpuFn.js";
14
+ export { isTgpuFragmentFn } from "./core/function/tgpuFragmentFn.js";
15
+ export { isTgpuVertexFn } from "./core/function/tgpuVertexFn.js";
16
+ export { isTgpuComputeFn } from "./core/function/tgpuComputeFn.js";
17
+ export { isComputePipeline, isPipeline, isRenderPipeline } from "./core/pipeline/typeGuards.js";
18
+ export { isQuerySet } from "./core/querySet/querySet.js";
19
+ export { isVariable } from "./core/variable/tgpuVariable.js";
20
+ export { isVertexLayout } from "./core/vertexLayout/vertexLayout.js";
21
+ export {
22
+ /** @deprecated Import from 'typegpu/~internal' instead */ WgslGenerator, } from "./tgsl/wgslGenerator.js";
23
+ export { readFromArrayBuffer, writeToArrayBuffer } from "./data/dataIO.js";
24
+ export { patchArrayBuffer } from "./data/partialIO.js";
25
+ export { warn } from "./tgpuLogger.js";
package/internal.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ export { abstractInt, abstractFloat } from './data/numeric.ts';
2
+ export { makeResolvable } from './tgsl/makeResolvable.ts';
3
+ export { makeDereferenceable } from './tgsl/makeDereferenceable.ts';
4
+ export { UnknownData } from './data/dataTypes.ts';
5
+ export { getName, setName } from './shared/meta.ts';
6
+ export { WgslGenerator } from './tgsl/wgslGenerator.ts';
7
+ export { snip, withValue, withDataType, withSideEffects } from './data/snippet.ts';
8
+ export { stringifyNode } from './shared/tseynit.ts';
9
+ export { dualImpl } from './core/function/dualImpl.ts';
10
+ export { isNonTransferableResource, isTransferableResource, restoreResource, snapshotResource, } from './serial/registry.ts';
11
+ export type { TgpuResourceSnapshot, TransferableResourceType } from './serial/registry.ts';
12
+ export type { RestoreContext } from './serial/types.ts';
13
+ export { deserializeDataSchema, serializeDataSchema, type SerializedDataSchema, } from './serial/schema.ts';
14
+ export type { ResolutionCtx, FunctionArgument } from './types.ts';
15
+ export type { Snippet, ResolvedSnippet, Origin } from './data/snippet.ts';
16
+ export type { ShaderGenerator, ResolvedStatement, BinaryOperator, ShaderGeneratorClass, FunctionDefinitionOptions, ConstantDefinitionOptions, VariableDefinitionOptions, } from './tgsl/shaderGenerator.ts';
package/internal.js ADDED
@@ -0,0 +1,12 @@
1
+ // Each export here is available as a member on the 'typegpu/~internal' import.
2
+ export { abstractInt, abstractFloat } from "./data/numeric.js";
3
+ export { makeResolvable } from "./tgsl/makeResolvable.js";
4
+ export { makeDereferenceable } from "./tgsl/makeDereferenceable.js";
5
+ export { UnknownData } from "./data/dataTypes.js";
6
+ export { getName, setName } from "./shared/meta.js";
7
+ export { WgslGenerator } from "./tgsl/wgslGenerator.js";
8
+ export { snip, withValue, withDataType, withSideEffects } from "./data/snippet.js";
9
+ export { stringifyNode } from "./shared/tseynit.js";
10
+ export { dualImpl } from "./core/function/dualImpl.js";
11
+ export { isNonTransferableResource, isTransferableResource, restoreResource, snapshotResource, } from "./serial/registry.js";
12
+ export { deserializeDataSchema, serializeDataSchema, } from "./serial/schema.js";
package/mathUtils.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @param value
3
+ * @param modulo has to be power of 2
4
+ */
5
+ export declare const roundUp: (value: number, modulo: number) => number;
package/mathUtils.js CHANGED
@@ -1,13 +1,9 @@
1
- //#region src/mathUtils.ts
2
1
  /**
3
- * @param value
4
- * @param modulo has to be power of 2
5
- */
6
- const roundUp = (value, modulo) => {
7
- const bitMask = modulo - 1;
8
- const invBitMask = ~bitMask;
9
- return (value & bitMask) === 0 ? value : (value & invBitMask) + modulo;
2
+ * @param value
3
+ * @param modulo has to be power of 2
4
+ */
5
+ export const roundUp = (value, modulo) => {
6
+ const bitMask = modulo - 1;
7
+ const invBitMask = ~bitMask;
8
+ return (value & bitMask) === 0 ? value : (value & invBitMask) + modulo;
10
9
  };
11
-
12
- //#endregion
13
- export { roundUp };
package/memo.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Caches results of the function passed in as
3
+ * the argument to the constructor.
4
+ *
5
+ * If the key can be garbage collected, it will be.
6
+ */
7
+ export declare class WeakMemo<TKey extends object, TValue, TArgs extends unknown[]> {
8
+ #private;
9
+ constructor(make: (key: TKey, ...args: TArgs) => TValue);
10
+ getOrMake(key: TKey, ...args: TArgs): TValue;
11
+ }
package/memo.js CHANGED
@@ -1,23 +1,21 @@
1
- //#region src/memo.ts
2
1
  /**
3
- * Caches results of the function passed in as
4
- * the argument to the constructor.
5
- *
6
- * If the key can be garbage collected, it will be.
7
- */
8
- var WeakMemo = class {
9
- #map = /* @__PURE__ */ new WeakMap();
10
- #make;
11
- constructor(make) {
12
- this.#make = make;
13
- }
14
- getOrMake(key, ...args) {
15
- if (this.#map.has(key)) return this.#map.get(key);
16
- const value = this.#make(key, ...args);
17
- this.#map.set(key, value);
18
- return value;
19
- }
20
- };
21
-
22
- //#endregion
23
- export { WeakMemo };
2
+ * Caches results of the function passed in as
3
+ * the argument to the constructor.
4
+ *
5
+ * If the key can be garbage collected, it will be.
6
+ */
7
+ export class WeakMemo {
8
+ #map = new WeakMap();
9
+ #make;
10
+ constructor(make) {
11
+ this.#make = make;
12
+ }
13
+ getOrMake(key, ...args) {
14
+ if (this.#map.has(key)) {
15
+ return this.#map.get(key);
16
+ }
17
+ const value = this.#make(key, ...args);
18
+ this.#map.set(key, value);
19
+ return value;
20
+ }
21
+ }
package/minify.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * This function accepts a code string, and returns equivalent code
3
+ * with comments and unnecessary whitespace removed.
4
+ */
5
+ export declare function minify(code: string): string;
package/minify.js ADDED
@@ -0,0 +1,93 @@
1
+ import { blankSpaces, lineBreaks } from "./core/whitespaces.js";
2
+ import { invariant } from "./errors.js";
3
+ /**
4
+ * We don't separate every WGSL token, for example `main()` already has no spaces, no need to further split it.
5
+ */
6
+ const splitRegex = new RegExp(`[${[...blankSpaces].join('')}]+`, 'ug');
7
+ /**
8
+ * Regex for detecting boundary characters that indicate whitespace may be needed between tokens.
9
+ * @example
10
+ * "let", "variable" // "t" and "v" both match, a space is needed
11
+ * "return" "a" // "n" and "a" both match, a space is needed
12
+ * "return" "(a+b)" // "n" matches and "(" does not, no space is needed
13
+ */
14
+ const separatorNeededRegex = /[.\p{XID_Continue}]/u;
15
+ /**
16
+ * This function accepts a code string, and returns equivalent code
17
+ * with comments and unnecessary whitespace removed.
18
+ */
19
+ export function minify(code) {
20
+ const codeWithoutComments = stripWGSLComments(code);
21
+ const tokens = codeWithoutComments.split(splitRegex).filter((token) => token !== '');
22
+ let result = '';
23
+ for (let i = 0; i < tokens.length; i++) {
24
+ const current = tokens[i];
25
+ const next = tokens[i + 1];
26
+ invariant(current);
27
+ result += current;
28
+ if (isSpaceRequired(current, next)) {
29
+ result += ' ';
30
+ }
31
+ }
32
+ return result;
33
+ }
34
+ function isSpaceRequired(current, next) {
35
+ if (next === undefined) {
36
+ return false;
37
+ }
38
+ const currentLast = current.at(-1);
39
+ const nextFirst = next.at(0);
40
+ invariant(currentLast?.length === 1 && nextFirst?.length === 1, `Expected tokens during minification to not be empty.`);
41
+ if (separatorNeededRegex.test(currentLast) && separatorNeededRegex.test(nextFirst)) {
42
+ return true;
43
+ }
44
+ if (['//', '/*', '*/'].includes(`${currentLast}${nextFirst}`)) {
45
+ return true;
46
+ }
47
+ return false;
48
+ }
49
+ // Based on tint implementation.
50
+ function stripWGSLComments(code) {
51
+ let result = '';
52
+ let copiedUpTo = 0;
53
+ let offset = 0;
54
+ while (offset < code.length) {
55
+ if (code.startsWith('//', offset)) {
56
+ result += `${code.slice(copiedUpTo, offset)} `;
57
+ offset += 2;
58
+ while (offset < code.length && !lineBreaks.has(code.charAt(offset))) {
59
+ offset += 1;
60
+ }
61
+ copiedUpTo = offset;
62
+ continue;
63
+ }
64
+ if (code.startsWith('/*', offset)) {
65
+ result += `${code.slice(copiedUpTo, offset)} `;
66
+ let depth = 1;
67
+ offset += 2;
68
+ while (offset < code.length && depth > 0) {
69
+ if (code.startsWith('/*', offset)) {
70
+ depth += 1;
71
+ offset += 2;
72
+ }
73
+ else if (code.startsWith('*/', offset)) {
74
+ depth -= 1;
75
+ offset += 2;
76
+ }
77
+ else {
78
+ offset += 1;
79
+ }
80
+ }
81
+ if (depth > 0) {
82
+ throw new SyntaxError(`Block comment opening without corresponding closing found during minification.`);
83
+ }
84
+ copiedUpTo = offset;
85
+ continue;
86
+ }
87
+ if (code.startsWith('*/', offset)) {
88
+ throw new SyntaxError(`Block comment closing without corresponding opening found during minification.`);
89
+ }
90
+ offset += 1;
91
+ }
92
+ return result + code.slice(copiedUpTo);
93
+ }
package/nameUtils.d.ts ADDED
@@ -0,0 +1,29 @@
1
+ export declare const bannedTokens: Set<string>;
2
+ export declare const builtins: Set<string>;
3
+ /**
4
+ * Sanitizes the primer so that it is compliant with WGSL guidelines.
5
+ * This primer is not necessarily a valid identifier yet, as it may still collide with other idents or reserved keywords.
6
+ */
7
+ export declare function sanitizePrimer(primer: string | undefined): string;
8
+ type ValidationResult = {
9
+ success: true;
10
+ error?: undefined;
11
+ } | {
12
+ success: false;
13
+ error?: string | undefined;
14
+ };
15
+ /**
16
+ * A function for checking whether an identifier is valid.
17
+ * If `ident` passes the checks, it is not necessarily a valid identifier yet, as it may still collide with other idents or reserved keywords.
18
+ * @example
19
+ * validateIdentifier("ident"); // { success: true }
20
+ * validateIdentifier("_"); // { success: false, error: `Identifiers cannot be equal to '' or '_'` }
21
+ * validateIdentifier("my variable"); // { success: false, error: "Identifiers cannot contain whitespace." }
22
+ * validateIdentifier("0"); // { success: false, error: "Identifier is not compliant with the WGSL guideline." }
23
+ */
24
+ export declare function validateIdentifier(ident: string): ValidationResult;
25
+ /**
26
+ * Same as `validateIdentifier`, except also checks for bannedToken clashes.
27
+ */
28
+ export declare function validateProp(ident: string): ValidationResult;
29
+ export {};