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
@@ -0,0 +1,25 @@
1
+ import { type AnyBooleanVecInstance, type AnyMatInstance, type AnyVec2Instance, type AnyVec3Instance, type AnyVec4Instance, type AnyVecInstance, type v2b, type v3b, type v4b } from './wgslTypes.ts';
2
+ type Vec = AnyVecInstance;
3
+ type Mat = AnyMatInstance;
4
+ type Algebraic = number | boolean | Vec | Mat;
5
+ export type ToBool<T extends Algebraic> = T extends number | boolean ? boolean : T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : T extends AnyVec4Instance ? v4b : never;
6
+ /**
7
+ * Generalizes function of 1 to 3 arguments to work component-wise on vectors and matrices.
8
+ * Assumes the types are already correct (in particular, that they have the same length),
9
+ * and performs no additional checks.
10
+ * The return type is the same as the first argument's type.
11
+ */
12
+ export declare function generalizeFn<T extends Algebraic>(fn: (a: number) => number, args: [T]): T;
13
+ export declare function generalizeFn<T extends Algebraic>(fn: (a: number, b: number) => number, args: [T, T]): T;
14
+ export declare function generalizeFn<T extends Algebraic>(fn: (a: number, b: number, c: number) => number, args: [T, T, T]): T;
15
+ /**
16
+ * Analogous to `generalizeFn`, but the return type is a boolean vector instead.
17
+ */
18
+ export declare function generalizeBoolFn<T extends Algebraic>(fn: (a: number, b: number) => boolean, args: [T, T]): ToBool<T>;
19
+ export declare function generalizeBoolFn<T extends boolean | AnyBooleanVecInstance>(fn: (a: boolean, b: boolean) => boolean, args: [T, T]): ToBool<T>;
20
+ /**
21
+ * If one of the arguments is a vector and other is a number,
22
+ * the number is up-cased to a vector.
23
+ */
24
+ export declare function upCast<T extends number | Vec>(args: [T, T]): [Exclude<T, number>, Exclude<T, number>];
25
+ export {};
@@ -0,0 +1,89 @@
1
+ import { vec2b, vec3b, vec4b, vecTypeToConstructor } from "./vector.js";
2
+ import { mat2x2f, mat3x3f, mat4x4f } from "./matrix.js";
3
+ import { isVecInstance, } from "./wgslTypes.js";
4
+ import { invariant } from "../errors.js";
5
+ const booleanFor = {
6
+ vec2f: vec2b,
7
+ vec2h: vec2b,
8
+ vec2i: vec2b,
9
+ vec2u: vec2b,
10
+ 'vec2<bool>': vec2b,
11
+ vec3f: vec3b,
12
+ vec3h: vec3b,
13
+ vec3i: vec3b,
14
+ vec3u: vec3b,
15
+ 'vec3<bool>': vec3b,
16
+ vec4f: vec4b,
17
+ vec4h: vec4b,
18
+ vec4i: vec4b,
19
+ vec4u: vec4b,
20
+ 'vec4<bool>': vec4b,
21
+ };
22
+ const constructorFor = {
23
+ ...vecTypeToConstructor,
24
+ mat2x2f,
25
+ mat3x3f,
26
+ mat4x4f,
27
+ };
28
+ function getConstructorFor(mode, kind) {
29
+ const map = mode === 'boolean' ? booleanFor : constructorFor;
30
+ if (kind in map) {
31
+ return map[kind];
32
+ }
33
+ throw new Error(`No corresponding vector/matrix type for '${kind}' kind in '${mode}' mode.`);
34
+ }
35
+ function makeIterable(item) {
36
+ if (item.kind.startsWith('vec')) {
37
+ return item;
38
+ }
39
+ return item.columns.flat();
40
+ }
41
+ function applyArgs(fn, args, mode) {
42
+ // I'm sorry, TypeScript, I swear I won't lie to you no more ;-;
43
+ const kinds = args.map(kindOf);
44
+ if (kinds.every((type) => type === 'boolean' || type === 'number')) {
45
+ return fn(...args);
46
+ }
47
+ const kind = kinds[0];
48
+ invariant(kind, `Expected kind of the first argument to be present.`);
49
+ const constructor = getConstructorFor(mode, kind);
50
+ const iterableArgs = args.map(makeIterable);
51
+ const length = iterableArgs[0]?.length;
52
+ invariant(length !== undefined, `Expected constructor to have at least one argument.`);
53
+ const constructorArgs = Array.from({ length }, (_, i) => {
54
+ const args = iterableArgs.map((arg) => arg[i]);
55
+ return fn(...args);
56
+ });
57
+ return constructor(...constructorArgs);
58
+ }
59
+ export function generalizeFn(fn, args) {
60
+ return applyArgs(fn, args, 'first');
61
+ }
62
+ export function generalizeBoolFn(fn, args) {
63
+ return applyArgs(fn, args, 'boolean');
64
+ }
65
+ function kindOf(v) {
66
+ if (typeof v === 'number') {
67
+ return 'number';
68
+ }
69
+ if (typeof v === 'boolean') {
70
+ return 'boolean';
71
+ }
72
+ return v.kind;
73
+ }
74
+ /**
75
+ * If one of the arguments is a vector and other is a number,
76
+ * the number is up-cased to a vector.
77
+ */
78
+ export function upCast(args) {
79
+ const [lhs, rhs] = args;
80
+ if (typeof lhs === 'number' && isVecInstance(rhs)) {
81
+ const schema = constructorFor[rhs.kind];
82
+ return [schema(lhs), rhs];
83
+ }
84
+ else if (isVecInstance(lhs) && typeof rhs === 'number') {
85
+ const schema = constructorFor[lhs.kind];
86
+ return [lhs, schema(rhs)];
87
+ }
88
+ return [lhs, rhs];
89
+ }
@@ -1,11 +1,7 @@
1
- import "./wgslTypes.js";
2
- import { AnyData } from "./dataTypes.js";
3
-
4
- //#region src/data/getLongestContiguousPrefix.d.ts
5
-
1
+ import type { AnyData } from './dataTypes.ts';
2
+ import type { BaseData } from './wgslTypes.ts';
3
+ export declare function getLongestContiguousPrefix(schema: BaseData): number;
6
4
  /**
7
5
  * Returns the size (in bytes) of the longest contiguous memory prefix of data represented by the `schema`.
8
6
  */
9
- declare function PUBLIC_getLongestContiguousPrefix(schema: AnyData): number;
10
- //#endregion
11
- export { PUBLIC_getLongestContiguousPrefix };
7
+ export declare function PUBLIC_getLongestContiguousPrefix(schema: AnyData): number;
@@ -1,15 +1,10 @@
1
1
  import { getLayoutInfo } from "./schemaMemoryLayout.js";
2
-
3
- //#region src/data/getLongestContiguousPrefix.ts
4
- function getLongestContiguousPrefix(schema) {
5
- return getLayoutInfo(schema, "longestContiguousPrefix");
2
+ export function getLongestContiguousPrefix(schema) {
3
+ return getLayoutInfo(schema, 'longestContiguousPrefix');
6
4
  }
7
5
  /**
8
- * Returns the size (in bytes) of the longest contiguous memory prefix of data represented by the `schema`.
9
- */
10
- function PUBLIC_getLongestContiguousPrefix(schema) {
11
- return getLongestContiguousPrefix(schema);
6
+ * Returns the size (in bytes) of the longest contiguous memory prefix of data represented by the `schema`.
7
+ */
8
+ export function PUBLIC_getLongestContiguousPrefix(schema) {
9
+ return getLongestContiguousPrefix(schema);
12
10
  }
13
-
14
- //#endregion
15
- export { PUBLIC_getLongestContiguousPrefix, getLongestContiguousPrefix };
package/data/index.d.ts CHANGED
@@ -1,31 +1,30 @@
1
- import { WgslComparisonSampler, WgslSampler, comparisonSampler, sampler } from "./sampler.js";
2
- import { AnyBuiltin, BuiltinClipDistances, BuiltinFragDepth, BuiltinFrontFacing, BuiltinGlobalInvocationId, BuiltinInstanceIndex, BuiltinLocalInvocationId, BuiltinLocalInvocationIndex, BuiltinNumWorkgroups, BuiltinPosition, BuiltinSampleIndex, BuiltinSampleMask, BuiltinVertexIndex, BuiltinWorkgroupId, builtin } from "../builtin.js";
3
- import { AnyAttribute, HasCustomLocation, IsBuiltin, align, interpolate, invariant, isBuiltin, location, size } from "./attributes.js";
4
- import { memoryLayoutOf } from "./offsetUtils.js";
5
- import { FormatToAcceptedData, FormatToWGSLType, PackedData, TgpuVertexFormatData, float16, float16x2, float16x4, float32, float32x2, float32x3, float32x4, formatToWGSLType, isPackedData, packedFormats, sint16, sint16x2, sint16x4, sint32, sint32x2, sint32x3, sint32x4, sint8, sint8x2, sint8x4, snorm16, snorm16x2, snorm16x4, snorm8, snorm8x2, snorm8x4, uint16, uint16x2, uint16x4, uint32, uint32x2, uint32x3, uint32x4, uint8, uint8x2, uint8x4, unorm10_10_10_2, unorm16, unorm16x2, unorm16x4, unorm8, unorm8x2, unorm8x4, unorm8x4_bgra } from "./vertexFormatData.js";
6
- import { _ref } from "./ref.js";
7
- import { Align, AnyVecInstance, AnyWgslData, AnyWgslStruct, Atomic, BaseData, Bool, Builtin, Decorated, F16, F32, I32, Interpolate, Location, Mat2x2f, Mat3x3f, Mat4x4f, Ptr, Size, StorableData, U16, U32, Vec2b, Vec2f, Vec2h, Vec2i, Vec2u, Vec3b, Vec3f, Vec3h, Vec3i, Vec3u, Vec4b, Vec4f, Vec4h, Vec4i, Vec4u, Void, WgslArray, WgslStruct, atomicI32, atomicU32, isAlignAttrib, isAtomic, isBuiltinAttrib, isDecorated, isInterpolateAttrib, isLocationAttrib, isPtr, isSizeAttrib, isWgslArray, isWgslData, isWgslStruct, m2x2f, m3x3f, m4x4f, matBase, v2b, v2f, v2h, v2i, v2u, v3b, v3f, v3h, v3i, v3u, v4b, v4f, v4h, v4i, v4u, vecBase } from "./wgslTypes.js";
8
- import { WgslExternalTexture, WgslStorageTexture, WgslStorageTexture1d, WgslStorageTexture2d, WgslStorageTexture2dArray, WgslStorageTexture3d, WgslStorageTextureProps, WgslTexture, WgslTexture1d, WgslTexture2d, WgslTexture2dArray, WgslTexture3d, WgslTextureCube, WgslTextureCubeArray, WgslTextureDepth2d, WgslTextureDepth2dArray, WgslTextureDepthCube, WgslTextureDepthCubeArray, WgslTextureDepthMultisampled2d, WgslTextureMultisampled2d, texture1d, texture2d, texture2dArray, texture3d, textureCube, textureCubeArray, textureDepth2d, textureDepth2dArray, textureDepthCube, textureDepthCubeArray, textureDepthMultisampled2d, textureExternal, textureMultisampled2d, textureStorage1d, textureStorage2d, textureStorage2dArray, textureStorage3d } from "./texture.js";
9
- import { Infer, InferGPU, InferInput, InferPartial, InferPatch } from "../shared/repr.js";
10
- import { AnyData, AnyLooseData, Disarray, LooseDecorated, Unstruct, isData, isDisarray, isLooseData, isLooseDecorated, isUnstruct } from "./dataTypes.js";
11
- import { bool, f16, f32, i32, u16, u32 } from "./numeric.js";
12
- import { struct } from "./struct.js";
13
- import { arrayOf } from "./array.js";
14
- import { ptrFn, ptrHandle, ptrPrivate, ptrStorage, ptrUniform, ptrWorkgroup } from "./ptr.js";
15
- import { vec2b, vec2f, vec2h, vec2i, vec2u, vec3b, vec3f, vec3h, vec3i, vec3u, vec4b, vec4f, vec4h, vec4i, vec4u } from "./vector.js";
16
- import { disarrayOf } from "./disarray.js";
17
- import { unstruct } from "./unstruct.js";
18
- import { mat2x2f, mat3x3f, mat4x4f, matToArray } from "./matrix.js";
19
- import { atomic } from "./atomic.js";
20
- import { PUBLIC_sizeOf } from "./sizeOf.js";
21
- import { PUBLIC_isContiguous } from "./isContiguous.js";
22
- import { PUBLIC_getLongestContiguousPrefix } from "./getLongestContiguousPrefix.js";
23
- import { PUBLIC_alignmentOf } from "./alignmentOf.js";
24
- import { deepEqual } from "./deepEqual.js";
25
-
26
- //#region src/data/index.d.ts
27
- declare namespace index_d_exports {
28
- export { Align, AnyAttribute, AnyBuiltin, AnyData, AnyLooseData, AnyVecInstance, AnyWgslData, AnyWgslStruct, Atomic, BaseData, BaseData as BaseWgslData, Bool, Builtin, BuiltinClipDistances, BuiltinFragDepth, BuiltinFrontFacing, BuiltinGlobalInvocationId, BuiltinInstanceIndex, BuiltinLocalInvocationId, BuiltinLocalInvocationIndex, BuiltinNumWorkgroups, BuiltinPosition, BuiltinSampleIndex, BuiltinSampleMask, BuiltinVertexIndex, BuiltinWorkgroupId, Decorated, Disarray, F16, F32, FormatToAcceptedData, FormatToWGSLType, HasCustomLocation, I32, Infer, InferGPU, InferInput, InferPartial, InferPatch, Interpolate, IsBuiltin, Location, LooseDecorated, Mat2x2f, Mat3x3f, Mat4x4f, PackedData, Ptr, Size, StorableData, TgpuVertexFormatData, U16, U32, Unstruct, Vec2b, Vec2f, Vec2h, Vec2i, Vec2u, Vec3b, Vec3f, Vec3h, Vec3i, Vec3u, Vec4b, Vec4f, Vec4h, Vec4i, Vec4u, Void, WgslArray, WgslComparisonSampler, WgslExternalTexture, WgslSampler, WgslStorageTexture, WgslStorageTexture1d, WgslStorageTexture2d, WgslStorageTexture2dArray, WgslStorageTexture3d, WgslStorageTextureProps, WgslStruct, WgslTexture, WgslTexture1d, WgslTexture2d, WgslTexture2dArray, WgslTexture3d, WgslTextureCube, WgslTextureCubeArray, WgslTextureDepth2d, WgslTextureDepth2dArray, WgslTextureDepthCube, WgslTextureDepthCubeArray, WgslTextureDepthMultisampled2d, WgslTextureMultisampled2d, align, PUBLIC_alignmentOf as alignmentOf, arrayOf, atomic, atomicI32, atomicU32, bool, builtin, comparisonSampler, deepEqual, disarrayOf, f16, f32, float16, float16x2, float16x4, float32, float32x2, float32x3, float32x4, formatToWGSLType, PUBLIC_getLongestContiguousPrefix as getLongestContiguousPrefix, i32, interpolate, invariant, isAlignAttrib, isAtomic, isBuiltin, isBuiltinAttrib, PUBLIC_isContiguous as isContiguous, isData, isDecorated, isDisarray, isInterpolateAttrib, isLocationAttrib, isLooseData, isLooseDecorated, isPackedData, isPtr, isSizeAttrib, isUnstruct, isWgslArray, isWgslData, isWgslStruct, location, m2x2f, m3x3f, m4x4f, mat2x2f, mat3x3f, mat4x4f, matBase, matToArray, memoryLayoutOf, packedFormats, ptrFn, ptrHandle, ptrPrivate, ptrStorage, ptrUniform, ptrWorkgroup, _ref as ref, sampler, sint16, sint16x2, sint16x4, sint32, sint32x2, sint32x3, sint32x4, sint8, sint8x2, sint8x4, size, PUBLIC_sizeOf as sizeOf, snorm16, snorm16x2, snorm16x4, snorm8, snorm8x2, snorm8x4, struct, texture1d, texture2d, texture2dArray, texture3d, textureCube, textureCubeArray, textureDepth2d, textureDepth2dArray, textureDepthCube, textureDepthCubeArray, textureDepthMultisampled2d, textureExternal, textureMultisampled2d, textureStorage1d, textureStorage2d, textureStorage2dArray, textureStorage3d, u16, u32, uint16, uint16x2, uint16x4, uint32, uint32x2, uint32x3, uint32x4, uint8, uint8x2, uint8x4, unorm10_10_10_2, unorm16, unorm16x2, unorm16x4, unorm8, unorm8x2, unorm8x4, unorm8x4_bgra, unstruct, v2b, v2f, v2h, v2i, v2u, v3b, v3f, v3h, v3i, v3u, v4b, v4f, v4h, v4i, v4u, vec2b, vec2f, vec2h, vec2i, vec2u, vec3b, vec3f, vec3h, vec3i, vec3u, vec4b, vec4f, vec4h, vec4i, vec4u, vecBase };
29
- }
30
- //#endregion
31
- export { type Align, type AnyAttribute, type AnyBuiltin, type AnyData, type AnyLooseData, type AnyVecInstance, type AnyWgslData, type AnyWgslStruct, type Atomic, type BaseData, type BaseData as BaseWgslData, type Bool, type Builtin, type BuiltinClipDistances, type BuiltinFragDepth, type BuiltinFrontFacing, type BuiltinGlobalInvocationId, type BuiltinInstanceIndex, type BuiltinLocalInvocationId, type BuiltinLocalInvocationIndex, type BuiltinNumWorkgroups, type BuiltinPosition, type BuiltinSampleIndex, type BuiltinSampleMask, type BuiltinVertexIndex, type BuiltinWorkgroupId, type Decorated, type Disarray, type F16, type F32, FormatToAcceptedData, FormatToWGSLType, type HasCustomLocation, type I32, type Infer, type InferGPU, type InferInput, type InferPartial, type InferPatch, type Interpolate, type IsBuiltin, type Location, type LooseDecorated, type Mat2x2f, type Mat3x3f, type Mat4x4f, PackedData, type Ptr, type Size, type StorableData, TgpuVertexFormatData, type U16, type U32, type Unstruct, type Vec2b, type Vec2f, type Vec2h, type Vec2i, type Vec2u, type Vec3b, type Vec3f, type Vec3h, type Vec3i, type Vec3u, type Vec4b, type Vec4f, type Vec4h, type Vec4i, type Vec4u, Void, type WgslArray, type WgslComparisonSampler, type WgslExternalTexture, type WgslSampler, type WgslStorageTexture, type WgslStorageTexture1d, type WgslStorageTexture2d, type WgslStorageTexture2dArray, type WgslStorageTexture3d, type WgslStorageTextureProps, type WgslStruct, type WgslTexture, type WgslTexture1d, type WgslTexture2d, type WgslTexture2dArray, type WgslTexture3d, type WgslTextureCube, type WgslTextureCubeArray, type WgslTextureDepth2d, type WgslTextureDepth2dArray, type WgslTextureDepthCube, type WgslTextureDepthCubeArray, type WgslTextureDepthMultisampled2d, type WgslTextureMultisampled2d, align, PUBLIC_alignmentOf as alignmentOf, arrayOf, atomic, type atomicI32, type atomicU32, bool, builtin, comparisonSampler, deepEqual, disarrayOf, f16, f32, float16, float16x2, float16x4, float32, float32x2, float32x3, float32x4, formatToWGSLType, PUBLIC_getLongestContiguousPrefix as getLongestContiguousPrefix, i32, index_d_exports, interpolate, invariant, isAlignAttrib, isAtomic, isBuiltin, isBuiltinAttrib, PUBLIC_isContiguous as isContiguous, isData, isDecorated, isDisarray, isInterpolateAttrib, isLocationAttrib, isLooseData, isLooseDecorated, isPackedData, isPtr, isSizeAttrib, isUnstruct, isWgslArray, isWgslData, isWgslStruct, location, type m2x2f, type m3x3f, type m4x4f, mat2x2f, mat3x3f, mat4x4f, type matBase, matToArray, memoryLayoutOf, packedFormats, ptrFn, ptrHandle, ptrPrivate, ptrStorage, ptrUniform, ptrWorkgroup, _ref as ref, sampler, sint16, sint16x2, sint16x4, sint32, sint32x2, sint32x3, sint32x4, sint8, sint8x2, sint8x4, size, PUBLIC_sizeOf as sizeOf, snorm16, snorm16x2, snorm16x4, snorm8, snorm8x2, snorm8x4, struct, texture1d, texture2d, texture2dArray, texture3d, textureCube, textureCubeArray, textureDepth2d, textureDepth2dArray, textureDepthCube, textureDepthCubeArray, textureDepthMultisampled2d, textureExternal, textureMultisampled2d, textureStorage1d, textureStorage2d, textureStorage2dArray, textureStorage3d, u16, u32, uint16, uint16x2, uint16x4, uint32, uint32x2, uint32x3, uint32x4, uint8, uint8x2, uint8x4, unorm10_10_10_2, unorm16, unorm16x2, unorm16x4, unorm8, unorm8x2, unorm8x4, unorm8x4_bgra, unstruct, type v2b, type v2f, type v2h, type v2i, type v2u, type v3b, type v3f, type v3h, type v3i, type v3u, type v4b, type v4f, type v4h, type v4i, type v4u, vec2b, vec2f, vec2h, vec2i, vec2u, vec3b, vec3f, vec3h, vec3i, vec3u, vec4b, vec4f, vec4h, vec4i, vec4u, type vecBase };
1
+ /**
2
+ * @module typegpu/data
3
+ */
4
+ export { bool, f16, f32, i32, u16, u32 } from './numeric.ts';
5
+ export { isAlignAttrib, isAtomic, isBuiltinAttrib, isDecorated, isInterpolateAttrib, isInvariantAttrib, isLocationAttrib, isPtr, isSizeAttrib, isWgslArray, isWgslData, isWgslStruct, Void, } from './wgslTypes.ts';
6
+ export type { Align, AnyVecInstance, AnyWgslData, AnyWgslStruct, Atomic, atomicI32, atomicU32, BaseData, BaseData as BaseWgslData, Bool, Builtin, Decorated, F16, F32, I32, Interpolate, Invariant, Location, m2x2f, m3x3f, m4x4f, Mat2x2f, Mat3x3f, Mat4x4f, matBase, Ptr, Size, StorableData, U16, U32, v2b, v2f, v2h, v2i, v2u, v3b, v3f, v3h, v3i, v3u, v4b, v4f, v4h, v4i, v4u, Vec2b, Vec2f, Vec2h, Vec2i, Vec2u, Vec3b, Vec3f, Vec3h, Vec3i, Vec3u, Vec4b, Vec4f, Vec4h, Vec4i, Vec4u, vecBase, WgslArray, WgslStruct, } from './wgslTypes.ts';
7
+ export { struct } from './struct.ts';
8
+ export { arrayOf } from './array.ts';
9
+ export { ptrFn, ptrHandle, ptrPrivate, ptrStorage, ptrUniform, ptrWorkgroup } from './ptr.ts';
10
+ export type { AnyData, AnyLooseData, Disarray, LooseDecorated, Unstruct } from './dataTypes.ts';
11
+ export { texture1d, texture2d, texture2dArray, texture3d, textureCube, textureCubeArray, textureDepth2d, textureDepth2dArray, textureDepthCube, textureDepthCubeArray, textureDepthMultisampled2d, textureExternal, textureMultisampled2d, textureStorage1d, textureStorage2d, textureStorage2dArray, textureStorage3d, type WgslExternalTexture, type WgslStorageTexture, type WgslStorageTexture1d, type WgslStorageTexture2d, type WgslStorageTexture2dArray, type WgslStorageTexture3d, type WgslStorageTextureProps, type WgslTexture, type WgslTexture1d, type WgslTexture2d, type WgslTexture2dArray, type WgslTexture3d, type WgslTextureCube, type WgslTextureCubeArray, type WgslTextureDepth2d, type WgslTextureDepth2dArray, type WgslTextureDepthCube, type WgslTextureDepthCubeArray, type WgslTextureDepthMultisampled2d, type WgslTextureMultisampled2d, } from './texture.ts';
12
+ export { comparisonSampler, sampler, type WgslComparisonSampler, type WgslSampler, } from './sampler.ts';
13
+ export { vec2b, vec2f, vec2h, vec2i, vec2u, vec3b, vec3f, vec3h, vec3i, vec3u, vec4b, vec4f, vec4h, vec4i, vec4u, } from './vector.ts';
14
+ export { disarrayOf } from './disarray.ts';
15
+ export { unstruct } from './unstruct.ts';
16
+ export { mat2x2f, mat3x3f, mat4x4f, matToArray } from './matrix.ts';
17
+ export * from './vertexFormatData.ts';
18
+ export { atomic } from './atomic.ts';
19
+ export { _ref as ref } from './ref.ts';
20
+ export { align, type AnyAttribute, type HasCustomLocation, interpolate, invariant, type IsBuiltin, isBuiltin, location, size, } from './attributes.ts';
21
+ export { isData, isDisarray, isLooseData, isLooseDecorated, isUnstruct } from './dataTypes.ts';
22
+ export { PUBLIC_sizeOf as sizeOf } from './sizeOf.ts';
23
+ export { PUBLIC_isContiguous as isContiguous } from './isContiguous.ts';
24
+ export { PUBLIC_getLongestContiguousPrefix as getLongestContiguousPrefix } from './getLongestContiguousPrefix.ts';
25
+ export { memoryLayoutOf } from './offsetUtils.ts';
26
+ export { PUBLIC_alignmentOf as alignmentOf } from './alignmentOf.ts';
27
+ export { builtin } from '../builtin.ts';
28
+ export { deepEqual } from './deepEqual.ts';
29
+ export type { AnyBuiltin, BuiltinClipDistances, BuiltinFragDepth, BuiltinFrontFacing, BuiltinGlobalInvocationId, BuiltinGlobalInvocationIndex, BuiltinInstanceIndex, BuiltinLocalInvocationId, BuiltinLocalInvocationIndex, BuiltinNumSubgroups, BuiltinNumWorkgroups, BuiltinPosition, BuiltinPrimitiveIndex, BuiltinSampleIndex, BuiltinSampleMask, BuiltinSubgroupId, BuiltinSubgroupInvocationId, BuiltinSubgroupSize, BuiltinVertexIndex, BuiltinWorkgroupId, BuiltinWorkgroupIndex, } from '../builtin.ts';
30
+ export type { Infer, InferGPU, InferInput, InferPartial, InferPatch, MemIdentity, } from '../shared/repr.ts';
package/data/index.js CHANGED
@@ -1,174 +1,41 @@
1
- import { __export } from "../_virtual/rolldown_runtime.js";
2
- import { Void, isAlignAttrib, isAtomic, isBuiltinAttrib, isDecorated, isInterpolateAttrib, isLocationAttrib, isPtr, isSizeAttrib, isWgslArray, isWgslData, isWgslStruct } from "./wgslTypes.js";
3
- import { isData, isDisarray, isLooseData, isLooseDecorated, isUnstruct } from "./dataTypes.js";
4
- import { ptrFn, ptrHandle, ptrPrivate, ptrStorage, ptrUniform, ptrWorkgroup } from "./ptr.js";
5
- import { _ref } from "./ref.js";
6
- import { bool, f16, f32, i32, u16, u32 } from "./numeric.js";
1
+ /**
2
+ * @module typegpu/data
3
+ */
4
+ // NOTE: This is a barrel file, internal files should not import things from this file
5
+ import { Operator } from 'tsover-runtime';
6
+ import { MatBase } from "./matrix.js";
7
7
  import { VecBase } from "./vectorImpl.js";
8
- import { vec2b, vec2f, vec2h, vec2i, vec2u, vec3b, vec3f, vec3h, vec3i, vec3u, vec4b, vec4f, vec4h, vec4i, vec4u } from "./vector.js";
9
- import { float16, float16x2, float16x4, float32, float32x2, float32x3, float32x4, formatToWGSLType, isPackedData, packedFormats, sint16, sint16x2, sint16x4, sint32, sint32x2, sint32x3, sint32x4, sint8, sint8x2, sint8x4, snorm16, snorm16x2, snorm16x4, snorm8, snorm8x2, snorm8x4, uint16, uint16x2, uint16x4, uint32, uint32x2, uint32x3, uint32x4, uint8, uint8x2, uint8x4, unorm10_10_10_2, unorm16, unorm16x2, unorm16x4, unorm8, unorm8x2, unorm8x4, unorm8x4_bgra } from "./vertexFormatData.js";
10
- import { PUBLIC_alignmentOf } from "./alignmentOf.js";
11
- import { PUBLIC_sizeOf } from "./sizeOf.js";
12
- import { align, interpolate, invariant, isBuiltin, location, size } from "./attributes.js";
13
- import { struct } from "./struct.js";
14
- import { MatBase, mat2x2f, mat3x3f, mat4x4f, matToArray } from "./matrix.js";
15
8
  import { assignInfixOperator } from "../tgsl/infixDispatch.js";
16
- import { comparisonSampler, sampler } from "./sampler.js";
17
- import { texture1d, texture2d, texture2dArray, texture3d, textureCube, textureCubeArray, textureDepth2d, textureDepth2dArray, textureDepthCube, textureDepthCubeArray, textureDepthMultisampled2d, textureExternal, textureMultisampled2d, textureStorage1d, textureStorage2d, textureStorage2dArray, textureStorage3d } from "./texture.js";
18
- import { arrayOf } from "./array.js";
19
- import { atomic } from "./atomic.js";
20
- import { builtin } from "../builtin.js";
21
- import { PUBLIC_isContiguous } from "./isContiguous.js";
22
- import { PUBLIC_getLongestContiguousPrefix } from "./getLongestContiguousPrefix.js";
23
- import { memoryLayoutOf } from "./offsetUtils.js";
24
- import { disarrayOf } from "./disarray.js";
25
- import { unstruct } from "./unstruct.js";
26
- import { deepEqual } from "./deepEqual.js";
27
- import { Operator } from "tsover-runtime";
28
-
29
- //#region src/data/index.ts
30
- var data_exports = /* @__PURE__ */ __export({
31
- Void: () => Void,
32
- align: () => align,
33
- alignmentOf: () => PUBLIC_alignmentOf,
34
- arrayOf: () => arrayOf,
35
- atomic: () => atomic,
36
- bool: () => bool,
37
- builtin: () => builtin,
38
- comparisonSampler: () => comparisonSampler,
39
- deepEqual: () => deepEqual,
40
- disarrayOf: () => disarrayOf,
41
- f16: () => f16,
42
- f32: () => f32,
43
- float16: () => float16,
44
- float16x2: () => float16x2,
45
- float16x4: () => float16x4,
46
- float32: () => float32,
47
- float32x2: () => float32x2,
48
- float32x3: () => float32x3,
49
- float32x4: () => float32x4,
50
- formatToWGSLType: () => formatToWGSLType,
51
- getLongestContiguousPrefix: () => PUBLIC_getLongestContiguousPrefix,
52
- i32: () => i32,
53
- interpolate: () => interpolate,
54
- invariant: () => invariant,
55
- isAlignAttrib: () => isAlignAttrib,
56
- isAtomic: () => isAtomic,
57
- isBuiltin: () => isBuiltin,
58
- isBuiltinAttrib: () => isBuiltinAttrib,
59
- isContiguous: () => PUBLIC_isContiguous,
60
- isData: () => isData,
61
- isDecorated: () => isDecorated,
62
- isDisarray: () => isDisarray,
63
- isInterpolateAttrib: () => isInterpolateAttrib,
64
- isLocationAttrib: () => isLocationAttrib,
65
- isLooseData: () => isLooseData,
66
- isLooseDecorated: () => isLooseDecorated,
67
- isPackedData: () => isPackedData,
68
- isPtr: () => isPtr,
69
- isSizeAttrib: () => isSizeAttrib,
70
- isUnstruct: () => isUnstruct,
71
- isWgslArray: () => isWgslArray,
72
- isWgslData: () => isWgslData,
73
- isWgslStruct: () => isWgslStruct,
74
- location: () => location,
75
- mat2x2f: () => mat2x2f,
76
- mat3x3f: () => mat3x3f,
77
- mat4x4f: () => mat4x4f,
78
- matToArray: () => matToArray,
79
- memoryLayoutOf: () => memoryLayoutOf,
80
- packedFormats: () => packedFormats,
81
- ptrFn: () => ptrFn,
82
- ptrHandle: () => ptrHandle,
83
- ptrPrivate: () => ptrPrivate,
84
- ptrStorage: () => ptrStorage,
85
- ptrUniform: () => ptrUniform,
86
- ptrWorkgroup: () => ptrWorkgroup,
87
- ref: () => _ref,
88
- sampler: () => sampler,
89
- sint16: () => sint16,
90
- sint16x2: () => sint16x2,
91
- sint16x4: () => sint16x4,
92
- sint32: () => sint32,
93
- sint32x2: () => sint32x2,
94
- sint32x3: () => sint32x3,
95
- sint32x4: () => sint32x4,
96
- sint8: () => sint8,
97
- sint8x2: () => sint8x2,
98
- sint8x4: () => sint8x4,
99
- size: () => size,
100
- sizeOf: () => PUBLIC_sizeOf,
101
- snorm16: () => snorm16,
102
- snorm16x2: () => snorm16x2,
103
- snorm16x4: () => snorm16x4,
104
- snorm8: () => snorm8,
105
- snorm8x2: () => snorm8x2,
106
- snorm8x4: () => snorm8x4,
107
- struct: () => struct,
108
- texture1d: () => texture1d,
109
- texture2d: () => texture2d,
110
- texture2dArray: () => texture2dArray,
111
- texture3d: () => texture3d,
112
- textureCube: () => textureCube,
113
- textureCubeArray: () => textureCubeArray,
114
- textureDepth2d: () => textureDepth2d,
115
- textureDepth2dArray: () => textureDepth2dArray,
116
- textureDepthCube: () => textureDepthCube,
117
- textureDepthCubeArray: () => textureDepthCubeArray,
118
- textureDepthMultisampled2d: () => textureDepthMultisampled2d,
119
- textureExternal: () => textureExternal,
120
- textureMultisampled2d: () => textureMultisampled2d,
121
- textureStorage1d: () => textureStorage1d,
122
- textureStorage2d: () => textureStorage2d,
123
- textureStorage2dArray: () => textureStorage2dArray,
124
- textureStorage3d: () => textureStorage3d,
125
- u16: () => u16,
126
- u32: () => u32,
127
- uint16: () => uint16,
128
- uint16x2: () => uint16x2,
129
- uint16x4: () => uint16x4,
130
- uint32: () => uint32,
131
- uint32x2: () => uint32x2,
132
- uint32x3: () => uint32x3,
133
- uint32x4: () => uint32x4,
134
- uint8: () => uint8,
135
- uint8x2: () => uint8x2,
136
- uint8x4: () => uint8x4,
137
- unorm10_10_10_2: () => unorm10_10_10_2,
138
- unorm16: () => unorm16,
139
- unorm16x2: () => unorm16x2,
140
- unorm16x4: () => unorm16x4,
141
- unorm8: () => unorm8,
142
- unorm8x2: () => unorm8x2,
143
- unorm8x4: () => unorm8x4,
144
- unorm8x4_bgra: () => unorm8x4_bgra,
145
- unstruct: () => unstruct,
146
- vec2b: () => vec2b,
147
- vec2f: () => vec2f,
148
- vec2h: () => vec2h,
149
- vec2i: () => vec2i,
150
- vec2u: () => vec2u,
151
- vec3b: () => vec3b,
152
- vec3f: () => vec3f,
153
- vec3h: () => vec3h,
154
- vec3i: () => vec3i,
155
- vec3u: () => vec3u,
156
- vec4b: () => vec4b,
157
- vec4f: () => vec4f,
158
- vec4h: () => vec4h,
159
- vec4i: () => vec4i,
160
- vec4u: () => vec4u
161
- });
162
- assignInfixOperator(VecBase, "add", Operator.plus);
163
- assignInfixOperator(MatBase, "add", Operator.plus);
164
- assignInfixOperator(VecBase, "sub", Operator.minus);
165
- assignInfixOperator(MatBase, "sub", Operator.minus);
166
- assignInfixOperator(VecBase, "mul", Operator.star);
167
- assignInfixOperator(MatBase, "mul", Operator.star);
168
- assignInfixOperator(VecBase, "div", Operator.slash);
169
- assignInfixOperator(VecBase, "mod", Operator.percent);
170
- assignInfixOperator(VecBase, "bitShiftLeft", Symbol());
171
- assignInfixOperator(VecBase, "bitShiftRight", Symbol());
172
-
173
- //#endregion
174
- export { Void, align, PUBLIC_alignmentOf as alignmentOf, arrayOf, atomic, bool, builtin, comparisonSampler, data_exports, deepEqual, disarrayOf, f16, f32, float16, float16x2, float16x4, float32, float32x2, float32x3, float32x4, formatToWGSLType, PUBLIC_getLongestContiguousPrefix as getLongestContiguousPrefix, i32, interpolate, invariant, isAlignAttrib, isAtomic, isBuiltin, isBuiltinAttrib, PUBLIC_isContiguous as isContiguous, isData, isDecorated, isDisarray, isInterpolateAttrib, isLocationAttrib, isLooseData, isLooseDecorated, isPackedData, isPtr, isSizeAttrib, isUnstruct, isWgslArray, isWgslData, isWgslStruct, location, mat2x2f, mat3x3f, mat4x4f, matToArray, memoryLayoutOf, packedFormats, ptrFn, ptrHandle, ptrPrivate, ptrStorage, ptrUniform, ptrWorkgroup, _ref as ref, sampler, sint16, sint16x2, sint16x4, sint32, sint32x2, sint32x3, sint32x4, sint8, sint8x2, sint8x4, size, PUBLIC_sizeOf as sizeOf, snorm16, snorm16x2, snorm16x4, snorm8, snorm8x2, snorm8x4, struct, texture1d, texture2d, texture2dArray, texture3d, textureCube, textureCubeArray, textureDepth2d, textureDepth2dArray, textureDepthCube, textureDepthCubeArray, textureDepthMultisampled2d, textureExternal, textureMultisampled2d, textureStorage1d, textureStorage2d, textureStorage2dArray, textureStorage3d, u16, u32, uint16, uint16x2, uint16x4, uint32, uint32x2, uint32x3, uint32x4, uint8, uint8x2, uint8x4, unorm10_10_10_2, unorm16, unorm16x2, unorm16x4, unorm8, unorm8x2, unorm8x4, unorm8x4_bgra, unstruct, vec2b, vec2f, vec2h, vec2i, vec2u, vec3b, vec3f, vec3h, vec3i, vec3u, vec4b, vec4f, vec4h, vec4i, vec4u };
9
+ assignInfixOperator(VecBase, 'add', Operator.plus);
10
+ assignInfixOperator(MatBase, 'add', Operator.plus);
11
+ assignInfixOperator(VecBase, 'sub', Operator.minus);
12
+ assignInfixOperator(MatBase, 'sub', Operator.minus);
13
+ assignInfixOperator(VecBase, 'mul', Operator.star);
14
+ assignInfixOperator(MatBase, 'mul', Operator.star);
15
+ assignInfixOperator(VecBase, 'div', Operator.slash);
16
+ assignInfixOperator(VecBase, 'mod', Operator.percent);
17
+ assignInfixOperator(VecBase, 'bitShiftLeft', Symbol()); // bitShift does not yet have tsover operator symbol
18
+ assignInfixOperator(VecBase, 'bitShiftRight', Symbol()); // bitShift does not yet have tsover operator symbol
19
+ export { bool, f16, f32, i32, u16, u32 } from "./numeric.js";
20
+ export { isAlignAttrib, isAtomic, isBuiltinAttrib, isDecorated, isInterpolateAttrib, isInvariantAttrib, isLocationAttrib, isPtr, isSizeAttrib, isWgslArray, isWgslData, isWgslStruct, Void, } from "./wgslTypes.js";
21
+ export { struct } from "./struct.js";
22
+ export { arrayOf } from "./array.js";
23
+ export { ptrFn, ptrHandle, ptrPrivate, ptrStorage, ptrUniform, ptrWorkgroup } from "./ptr.js";
24
+ export { texture1d, texture2d, texture2dArray, texture3d, textureCube, textureCubeArray, textureDepth2d, textureDepth2dArray, textureDepthCube, textureDepthCubeArray, textureDepthMultisampled2d, textureExternal, textureMultisampled2d, textureStorage1d, textureStorage2d, textureStorage2dArray, textureStorage3d, } from "./texture.js";
25
+ export { comparisonSampler, sampler, } from "./sampler.js";
26
+ export { vec2b, vec2f, vec2h, vec2i, vec2u, vec3b, vec3f, vec3h, vec3i, vec3u, vec4b, vec4f, vec4h, vec4i, vec4u, } from "./vector.js";
27
+ export { disarrayOf } from "./disarray.js";
28
+ export { unstruct } from "./unstruct.js";
29
+ export { mat2x2f, mat3x3f, mat4x4f, matToArray } from "./matrix.js";
30
+ export * from "./vertexFormatData.js";
31
+ export { atomic } from "./atomic.js";
32
+ export { _ref as ref } from "./ref.js";
33
+ export { align, interpolate, invariant, isBuiltin, location, size, } from "./attributes.js";
34
+ export { isData, isDisarray, isLooseData, isLooseDecorated, isUnstruct } from "./dataTypes.js";
35
+ export { PUBLIC_sizeOf as sizeOf } from "./sizeOf.js";
36
+ export { PUBLIC_isContiguous as isContiguous } from "./isContiguous.js";
37
+ export { PUBLIC_getLongestContiguousPrefix as getLongestContiguousPrefix } from "./getLongestContiguousPrefix.js";
38
+ export { memoryLayoutOf } from "./offsetUtils.js";
39
+ export { PUBLIC_alignmentOf as alignmentOf } from "./alignmentOf.js";
40
+ export { builtin } from "../builtin.js";
41
+ export { deepEqual } from "./deepEqual.js";
@@ -1,33 +1,30 @@
1
- import { $internal } from "../shared/symbols.js";
2
- import { Bool, F16, F32, I32, Mat2x2f, Mat3x3f, Mat4x4f, U16, U32, Vec2b, Vec2f, Vec2h, Vec2i, Vec2u, Vec3b, Vec3f, Vec3h, Vec3i, Vec3u, Vec4b, Vec4f, Vec4h, Vec4i, Vec4u, Void } from "./wgslTypes.js";
3
-
4
- //#region src/data/instanceToSchema.d.ts
1
+ import { $internal } from '../shared/symbols.ts';
2
+ import type { Bool, F16, F32, I32, Mat2x2f, Mat3x3f, Mat4x4f, U16, U32, Vec2b, Vec2f, Vec2h, Vec2i, Vec2u, Vec3b, Vec3f, Vec3h, Vec3i, Vec3u, Vec4b, Vec4f, Vec4h, Vec4i, Vec4u, Void } from './wgslTypes.ts';
5
3
  type KindToSchemaMap = {
6
- vec2f: Vec2f;
7
- vec3f: Vec3f;
8
- vec4f: Vec4f;
9
- vec2h: Vec2h;
10
- vec3h: Vec3h;
11
- vec4h: Vec4h;
12
- vec2i: Vec2i;
13
- vec3i: Vec3i;
14
- vec4i: Vec4i;
15
- vec2u: Vec2u;
16
- vec3u: Vec3u;
17
- vec4u: Vec4u;
18
- 'vec2<bool>': Vec2b;
19
- 'vec3<bool>': Vec3b;
20
- 'vec4<bool>': Vec4b;
21
- mat2x2f: Mat2x2f;
22
- mat3x3f: Mat3x3f;
23
- mat4x4f: Mat4x4f;
4
+ vec2f: Vec2f;
5
+ vec3f: Vec3f;
6
+ vec4f: Vec4f;
7
+ vec2h: Vec2h;
8
+ vec3h: Vec3h;
9
+ vec4h: Vec4h;
10
+ vec2i: Vec2i;
11
+ vec3i: Vec3i;
12
+ vec4i: Vec4i;
13
+ vec2u: Vec2u;
14
+ vec3u: Vec3u;
15
+ vec4u: Vec4u;
16
+ 'vec2<bool>': Vec2b;
17
+ 'vec3<bool>': Vec3b;
18
+ 'vec4<bool>': Vec4b;
19
+ mat2x2f: Mat2x2f;
20
+ mat3x3f: Mat3x3f;
21
+ mat4x4f: Mat4x4f;
24
22
  };
25
23
  /**
26
24
  * Inverse operation to d.Infer<T>
27
25
  */
28
- type InstanceToSchema<T> = T extends number ? U32 | U16 | I32 | F32 | F16 : T extends boolean ? Bool : T extends undefined ? Void : T extends {
29
- readonly [$internal]: unknown;
30
- readonly kind: infer TKind extends keyof KindToSchemaMap;
26
+ export type InstanceToSchema<T> = T extends number ? U32 | U16 | I32 | F32 | F16 : T extends boolean ? Bool : T extends undefined ? Void : T extends {
27
+ readonly [$internal]: unknown;
28
+ readonly kind: infer TKind extends keyof KindToSchemaMap;
31
29
  } ? KindToSchemaMap[TKind] : T;
32
- //#endregion
33
- export { InstanceToSchema };
30
+ export {};
@@ -0,0 +1 @@
1
+ import { $internal } from "../shared/symbols.js";
@@ -1,11 +1,7 @@
1
- import "./wgslTypes.js";
2
- import { AnyData } from "./dataTypes.js";
3
-
4
- //#region src/data/isContiguous.d.ts
5
-
1
+ import type { AnyData } from './dataTypes.ts';
2
+ import type { BaseData } from './wgslTypes.ts';
3
+ export declare function isContiguous(schema: BaseData): boolean;
6
4
  /**
7
5
  * Returns `true` if data represented by the `schema` doesn't have padding.
8
6
  */
9
- declare function PUBLIC_isContiguous(schema: AnyData): boolean;
10
- //#endregion
11
- export { PUBLIC_isContiguous };
7
+ export declare function PUBLIC_isContiguous(schema: AnyData): boolean;
@@ -1,15 +1,10 @@
1
1
  import { getLayoutInfo } from "./schemaMemoryLayout.js";
2
-
3
- //#region src/data/isContiguous.ts
4
- function isContiguous(schema) {
5
- return getLayoutInfo(schema, "isContiguous");
2
+ export function isContiguous(schema) {
3
+ return getLayoutInfo(schema, 'isContiguous');
6
4
  }
7
5
  /**
8
- * Returns `true` if data represented by the `schema` doesn't have padding.
9
- */
10
- function PUBLIC_isContiguous(schema) {
11
- return isContiguous(schema);
6
+ * Returns `true` if data represented by the `schema` doesn't have padding.
7
+ */
8
+ export function PUBLIC_isContiguous(schema) {
9
+ return isContiguous(schema);
12
10
  }
13
-
14
- //#endregion
15
- export { PUBLIC_isContiguous, isContiguous };