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.
- package/_virtual/{_rolldown/runtime.js → rolldown_runtime.js} +4 -4
- package/builtin.js +3 -1
- package/common/fullScreenTriangle.d.ts +6 -1
- package/common/fullScreenTriangle.js +3 -1
- package/common/index.js +5 -3
- package/common/writeSoA.js +3 -1
- package/core/buffer/buffer.d.ts +3 -0
- package/core/buffer/buffer.js +5 -3
- package/core/buffer/bufferShorthand.d.ts +2 -0
- package/core/buffer/bufferShorthand.js +3 -1
- package/core/buffer/bufferUsage.d.ts +2 -0
- package/core/buffer/bufferUsage.js +3 -1
- package/core/constant/tgpuConstant.d.ts +2 -1
- package/core/constant/tgpuConstant.js +3 -1
- package/core/declare/tgpuDeclare.js +3 -1
- package/core/function/autoIO.d.ts +3 -0
- package/core/function/autoIO.js +3 -1
- package/core/function/comptime.js +3 -1
- package/core/function/createCallableSchema.js +3 -1
- package/core/function/dualImpl.js +3 -1
- package/core/function/entryInputRouter.js +3 -1
- package/core/function/extractArgs.js +2 -1
- package/core/function/fnCore.js +8 -6
- package/core/function/fnTypes.d.ts +2 -0
- package/core/function/ioSchema.d.ts +1 -0
- package/core/function/ioSchema.js +3 -1
- package/core/function/shelllessImpl.d.ts +1 -0
- package/core/function/shelllessImpl.js +3 -1
- package/core/function/templateUtils.js +2 -1
- package/core/function/tgpuComputeFn.d.ts +1 -0
- package/core/function/tgpuComputeFn.js +3 -1
- package/core/function/tgpuFn.d.ts +1 -0
- package/core/function/tgpuFn.js +16 -14
- package/core/function/tgpuFragmentFn.js +3 -1
- package/core/function/tgpuVertexFn.js +3 -1
- package/core/pipeline/applyPipelineState.js +3 -1
- package/core/pipeline/computePipeline.d.ts +4 -0
- package/core/pipeline/computePipeline.js +8 -6
- package/core/pipeline/connectAttachmentToShader.js +3 -1
- package/core/pipeline/connectTargetsToShader.js +3 -1
- package/core/pipeline/limitsOverflow.js +2 -1
- package/core/pipeline/pipelineUtils.js +6 -4
- package/core/pipeline/renderPipeline.js +21 -19
- package/core/pipeline/timeable.d.ts +2 -0
- package/core/pipeline/timeable.js +3 -1
- package/core/pipeline/typeGuards.js +3 -1
- package/core/querySet/querySet.d.ts +2 -0
- package/core/querySet/querySet.js +3 -1
- package/core/rawCodeSnippet/tgpuRawCodeSnippet.d.ts +1 -0
- package/core/rawCodeSnippet/tgpuRawCodeSnippet.js +3 -1
- package/core/resolve/externals.d.ts +3 -0
- package/core/resolve/externals.js +7 -5
- package/core/resolve/namespace.js +6 -4
- package/core/resolve/resolveData.js +3 -1
- package/core/resolve/stitch.js +3 -1
- package/core/resolve/tgpuResolve.js +7 -5
- package/core/root/configurableImpl.js +3 -1
- package/core/root/init.d.ts +10 -2
- package/core/root/init.js +4 -2
- package/core/root/rootTypes.d.ts +11 -11
- package/core/sampler/sampler.d.ts +4 -0
- package/core/sampler/sampler.js +3 -1
- package/core/simulate/tgpuSimulate.js +6 -4
- package/core/slot/accessor.d.ts +4 -0
- package/core/slot/accessor.js +3 -1
- package/core/slot/internalSlots.js +3 -1
- package/core/slot/lazy.js +3 -1
- package/core/slot/slot.js +3 -1
- package/core/slot/slotTypes.js +3 -1
- package/core/texture/externalTexture.d.ts +6 -0
- package/core/texture/externalTexture.js +3 -1
- package/core/texture/texture.d.ts +4 -0
- package/core/texture/texture.js +6 -4
- package/core/texture/textureFormats.js +3 -1
- package/core/texture/textureUtils.js +3 -1
- package/core/texture/usageExtension.js +3 -1
- package/core/unroll/tgpuUnroll.d.ts +3 -1
- package/core/unroll/tgpuUnroll.js +3 -1
- package/core/valueProxyUtils.js +7 -5
- package/core/variable/tgpuVariable.d.ts +3 -1
- package/core/variable/tgpuVariable.js +3 -1
- package/core/vertexLayout/connectAttributesToShader.js +3 -1
- package/core/vertexLayout/vertexAttribute.d.ts +1 -0
- package/core/vertexLayout/vertexLayout.js +7 -5
- package/data/alignIO.js +3 -1
- package/data/alignmentOf.d.ts +2 -0
- package/data/alignmentOf.js +3 -1
- package/data/array.js +3 -1
- package/data/atomic.d.ts +1 -0
- package/data/atomic.js +3 -1
- package/data/attributes.js +7 -5
- package/data/autoStruct.d.ts +3 -1
- package/data/autoStruct.js +3 -1
- package/data/compiledIO.js +39 -37
- package/data/dataIO.js +22 -20
- package/data/dataTypes.d.ts +9 -4
- package/data/dataTypes.js +3 -1
- package/data/deepEqual.d.ts +1 -0
- package/data/deepEqual.js +3 -1
- package/data/disarray.d.ts +3 -1
- package/data/disarray.js +3 -1
- package/data/getLongestContiguousPrefix.d.ts +2 -0
- package/data/getLongestContiguousPrefix.js +3 -1
- package/data/index.js +5 -6
- package/data/isContiguous.d.ts +2 -0
- package/data/isContiguous.js +3 -1
- package/data/matrix.d.ts +11 -8
- package/data/matrix.js +3 -1
- package/data/numberOps.js +2 -1
- package/data/numeric.d.ts +1 -0
- package/data/numeric.js +3 -1
- package/data/offsetUtils.d.ts +1 -0
- package/data/offsetUtils.js +3 -1
- package/data/offsets.js +5 -3
- package/data/partialIO.js +3 -1
- package/data/ptr.d.ts +1 -0
- package/data/ptr.js +3 -1
- package/data/ref.d.ts +3 -0
- package/data/ref.js +5 -3
- package/data/sampler.js +3 -1
- package/data/schemaCallWrapper.js +3 -1
- package/data/schemaMemoryLayout.js +3 -1
- package/data/sizeOf.d.ts +2 -0
- package/data/sizeOf.js +3 -1
- package/data/snippet.js +3 -1
- package/data/struct.d.ts +1 -0
- package/data/struct.js +3 -1
- package/data/texture.js +3 -1
- package/data/unstruct.d.ts +1 -0
- package/data/unstruct.js +3 -1
- package/data/vector.d.ts +1 -0
- package/data/vector.js +3 -1
- package/data/vectorImpl.js +3 -1
- package/data/vectorOps.js +3 -1
- package/data/vertexFormatData.js +3 -1
- package/data/wgslTypes.d.ts +2 -0
- package/data/wgslTypes.js +3 -1
- package/errors.d.ts +1 -0
- package/errors.js +3 -1
- package/execMode.js +3 -1
- package/extension.d.ts +1 -0
- package/extension.js +3 -1
- package/getGPUValue.js +3 -1
- package/index.js +3 -4
- package/indexNamedExports.d.ts +1 -0
- package/mathUtils.js +2 -1
- package/memo.js +2 -1
- package/nameRegistry.js +3 -1
- package/package.js +3 -2
- package/package.json +1 -1
- package/resolutionCtx.d.ts +11 -0
- package/resolutionCtx.js +6 -4
- package/shared/env.js +2 -1
- package/shared/generators.js +2 -1
- package/shared/meta.js +3 -1
- package/shared/repr.d.ts +1 -0
- package/shared/stringify.js +3 -1
- package/shared/symbols.js +42 -10
- package/shared/utilityTypes.js +2 -1
- package/shared/vertexFormat.js +2 -1
- package/std/array.d.ts +1 -1
- package/std/array.js +3 -1
- package/std/atomic.d.ts +12 -12
- package/std/atomic.js +3 -1
- package/std/bitcast.d.ts +2 -2
- package/std/bitcast.js +3 -1
- package/std/boolean.d.ts +15 -14
- package/std/boolean.js +3 -1
- package/std/derivative.d.ts +9 -9
- package/std/derivative.js +3 -1
- package/std/discard.d.ts +1 -1
- package/std/discard.js +3 -1
- package/std/extensions.d.ts +3 -1
- package/std/extensions.js +3 -1
- package/std/index.js +5 -3
- package/std/matrix.d.ts +6 -5
- package/std/matrix.js +3 -1
- package/std/numeric.d.ts +132 -78
- package/std/numeric.js +7 -5
- package/std/operators.d.ts +8 -8
- package/std/operators.js +7 -5
- package/std/packing.d.ts +5 -4
- package/std/packing.js +3 -1
- package/std/range.d.ts +3 -1
- package/std/range.js +3 -1
- package/std/subgroup.d.ts +21 -21
- package/std/subgroup.js +3 -1
- package/std/texture.d.ts +11 -11
- package/std/texture.js +9 -7
- package/tgpu.js +5 -3
- package/tgpuBindGroupLayout.d.ts +11 -7
- package/tgpuBindGroupLayout.js +3 -1
- package/tgpuUnstable.js +5 -3
- package/tgsl/accessIndex.js +3 -1
- package/tgsl/accessProp.js +3 -1
- package/tgsl/consoleLog/deserializers.js +3 -1
- package/tgsl/consoleLog/logGenerator.js +3 -1
- package/tgsl/consoleLog/serializers.js +3 -1
- package/tgsl/consoleLog/types.d.ts +3 -0
- package/tgsl/consoleLog/types.js +2 -1
- package/tgsl/conversion.js +3 -1
- package/tgsl/forOfUtils.js +3 -1
- package/tgsl/generationHelpers.d.ts +1 -0
- package/tgsl/generationHelpers.js +3 -1
- package/tgsl/math.js +3 -1
- package/tgsl/shaderGenerator.d.ts +2 -0
- package/tgsl/shaderGenerator_members.js +5 -3
- package/tgsl/shellless.js +3 -1
- package/tgsl/wgslGenerator.js +21 -18
- package/types.d.ts +0 -1
- package/types.js +3 -1
- 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
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 };
|
package/data/unstruct.d.ts
CHANGED
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 };
|
package/data/vectorImpl.js
CHANGED
|
@@ -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 };
|
package/data/vertexFormatData.js
CHANGED
|
@@ -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 };
|
package/data/wgslTypes.d.ts
CHANGED
|
@@ -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
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
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
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 };
|
package/indexNamedExports.d.ts
CHANGED
|
@@ -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
package/memo.js
CHANGED
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
package/package.json
CHANGED
package/resolutionCtx.d.ts
CHANGED
|
@@ -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
|
|
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 ??
|
|
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
package/shared/generators.js
CHANGED
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}
|
package/shared/stringify.js
CHANGED
|
@@ -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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
Symbol(`typegpu:${version}:$
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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 };
|
package/shared/utilityTypes.js
CHANGED
package/shared/vertexFormat.js
CHANGED
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 };
|