typegpu 0.11.9 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (362) hide show
  1. package/builtin.d.ts +51 -53
  2. package/builtin.js +30 -34
  3. package/common/fullScreenTriangle.d.ts +2 -10
  4. package/common/fullScreenTriangle.js +20 -28
  5. package/common/index.d.ts +2 -9
  6. package/common/index.js +3 -12
  7. package/common/writeSoA.d.ts +11 -12
  8. package/common/writeSoA.js +88 -76
  9. package/core/buffer/buffer.d.ts +79 -62
  10. package/core/buffer/buffer.js +279 -205
  11. package/core/buffer/bufferBinding.d.ts +71 -0
  12. package/core/buffer/bufferBinding.js +154 -0
  13. package/core/buffer/bufferUsage.d.ts +14 -45
  14. package/core/buffer/bufferUsage.js +1 -171
  15. package/core/buffer/laidOutBuffer.d.ts +25 -0
  16. package/core/buffer/laidOutBuffer.js +55 -0
  17. package/core/commandEncoder/attachments.d.ts +125 -0
  18. package/core/commandEncoder/attachments.js +29 -0
  19. package/core/commandEncoder/commandEncoder.d.ts +53 -0
  20. package/core/commandEncoder/commandEncoder.js +56 -0
  21. package/core/commandEncoder/computePass.d.ts +58 -0
  22. package/core/commandEncoder/computePass.js +63 -0
  23. package/core/commandEncoder/renderPass.d.ts +121 -0
  24. package/core/commandEncoder/renderPass.js +196 -0
  25. package/core/constant/tgpuConstant.d.ts +26 -26
  26. package/core/constant/tgpuConstant.js +76 -65
  27. package/core/declare/tgpuDeclare.d.ts +3 -6
  28. package/core/declare/tgpuDeclare.js +36 -36
  29. package/core/function/autoIO.d.ts +61 -33
  30. package/core/function/autoIO.js +68 -73
  31. package/core/function/comptime.d.ts +11 -13
  32. package/core/function/comptime.js +60 -52
  33. package/core/function/createCallableSchema.d.ts +16 -0
  34. package/core/function/createCallableSchema.js +50 -40
  35. package/core/function/dualImpl.d.ts +44 -0
  36. package/core/function/dualImpl.js +71 -50
  37. package/core/function/entryInputRouter.d.ts +26 -0
  38. package/core/function/entryInputRouter.js +31 -33
  39. package/core/function/extractArgs.d.ts +38 -0
  40. package/core/function/extractArgs.js +202 -200
  41. package/core/function/fnCore.d.ts +44 -5
  42. package/core/function/fnCore.js +148 -93
  43. package/core/function/fnTypes.d.ts +31 -29
  44. package/core/function/fnTypes.js +1 -0
  45. package/core/function/ioSchema.d.ts +12 -10
  46. package/core/function/ioSchema.js +65 -47
  47. package/core/function/shelllessImpl.d.ts +9 -12
  48. package/core/function/shelllessImpl.js +17 -22
  49. package/core/function/templateUtils.d.ts +2 -0
  50. package/core/function/templateUtils.js +9 -8
  51. package/core/function/tgpuComputeFn.d.ts +26 -28
  52. package/core/function/tgpuComputeFn.js +47 -48
  53. package/core/function/tgpuFn.d.ts +34 -37
  54. package/core/function/tgpuFn.js +179 -153
  55. package/core/function/tgpuFragmentFn.d.ts +52 -53
  56. package/core/function/tgpuFragmentFn.js +63 -56
  57. package/core/function/tgpuVertexFn.d.ts +36 -39
  58. package/core/function/tgpuVertexFn.js +56 -53
  59. package/core/pipeline/computePipeline.d.ts +141 -53
  60. package/core/pipeline/computePipeline.js +291 -225
  61. package/core/pipeline/connectAttachmentToShader.d.ts +4 -0
  62. package/core/pipeline/connectAttachmentToShader.js +25 -22
  63. package/core/pipeline/connectTargetsToShader.d.ts +3 -0
  64. package/core/pipeline/connectTargetsToShader.js +29 -27
  65. package/core/pipeline/drawState.d.ts +52 -0
  66. package/core/pipeline/drawState.js +225 -0
  67. package/core/pipeline/limitsOverflow.d.ts +2 -0
  68. package/core/pipeline/limitsOverflow.js +13 -10
  69. package/core/pipeline/performanceTracker.d.ts +14 -0
  70. package/core/pipeline/performanceTracker.js +34 -0
  71. package/core/pipeline/pipelineUtils.d.ts +18 -0
  72. package/core/pipeline/pipelineUtils.js +54 -25
  73. package/core/pipeline/priors.d.ts +1 -0
  74. package/core/pipeline/priors.js +12 -0
  75. package/core/pipeline/renderPipeline.d.ts +246 -261
  76. package/core/pipeline/renderPipeline.js +487 -480
  77. package/core/pipeline/timeable.d.ts +28 -18
  78. package/core/pipeline/timeable.js +90 -52
  79. package/core/pipeline/typeGuards.d.ts +17 -0
  80. package/core/pipeline/typeGuards.js +52 -22
  81. package/core/querySet/querySet.d.ts +26 -21
  82. package/core/querySet/querySet.js +127 -103
  83. package/core/rawCodeSnippet/tgpuRawCodeSnippet.d.ts +13 -18
  84. package/core/rawCodeSnippet/tgpuRawCodeSnippet.js +89 -90
  85. package/core/resolve/externals.d.ts +25 -8
  86. package/core/resolve/externals.js +78 -54
  87. package/core/resolve/namespace.d.ts +22 -25
  88. package/core/resolve/namespace.js +16 -21
  89. package/core/resolve/resolvableString.d.ts +7 -0
  90. package/core/resolve/resolvableString.js +13 -0
  91. package/core/resolve/resolveData.d.ts +10 -0
  92. package/core/resolve/resolveData.js +162 -121
  93. package/core/resolve/stitch.d.ts +8 -0
  94. package/core/resolve/stitch.js +23 -21
  95. package/core/resolve/tgpuResolve.d.ts +55 -53
  96. package/core/resolve/tgpuResolve.js +106 -53
  97. package/core/root/configurableImpl.d.ts +10 -0
  98. package/core/root/configurableImpl.js +17 -19
  99. package/core/root/init.d.ts +76 -38
  100. package/core/root/init.js +346 -455
  101. package/core/root/rootTypes.d.ts +461 -636
  102. package/core/root/rootTypes.js +1 -0
  103. package/core/sampler/sampler.d.ts +50 -31
  104. package/core/sampler/sampler.js +120 -113
  105. package/core/simulate/tgpuSimulate.d.ts +9 -12
  106. package/core/simulate/tgpuSimulate.js +68 -71
  107. package/core/slot/accessor.d.ts +36 -13
  108. package/core/slot/accessor.js +138 -91
  109. package/core/slot/internalSlots.d.ts +2 -0
  110. package/core/slot/internalSlots.js +1 -6
  111. package/core/slot/lazy.d.ts +2 -6
  112. package/core/slot/lazy.js +71 -39
  113. package/core/slot/slot.d.ts +2 -6
  114. package/core/slot/slot.js +45 -38
  115. package/core/slot/slotTypes.d.ts +78 -80
  116. package/core/slot/slotTypes.js +11 -16
  117. package/core/texture/externalTexture.d.ts +20 -11
  118. package/core/texture/externalTexture.js +46 -46
  119. package/core/texture/texture.d.ts +152 -97
  120. package/core/texture/texture.js +407 -314
  121. package/core/texture/textureFormats.d.ts +42 -23
  122. package/core/texture/textureFormats.js +104 -75
  123. package/core/texture/textureProps.d.ts +7 -10
  124. package/core/texture/textureProps.js +1 -0
  125. package/core/texture/textureUtils.d.ts +8 -0
  126. package/core/texture/textureUtils.js +185 -179
  127. package/core/texture/usageExtension.d.ts +21 -18
  128. package/core/texture/usageExtension.js +13 -17
  129. package/core/unroll/tgpuUnroll.d.ts +20 -19
  130. package/core/unroll/tgpuUnroll.js +82 -91
  131. package/core/valueProxyUtils.d.ts +3 -0
  132. package/core/valueProxyUtils.js +52 -41
  133. package/core/variable/tgpuVariable.d.ts +26 -27
  134. package/core/variable/tgpuVariable.js +93 -96
  135. package/core/vertexLayout/connectAttributesToShader.d.ts +9 -0
  136. package/core/vertexLayout/connectAttributesToShader.js +61 -56
  137. package/core/vertexLayout/vertexAttribute.d.ts +21 -17
  138. package/core/vertexLayout/vertexAttribute.js +1 -0
  139. package/core/vertexLayout/vertexLayout.d.ts +24 -18
  140. package/core/vertexLayout/vertexLayout.js +130 -99
  141. package/core/whitespaces.d.ts +2 -0
  142. package/core/whitespaces.js +16 -0
  143. package/data/alignIO.d.ts +7 -0
  144. package/data/alignIO.js +13 -13
  145. package/data/alignmentOf.d.ts +5 -8
  146. package/data/alignmentOf.js +90 -75
  147. package/data/array.d.ts +6 -9
  148. package/data/array.js +48 -40
  149. package/data/atomic.d.ts +2 -7
  150. package/data/atomic.js +26 -23
  151. package/data/attributes.d.ts +19 -21
  152. package/data/attributes.js +192 -132
  153. package/data/autoStruct.d.ts +36 -3
  154. package/data/autoStruct.js +84 -81
  155. package/data/compiledIO.d.ts +5 -0
  156. package/data/compiledIO.js +231 -215
  157. package/data/dataIO.d.ts +13 -11
  158. package/data/dataIO.js +643 -589
  159. package/data/dataTypes.d.ts +83 -65
  160. package/data/dataTypes.js +66 -68
  161. package/data/deepEqual.d.ts +2 -7
  162. package/data/deepEqual.js +80 -55
  163. package/data/disarray.d.ts +6 -10
  164. package/data/disarray.js +52 -46
  165. package/data/float16Conversion.d.ts +4 -0
  166. package/data/float16Conversion.js +7 -0
  167. package/data/getLongestContiguousPrefix.d.ts +4 -8
  168. package/data/getLongestContiguousPrefix.js +6 -11
  169. package/data/index.d.ts +30 -31
  170. package/data/index.js +39 -172
  171. package/data/instanceToSchema.d.ts +24 -27
  172. package/data/instanceToSchema.js +1 -0
  173. package/data/isContiguous.d.ts +4 -8
  174. package/data/isContiguous.js +6 -11
  175. package/data/matrix.d.ts +21 -21
  176. package/data/matrix.js +513 -505
  177. package/data/numberOps.d.ts +6 -0
  178. package/data/numberOps.js +26 -20
  179. package/data/numeric.d.ts +21 -12
  180. package/data/numeric.js +287 -197
  181. package/data/offsetUtils.d.ts +9 -13
  182. package/data/offsetUtils.js +204 -144
  183. package/data/offsets.d.ts +8 -0
  184. package/data/offsets.js +33 -33
  185. package/data/partialIO.d.ts +13 -8
  186. package/data/partialIO.js +124 -113
  187. package/data/ptr.d.ts +12 -12
  188. package/data/ptr.js +42 -44
  189. package/data/ref.d.ts +40 -27
  190. package/data/ref.js +125 -95
  191. package/data/sampler.d.ts +99 -101
  192. package/data/sampler.js +17 -21
  193. package/data/schemaCallWrapper.d.ts +19 -0
  194. package/data/schemaCallWrapper.js +31 -26
  195. package/data/schemaMemoryLayout.d.ts +8 -0
  196. package/data/schemaMemoryLayout.js +213 -185
  197. package/data/sizeOf.d.ts +4 -8
  198. package/data/sizeOf.js +6 -11
  199. package/data/snippet.d.ts +96 -20
  200. package/data/snippet.js +75 -86
  201. package/data/struct.d.ts +4 -7
  202. package/data/struct.js +51 -39
  203. package/data/texture.d.ts +253 -250
  204. package/data/texture.js +238 -200
  205. package/data/unstruct.d.ts +2 -7
  206. package/data/unstruct.js +43 -37
  207. package/data/vector.d.ts +33 -21
  208. package/data/vector.js +234 -221
  209. package/data/vectorImpl.d.ts +231 -0
  210. package/data/vectorImpl.js +563 -515
  211. package/data/vectorOps.d.ts +63 -0
  212. package/data/vectorOps.js +642 -630
  213. package/data/vertexFormatData.d.ts +181 -184
  214. package/data/vertexFormatData.js +104 -106
  215. package/data/wgslTypes.d.ts +665 -600
  216. package/data/wgslTypes.js +220 -198
  217. package/errors.d.ts +50 -24
  218. package/errors.js +146 -126
  219. package/execMode.d.ts +16 -0
  220. package/execMode.js +47 -40
  221. package/extension.d.ts +13 -8
  222. package/extension.js +10 -16
  223. package/getGPUValue.d.ts +1 -0
  224. package/getGPUValue.js +2 -7
  225. package/index.d.ts +28 -68
  226. package/index.js +8 -28
  227. package/indexNamedExports.d.ts +69 -42
  228. package/indexNamedExports.js +25 -0
  229. package/internal.d.ts +16 -0
  230. package/internal.js +12 -0
  231. package/mathUtils.d.ts +5 -0
  232. package/mathUtils.js +7 -11
  233. package/memo.d.ts +11 -0
  234. package/memo.js +20 -22
  235. package/minify.d.ts +5 -0
  236. package/minify.js +93 -0
  237. package/nameUtils.d.ts +29 -0
  238. package/nameUtils.js +427 -394
  239. package/package.json +5 -1
  240. package/resolutionCtx.d.ts +162 -22
  241. package/resolutionCtx.js +911 -629
  242. package/serial/registry.d.ts +15 -0
  243. package/serial/registry.js +106 -0
  244. package/serial/restore.d.ts +49 -0
  245. package/serial/restore.js +68 -0
  246. package/serial/schema.d.ts +58 -0
  247. package/serial/schema.js +209 -0
  248. package/serial/types.d.ts +5 -0
  249. package/serial/types.js +1 -0
  250. package/shared/env.d.ts +9 -0
  251. package/shared/env.js +9 -12
  252. package/shared/generators.d.ts +4 -0
  253. package/shared/generators.js +10 -12
  254. package/shared/meta.d.ts +29 -14
  255. package/shared/meta.js +71 -55
  256. package/shared/normalizeMetadata.d.ts +32 -27
  257. package/shared/normalizeMetadata.js +23 -36
  258. package/shared/repr.d.ts +73 -55
  259. package/shared/repr.js +1 -0
  260. package/shared/soul.d.ts +17 -0
  261. package/shared/soul.js +1 -0
  262. package/shared/stringify.d.ts +2 -0
  263. package/shared/stringify.js +29 -20
  264. package/shared/symbols.d.ts +26 -20
  265. package/shared/symbols.js +79 -79
  266. package/shared/tseynit.d.ts +2 -0
  267. package/shared/tseynit.js +160 -75
  268. package/shared/utilityTypes.d.ts +30 -14
  269. package/shared/utilityTypes.js +2 -6
  270. package/shared/vertexFormat.d.ts +41 -43
  271. package/shared/vertexFormat.js +59 -62
  272. package/std/array.d.ts +2 -7
  273. package/std/array.js +18 -23
  274. package/std/atomic.d.ts +14 -18
  275. package/std/atomic.js +96 -95
  276. package/std/bitcast.d.ts +193 -10
  277. package/std/bitcast.js +309 -39
  278. package/std/boolean.d.ts +19 -33
  279. package/std/boolean.js +296 -288
  280. package/std/copy.d.ts +2 -7
  281. package/std/copy.js +27 -24
  282. package/std/derivative.d.ts +11 -15
  283. package/std/derivative.js +56 -79
  284. package/std/discard.d.ts +1 -6
  285. package/std/discard.js +7 -14
  286. package/std/environment.d.ts +19 -14
  287. package/std/environment.js +71 -51
  288. package/std/extensions.d.ts +2 -8
  289. package/std/extensions.js +10 -11
  290. package/std/index.d.ts +20 -24
  291. package/std/index.js +32 -187
  292. package/std/matrix.d.ts +6 -12
  293. package/std/matrix.js +60 -69
  294. package/std/numeric.d.ts +143 -146
  295. package/std/numeric.js +858 -749
  296. package/std/operators.d.ts +19 -27
  297. package/std/operators.js +227 -193
  298. package/std/packing.d.ts +5 -11
  299. package/std/packing.js +67 -75
  300. package/std/range.d.ts +6 -11
  301. package/std/range.js +48 -36
  302. package/std/subgroup.d.ts +33 -37
  303. package/std/subgroup.js +180 -217
  304. package/std/texture.d.ts +70 -38
  305. package/std/texture.js +176 -172
  306. package/taskQueue.d.ts +6 -0
  307. package/taskQueue.js +30 -0
  308. package/tgpu.d.ts +16 -0
  309. package/tgpu.js +17 -44
  310. package/tgpuBindGroupLayout.d.ts +132 -152
  311. package/tgpuBindGroupLayout.js +346 -268
  312. package/tgpuLogger.d.ts +34 -0
  313. package/tgpuLogger.js +63 -0
  314. package/tgpuUnstable.d.ts +16 -22
  315. package/tgpuUnstable.js +13 -35
  316. package/tgsl/accessIndex.d.ts +2 -0
  317. package/tgsl/accessIndex.js +76 -33
  318. package/tgsl/accessProp.d.ts +2 -0
  319. package/tgsl/accessProp.js +142 -101
  320. package/tgsl/accessStructProp.d.ts +5 -0
  321. package/tgsl/accessStructProp.js +13 -15
  322. package/tgsl/consoleLog/deserializers.d.ts +13 -0
  323. package/tgsl/consoleLog/deserializers.js +119 -103
  324. package/tgsl/consoleLog/logGenerator.d.ts +21 -0
  325. package/tgsl/consoleLog/logGenerator.js +85 -80
  326. package/tgsl/consoleLog/serializers.d.ts +21 -0
  327. package/tgsl/consoleLog/serializers.js +119 -100
  328. package/tgsl/consoleLog/types.d.ts +40 -39
  329. package/tgsl/consoleLog/types.js +1 -0
  330. package/tgsl/conversion.d.ts +33 -0
  331. package/tgsl/conversion.js +271 -216
  332. package/tgsl/forOfUtils.d.ts +15 -0
  333. package/tgsl/forOfUtils.js +85 -70
  334. package/tgsl/generationHelpers.d.ts +22 -39
  335. package/tgsl/generationHelpers.js +85 -58
  336. package/tgsl/infixDispatch.d.ts +70 -0
  337. package/tgsl/infixDispatch.js +48 -46
  338. package/tgsl/jsPolyfills.d.ts +16 -19
  339. package/tgsl/jsPolyfills.js +44 -42
  340. package/tgsl/makeDereferenceable.d.ts +48 -0
  341. package/tgsl/makeDereferenceable.js +86 -0
  342. package/tgsl/makeResolvable.d.ts +22 -0
  343. package/tgsl/makeResolvable.js +33 -0
  344. package/tgsl/shaderGenerator.d.ts +77 -17
  345. package/tgsl/shaderGenerator.js +1 -0
  346. package/tgsl/shellless.d.ts +6 -9
  347. package/tgsl/shellless.js +73 -43
  348. package/tgsl/wgslGenerator.d.ts +66 -59
  349. package/tgsl/wgslGenerator.js +1344 -760
  350. package/types.d.ts +287 -222
  351. package/types.js +61 -44
  352. package/unwrapper.d.ts +31 -26
  353. package/unwrapper.js +1 -0
  354. package/wgslExtensions.d.ts +3 -5
  355. package/wgslExtensions.js +12 -16
  356. package/_virtual/rolldown_runtime.js +0 -13
  357. package/core/buffer/bufferShorthand.d.ts +0 -50
  358. package/core/buffer/bufferShorthand.js +0 -55
  359. package/core/pipeline/applyPipelineState.js +0 -37
  360. package/package.js +0 -5
  361. package/tgsl/shaderGenerator_members.d.ts +0 -33
  362. package/tgsl/shaderGenerator_members.js +0 -12
package/errors.js CHANGED
@@ -1,133 +1,153 @@
1
- import { DEV, TEST } from "./shared/env.js";
2
1
  import { getName, hasTinyestMetadata } from "./shared/meta.js";
3
-
4
- //#region src/errors.ts
5
- const prefix = "Invariant failed";
2
+ import { DEV, TEST } from "./shared/env.js";
3
+ const prefix = 'Invariant failed';
6
4
  /**
7
- * Inspired by: https://github.com/alexreardon/tiny-invariant/blob/master/src/tiny-invariant.ts
8
- */
9
- function invariant(condition, message) {
10
- if (condition) return;
11
- if (!DEV && !TEST) throw new Error(prefix);
12
- const provided = typeof message === "function" ? message() : message;
13
- const value = provided ? `${prefix}: ${provided}` : prefix;
14
- throw new Error(value);
5
+ * Inspired by: https://github.com/alexreardon/tiny-invariant/blob/master/src/tiny-invariant.ts
6
+ */
7
+ export function invariant(condition, message) {
8
+ if (condition) {
9
+ // Condition passed
10
+ return;
11
+ }
12
+ // In production we strip the message but still throw
13
+ if (!DEV && !TEST) {
14
+ throw new Error(prefix);
15
+ }
16
+ // When not in production we allow the message to pass through
17
+ // *This block will be removed in production builds*
18
+ const provided = typeof message === 'function' ? message() : message;
19
+ // Options:
20
+ // 1. message provided: `${prefix}: ${provided}`
21
+ // 2. message not provided: prefix
22
+ const value = provided ? `${prefix}: ${provided}` : prefix;
23
+ throw new Error(value);
15
24
  }
16
25
  /**
17
- * An error that happens during resolution of WGSL code.
18
- * Contains a trace of all ancestor resolvables in
19
- * which this error originated.
20
- *
21
- * @category Errors
22
- */
23
- var ResolutionError = class ResolutionError extends Error {
24
- cause;
25
- trace;
26
- constructor(cause, trace) {
27
- let entries = trace.map((ancestor) => `- ${hasTinyestMetadata(ancestor) ? `fn*:${getName(ancestor)}` : ancestor}`);
28
- if (entries.length > 20) entries = [
29
- ...entries.slice(0, 11),
30
- "...",
31
- ...entries.slice(-10)
32
- ];
33
- super(`Resolution of the following tree failed:\n${entries.join("\n")}: ${cause && typeof cause === "object" && "message" in cause ? cause.message : cause}`);
34
- this.cause = cause;
35
- this.trace = trace;
36
- Object.setPrototypeOf(this, ResolutionError.prototype);
37
- }
38
- appendToTrace(ancestor) {
39
- const newTrace = [ancestor, ...this.trace];
40
- return new ResolutionError(this.cause, newTrace);
41
- }
42
- };
26
+ * An error that happens during resolution of WGSL code.
27
+ * Contains a trace of all ancestor resolvables in
28
+ * which this error originated.
29
+ *
30
+ * @category Errors
31
+ */
32
+ export class ResolutionError extends Error {
33
+ cause;
34
+ trace;
35
+ constructor(cause, trace) {
36
+ let entries = trace.map((ancestor) => `- ${hasTinyestMetadata(ancestor) ? `fn*:${getName(ancestor)}` : ancestor}`);
37
+ // Showing only the root and leaf nodes.
38
+ if (entries.length > 20) {
39
+ entries = [...entries.slice(0, 11), '...', ...entries.slice(-10)];
40
+ }
41
+ super(`Resolution of the following tree failed:\n${entries.join('\n')}: ${cause && typeof cause === 'object' && 'message' in cause ? cause.message : cause}`);
42
+ this.cause = cause;
43
+ this.trace = trace;
44
+ // Set the prototype explicitly.
45
+ Object.setPrototypeOf(this, ResolutionError.prototype);
46
+ }
47
+ appendToTrace(ancestor) {
48
+ const newTrace = [ancestor, ...this.trace];
49
+ return new ResolutionError(this.cause, newTrace);
50
+ }
51
+ }
43
52
  /**
44
- * An error that happens during execution of TypeGPU functions.
45
- * Contains a trace of all TypeGPU functions called along the way.
46
- *
47
- * @category Errors
48
- */
49
- var ExecutionError = class ExecutionError extends Error {
50
- cause;
51
- trace;
52
- constructor(cause, trace) {
53
- let entries = trace.map((ancestor) => `- ${ancestor}`);
54
- if (entries.length > 20) entries = [
55
- ...entries.slice(0, 11),
56
- "...",
57
- ...entries.slice(-10)
58
- ];
59
- super(`Execution of the following tree failed:\n${entries.join("\n")}: ${cause && typeof cause === "object" && "message" in cause ? cause.message : cause}`);
60
- this.cause = cause;
61
- this.trace = trace;
62
- Object.setPrototypeOf(this, ExecutionError.prototype);
63
- }
64
- appendToTrace(ancestor) {
65
- const newTrace = [ancestor, ...this.trace];
66
- return new ExecutionError(this.cause, newTrace);
67
- }
68
- };
53
+ * An error that happens during execution of TypeGPU functions.
54
+ * Contains a trace of all TypeGPU functions called along the way.
55
+ *
56
+ * @category Errors
57
+ */
58
+ export class ExecutionError extends Error {
59
+ cause;
60
+ trace;
61
+ constructor(cause, trace) {
62
+ let entries = trace.map((ancestor) => `- ${ancestor}`);
63
+ // Showing only the root and leaf nodes.
64
+ if (entries.length > 20) {
65
+ entries = [...entries.slice(0, 11), '...', ...entries.slice(-10)];
66
+ }
67
+ super(`Execution of the following tree failed:\n${entries.join('\n')}: ${cause && typeof cause === 'object' && 'message' in cause ? cause.message : cause}`);
68
+ this.cause = cause;
69
+ this.trace = trace;
70
+ // Set the prototype explicitly.
71
+ Object.setPrototypeOf(this, ExecutionError.prototype);
72
+ }
73
+ appendToTrace(ancestor) {
74
+ const newTrace = [ancestor, ...this.trace];
75
+ return new ExecutionError(this.cause, newTrace);
76
+ }
77
+ }
69
78
  /**
70
- * @category Errors
71
- */
72
- var MissingSlotValueError = class MissingSlotValueError extends Error {
73
- slot;
74
- constructor(slot) {
75
- super(`Missing value for '${slot}'`);
76
- this.slot = slot;
77
- Object.setPrototypeOf(this, MissingSlotValueError.prototype);
78
- }
79
- };
79
+ * @category Errors
80
+ */
81
+ export class MissingSlotValueError extends Error {
82
+ slot;
83
+ constructor(slot) {
84
+ super(`Missing value for '${slot}'`);
85
+ this.slot = slot;
86
+ // Set the prototype explicitly.
87
+ Object.setPrototypeOf(this, MissingSlotValueError.prototype);
88
+ }
89
+ }
80
90
  /**
81
- * @category Errors
82
- */
83
- var NotUniformError = class NotUniformError extends Error {
84
- constructor(value) {
85
- super(`Buffer '${getName(value) ?? "<unnamed>"}' is not bindable as a uniform. Use .$usage('uniform') to allow it.`);
86
- Object.setPrototypeOf(this, NotUniformError.prototype);
87
- }
88
- };
89
- var MissingBindGroupsError = class MissingBindGroupsError extends Error {
90
- constructor(layouts) {
91
- super(`Missing bind groups for layouts: '${[...layouts].map((layout) => getName(layout) ?? "<unnamed>").join(", ")}'. Please provide it using pipeline.with(bindGroup).(...)`);
92
- Object.setPrototypeOf(this, MissingBindGroupsError.prototype);
93
- }
94
- };
95
- var MissingVertexBuffersError = class MissingVertexBuffersError extends Error {
96
- constructor(layouts) {
97
- super(`Missing vertex buffers for layouts: '${[...layouts].map((layout) => getName(layout) ?? "<unnamed>").join(", ")}'. Please provide it using pipeline.with(layout, buffer).(...)`);
98
- Object.setPrototypeOf(this, MissingVertexBuffersError.prototype);
99
- }
100
- };
101
- var IllegalVarAccessError = class IllegalVarAccessError extends Error {
102
- constructor(msg) {
103
- super(msg);
104
- Object.setPrototypeOf(this, IllegalVarAccessError.prototype);
105
- }
106
- };
107
- var IllegalBufferAccessError = class IllegalBufferAccessError extends Error {
108
- constructor(msg) {
109
- super(msg);
110
- Object.setPrototypeOf(this, IllegalBufferAccessError.prototype);
111
- }
112
- };
113
- var WgslTypeError = class WgslTypeError extends Error {
114
- constructor(msg) {
115
- super(msg);
116
- Object.setPrototypeOf(this, WgslTypeError.prototype);
117
- }
118
- };
119
- var SignatureNotSupportedError = class SignatureNotSupportedError extends Error {
120
- constructor(actual, candidates) {
121
- super(`Unsupported data types: ${actual.map((a) => a.type).join(", ")}. Supported types are: ${candidates.map((r) => r.type).join(", ")}.`);
122
- Object.setPrototypeOf(this, SignatureNotSupportedError.prototype);
123
- }
124
- };
125
- var FiniteMathAssumptionError = class FiniteMathAssumptionError extends Error {
126
- constructor(value, type) {
127
- super(`Cannot convert value '${value}' to type ${type.type} because of the Finite Math Assumption (see: https://www.w3.org/TR/WGSL/#finite-math-assumption)`);
128
- Object.setPrototypeOf(this, FiniteMathAssumptionError.prototype);
129
- }
130
- };
131
-
132
- //#endregion
133
- export { ExecutionError, FiniteMathAssumptionError, IllegalBufferAccessError, IllegalVarAccessError, MissingBindGroupsError, MissingSlotValueError, MissingVertexBuffersError, NotUniformError, ResolutionError, SignatureNotSupportedError, WgslTypeError, invariant };
91
+ * @category Errors
92
+ */
93
+ export class NotUniformError extends Error {
94
+ constructor(value) {
95
+ super(`Buffer '${getName(value) ?? '<unnamed>'}' is not bindable as a uniform. Use .$usage('uniform') to allow it.`);
96
+ // Set the prototype explicitly.
97
+ Object.setPrototypeOf(this, NotUniformError.prototype);
98
+ }
99
+ }
100
+ export class MissingBindGroupsError extends Error {
101
+ constructor(layouts) {
102
+ super(`Missing bind groups for layouts: '${[...layouts]
103
+ .map((layout) => getName(layout) ?? '<unnamed>')
104
+ .join(', ')}'. Please provide it using pipeline.with(bindGroup).(...)`);
105
+ // Set the prototype explicitly.
106
+ Object.setPrototypeOf(this, MissingBindGroupsError.prototype);
107
+ }
108
+ }
109
+ export class MissingVertexBuffersError extends Error {
110
+ constructor(layouts) {
111
+ super(`Missing vertex buffers for layouts: '${[...layouts]
112
+ .map((layout) => getName(layout) ?? '<unnamed>')
113
+ .join(', ')}'. Please provide it using pipeline.with(layout, buffer).(...)`);
114
+ // Set the prototype explicitly.
115
+ Object.setPrototypeOf(this, MissingVertexBuffersError.prototype);
116
+ }
117
+ }
118
+ export class IllegalVarAccessError extends Error {
119
+ constructor(msg) {
120
+ super(msg);
121
+ // Set the prototype explicitly.
122
+ Object.setPrototypeOf(this, IllegalVarAccessError.prototype);
123
+ }
124
+ }
125
+ export class IllegalBufferAccessError extends Error {
126
+ constructor(msg) {
127
+ super(msg);
128
+ // Set the prototype explicitly.
129
+ Object.setPrototypeOf(this, IllegalBufferAccessError.prototype);
130
+ }
131
+ }
132
+ export class WgslTypeError extends Error {
133
+ constructor(msg) {
134
+ super(msg);
135
+ // Set the prototype explicitly.
136
+ Object.setPrototypeOf(this, WgslTypeError.prototype);
137
+ }
138
+ }
139
+ export class SignatureNotSupportedError extends Error {
140
+ constructor(actual, candidates) {
141
+ super(`Unsupported data types: ${actual
142
+ .map((a) => a.type)
143
+ .join(', ')}. Supported types are: ${candidates.map((r) => r.type).join(', ')}.`);
144
+ // Set the prototype explicitly.
145
+ Object.setPrototypeOf(this, SignatureNotSupportedError.prototype);
146
+ }
147
+ }
148
+ export class FiniteMathAssumptionError extends Error {
149
+ constructor(value, type) {
150
+ super(`Cannot convert value '${value}' to type ${type.type} because of the Finite Math Assumption (see: https://www.w3.org/TR/WGSL/#finite-math-assumption)`);
151
+ Object.setPrototypeOf(this, FiniteMathAssumptionError.prototype);
152
+ }
153
+ }
package/execMode.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ import { type ExecState, NormalState, type ResolutionCtx } from './types.ts';
2
+ export declare function provideInsideTgpuFn<T>(callback: () => T): T;
3
+ export declare function isInsideTgpuFn(): boolean;
4
+ /**
5
+ * Used to mock the context before all tests. For normal use-cases, use `provideCtx`
6
+ */
7
+ export declare function INTERNAL_setCtx(ctx: ResolutionCtx | undefined): void;
8
+ export declare function provideCtx<T>(ctx: ResolutionCtx, callback: () => T): T;
9
+ export declare function getResolutionCtx(): ResolutionCtx | undefined;
10
+ /**
11
+ * Applicable when code is being executed outside of any
12
+ * execution-altering APIs.
13
+ */
14
+ export declare const topLevelState: NormalState;
15
+ export declare function getExecMode(): ExecState;
16
+ export declare function inCodegenMode(): boolean;
package/execMode.js CHANGED
@@ -1,51 +1,58 @@
1
- import { invariant } from "./errors.js";
2
1
  import { NormalState } from "./types.js";
3
-
4
- //#region src/execMode.ts
5
2
  /**
6
- * Used to track if the code we're currently
7
- * executing is inside an executing TypeGPU function.
8
- *
9
- * Helpful for providing better error messages.
10
- */
3
+ * Used to track if the code we're currently
4
+ * executing is inside an executing TypeGPU function.
5
+ *
6
+ * Helpful for providing better error messages.
7
+ */
11
8
  let insideTgpuFn = false;
12
- function provideInsideTgpuFn(callback) {
13
- if (insideTgpuFn) return callback();
14
- try {
15
- insideTgpuFn = true;
16
- return callback();
17
- } finally {
18
- insideTgpuFn = false;
19
- }
9
+ export function provideInsideTgpuFn(callback) {
10
+ if (insideTgpuFn) {
11
+ return callback();
12
+ }
13
+ try {
14
+ insideTgpuFn = true;
15
+ return callback();
16
+ }
17
+ finally {
18
+ insideTgpuFn = false;
19
+ }
20
20
  }
21
- function isInsideTgpuFn() {
22
- return insideTgpuFn;
21
+ export function isInsideTgpuFn() {
22
+ return insideTgpuFn;
23
23
  }
24
24
  let resolutionCtx;
25
- function provideCtx(ctx, callback) {
26
- invariant(resolutionCtx === void 0 || resolutionCtx === ctx, "Cannot nest context providers");
27
- if (resolutionCtx === ctx) return callback();
28
- resolutionCtx = ctx;
29
- try {
30
- return callback();
31
- } finally {
32
- resolutionCtx = void 0;
33
- }
25
+ /**
26
+ * Used to mock the context before all tests. For normal use-cases, use `provideCtx`
27
+ */
28
+ export function INTERNAL_setCtx(ctx) {
29
+ resolutionCtx = ctx;
30
+ }
31
+ export function provideCtx(ctx, callback) {
32
+ if (resolutionCtx === ctx) {
33
+ return callback();
34
+ }
35
+ const prevCtx = resolutionCtx;
36
+ resolutionCtx = ctx;
37
+ try {
38
+ return callback();
39
+ }
40
+ finally {
41
+ resolutionCtx = prevCtx;
42
+ }
34
43
  }
35
- function getResolutionCtx() {
36
- return resolutionCtx;
44
+ export function getResolutionCtx() {
45
+ return resolutionCtx;
37
46
  }
38
47
  /**
39
- * Applicable when code is being executed outside of any
40
- * execution-altering APIs.
41
- */
42
- const topLevelState = new NormalState();
43
- function getExecMode() {
44
- return resolutionCtx?.mode ?? topLevelState;
48
+ * Applicable when code is being executed outside of any
49
+ * execution-altering APIs.
50
+ */
51
+ export const topLevelState = new NormalState();
52
+ export function getExecMode() {
53
+ return resolutionCtx?.mode ?? topLevelState;
45
54
  }
46
- function inCodegenMode() {
47
- return resolutionCtx?.mode.type === "codegen";
55
+ export function inCodegenMode() {
56
+ return resolutionCtx?.mode.type === 'codegen';
48
57
  }
49
-
50
- //#endregion
51
- export { getExecMode, getResolutionCtx, inCodegenMode, isInsideTgpuFn, provideCtx, provideInsideTgpuFn, topLevelState };
58
+ // You can add getters for more modes if necessary...
package/extension.d.ts CHANGED
@@ -1,12 +1,17 @@
1
- //#region src/extension.d.ts
2
-
3
- interface StorageFlag {
4
- usableAsStorage: true;
1
+ export interface NotAllowed<TMsg> {
2
+ reason: TMsg;
3
+ }
4
+ export type ExtensionGuard<TFlag, TMsg, TAllowed> = boolean extends TFlag ? NotAllowed<TMsg> | TAllowed : TAllowed;
5
+ export interface StorageFlag {
6
+ usableAsStorage: true;
5
7
  }
6
8
  /**
7
9
  * @deprecated Use StorageFlag instead.
8
10
  */
9
- type Storage = StorageFlag;
10
- declare function isUsableAsStorage<T>(value: T): value is T & StorageFlag;
11
- //#endregion
12
- export { Storage, StorageFlag, isUsableAsStorage };
11
+ export type Storage = StorageFlag;
12
+ /**
13
+ * @category Errors
14
+ */
15
+ export declare class NotStorageError extends Error {
16
+ constructor(value: object);
17
+ }
package/extension.js CHANGED
@@ -1,18 +1,12 @@
1
1
  import { getName } from "./shared/meta.js";
2
-
3
- //#region src/extension.ts
4
- function isUsableAsStorage(value) {
5
- return !!value?.usableAsStorage;
6
- }
7
2
  /**
8
- * @category Errors
9
- */
10
- var NotStorageError = class NotStorageError extends Error {
11
- constructor(value) {
12
- super(`Resource '${getName(value) ?? "<unnamed>"}' cannot be bound as 'storage'. Use .$usage('storage') to allow it.`);
13
- Object.setPrototypeOf(this, NotStorageError.prototype);
14
- }
15
- };
16
-
17
- //#endregion
18
- export { NotStorageError, isUsableAsStorage };
3
+ * @category Errors
4
+ */
5
+ export class NotStorageError extends Error {
6
+ constructor(value) {
7
+ super(`Resource '${getName(value) ?? '<unnamed>'}' cannot be bound as 'storage'. Use .$usage('storage') to allow it.`);
8
+ // Set the prototype explicitly.
9
+ Object.setPrototypeOf(this, NotStorageError.prototype);
10
+ }
11
+ }
12
+ // #endregion
@@ -0,0 +1 @@
1
+ export declare function getGPUValue(object: unknown): unknown;
package/getGPUValue.js CHANGED
@@ -1,9 +1,4 @@
1
1
  import { $gpuValueOf } from "./shared/symbols.js";
2
-
3
- //#region src/getGPUValue.ts
4
- function getGPUValue(object) {
5
- return object?.[$gpuValueOf];
2
+ export function getGPUValue(object) {
3
+ return object?.[$gpuValueOf];
6
4
  }
7
-
8
- //#endregion
9
- export { getGPUValue };
package/index.d.ts CHANGED
@@ -1,73 +1,33 @@
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, computeFn, isTgpuComputeFn } from "./core/function/tgpuComputeFn.js";
7
- import { TgpuVar, VariableScope, isVariable, privateVar, workgroupVar } 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, fragmentFn, isTgpuFragmentFn } from "./core/function/tgpuFragmentFn.js";
12
- import { TgpuVertexFn, TgpuVertexFnShell, isTgpuVertexFn, vertexFn } 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, vertexLayout } 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, bindGroupLayout } 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, fn, isTgpuFn } from "./core/function/tgpuFn.js";
24
- import { TgpuTexture, TgpuTextureView, isTexture } from "./core/texture/texture.js";
25
- import { TgpuConst, constant } from "./core/constant/tgpuConstant.js";
26
- import { TgpuComptime, comptime } from "./core/function/comptime.js";
27
- import { Namespace } from "./core/resolve/namespace.js";
28
- import { resolve, resolveWithContext } from "./core/resolve/tgpuResolve.js";
29
- import { InitFromDeviceOptions, InitOptions, init, initFromDevice } from "./core/root/init.js";
30
- import { slot } from "./core/slot/slot.js";
31
- import { lazy } from "./core/slot/lazy.js";
32
- import { accessor, mutableAccessor } from "./core/slot/accessor.js";
33
- import { unroll } from "./core/unroll/tgpuUnroll.js";
34
- import { RawCodeSnippetOrigin, TgpuRawCodeSnippet } from "./core/rawCodeSnippet/tgpuRawCodeSnippet.js";
35
- import { tgpuUnstable_d_exports } from "./tgpuUnstable.js";
36
- import { index_d_exports as index_d_exports$1 } from "./data/index.js";
37
- import { index_d_exports as index_d_exports$2 } from "./std/index.js";
38
- import { index_d_exports } from "./common/index.js";
39
- import { MissingBindGroupsError, MissingSlotValueError, MissingVertexBuffersError, NotUniformError, ResolutionError } from "./errors.js";
40
- import { WgslGenerator } from "./tgsl/wgslGenerator.js";
41
- import { readFromArrayBuffer, writeToArrayBuffer } from "./data/dataIO.js";
42
- import { patchArrayBuffer } from "./data/partialIO.js";
43
- import { TgpuRenderPipelineDescriptor } from "./indexNamedExports.js";
44
-
45
- //#region src/index.d.ts
46
1
  /**
47
2
  * @module typegpu
48
3
  */
4
+
49
5
  // NOTE: This is a barrel file, internal files should not import things from this file
50
- declare const tgpu: {
51
- const: typeof constant;
52
- fn: typeof fn;
53
- comptime: typeof comptime;
54
- resolve: typeof resolve;
55
- resolveWithContext: typeof resolveWithContext;
56
- init: typeof init;
57
- initFromDevice: typeof initFromDevice;
58
- slot: typeof slot;
59
- lazy: typeof lazy;
60
- accessor: typeof accessor;
61
- mutableAccessor: typeof mutableAccessor;
62
- privateVar: typeof privateVar;
63
- workgroupVar: typeof workgroupVar;
64
- vertexLayout: typeof vertexLayout;
65
- bindGroupLayout: typeof bindGroupLayout;
66
- computeFn: typeof computeFn;
67
- fragmentFn: typeof fragmentFn;
68
- vertexFn: typeof vertexFn;
69
- unroll: typeof unroll;
70
- '~unstable': typeof tgpuUnstable_d_exports;
6
+
7
+ export declare const tgpu: {
8
+ const: typeof import('./core/constant/tgpuConstant.ts').constant;
9
+ fn: typeof import('./core/function/tgpuFn.ts').fn;
10
+ comptime: typeof import('./core/function/comptime.ts').comptime;
11
+ resolve: typeof import('./core/resolve/tgpuResolve.ts').resolve;
12
+ resolveWithContext: typeof import('./core/resolve/tgpuResolve.ts').resolveWithContext;
13
+ init: typeof import('./core/root/init.ts').init;
14
+ initFromDevice: typeof import('./core/root/init.ts').initFromDevice;
15
+ slot: typeof import('./core/slot/slot.ts').slot;
16
+ lazy: typeof import('./core/slot/lazy.ts').lazy;
17
+ accessor: typeof import('./core/slot/accessor.ts').accessor;
18
+ mutableAccessor: typeof import('./core/slot/accessor.ts').mutableAccessor;
19
+ privateVar: typeof import('./core/variable/tgpuVariable.ts').privateVar;
20
+ workgroupVar: typeof import('./core/variable/tgpuVariable.ts').workgroupVar;
21
+ vertexLayout: typeof import('./core/vertexLayout/vertexLayout.ts').vertexLayout;
22
+ bindGroupLayout: typeof import('./tgpuBindGroupLayout.ts').bindGroupLayout;
23
+ computeFn: typeof import('./core/function/tgpuComputeFn.ts').computeFn;
24
+ fragmentFn: typeof import('./core/function/tgpuFragmentFn.ts').fragmentFn;
25
+ vertexFn: typeof import('./core/function/tgpuVertexFn.ts').vertexFn;
26
+ unroll: typeof import('./core/unroll/tgpuUnroll.ts').unroll;
27
+
28
+ '~unstable': typeof import('./tgpuUnstable.ts');
71
29
  };
72
- //#endregion
73
- export { AnyAutoCustoms, AutoFragmentIn, AutoFragmentOut, _AutoVertexIn as AutoVertexIn, AutoVertexOut, BindLayoutEntry, ColorAttachment, Configurable, Eventual, ExtractBindGroupInputFromLayout, INTERNAL_GlobalExt, IndexFlag, InitFromDeviceOptions, InitOptions, LayoutEntryToInput, MissingBindGroupsError, MissingSlotValueError, MissingVertexBuffersError, Namespace, NotUniformError, RawCodeSnippetOrigin, RenderFlag, ResolutionError, SampledFlag, ShaderGenerator, Storage, StorageFlag, TextureProps, TgpuAccessor, TgpuBindGroup, TgpuBindGroupLayout, TgpuBuffer, TgpuBufferMutable, TgpuBufferReadonly, TgpuBufferUniform, TgpuComparisonSampler, TgpuComptime, TgpuComputeFn, TgpuComputeFnShell, TgpuComputePipeline, TgpuConst, TgpuDeclare, TgpuFixedComparisonSampler, TgpuFixedSampler, TgpuFn, TgpuFnShell, TgpuFragmentFn, TgpuFragmentFnShell, TgpuGenericFn, TgpuGuardedComputePipeline, TgpuLayoutComparisonSampler, TgpuLayoutEntry, TgpuLayoutExternalTexture, TgpuLayoutSampler, TgpuLayoutStorage, TgpuLayoutTexture, TgpuLayoutUniform, TgpuLazy, TgpuMutable, TgpuMutableAccessor, TgpuPrimitiveState, TgpuQuerySet, TgpuRawCodeSnippet, TgpuReadonly, TgpuRenderPipeline, TgpuRenderPipelineDescriptor, TgpuRoot, TgpuSampler, TgpuSlot, TgpuTexture, TgpuTextureView, TgpuUniform, TgpuVar, TgpuVertexFn, TgpuVertexFnShell, TgpuVertexLayout, Uniform, UniformFlag, ValidUsagesFor, ValidateBufferSchema, ValidateStorageSchema, ValidateUniformSchema, VariableScope, Vertex, VertexFlag, WgslGenerator, WithBinding, WithCompute, WithFragment, WithVertex, Withable, index_d_exports as common, index_d_exports$1 as d, tgpu as default, tgpu, isAccessor, isBuffer, isBufferShorthand, isComparisonSampler, isLazy, isMutableAccessor, isSampler, isSlot, isTexture, isTgpuComputeFn, isTgpuFn, isTgpuFragmentFn, isTgpuVertexFn, isUsableAsRender, isUsableAsSampled, isUsableAsStorage, isUsableAsUniform, isUsableAsVertex, isVariable, patchArrayBuffer, readFromArrayBuffer, index_d_exports$2 as std, writeToArrayBuffer };
30
+
31
+ export default tgpu;
32
+
33
+ export * from './indexNamedExports.ts';
package/index.js CHANGED
@@ -1,28 +1,8 @@
1
- import { MissingBindGroupsError, MissingSlotValueError, MissingVertexBuffersError, NotUniformError, ResolutionError } from "./errors.js";
2
- import { isAccessor, isLazy, isMutableAccessor, isSlot } from "./core/slot/slotTypes.js";
3
- import { shaderGenerator_members_exports } from "./tgsl/shaderGenerator_members.js";
4
- import { isTgpuFn } from "./core/function/tgpuFn.js";
5
- import { readFromArrayBuffer, writeToArrayBuffer } from "./data/dataIO.js";
6
- import { patchArrayBuffer } from "./data/partialIO.js";
7
- import { isUsableAsStorage } from "./extension.js";
8
- import { isUsableAsUniform } from "./core/buffer/bufferUsage.js";
9
- import { isBuffer, isUsableAsVertex } from "./core/buffer/buffer.js";
10
- import { isComparisonSampler, isSampler } from "./core/sampler/sampler.js";
11
- import { isTexture } from "./core/texture/texture.js";
12
- import { isUsableAsRender, isUsableAsSampled } from "./core/texture/usageExtension.js";
13
- import { isVariable } from "./core/variable/tgpuVariable.js";
14
- import { WgslGenerator } from "./tgsl/wgslGenerator.js";
15
- import { isBufferShorthand } from "./core/buffer/bufferShorthand.js";
16
- import { isTgpuComputeFn } from "./core/function/tgpuComputeFn.js";
17
- import { isTgpuFragmentFn } from "./core/function/tgpuFragmentFn.js";
18
- import { isTgpuVertexFn } from "./core/function/tgpuVertexFn.js";
19
- import { tgpu_exports } from "./tgpu.js";
20
- import { data_exports } from "./data/index.js";
21
- import { std_exports } from "./std/index.js";
22
- import { common_exports } from "./common/index.js";
23
-
24
- //#region src/index.js
25
- var src_default = tgpu_exports;
26
-
27
- //#endregion
28
- export { MissingBindGroupsError, MissingSlotValueError, MissingVertexBuffersError, NotUniformError, ResolutionError, shaderGenerator_members_exports as ShaderGenerator, WgslGenerator, common_exports as common, data_exports as d, src_default as default, isAccessor, isBuffer, isBufferShorthand, isComparisonSampler, isLazy, isMutableAccessor, isSampler, isSlot, isTexture, isTgpuComputeFn, isTgpuFn, isTgpuFragmentFn, isTgpuVertexFn, isUsableAsRender, isUsableAsSampled, isUsableAsStorage, isUsableAsUniform, isUsableAsVertex, isVariable, patchArrayBuffer, readFromArrayBuffer, std_exports as std, tgpu_exports as tgpu, writeToArrayBuffer };
1
+ /**
2
+ * @module typegpu
3
+ */
4
+ // NOTE: This is a barrel file, internal files should not import things from this file
5
+ import * as tgpu from "./tgpu.js";
6
+ export * as tgpu from "./tgpu.js";
7
+ export default tgpu;
8
+ export * from "./indexNamedExports.js";