typegpu 0.11.1 → 0.11.2

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 (212) hide show
  1. package/_virtual/{_rolldown/runtime.js → rolldown_runtime.js} +4 -4
  2. package/builtin.js +3 -1
  3. package/common/fullScreenTriangle.d.ts +6 -1
  4. package/common/fullScreenTriangle.js +3 -1
  5. package/common/index.js +5 -3
  6. package/common/writeSoA.js +3 -1
  7. package/core/buffer/buffer.d.ts +3 -0
  8. package/core/buffer/buffer.js +5 -3
  9. package/core/buffer/bufferShorthand.d.ts +2 -0
  10. package/core/buffer/bufferShorthand.js +3 -1
  11. package/core/buffer/bufferUsage.d.ts +2 -0
  12. package/core/buffer/bufferUsage.js +3 -1
  13. package/core/constant/tgpuConstant.d.ts +2 -1
  14. package/core/constant/tgpuConstant.js +3 -1
  15. package/core/declare/tgpuDeclare.js +3 -1
  16. package/core/function/autoIO.d.ts +3 -0
  17. package/core/function/autoIO.js +3 -1
  18. package/core/function/comptime.js +3 -1
  19. package/core/function/createCallableSchema.js +3 -1
  20. package/core/function/dualImpl.js +3 -1
  21. package/core/function/entryInputRouter.js +3 -1
  22. package/core/function/extractArgs.js +2 -1
  23. package/core/function/fnCore.js +8 -6
  24. package/core/function/fnTypes.d.ts +2 -0
  25. package/core/function/ioSchema.d.ts +1 -0
  26. package/core/function/ioSchema.js +3 -1
  27. package/core/function/shelllessImpl.d.ts +1 -0
  28. package/core/function/shelllessImpl.js +3 -1
  29. package/core/function/templateUtils.js +2 -1
  30. package/core/function/tgpuComputeFn.d.ts +1 -0
  31. package/core/function/tgpuComputeFn.js +3 -1
  32. package/core/function/tgpuFn.d.ts +1 -0
  33. package/core/function/tgpuFn.js +16 -14
  34. package/core/function/tgpuFragmentFn.js +3 -1
  35. package/core/function/tgpuVertexFn.js +3 -1
  36. package/core/pipeline/applyPipelineState.js +3 -1
  37. package/core/pipeline/computePipeline.d.ts +4 -0
  38. package/core/pipeline/computePipeline.js +8 -6
  39. package/core/pipeline/connectAttachmentToShader.js +3 -1
  40. package/core/pipeline/connectTargetsToShader.js +3 -1
  41. package/core/pipeline/limitsOverflow.js +2 -1
  42. package/core/pipeline/pipelineUtils.js +6 -4
  43. package/core/pipeline/renderPipeline.js +21 -19
  44. package/core/pipeline/timeable.d.ts +2 -0
  45. package/core/pipeline/timeable.js +3 -1
  46. package/core/pipeline/typeGuards.js +3 -1
  47. package/core/querySet/querySet.d.ts +2 -0
  48. package/core/querySet/querySet.js +3 -1
  49. package/core/rawCodeSnippet/tgpuRawCodeSnippet.d.ts +1 -0
  50. package/core/rawCodeSnippet/tgpuRawCodeSnippet.js +3 -1
  51. package/core/resolve/externals.d.ts +3 -0
  52. package/core/resolve/externals.js +7 -5
  53. package/core/resolve/namespace.js +6 -4
  54. package/core/resolve/resolveData.js +3 -1
  55. package/core/resolve/stitch.js +3 -1
  56. package/core/resolve/tgpuResolve.js +7 -5
  57. package/core/root/configurableImpl.js +3 -1
  58. package/core/root/init.d.ts +10 -2
  59. package/core/root/init.js +4 -2
  60. package/core/root/rootTypes.d.ts +11 -11
  61. package/core/sampler/sampler.d.ts +4 -0
  62. package/core/sampler/sampler.js +3 -1
  63. package/core/simulate/tgpuSimulate.js +6 -4
  64. package/core/slot/accessor.d.ts +4 -0
  65. package/core/slot/accessor.js +3 -1
  66. package/core/slot/internalSlots.js +3 -1
  67. package/core/slot/lazy.js +3 -1
  68. package/core/slot/slot.js +3 -1
  69. package/core/slot/slotTypes.js +3 -1
  70. package/core/texture/externalTexture.d.ts +6 -0
  71. package/core/texture/externalTexture.js +3 -1
  72. package/core/texture/texture.d.ts +4 -0
  73. package/core/texture/texture.js +6 -4
  74. package/core/texture/textureFormats.js +3 -1
  75. package/core/texture/textureUtils.js +3 -1
  76. package/core/texture/usageExtension.js +3 -1
  77. package/core/unroll/tgpuUnroll.d.ts +3 -1
  78. package/core/unroll/tgpuUnroll.js +3 -1
  79. package/core/valueProxyUtils.js +7 -5
  80. package/core/variable/tgpuVariable.d.ts +3 -1
  81. package/core/variable/tgpuVariable.js +3 -1
  82. package/core/vertexLayout/connectAttributesToShader.js +3 -1
  83. package/core/vertexLayout/vertexAttribute.d.ts +1 -0
  84. package/core/vertexLayout/vertexLayout.js +7 -5
  85. package/data/alignIO.js +3 -1
  86. package/data/alignmentOf.d.ts +2 -0
  87. package/data/alignmentOf.js +3 -1
  88. package/data/array.js +3 -1
  89. package/data/atomic.d.ts +1 -0
  90. package/data/atomic.js +3 -1
  91. package/data/attributes.js +7 -5
  92. package/data/autoStruct.d.ts +3 -1
  93. package/data/autoStruct.js +3 -1
  94. package/data/compiledIO.js +39 -37
  95. package/data/dataIO.js +22 -20
  96. package/data/dataTypes.d.ts +9 -4
  97. package/data/dataTypes.js +3 -1
  98. package/data/deepEqual.d.ts +1 -0
  99. package/data/deepEqual.js +3 -1
  100. package/data/disarray.d.ts +3 -1
  101. package/data/disarray.js +3 -1
  102. package/data/getLongestContiguousPrefix.d.ts +2 -0
  103. package/data/getLongestContiguousPrefix.js +3 -1
  104. package/data/index.js +5 -6
  105. package/data/isContiguous.d.ts +2 -0
  106. package/data/isContiguous.js +3 -1
  107. package/data/matrix.d.ts +11 -8
  108. package/data/matrix.js +3 -1
  109. package/data/numberOps.js +2 -1
  110. package/data/numeric.d.ts +1 -0
  111. package/data/numeric.js +3 -1
  112. package/data/offsetUtils.d.ts +1 -0
  113. package/data/offsetUtils.js +3 -1
  114. package/data/offsets.js +5 -3
  115. package/data/partialIO.js +3 -1
  116. package/data/ptr.d.ts +1 -0
  117. package/data/ptr.js +3 -1
  118. package/data/ref.d.ts +3 -0
  119. package/data/ref.js +5 -3
  120. package/data/sampler.js +3 -1
  121. package/data/schemaCallWrapper.js +3 -1
  122. package/data/schemaMemoryLayout.js +3 -1
  123. package/data/sizeOf.d.ts +2 -0
  124. package/data/sizeOf.js +3 -1
  125. package/data/snippet.js +3 -1
  126. package/data/struct.d.ts +1 -0
  127. package/data/struct.js +3 -1
  128. package/data/texture.js +3 -1
  129. package/data/unstruct.d.ts +1 -0
  130. package/data/unstruct.js +3 -1
  131. package/data/vector.d.ts +1 -0
  132. package/data/vector.js +3 -1
  133. package/data/vectorImpl.js +3 -1
  134. package/data/vectorOps.js +3 -1
  135. package/data/vertexFormatData.js +3 -1
  136. package/data/wgslTypes.d.ts +2 -0
  137. package/data/wgslTypes.js +3 -1
  138. package/errors.d.ts +1 -0
  139. package/errors.js +3 -1
  140. package/execMode.js +3 -1
  141. package/extension.d.ts +1 -0
  142. package/extension.js +3 -1
  143. package/getGPUValue.js +3 -1
  144. package/index.js +3 -4
  145. package/indexNamedExports.d.ts +1 -0
  146. package/mathUtils.js +2 -1
  147. package/memo.js +2 -1
  148. package/nameRegistry.js +3 -1
  149. package/package.js +3 -2
  150. package/package.json +1 -1
  151. package/resolutionCtx.d.ts +11 -0
  152. package/resolutionCtx.js +6 -4
  153. package/shared/env.js +2 -1
  154. package/shared/generators.js +2 -1
  155. package/shared/meta.js +3 -1
  156. package/shared/repr.d.ts +1 -0
  157. package/shared/stringify.js +3 -1
  158. package/shared/symbols.js +42 -10
  159. package/shared/utilityTypes.js +2 -1
  160. package/shared/vertexFormat.js +2 -1
  161. package/std/array.d.ts +1 -1
  162. package/std/array.js +3 -1
  163. package/std/atomic.d.ts +12 -12
  164. package/std/atomic.js +3 -1
  165. package/std/bitcast.d.ts +2 -2
  166. package/std/bitcast.js +3 -1
  167. package/std/boolean.d.ts +15 -14
  168. package/std/boolean.js +3 -1
  169. package/std/derivative.d.ts +9 -9
  170. package/std/derivative.js +3 -1
  171. package/std/discard.d.ts +1 -1
  172. package/std/discard.js +3 -1
  173. package/std/extensions.d.ts +3 -1
  174. package/std/extensions.js +3 -1
  175. package/std/index.js +5 -3
  176. package/std/matrix.d.ts +6 -5
  177. package/std/matrix.js +3 -1
  178. package/std/numeric.d.ts +132 -78
  179. package/std/numeric.js +7 -5
  180. package/std/operators.d.ts +8 -8
  181. package/std/operators.js +7 -5
  182. package/std/packing.d.ts +5 -4
  183. package/std/packing.js +3 -1
  184. package/std/range.d.ts +3 -1
  185. package/std/range.js +3 -1
  186. package/std/subgroup.d.ts +21 -21
  187. package/std/subgroup.js +3 -1
  188. package/std/texture.d.ts +11 -11
  189. package/std/texture.js +9 -7
  190. package/tgpu.js +5 -3
  191. package/tgpuBindGroupLayout.d.ts +11 -7
  192. package/tgpuBindGroupLayout.js +3 -1
  193. package/tgpuUnstable.js +5 -3
  194. package/tgsl/accessIndex.js +3 -1
  195. package/tgsl/accessProp.js +3 -1
  196. package/tgsl/consoleLog/deserializers.js +3 -1
  197. package/tgsl/consoleLog/logGenerator.js +3 -1
  198. package/tgsl/consoleLog/serializers.js +3 -1
  199. package/tgsl/consoleLog/types.d.ts +3 -0
  200. package/tgsl/consoleLog/types.js +2 -1
  201. package/tgsl/conversion.js +3 -1
  202. package/tgsl/forOfUtils.js +3 -1
  203. package/tgsl/generationHelpers.d.ts +1 -0
  204. package/tgsl/generationHelpers.js +3 -1
  205. package/tgsl/math.js +3 -1
  206. package/tgsl/shaderGenerator.d.ts +2 -0
  207. package/tgsl/shaderGenerator_members.js +5 -3
  208. package/tgsl/shellless.js +3 -1
  209. package/tgsl/wgslGenerator.js +21 -18
  210. package/types.d.ts +0 -1
  211. package/types.js +3 -1
  212. package/wgslExtensions.js +2 -1
package/data/snippet.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { DEV } from "../shared/env.js";
2
2
  import { isNumericSchema } from "./wgslTypes.js";
3
3
  import { undecorate } from "./dataTypes.js";
4
+
4
5
  //#region src/data/snippet.ts
5
6
  function isEphemeralOrigin(space) {
6
7
  return space === "runtime" || space === "constant" || space === "argument";
@@ -66,5 +67,6 @@ function snip(value, dataType, origin) {
66
67
  if (DEV && isSnippet(value)) throw new Error("Cannot nest snippets");
67
68
  return new SnippetImpl(value, undecorate(dataType), origin);
68
69
  }
70
+
69
71
  //#endregion
70
- export { fallthroughCopyOrigin, isEphemeralOrigin, isEphemeralSnippet, isSnippet, isSnippetNumeric, originToPtrParams, snip };
72
+ export { fallthroughCopyOrigin, isEphemeralOrigin, isEphemeralSnippet, isSnippet, isSnippetNumeric, originToPtrParams, snip };
package/data/struct.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { AnyWgslData, WgslStruct } from "./wgslTypes.js";
2
2
 
3
3
  //#region src/data/struct.d.ts
4
+
4
5
  /**
5
6
  * Creates a struct schema that can be used to construct GPU buffers.
6
7
  * Ensures proper alignment and padding of properties (as opposed to a `d.unstruct` schema).
package/data/struct.js CHANGED
@@ -2,6 +2,7 @@ import { $internal } from "../shared/symbols.js";
2
2
  import { getName, setName } from "../shared/meta.js";
3
3
  import { schemaCallWrapper } from "./schemaCallWrapper.js";
4
4
  import { isValidProp } from "../nameRegistry.js";
5
+
5
6
  //#region src/data/struct.ts
6
7
  /**
7
8
  * Creates a struct schema that can be used to construct GPU buffers.
@@ -40,5 +41,6 @@ const WgslStructImpl = {
40
41
  return `struct:${getName(this) ?? "<unnamed>"}`;
41
42
  }
42
43
  };
44
+
43
45
  //#endregion
44
- export { INTERNAL_createStruct, abstruct, struct };
46
+ export { INTERNAL_createStruct, abstruct, struct };
package/data/texture.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { $internal, $repr } from "../shared/symbols.js";
2
2
  import { f32 } from "./numeric.js";
3
+
3
4
  //#region src/data/texture.ts
4
5
  function textureDescriptorToSchema(desc) {
5
6
  if ("multisampled" in desc) {
@@ -202,5 +203,6 @@ function isWgslStorageTexture(value) {
202
203
  function isWgslExternalTexture(value) {
203
204
  return !!value[$internal] && value.type === "texture_external";
204
205
  }
206
+
205
207
  //#endregion
206
- export { accessModeMap, isWgslExternalTexture, isWgslStorageTexture, isWgslTexture, texture1d, texture2d, texture2dArray, texture3d, textureCube, textureCubeArray, textureDepth2d, textureDepth2dArray, textureDepthCube, textureDepthCubeArray, textureDepthMultisampled2d, textureDescriptorToSchema, textureExternal, textureMultisampled2d, textureStorage1d, textureStorage2d, textureStorage2dArray, textureStorage3d };
208
+ export { accessModeMap, isWgslExternalTexture, isWgslStorageTexture, isWgslTexture, texture1d, texture2d, texture2dArray, texture3d, textureCube, textureCubeArray, textureDepth2d, textureDepth2dArray, textureDepthCube, textureDepthCubeArray, textureDepthMultisampled2d, textureDescriptorToSchema, textureExternal, textureMultisampled2d, textureStorage1d, textureStorage2d, textureStorage2dArray, textureStorage3d };
@@ -1,6 +1,7 @@
1
1
  import { AnyData, Unstruct } from "./dataTypes.js";
2
2
 
3
3
  //#region src/data/unstruct.d.ts
4
+
4
5
  /**
5
6
  * Creates a loose struct schema that can be used to construct vertex buffers.
6
7
  * Describes structs with members of both loose and non-loose types.
package/data/unstruct.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { $internal } from "../shared/symbols.js";
2
2
  import { getName, setName } from "../shared/meta.js";
3
3
  import { schemaCallWrapper } from "./schemaCallWrapper.js";
4
+
4
5
  //#region src/data/unstruct.ts
5
6
  /**
6
7
  * Creates a loose struct schema that can be used to construct vertex buffers.
@@ -37,5 +38,6 @@ const UnstructImpl = {
37
38
  return `unstruct:${getName(this) ?? "<unnamed>"}`;
38
39
  }
39
40
  };
41
+
40
42
  //#endregion
41
- export { unstruct };
43
+ export { unstruct };
package/data/vector.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Vec2b, Vec2f, Vec2h, Vec2i, Vec2u, Vec3b, Vec3f, Vec3h, Vec3i, Vec3u, Vec4b, Vec4f, Vec4h, Vec4i, Vec4u } from "./wgslTypes.js";
2
2
 
3
3
  //#region src/data/vector.d.ts
4
+
4
5
  /**
5
6
  * Schema representing vec2f - a vector with 2 elements of type f32.
6
7
  * Also a constructor function for this vector value.
package/data/vector.js CHANGED
@@ -3,6 +3,7 @@ import { isVec } from "./wgslTypes.js";
3
3
  import { callableSchema } from "../core/function/createCallableSchema.js";
4
4
  import { bool, f16, f32, i32, u32 } from "./numeric.js";
5
5
  import { Vec2bImpl, Vec2fImpl, Vec2hImpl, Vec2iImpl, Vec2uImpl, Vec3bImpl, Vec3fImpl, Vec3hImpl, Vec3iImpl, Vec3uImpl, Vec4bImpl, Vec4fImpl, Vec4hImpl, Vec4iImpl, Vec4uImpl } from "./vectorImpl.js";
6
+
6
7
  //#region src/data/vector.ts
7
8
  /**
8
9
  * Schema representing vec2f - a vector with 2 elements of type f32.
@@ -235,5 +236,6 @@ function makeVecSchema(VecImpl, primitive) {
235
236
  VecImpl.prototype.schema = schema;
236
237
  return schema;
237
238
  }
239
+
238
240
  //#endregion
239
- export { vec2b, vec2f, vec2h, vec2i, vec2u, vec3b, vec3f, vec3h, vec3i, vec3u, vec4b, vec4f, vec4h, vec4i, vec4u, vecTypeToConstructor };
241
+ export { vec2b, vec2f, vec2h, vec2i, vec2u, vec3b, vec3f, vec3h, vec3i, vec3u, vec4b, vec4f, vec4h, vec4i, vec4u, vecTypeToConstructor };
@@ -2,6 +2,7 @@ import { $internal, $resolve } from "../shared/symbols.js";
2
2
  import { WORKAROUND_getSchema } from "./wgslTypes.js";
3
3
  import { bool, f16, f32, i32, u32 } from "./numeric.js";
4
4
  import { numericLiteralToSnippet } from "../tgsl/generationHelpers.js";
5
+
5
6
  //#region src/data/vectorImpl.ts
6
7
  const XYZW = [
7
8
  "x",
@@ -511,5 +512,6 @@ var Vec4bImpl = class Vec4bImpl extends Vec4 {
511
512
  return Vec4bImpl;
512
513
  }
513
514
  };
515
+
514
516
  //#endregion
515
- export { Vec2bImpl, Vec2fImpl, Vec2hImpl, Vec2iImpl, Vec2uImpl, Vec3bImpl, Vec3fImpl, Vec3hImpl, Vec3iImpl, Vec3uImpl, Vec4bImpl, Vec4fImpl, Vec4hImpl, Vec4iImpl, Vec4uImpl, VecBase };
517
+ export { Vec2bImpl, Vec2fImpl, Vec2hImpl, Vec2iImpl, Vec2uImpl, Vec3bImpl, Vec3fImpl, Vec3hImpl, Vec3iImpl, Vec3uImpl, Vec4bImpl, Vec4fImpl, Vec4hImpl, Vec4iImpl, Vec4uImpl, VecBase };
package/data/vectorOps.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { vec2b as vec2b$1, vec2f as vec2f$1, vec2h as vec2h$1, vec2i as vec2i$1, vec2u as vec2u$1, vec3b as vec3b$1, vec3f as vec3f$1, vec3h as vec3h$1, vec3i as vec3i$1, vec3u as vec3u$1, vec4b as vec4b$1, vec4f as vec4f$1, vec4h as vec4h$1, vec4i as vec4i$1, vec4u as vec4u$1 } from "./vector.js";
2
2
  import { mat2x2f, mat3x3f, mat4x4f } from "./matrix.js";
3
3
  import { bitcastU32toF32Impl, bitcastU32toI32Impl, clamp, divInteger, smoothstepScalar } from "./numberOps.js";
4
+
4
5
  //#region src/data/vectorOps.ts
5
6
  const vec2b = vec2b$1;
6
7
  const vec2f = vec2f$1;
@@ -677,5 +678,6 @@ const VectorOps = {
677
678
  vec4u: (n) => vec4i(bitcastU32toI32Impl(n.x), bitcastU32toI32Impl(n.y), bitcastU32toI32Impl(n.z), bitcastU32toI32Impl(n.w))
678
679
  }
679
680
  };
681
+
680
682
  //#endregion
681
- export { VectorOps };
683
+ export { VectorOps };
@@ -2,6 +2,7 @@ import { $cast, $gpuCallable, $internal, isMarkedInternal } from "../shared/symb
2
2
  import { schemaCallWrapper, schemaCallWrapperGPU } from "./schemaCallWrapper.js";
3
3
  import { f32, i32, u32 } from "./numeric.js";
4
4
  import { vec2f, vec2i, vec2u, vec3f, vec3i, vec3u, vec4f, vec4i, vec4u } from "./vector.js";
5
+
5
6
  //#region src/data/vertexFormatData.ts
6
7
  var TgpuVertexFormatDataImpl = class {
7
8
  [$internal] = {};
@@ -105,5 +106,6 @@ const unorm8x4_bgra = new TgpuVertexFormatDataImpl("unorm8x4-bgra");
105
106
  function isPackedData(value) {
106
107
  return isMarkedInternal(value) && packedFormats.has(value?.type);
107
108
  }
109
+
108
110
  //#endregion
109
- export { 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 };
111
+ export { 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 };
@@ -6,6 +6,8 @@ import { DualFn } from "../types.js";
6
6
  import { _ref } from "./ref.js";
7
7
  import { WgslExternalTexture, WgslStorageTexture, WgslTexture } from "./texture.js";
8
8
  import { ExtractInvalidSchemaError, Infer, InferGPU, InferGPURecord, InferInput, InferInputRecord, InferPartial, InferPartialRecord, InferPatch, InferPatchRecord, InferRecord, IsValidStorageSchema, IsValidUniformSchema, IsValidVertexSchema, MemIdentity, MemIdentityRecord } from "../shared/repr.js";
9
+ import "tsover-runtime";
10
+
9
11
  //#region src/data/wgslTypes.d.ts
10
12
  type DecoratedLocation<T extends BaseData> = Decorated<T, Location[]>;
11
13
  interface BaseData {
package/data/wgslTypes.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { $internal, isMarkedInternal } from "../shared/symbols.js";
2
2
  import "tsover-runtime";
3
+
3
4
  //#region src/data/wgslTypes.ts
4
5
  const Void = {
5
6
  [$internal]: {},
@@ -218,5 +219,6 @@ function isNaturallyEphemeral(schema) {
218
219
  function WORKAROUND_getSchema(vec) {
219
220
  return vec.schema;
220
221
  }
222
+
221
223
  //#endregion
222
- export { Void, WORKAROUND_getSchema, isAlignAttrib, isAtomic, isBool, isBuiltinAttrib, isDecorated, isFloat32VecInstance, isHalfPrecisionSchema, isInteger32VecInstance, isInterpolateAttrib, isLocationAttrib, isMat, isMat2x2f, isMat3x3f, isMatInstance, isNaturallyEphemeral, isNumericSchema, isPtr, isSizeAttrib, isUint32VecInstance, isVec, isVecBool, isVecInstance, isVoid, isWgslArray, isWgslData, isWgslStruct };
224
+ export { Void, WORKAROUND_getSchema, isAlignAttrib, isAtomic, isBool, isBuiltinAttrib, isDecorated, isFloat32VecInstance, isHalfPrecisionSchema, isInteger32VecInstance, isInterpolateAttrib, isLocationAttrib, isMat, isMat2x2f, isMat3x3f, isMatInstance, isNaturallyEphemeral, isNumericSchema, isPtr, isSizeAttrib, isUint32VecInstance, isVec, isVecBool, isVecInstance, isVoid, isWgslArray, isWgslData, isWgslStruct };
package/errors.d.ts CHANGED
@@ -5,6 +5,7 @@ import { TgpuBuffer } from "./core/buffer/buffer.js";
5
5
  import { BaseData } from "./data/wgslTypes.js";
6
6
 
7
7
  //#region src/errors.d.ts
8
+
8
9
  /**
9
10
  * An error that happens during resolution of WGSL code.
10
11
  * Contains a trace of all ancestor resolvables in
package/errors.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { DEV, TEST } from "./shared/env.js";
2
2
  import { getName, hasTinyestMetadata } from "./shared/meta.js";
3
+
3
4
  //#region src/errors.ts
4
5
  const prefix = "Invariant failed";
5
6
  /**
@@ -127,5 +128,6 @@ var SignatureNotSupportedError = class SignatureNotSupportedError extends Error
127
128
  Object.setPrototypeOf(this, SignatureNotSupportedError.prototype);
128
129
  }
129
130
  };
131
+
130
132
  //#endregion
131
- export { ExecutionError, IllegalBufferAccessError, IllegalVarAccessError, MissingBindGroupsError, MissingLinksError, MissingSlotValueError, MissingVertexBuffersError, NotUniformError, ResolutionError, SignatureNotSupportedError, WgslTypeError, invariant };
133
+ export { ExecutionError, IllegalBufferAccessError, IllegalVarAccessError, MissingBindGroupsError, MissingLinksError, MissingSlotValueError, MissingVertexBuffersError, NotUniformError, ResolutionError, SignatureNotSupportedError, WgslTypeError, invariant };
package/execMode.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { invariant } from "./errors.js";
2
2
  import { NormalState } from "./types.js";
3
+
3
4
  //#region src/execMode.ts
4
5
  /**
5
6
  * Used to track if the code we're currently
@@ -45,5 +46,6 @@ function getExecMode() {
45
46
  function inCodegenMode() {
46
47
  return resolutionCtx?.mode.type === "codegen";
47
48
  }
49
+
48
50
  //#endregion
49
- export { getExecMode, getResolutionCtx, inCodegenMode, isInsideTgpuFn, provideCtx, provideInsideTgpuFn, topLevelState };
51
+ export { getExecMode, getResolutionCtx, inCodegenMode, isInsideTgpuFn, provideCtx, provideInsideTgpuFn, topLevelState };
package/extension.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  //#region src/extension.d.ts
2
+
2
3
  interface StorageFlag {
3
4
  usableAsStorage: true;
4
5
  }
package/extension.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { getName } from "./shared/meta.js";
2
+
2
3
  //#region src/extension.ts
3
4
  function isUsableAsStorage(value) {
4
5
  return !!value?.usableAsStorage;
@@ -12,5 +13,6 @@ var NotStorageError = class NotStorageError extends Error {
12
13
  Object.setPrototypeOf(this, NotStorageError.prototype);
13
14
  }
14
15
  };
16
+
15
17
  //#endregion
16
- export { NotStorageError, isUsableAsStorage };
18
+ export { NotStorageError, isUsableAsStorage };
package/getGPUValue.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { $gpuValueOf } from "./shared/symbols.js";
2
+
2
3
  //#region src/getGPUValue.ts
3
4
  function getGPUValue(object) {
4
5
  return object?.[$gpuValueOf];
5
6
  }
7
+
6
8
  //#endregion
7
- export { getGPUValue };
9
+ export { getGPUValue };
package/index.js CHANGED
@@ -18,10 +18,9 @@ import { tgpu_exports } from "./tgpu.js";
18
18
  import { data_exports } from "./data/index.js";
19
19
  import { std_exports } from "./std/index.js";
20
20
  import { common_exports } from "./common/index.js";
21
+
21
22
  //#region src/index.js
22
- /**
23
- * @module typegpu
24
- */
25
23
  var src_default = tgpu_exports;
24
+
26
25
  //#endregion
27
- export { MissingBindGroupsError, MissingLinksError, 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, std_exports as std, tgpu_exports as tgpu };
26
+ export { MissingBindGroupsError, MissingLinksError, 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, std_exports as std, tgpu_exports as tgpu };
@@ -34,6 +34,7 @@ import { MissingBindGroupsError, MissingLinksError, MissingSlotValueError, Missi
34
34
  import { WgslGenerator } from "./tgsl/wgslGenerator.js";
35
35
 
36
36
  //#region src/indexNamedExports.d.ts
37
+
37
38
  /** @deprecated Use TgpuRenderPipeline.Descriptor */
38
39
  type TgpuRenderPipelineDescriptor = TgpuRenderPipeline.Descriptor;
39
40
  //#endregion
package/mathUtils.js CHANGED
@@ -8,5 +8,6 @@ const roundUp = (value, modulo) => {
8
8
  const invBitMask = ~bitMask;
9
9
  return (value & bitMask) === 0 ? value : (value & invBitMask) + modulo;
10
10
  };
11
+
11
12
  //#endregion
12
- export { roundUp };
13
+ export { roundUp };
package/memo.js CHANGED
@@ -18,5 +18,6 @@ var WeakMemo = class {
18
18
  return value;
19
19
  }
20
20
  };
21
+
21
22
  //#endregion
22
- export { WeakMemo };
23
+ export { WeakMemo };
package/nameRegistry.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { invariant } from "./errors.js";
2
+
2
3
  //#region src/nameRegistry.ts
3
4
  const bannedTokens = new Set([
4
5
  "alias",
@@ -443,5 +444,6 @@ var StrictNameRegistry = class extends NameRegistryImpl {
443
444
  return name;
444
445
  }
445
446
  };
447
+
446
448
  //#endregion
447
- export { RandomNameRegistry, StrictNameRegistry, isValidProp };
449
+ export { RandomNameRegistry, StrictNameRegistry, isValidProp };
package/package.js CHANGED
@@ -1,4 +1,5 @@
1
1
  //#region package.json
2
- var version = "0.11.1";
2
+ var version = "0.11.2";
3
+
3
4
  //#endregion
4
- export { version };
5
+ export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typegpu",
3
- "version": "0.11.1",
3
+ "version": "0.11.2",
4
4
  "description": "A thin layer between JS and WebGPU/WGSL that improves development experience and allows for faster iteration.",
5
5
  "keywords": [
6
6
  "compute",
@@ -1,6 +1,17 @@
1
+ import "./data/snippet.js";
2
+ import "./tgsl/shellless.js";
1
3
  import { LogResources } from "./tgsl/consoleLog/types.js";
4
+ import "./core/slot/slotTypes.js";
2
5
  import { TgpuBindGroup, TgpuBindGroupLayout } from "./tgpuBindGroupLayout.js";
6
+ import "./tgsl/shaderGenerator.js";
7
+ import "./core/root/rootTypes.js";
8
+ import "./types.js";
9
+ import "./data/wgslTypes.js";
10
+ import "./data/dataTypes.js";
11
+ import "./core/resolve/namespace.js";
12
+
3
13
  //#region src/resolutionCtx.d.ts
14
+
4
15
  /**
5
16
  * The results of a WGSL resolution.
6
17
  *
package/resolutionCtx.js CHANGED
@@ -23,8 +23,9 @@ import { ConfigurableImpl } from "./core/root/configurableImpl.js";
23
23
  import { naturalsExcept } from "./shared/generators.js";
24
24
  import { TgpuBindGroupImpl, bindGroupLayout } from "./tgpuBindGroupLayout.js";
25
25
  import { LogGeneratorImpl, LogGeneratorNullImpl } from "./tgsl/consoleLog/logGenerator.js";
26
- import wgslGenerator from "./tgsl/wgslGenerator.js";
26
+ import wgslGenerator_default from "./tgsl/wgslGenerator.js";
27
27
  import { FuncParameterType } from "tinyest";
28
+
28
29
  //#region src/resolutionCtx.ts
29
30
  /**
30
31
  * Inserted into bind group entry definitions that belong
@@ -215,7 +216,7 @@ var ResolutionCtxImpl = class {
215
216
  expectedType;
216
217
  constructor(opts) {
217
218
  this.enableExtensions = opts.enableExtensions;
218
- this.gen = opts.shaderGenerator ?? wgslGenerator;
219
+ this.gen = opts.shaderGenerator ?? wgslGenerator_default;
219
220
  this.#logGenerator = opts.root ? new LogGeneratorImpl(opts.root) : new LogGeneratorNullImpl();
220
221
  this.#namespaceInternal = opts.namespace[$internal];
221
222
  }
@@ -602,11 +603,12 @@ function resolve(item, options) {
602
603
  };
603
604
  }
604
605
  function isArgUsedInBody(argName, body) {
605
- return new RegExp(`\\b${argName}\\b`).test(body);
606
+ return (/* @__PURE__ */ new RegExp(`\\b${argName}\\b`)).test(body);
606
607
  }
607
608
  function resolveFunctionHeader(ctx, args, returnType) {
608
609
  const argList = args.map((arg) => `${arg.value}: ${ctx.resolve(arg.dataType).value}`).join(", ");
609
610
  return returnType.type !== "void" ? `(${argList}) -> ${getAttributesString(returnType)}${ctx.resolve(returnType).value} ` : `(${argList}) `;
610
611
  }
612
+
611
613
  //#endregion
612
- export { ResolutionCtxImpl, resolve };
614
+ export { ResolutionCtxImpl, resolve };
package/shared/env.js CHANGED
@@ -8,5 +8,6 @@
8
8
  */
9
9
  const DEV = process.env.NODE_ENV === "development";
10
10
  const TEST = process.env.NODE_ENV === "test";
11
+
11
12
  //#endregion
12
- export { DEV, TEST };
13
+ export { DEV, TEST };
@@ -9,5 +9,6 @@ function* naturalsExcept(excluded) {
9
9
  next++;
10
10
  }
11
11
  }
12
+
12
13
  //#endregion
13
- export { naturalsExcept };
14
+ export { naturalsExcept };
package/shared/meta.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { version } from "../package.js";
2
2
  import { DEV, TEST } from "./env.js";
3
3
  import { $getNameForward, isMarkedInternal } from "./symbols.js";
4
+
4
5
  //#region src/shared/meta.ts
5
6
  const globalWithMeta = globalThis;
6
7
  if (globalWithMeta.__TYPEGPU_VERSION__ !== void 0) console.warn(`Found duplicate TypeGPU version. First was ${globalWithMeta.__TYPEGPU_VERSION__}, this one is ${version}. This may cause unexpected behavior.`);
@@ -57,5 +58,6 @@ function setMetaData(definition, metaData) {
57
58
  ...metaData
58
59
  });
59
60
  }
61
+
60
62
  //#endregion
61
- export { PERF, getMetaData, getName, hasTinyestMetadata, isNamable, setName };
63
+ export { PERF, getMetaData, getName, hasTinyestMetadata, isNamable, setName };
package/shared/repr.d.ts CHANGED
@@ -7,6 +7,7 @@ import { TgpuTexture } from "../core/texture/texture.js";
7
7
  import { Disarray, Undecorate } from "../data/dataTypes.js";
8
8
 
9
9
  //#region src/shared/repr.d.ts
10
+
10
11
  /**
11
12
  * Extracts the inferred representation of a resource.
12
13
  * For inferring types as seen by the GPU, see {@link InferGPU}
@@ -1,4 +1,5 @@
1
1
  import { isMatInstance, isVecInstance } from "../data/wgslTypes.js";
2
+
2
3
  //#region src/shared/stringify.ts
3
4
  function safeStringify(item) {
4
5
  const asString = String(item);
@@ -16,5 +17,6 @@ function niceStringify(item) {
16
17
  if (item && typeof item === "object") return `{ ${Object.entries(item).map(([key, value]) => `${key}: ${niceStringify(value)}`).join(", ")} }`;
17
18
  return String(item);
18
19
  }
20
+
19
21
  //#endregion
20
- export { niceStringify, safeStringify };
22
+ export { niceStringify, safeStringify };
package/shared/symbols.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { version } from "../package.js";
2
+
2
3
  //#region src/shared/symbols.ts
3
4
  const $internal = Symbol(`typegpu:${version}:$internal`);
4
5
  /**
@@ -32,17 +33,48 @@ const $gpuCallable = Symbol(`typegpu:${version}:$gpuCallable`);
32
33
  * Type token for the inferred (CPU & GPU) representation of a resource
33
34
  */
34
35
  const $repr = Symbol(`typegpu:${version}:$repr`);
35
- Symbol(`typegpu:${version}:$gpuRepr`);
36
- Symbol(`typegpu:${version}:$reprPartial`);
37
- Symbol(`typegpu:${version}:$reprPatch`);
38
- Symbol(`typegpu:${version}:$inRepr`);
39
- Symbol(`typegpu:${version}:$memIdent`);
40
- Symbol(`typegpu:${version}:$invalidStorageSchema`);
41
- Symbol(`typegpu:${version}:$validUniformSchema`);
42
- Symbol(`typegpu:${version}:$validVertexSchema`);
43
- Symbol(`typegpu:${version}:$invalidSchemaReason`);
36
+ /**
37
+ * Type token for the inferred (GPU-side) representation of a resource
38
+ * If present, it shadows the value of `$repr` for GPU-side inference.
39
+ */
40
+ const $gpuRepr = Symbol(`typegpu:${version}:$gpuRepr`);
41
+ /**
42
+ * Type token for the inferred partial representation of a resource.
43
+ * If present, it shadows the value of `$repr` for use in partial IO.
44
+ */
45
+ const $reprPartial = Symbol(`typegpu:${version}:$reprPartial`);
46
+ /**
47
+ * Type token for the inferred patch representation of a resource.
48
+ * Used by the `buffer.patch` API with `Record<number, T>` sparse arrays.
49
+ */
50
+ const $reprPatch = Symbol(`typegpu:${version}:$reprPatch`);
51
+ /**
52
+ * Type token for the write-side (input) representation of a resource.
53
+ */
54
+ const $inRepr = Symbol(`typegpu:${version}:$inRepr`);
55
+ /**
56
+ * Type token holding schemas that are identical in memory layout.
57
+ */
58
+ const $memIdent = Symbol(`typegpu:${version}:$memIdent`);
59
+ /**
60
+ * Type token, signaling that a schema can be used in a storage buffer.
61
+ */
62
+ const $validStorageSchema = Symbol(`typegpu:${version}:$invalidStorageSchema`);
63
+ /**
64
+ * Type token, signaling that a schema can be used in a uniform buffer.
65
+ */
66
+ const $validUniformSchema = Symbol(`typegpu:${version}:$validUniformSchema`);
67
+ /**
68
+ * Type token, signaling that a schema can be used in a vertex buffer.
69
+ */
70
+ const $validVertexSchema = Symbol(`typegpu:${version}:$validVertexSchema`);
71
+ /**
72
+ * Type token, containing a reason for why the schema is invalid (if it is).
73
+ */
74
+ const $invalidSchemaReason = Symbol(`typegpu:${version}:$invalidSchemaReason`);
44
75
  function isMarkedInternal(value) {
45
76
  return !!value?.[$internal];
46
77
  }
78
+
47
79
  //#endregion
48
- export { $cast, $getNameForward, $gpuCallable, $gpuValueOf, $internal, $ownSnippet, $providing, $repr, $resolve, isMarkedInternal };
80
+ export { $cast, $getNameForward, $gpuCallable, $gpuValueOf, $internal, $ownSnippet, $providing, $repr, $resolve, isMarkedInternal };
@@ -2,5 +2,6 @@
2
2
  function assertExhaustive(x, location) {
3
3
  throw new Error(`Failed to handle ${x} at ${location}`);
4
4
  }
5
+
5
6
  //#endregion
6
- export { assertExhaustive };
7
+ export { assertExhaustive };
@@ -59,5 +59,6 @@ const kindToDefaultFormatMap = {
59
59
  vec3i: "sint32x3",
60
60
  vec4i: "sint32x4"
61
61
  };
62
+
62
63
  //#endregion
63
- export { kindToDefaultFormatMap, vertexFormats };
64
+ export { kindToDefaultFormatMap, vertexFormats };
package/std/array.d.ts CHANGED
@@ -2,6 +2,6 @@ import { DualFn } from "../types.js";
2
2
  import { _ref } from "../data/ref.js";
3
3
 
4
4
  //#region src/std/array.d.ts
5
- declare const arrayLength: DualFn;
5
+ declare const arrayLength: DualFn<(a: unknown[] | _ref<unknown[]>) => number>;
6
6
  //#endregion
7
7
  export { arrayLength };
package/std/array.js CHANGED
@@ -4,6 +4,7 @@ import { ptrFn } from "../data/ptr.js";
4
4
  import { isRef } from "../data/ref.js";
5
5
  import { abstractInt, u32 } from "../data/numeric.js";
6
6
  import { dualImpl } from "../core/function/dualImpl.js";
7
+
7
8
  //#region src/std/array.ts
8
9
  const sizeOfPointedToArray = (dataType) => isPtr(dataType) && isWgslArray(dataType.inner) ? dataType.inner.elementCount : 0;
9
10
  const arrayLength = dualImpl({
@@ -21,5 +22,6 @@ const arrayLength = dualImpl({
21
22
  return length > 0 ? `${length}` : stitch`arrayLength(${a})`;
22
23
  }
23
24
  });
25
+
24
26
  //#endregion
25
- export { arrayLength };
27
+ export { arrayLength };
package/std/atomic.d.ts CHANGED
@@ -3,17 +3,17 @@ import { atomicI32, atomicU32 } from "../data/wgslTypes.js";
3
3
 
4
4
  //#region src/std/atomic.d.ts
5
5
  type AnyAtomic = atomicI32 | atomicU32;
6
- declare const workgroupBarrier: DualFn;
7
- declare const storageBarrier: DualFn;
8
- declare const textureBarrier: DualFn;
9
- declare const atomicLoad: DualFn;
10
- declare const atomicStore: DualFn;
11
- declare const atomicAdd: DualFn;
12
- declare const atomicSub: DualFn;
13
- declare const atomicMax: DualFn;
14
- declare const atomicMin: DualFn;
15
- declare const atomicAnd: DualFn;
16
- declare const atomicOr: DualFn;
17
- declare const atomicXor: DualFn;
6
+ declare const workgroupBarrier: DualFn<(...args: never[]) => unknown>;
7
+ declare const storageBarrier: DualFn<(...args: never[]) => unknown>;
8
+ declare const textureBarrier: DualFn<(...args: never[]) => unknown>;
9
+ declare const atomicLoad: DualFn<(<T extends AnyAtomic>(a: T) => number)>;
10
+ declare const atomicStore: DualFn<(<T extends AnyAtomic>(a: T, value: number) => void)>;
11
+ declare const atomicAdd: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
12
+ declare const atomicSub: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
13
+ declare const atomicMax: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
14
+ declare const atomicMin: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
15
+ declare const atomicAnd: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
16
+ declare const atomicOr: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
17
+ declare const atomicXor: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
18
18
  //#endregion
19
19
  export { atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, storageBarrier, textureBarrier, workgroupBarrier };
package/std/atomic.js CHANGED
@@ -3,6 +3,7 @@ import { stitch } from "../core/resolve/stitch.js";
3
3
  import { safeStringify } from "../shared/stringify.js";
4
4
  import { i32, u32 } from "../data/numeric.js";
5
5
  import { dualImpl } from "../core/function/dualImpl.js";
6
+
6
7
  //#region src/std/atomic.ts
7
8
  const workgroupBarrier = dualImpl({
8
9
  name: "workgroupBarrier",
@@ -107,5 +108,6 @@ const atomicXor = dualImpl({
107
108
  signature: atomicOpSignature,
108
109
  codegenImpl: (_ctx, [a, value]) => stitch`atomicXor(&${a}, ${value})`
109
110
  });
111
+
110
112
  //#endregion
111
- export { atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, storageBarrier, textureBarrier, workgroupBarrier };
113
+ export { atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, storageBarrier, textureBarrier, workgroupBarrier };
package/std/bitcast.d.ts CHANGED
@@ -3,8 +3,8 @@ import { v2f, v2i, v2u, v3f, v3i, v3u, v4f, v4i, v4u } from "../data/wgslTypes.j
3
3
 
4
4
  //#region src/std/bitcast.d.ts
5
5
  type BitcastU32toF32Overload = ((value: number) => number) & ((value: v2u) => v2f) & ((value: v3u) => v3f) & ((value: v4u) => v4f);
6
- declare const bitcastU32toF32: DualFn;
6
+ declare const bitcastU32toF32: DualFn<BitcastU32toF32Overload>;
7
7
  type BitcastU32toI32Overload = ((value: number) => number) & ((value: v2u) => v2i) & ((value: v3u) => v3i) & ((value: v4u) => v4i);
8
- declare const bitcastU32toI32: DualFn;
8
+ declare const bitcastU32toI32: DualFn<BitcastU32toI32Overload>;
9
9
  //#endregion
10
10
  export { bitcastU32toF32, bitcastU32toI32 };
package/std/bitcast.js CHANGED
@@ -6,6 +6,7 @@ import { vec2f, vec2i, vec3f, vec3i, vec4f, vec4i } from "../data/vector.js";
6
6
  import { dualImpl } from "../core/function/dualImpl.js";
7
7
  import { bitcastU32toF32Impl, bitcastU32toI32Impl } from "../data/numberOps.js";
8
8
  import { VectorOps } from "../data/vectorOps.js";
9
+
9
10
  //#region src/std/bitcast.ts
10
11
  const bitcastU32toF32 = dualImpl({
11
12
  name: "bitcastU32toF32",
@@ -37,5 +38,6 @@ const bitcastU32toI32 = dualImpl({
37
38
  };
38
39
  }
39
40
  });
41
+
40
42
  //#endregion
41
- export { bitcastU32toF32, bitcastU32toI32 };
43
+ export { bitcastU32toF32, bitcastU32toI32 };