typegpu 0.11.9 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builtin.d.ts +51 -53
- package/builtin.js +30 -34
- package/common/fullScreenTriangle.d.ts +2 -10
- package/common/fullScreenTriangle.js +20 -28
- package/common/index.d.ts +2 -9
- package/common/index.js +3 -12
- package/common/writeSoA.d.ts +11 -12
- package/common/writeSoA.js +88 -76
- package/core/buffer/buffer.d.ts +79 -62
- package/core/buffer/buffer.js +279 -205
- package/core/buffer/bufferBinding.d.ts +71 -0
- package/core/buffer/bufferBinding.js +154 -0
- package/core/buffer/bufferUsage.d.ts +14 -45
- package/core/buffer/bufferUsage.js +1 -171
- package/core/buffer/laidOutBuffer.d.ts +25 -0
- package/core/buffer/laidOutBuffer.js +55 -0
- package/core/commandEncoder/attachments.d.ts +125 -0
- package/core/commandEncoder/attachments.js +29 -0
- package/core/commandEncoder/commandEncoder.d.ts +53 -0
- package/core/commandEncoder/commandEncoder.js +56 -0
- package/core/commandEncoder/computePass.d.ts +58 -0
- package/core/commandEncoder/computePass.js +63 -0
- package/core/commandEncoder/renderPass.d.ts +121 -0
- package/core/commandEncoder/renderPass.js +196 -0
- package/core/constant/tgpuConstant.d.ts +26 -26
- package/core/constant/tgpuConstant.js +76 -65
- package/core/declare/tgpuDeclare.d.ts +3 -6
- package/core/declare/tgpuDeclare.js +36 -36
- package/core/function/autoIO.d.ts +61 -33
- package/core/function/autoIO.js +68 -73
- package/core/function/comptime.d.ts +11 -13
- package/core/function/comptime.js +60 -52
- package/core/function/createCallableSchema.d.ts +16 -0
- package/core/function/createCallableSchema.js +50 -40
- package/core/function/dualImpl.d.ts +44 -0
- package/core/function/dualImpl.js +71 -50
- package/core/function/entryInputRouter.d.ts +26 -0
- package/core/function/entryInputRouter.js +31 -33
- package/core/function/extractArgs.d.ts +38 -0
- package/core/function/extractArgs.js +202 -200
- package/core/function/fnCore.d.ts +44 -5
- package/core/function/fnCore.js +148 -93
- package/core/function/fnTypes.d.ts +31 -29
- package/core/function/fnTypes.js +1 -0
- package/core/function/ioSchema.d.ts +12 -10
- package/core/function/ioSchema.js +65 -47
- package/core/function/shelllessImpl.d.ts +9 -12
- package/core/function/shelllessImpl.js +17 -22
- package/core/function/templateUtils.d.ts +2 -0
- package/core/function/templateUtils.js +9 -8
- package/core/function/tgpuComputeFn.d.ts +26 -28
- package/core/function/tgpuComputeFn.js +47 -48
- package/core/function/tgpuFn.d.ts +34 -37
- package/core/function/tgpuFn.js +179 -153
- package/core/function/tgpuFragmentFn.d.ts +52 -53
- package/core/function/tgpuFragmentFn.js +63 -56
- package/core/function/tgpuVertexFn.d.ts +36 -39
- package/core/function/tgpuVertexFn.js +56 -53
- package/core/pipeline/computePipeline.d.ts +141 -53
- package/core/pipeline/computePipeline.js +291 -225
- package/core/pipeline/connectAttachmentToShader.d.ts +4 -0
- package/core/pipeline/connectAttachmentToShader.js +25 -22
- package/core/pipeline/connectTargetsToShader.d.ts +3 -0
- package/core/pipeline/connectTargetsToShader.js +29 -27
- package/core/pipeline/drawState.d.ts +52 -0
- package/core/pipeline/drawState.js +225 -0
- package/core/pipeline/limitsOverflow.d.ts +2 -0
- package/core/pipeline/limitsOverflow.js +13 -10
- package/core/pipeline/performanceTracker.d.ts +14 -0
- package/core/pipeline/performanceTracker.js +34 -0
- package/core/pipeline/pipelineUtils.d.ts +18 -0
- package/core/pipeline/pipelineUtils.js +54 -25
- package/core/pipeline/priors.d.ts +1 -0
- package/core/pipeline/priors.js +12 -0
- package/core/pipeline/renderPipeline.d.ts +246 -261
- package/core/pipeline/renderPipeline.js +487 -480
- package/core/pipeline/timeable.d.ts +28 -18
- package/core/pipeline/timeable.js +90 -52
- package/core/pipeline/typeGuards.d.ts +17 -0
- package/core/pipeline/typeGuards.js +52 -22
- package/core/querySet/querySet.d.ts +26 -21
- package/core/querySet/querySet.js +127 -103
- package/core/rawCodeSnippet/tgpuRawCodeSnippet.d.ts +13 -18
- package/core/rawCodeSnippet/tgpuRawCodeSnippet.js +89 -90
- package/core/resolve/externals.d.ts +25 -8
- package/core/resolve/externals.js +78 -54
- package/core/resolve/namespace.d.ts +22 -25
- package/core/resolve/namespace.js +16 -21
- package/core/resolve/resolvableString.d.ts +7 -0
- package/core/resolve/resolvableString.js +13 -0
- package/core/resolve/resolveData.d.ts +10 -0
- package/core/resolve/resolveData.js +162 -121
- package/core/resolve/stitch.d.ts +8 -0
- package/core/resolve/stitch.js +23 -21
- package/core/resolve/tgpuResolve.d.ts +55 -53
- package/core/resolve/tgpuResolve.js +106 -53
- package/core/root/configurableImpl.d.ts +10 -0
- package/core/root/configurableImpl.js +17 -19
- package/core/root/init.d.ts +76 -38
- package/core/root/init.js +346 -455
- package/core/root/rootTypes.d.ts +461 -636
- package/core/root/rootTypes.js +1 -0
- package/core/sampler/sampler.d.ts +50 -31
- package/core/sampler/sampler.js +120 -113
- package/core/simulate/tgpuSimulate.d.ts +9 -12
- package/core/simulate/tgpuSimulate.js +68 -71
- package/core/slot/accessor.d.ts +36 -13
- package/core/slot/accessor.js +138 -91
- package/core/slot/internalSlots.d.ts +2 -0
- package/core/slot/internalSlots.js +1 -6
- package/core/slot/lazy.d.ts +2 -6
- package/core/slot/lazy.js +71 -39
- package/core/slot/slot.d.ts +2 -6
- package/core/slot/slot.js +45 -38
- package/core/slot/slotTypes.d.ts +78 -80
- package/core/slot/slotTypes.js +11 -16
- package/core/texture/externalTexture.d.ts +20 -11
- package/core/texture/externalTexture.js +46 -46
- package/core/texture/texture.d.ts +152 -97
- package/core/texture/texture.js +407 -314
- package/core/texture/textureFormats.d.ts +42 -23
- package/core/texture/textureFormats.js +104 -75
- package/core/texture/textureProps.d.ts +7 -10
- package/core/texture/textureProps.js +1 -0
- package/core/texture/textureUtils.d.ts +8 -0
- package/core/texture/textureUtils.js +185 -179
- package/core/texture/usageExtension.d.ts +21 -18
- package/core/texture/usageExtension.js +13 -17
- package/core/unroll/tgpuUnroll.d.ts +20 -19
- package/core/unroll/tgpuUnroll.js +82 -91
- package/core/valueProxyUtils.d.ts +3 -0
- package/core/valueProxyUtils.js +52 -41
- package/core/variable/tgpuVariable.d.ts +26 -27
- package/core/variable/tgpuVariable.js +93 -96
- package/core/vertexLayout/connectAttributesToShader.d.ts +9 -0
- package/core/vertexLayout/connectAttributesToShader.js +61 -56
- package/core/vertexLayout/vertexAttribute.d.ts +21 -17
- package/core/vertexLayout/vertexAttribute.js +1 -0
- package/core/vertexLayout/vertexLayout.d.ts +24 -18
- package/core/vertexLayout/vertexLayout.js +130 -99
- package/core/whitespaces.d.ts +2 -0
- package/core/whitespaces.js +16 -0
- package/data/alignIO.d.ts +7 -0
- package/data/alignIO.js +13 -13
- package/data/alignmentOf.d.ts +5 -8
- package/data/alignmentOf.js +90 -75
- package/data/array.d.ts +6 -9
- package/data/array.js +48 -40
- package/data/atomic.d.ts +2 -7
- package/data/atomic.js +26 -23
- package/data/attributes.d.ts +19 -21
- package/data/attributes.js +192 -132
- package/data/autoStruct.d.ts +36 -3
- package/data/autoStruct.js +84 -81
- package/data/compiledIO.d.ts +5 -0
- package/data/compiledIO.js +231 -215
- package/data/dataIO.d.ts +13 -11
- package/data/dataIO.js +643 -589
- package/data/dataTypes.d.ts +83 -65
- package/data/dataTypes.js +66 -68
- package/data/deepEqual.d.ts +2 -7
- package/data/deepEqual.js +80 -55
- package/data/disarray.d.ts +6 -10
- package/data/disarray.js +52 -46
- package/data/float16Conversion.d.ts +4 -0
- package/data/float16Conversion.js +7 -0
- package/data/getLongestContiguousPrefix.d.ts +4 -8
- package/data/getLongestContiguousPrefix.js +6 -11
- package/data/index.d.ts +30 -31
- package/data/index.js +39 -172
- package/data/instanceToSchema.d.ts +24 -27
- package/data/instanceToSchema.js +1 -0
- package/data/isContiguous.d.ts +4 -8
- package/data/isContiguous.js +6 -11
- package/data/matrix.d.ts +21 -21
- package/data/matrix.js +513 -505
- package/data/numberOps.d.ts +6 -0
- package/data/numberOps.js +26 -20
- package/data/numeric.d.ts +21 -12
- package/data/numeric.js +287 -197
- package/data/offsetUtils.d.ts +9 -13
- package/data/offsetUtils.js +204 -144
- package/data/offsets.d.ts +8 -0
- package/data/offsets.js +33 -33
- package/data/partialIO.d.ts +13 -8
- package/data/partialIO.js +124 -113
- package/data/ptr.d.ts +12 -12
- package/data/ptr.js +42 -44
- package/data/ref.d.ts +40 -27
- package/data/ref.js +125 -95
- package/data/sampler.d.ts +99 -101
- package/data/sampler.js +17 -21
- package/data/schemaCallWrapper.d.ts +19 -0
- package/data/schemaCallWrapper.js +31 -26
- package/data/schemaMemoryLayout.d.ts +8 -0
- package/data/schemaMemoryLayout.js +213 -185
- package/data/sizeOf.d.ts +4 -8
- package/data/sizeOf.js +6 -11
- package/data/snippet.d.ts +96 -20
- package/data/snippet.js +75 -86
- package/data/struct.d.ts +4 -7
- package/data/struct.js +51 -39
- package/data/texture.d.ts +253 -250
- package/data/texture.js +238 -200
- package/data/unstruct.d.ts +2 -7
- package/data/unstruct.js +43 -37
- package/data/vector.d.ts +33 -21
- package/data/vector.js +234 -221
- package/data/vectorImpl.d.ts +231 -0
- package/data/vectorImpl.js +563 -515
- package/data/vectorOps.d.ts +63 -0
- package/data/vectorOps.js +642 -630
- package/data/vertexFormatData.d.ts +181 -184
- package/data/vertexFormatData.js +104 -106
- package/data/wgslTypes.d.ts +665 -600
- package/data/wgslTypes.js +220 -198
- package/errors.d.ts +50 -24
- package/errors.js +146 -126
- package/execMode.d.ts +16 -0
- package/execMode.js +47 -40
- package/extension.d.ts +13 -8
- package/extension.js +10 -16
- package/getGPUValue.d.ts +1 -0
- package/getGPUValue.js +2 -7
- package/index.d.ts +28 -68
- package/index.js +8 -28
- package/indexNamedExports.d.ts +69 -42
- package/indexNamedExports.js +25 -0
- package/internal.d.ts +16 -0
- package/internal.js +12 -0
- package/mathUtils.d.ts +5 -0
- package/mathUtils.js +7 -11
- package/memo.d.ts +11 -0
- package/memo.js +20 -22
- package/minify.d.ts +5 -0
- package/minify.js +93 -0
- package/nameUtils.d.ts +29 -0
- package/nameUtils.js +427 -394
- package/package.json +5 -1
- package/resolutionCtx.d.ts +162 -22
- package/resolutionCtx.js +911 -629
- package/serial/registry.d.ts +15 -0
- package/serial/registry.js +106 -0
- package/serial/restore.d.ts +49 -0
- package/serial/restore.js +68 -0
- package/serial/schema.d.ts +58 -0
- package/serial/schema.js +209 -0
- package/serial/types.d.ts +5 -0
- package/serial/types.js +1 -0
- package/shared/env.d.ts +9 -0
- package/shared/env.js +9 -12
- package/shared/generators.d.ts +4 -0
- package/shared/generators.js +10 -12
- package/shared/meta.d.ts +29 -14
- package/shared/meta.js +71 -55
- package/shared/normalizeMetadata.d.ts +32 -27
- package/shared/normalizeMetadata.js +23 -36
- package/shared/repr.d.ts +73 -55
- package/shared/repr.js +1 -0
- package/shared/soul.d.ts +17 -0
- package/shared/soul.js +1 -0
- package/shared/stringify.d.ts +2 -0
- package/shared/stringify.js +29 -20
- package/shared/symbols.d.ts +26 -20
- package/shared/symbols.js +79 -79
- package/shared/tseynit.d.ts +2 -0
- package/shared/tseynit.js +160 -75
- package/shared/utilityTypes.d.ts +30 -14
- package/shared/utilityTypes.js +2 -6
- package/shared/vertexFormat.d.ts +41 -43
- package/shared/vertexFormat.js +59 -62
- package/std/array.d.ts +2 -7
- package/std/array.js +18 -23
- package/std/atomic.d.ts +14 -18
- package/std/atomic.js +96 -95
- package/std/bitcast.d.ts +193 -10
- package/std/bitcast.js +309 -39
- package/std/boolean.d.ts +19 -33
- package/std/boolean.js +296 -288
- package/std/copy.d.ts +2 -7
- package/std/copy.js +27 -24
- package/std/derivative.d.ts +11 -15
- package/std/derivative.js +56 -79
- package/std/discard.d.ts +1 -6
- package/std/discard.js +7 -14
- package/std/environment.d.ts +19 -14
- package/std/environment.js +71 -51
- package/std/extensions.d.ts +2 -8
- package/std/extensions.js +10 -11
- package/std/index.d.ts +20 -24
- package/std/index.js +32 -187
- package/std/matrix.d.ts +6 -12
- package/std/matrix.js +60 -69
- package/std/numeric.d.ts +143 -146
- package/std/numeric.js +858 -749
- package/std/operators.d.ts +19 -27
- package/std/operators.js +227 -193
- package/std/packing.d.ts +5 -11
- package/std/packing.js +67 -75
- package/std/range.d.ts +6 -11
- package/std/range.js +48 -36
- package/std/subgroup.d.ts +33 -37
- package/std/subgroup.js +180 -217
- package/std/texture.d.ts +70 -38
- package/std/texture.js +176 -172
- package/taskQueue.d.ts +6 -0
- package/taskQueue.js +30 -0
- package/tgpu.d.ts +16 -0
- package/tgpu.js +17 -44
- package/tgpuBindGroupLayout.d.ts +132 -152
- package/tgpuBindGroupLayout.js +346 -268
- package/tgpuLogger.d.ts +34 -0
- package/tgpuLogger.js +63 -0
- package/tgpuUnstable.d.ts +16 -22
- package/tgpuUnstable.js +13 -35
- package/tgsl/accessIndex.d.ts +2 -0
- package/tgsl/accessIndex.js +76 -33
- package/tgsl/accessProp.d.ts +2 -0
- package/tgsl/accessProp.js +142 -101
- package/tgsl/accessStructProp.d.ts +5 -0
- package/tgsl/accessStructProp.js +13 -15
- package/tgsl/consoleLog/deserializers.d.ts +13 -0
- package/tgsl/consoleLog/deserializers.js +119 -103
- package/tgsl/consoleLog/logGenerator.d.ts +21 -0
- package/tgsl/consoleLog/logGenerator.js +85 -80
- package/tgsl/consoleLog/serializers.d.ts +21 -0
- package/tgsl/consoleLog/serializers.js +119 -100
- package/tgsl/consoleLog/types.d.ts +40 -39
- package/tgsl/consoleLog/types.js +1 -0
- package/tgsl/conversion.d.ts +33 -0
- package/tgsl/conversion.js +271 -216
- package/tgsl/forOfUtils.d.ts +15 -0
- package/tgsl/forOfUtils.js +85 -70
- package/tgsl/generationHelpers.d.ts +22 -39
- package/tgsl/generationHelpers.js +85 -58
- package/tgsl/infixDispatch.d.ts +70 -0
- package/tgsl/infixDispatch.js +48 -46
- package/tgsl/jsPolyfills.d.ts +16 -19
- package/tgsl/jsPolyfills.js +44 -42
- package/tgsl/makeDereferenceable.d.ts +48 -0
- package/tgsl/makeDereferenceable.js +86 -0
- package/tgsl/makeResolvable.d.ts +22 -0
- package/tgsl/makeResolvable.js +33 -0
- package/tgsl/shaderGenerator.d.ts +77 -17
- package/tgsl/shaderGenerator.js +1 -0
- package/tgsl/shellless.d.ts +6 -9
- package/tgsl/shellless.js +73 -43
- package/tgsl/wgslGenerator.d.ts +66 -59
- package/tgsl/wgslGenerator.js +1344 -760
- package/types.d.ts +287 -222
- package/types.js +61 -44
- package/unwrapper.d.ts +31 -26
- package/unwrapper.js +1 -0
- package/wgslExtensions.d.ts +3 -5
- package/wgslExtensions.js +12 -16
- package/_virtual/rolldown_runtime.js +0 -13
- package/core/buffer/bufferShorthand.d.ts +0 -50
- package/core/buffer/bufferShorthand.js +0 -55
- package/core/pipeline/applyPipelineState.js +0 -37
- package/package.js +0 -5
- package/tgsl/shaderGenerator_members.d.ts +0 -33
- package/tgsl/shaderGenerator_members.js +0 -12
package/data/vector.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import { Vec2b, Vec2f, Vec2h, Vec2i, Vec2u, Vec3b, Vec3f, Vec3h, Vec3i, Vec3u, Vec4b, Vec4f, Vec4h, Vec4i, Vec4u } from
|
|
2
|
-
|
|
3
|
-
//#region src/data/vector.d.ts
|
|
4
|
-
|
|
1
|
+
import type { Vec2b, Vec2f, Vec2h, Vec2i, Vec2u, Vec3b, Vec3f, Vec3h, Vec3i, Vec3u, Vec4b, Vec4f, Vec4h, Vec4i, Vec4u } from './wgslTypes.ts';
|
|
5
2
|
/**
|
|
6
3
|
* Schema representing vec2f - a vector with 2 elements of type f32.
|
|
7
4
|
* Also a constructor function for this vector value.
|
|
@@ -14,7 +11,7 @@ import { Vec2b, Vec2f, Vec2h, Vec2i, Vec2u, Vec3b, Vec3f, Vec3h, Vec3i, Vec3u, V
|
|
|
14
11
|
* @example
|
|
15
12
|
* const buffer = root.createBuffer(d.vec2f, d.vec2f(0, 1)); // buffer holding a d.vec2f value, with an initial value of vec2f(0, 1);
|
|
16
13
|
*/
|
|
17
|
-
declare const vec2f: Vec2f;
|
|
14
|
+
export declare const vec2f: Vec2f;
|
|
18
15
|
/**
|
|
19
16
|
* Schema representing vec2h - a vector with 2 elements of type f16.
|
|
20
17
|
* Also a constructor function for this vector value.
|
|
@@ -27,7 +24,7 @@ declare const vec2f: Vec2f;
|
|
|
27
24
|
* @example
|
|
28
25
|
* const buffer = root.createBuffer(d.vec2h, d.vec2h(0, 1)); // buffer holding a d.vec2h value, with an initial value of vec2h(0, 1);
|
|
29
26
|
*/
|
|
30
|
-
declare const vec2h: Vec2h;
|
|
27
|
+
export declare const vec2h: Vec2h;
|
|
31
28
|
/**
|
|
32
29
|
* Schema representing vec2i - a vector with 2 elements of type i32.
|
|
33
30
|
* Also a constructor function for this vector value.
|
|
@@ -40,7 +37,7 @@ declare const vec2h: Vec2h;
|
|
|
40
37
|
* @example
|
|
41
38
|
* const buffer = root.createBuffer(d.vec2i, d.vec2i(0, 1)); // buffer holding a d.vec2i value, with an initial value of vec2i(0, 1);
|
|
42
39
|
*/
|
|
43
|
-
declare const vec2i: Vec2i;
|
|
40
|
+
export declare const vec2i: Vec2i;
|
|
44
41
|
/**
|
|
45
42
|
* Schema representing vec2u - a vector with 2 elements of type u32.
|
|
46
43
|
* Also a constructor function for this vector value.
|
|
@@ -53,7 +50,7 @@ declare const vec2i: Vec2i;
|
|
|
53
50
|
* @example
|
|
54
51
|
* const buffer = root.createBuffer(d.vec2u, d.vec2u(0, 1)); // buffer holding a d.vec2u value, with an initial value of vec2u(0, 1);
|
|
55
52
|
*/
|
|
56
|
-
declare const vec2u: Vec2u;
|
|
53
|
+
export declare const vec2u: Vec2u;
|
|
57
54
|
/**
|
|
58
55
|
* Schema representing `vec2<bool>` - a vector with 2 elements of type `bool`.
|
|
59
56
|
* Also a constructor function for this vector value.
|
|
@@ -63,7 +60,7 @@ declare const vec2u: Vec2u;
|
|
|
63
60
|
* const vector = d.vec2b(true); // (true, true)
|
|
64
61
|
* const vector = d.vec2b(false, true); // (false, true)
|
|
65
62
|
*/
|
|
66
|
-
declare const vec2b: Vec2b;
|
|
63
|
+
export declare const vec2b: Vec2b;
|
|
67
64
|
/**
|
|
68
65
|
* Schema representing vec3f - a vector with 3 elements of type f32.
|
|
69
66
|
* Also a constructor function for this vector value.
|
|
@@ -76,7 +73,7 @@ declare const vec2b: Vec2b;
|
|
|
76
73
|
* @example
|
|
77
74
|
* const buffer = root.createBuffer(d.vec3f, d.vec3f(0, 1, 2)); // buffer holding a d.vec3f value, with an initial value of vec3f(0, 1, 2);
|
|
78
75
|
*/
|
|
79
|
-
declare const vec3f: Vec3f;
|
|
76
|
+
export declare const vec3f: Vec3f;
|
|
80
77
|
/**
|
|
81
78
|
* Schema representing vec3h - a vector with 3 elements of type f16.
|
|
82
79
|
* Also a constructor function for this vector value.
|
|
@@ -89,7 +86,7 @@ declare const vec3f: Vec3f;
|
|
|
89
86
|
* @example
|
|
90
87
|
* const buffer = root.createBuffer(d.vec3h, d.vec3h(0, 1, 2)); // buffer holding a d.vec3h value, with an initial value of vec3h(0, 1, 2);
|
|
91
88
|
*/
|
|
92
|
-
declare const vec3h: Vec3h;
|
|
89
|
+
export declare const vec3h: Vec3h;
|
|
93
90
|
/**
|
|
94
91
|
* Schema representing vec3i - a vector with 3 elements of type i32.
|
|
95
92
|
* Also a constructor function for this vector value.
|
|
@@ -102,7 +99,7 @@ declare const vec3h: Vec3h;
|
|
|
102
99
|
* @example
|
|
103
100
|
* const buffer = root.createBuffer(d.vec3i, d.vec3i(0, 1, 2)); // buffer holding a d.vec3i value, with an initial value of vec3i(0, 1, 2);
|
|
104
101
|
*/
|
|
105
|
-
declare const vec3i: Vec3i;
|
|
102
|
+
export declare const vec3i: Vec3i;
|
|
106
103
|
/**
|
|
107
104
|
* Schema representing vec3u - a vector with 3 elements of type u32.
|
|
108
105
|
* Also a constructor function for this vector value.
|
|
@@ -115,7 +112,7 @@ declare const vec3i: Vec3i;
|
|
|
115
112
|
* @example
|
|
116
113
|
* const buffer = root.createBuffer(d.vec3u, d.vec3u(0, 1, 2)); // buffer holding a d.vec3u value, with an initial value of vec3u(0, 1, 2);
|
|
117
114
|
*/
|
|
118
|
-
declare const vec3u: Vec3u;
|
|
115
|
+
export declare const vec3u: Vec3u;
|
|
119
116
|
/**
|
|
120
117
|
* Schema representing `vec3<bool>` - a vector with 3 elements of type `bool`.
|
|
121
118
|
* Also a constructor function for this vector value.
|
|
@@ -125,7 +122,7 @@ declare const vec3u: Vec3u;
|
|
|
125
122
|
* const vector = d.vec3b(true); // (true, true, true)
|
|
126
123
|
* const vector = d.vec3b(false, true, false); // (false, true, false)
|
|
127
124
|
*/
|
|
128
|
-
declare const vec3b: Vec3b;
|
|
125
|
+
export declare const vec3b: Vec3b;
|
|
129
126
|
/**
|
|
130
127
|
* Schema representing vec4f - a vector with 4 elements of type f32.
|
|
131
128
|
* Also a constructor function for this vector value.
|
|
@@ -138,7 +135,7 @@ declare const vec3b: Vec3b;
|
|
|
138
135
|
* @example
|
|
139
136
|
* const buffer = root.createBuffer(d.vec4f, d.vec4f(0, 1, 2, 3)); // buffer holding a d.vec4f value, with an initial value of vec4f(0, 1, 2, 3);
|
|
140
137
|
*/
|
|
141
|
-
declare const vec4f: Vec4f;
|
|
138
|
+
export declare const vec4f: Vec4f;
|
|
142
139
|
/**
|
|
143
140
|
* Schema representing vec4h - a vector with 4 elements of type f16.
|
|
144
141
|
* Also a constructor function for this vector value.
|
|
@@ -151,7 +148,7 @@ declare const vec4f: Vec4f;
|
|
|
151
148
|
* @example
|
|
152
149
|
* const buffer = root.createBuffer(d.vec4h, d.vec4h(0, 1, 2, 3)); // buffer holding a d.vec4h value, with an initial value of vec4h(0, 1, 2, 3);
|
|
153
150
|
*/
|
|
154
|
-
declare const vec4h: Vec4h;
|
|
151
|
+
export declare const vec4h: Vec4h;
|
|
155
152
|
/**
|
|
156
153
|
* Schema representing vec4i - a vector with 4 elements of type i32.
|
|
157
154
|
* Also a constructor function for this vector value.
|
|
@@ -164,7 +161,7 @@ declare const vec4h: Vec4h;
|
|
|
164
161
|
* @example
|
|
165
162
|
* const buffer = root.createBuffer(d.vec4i, d.vec4i(0, 1, 2, 3)); // buffer holding a d.vec4i value, with an initial value of vec4i(0, 1, 2, 3);
|
|
166
163
|
*/
|
|
167
|
-
declare const vec4i: Vec4i;
|
|
164
|
+
export declare const vec4i: Vec4i;
|
|
168
165
|
/**
|
|
169
166
|
* Schema representing vec4u - a vector with 4 elements of type u32.
|
|
170
167
|
* Also a constructor function for this vector value.
|
|
@@ -177,7 +174,7 @@ declare const vec4i: Vec4i;
|
|
|
177
174
|
* @example
|
|
178
175
|
* const buffer = root.createBuffer(d.vec4u, d.vec4u(0, 1, 2, 3)); // buffer holding a d.vec4u value, with an initial value of vec4u(0, 1, 2, 3);
|
|
179
176
|
*/
|
|
180
|
-
declare const vec4u: Vec4u;
|
|
177
|
+
export declare const vec4u: Vec4u;
|
|
181
178
|
/**
|
|
182
179
|
* Schema representing `vec4<bool>` - a vector with 4 elements of type `bool`.
|
|
183
180
|
* Also a constructor function for this vector value.
|
|
@@ -187,6 +184,21 @@ declare const vec4u: Vec4u;
|
|
|
187
184
|
* const vector = d.vec4b(true); // (true, true, true, true)
|
|
188
185
|
* const vector = d.vec4b(false, true, false, true); // (false, true, false, true)
|
|
189
186
|
*/
|
|
190
|
-
declare const vec4b: Vec4b;
|
|
191
|
-
|
|
192
|
-
|
|
187
|
+
export declare const vec4b: Vec4b;
|
|
188
|
+
export declare const vecTypeToConstructor: {
|
|
189
|
+
readonly vec2f: Vec2f;
|
|
190
|
+
readonly vec2h: Vec2h;
|
|
191
|
+
readonly vec2i: Vec2i;
|
|
192
|
+
readonly vec2u: Vec2u;
|
|
193
|
+
readonly 'vec2<bool>': Vec2b;
|
|
194
|
+
readonly vec3f: Vec3f;
|
|
195
|
+
readonly vec3h: Vec3h;
|
|
196
|
+
readonly vec3i: Vec3i;
|
|
197
|
+
readonly vec3u: Vec3u;
|
|
198
|
+
readonly 'vec3<bool>': Vec3b;
|
|
199
|
+
readonly vec4f: Vec4f;
|
|
200
|
+
readonly vec4h: Vec4h;
|
|
201
|
+
readonly vec4i: Vec4i;
|
|
202
|
+
readonly vec4u: Vec4u;
|
|
203
|
+
readonly 'vec4<bool>': Vec4b;
|
|
204
|
+
};
|
package/data/vector.js
CHANGED
|
@@ -1,241 +1,254 @@
|
|
|
1
|
-
import { $internal, $repr } from "../shared/symbols.js";
|
|
2
|
-
import { isVec } from "./wgslTypes.js";
|
|
3
1
|
import { callableSchema } from "../core/function/createCallableSchema.js";
|
|
2
|
+
import { $internal, $repr } from "../shared/symbols.js";
|
|
4
3
|
import { bool, f16, f32, i32, u32 } from "./numeric.js";
|
|
5
|
-
import { Vec2bImpl, Vec2fImpl, Vec2hImpl, Vec2iImpl, Vec2uImpl, Vec3bImpl, Vec3fImpl, Vec3hImpl, Vec3iImpl, Vec3uImpl, Vec4bImpl, Vec4fImpl, Vec4hImpl, Vec4iImpl, Vec4uImpl } from "./vectorImpl.js";
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
import { Vec2bImpl, Vec2fImpl, Vec2hImpl, Vec2iImpl, Vec2uImpl, Vec3bImpl, Vec3fImpl, Vec3hImpl, Vec3iImpl, Vec3uImpl, Vec4bImpl, Vec4fImpl, Vec4hImpl, Vec4iImpl, Vec4uImpl, } from "./vectorImpl.js";
|
|
5
|
+
import { isVec } from "./wgslTypes.js";
|
|
6
|
+
// ----------
|
|
7
|
+
// Public API
|
|
8
|
+
// ----------
|
|
8
9
|
/**
|
|
9
|
-
* Schema representing vec2f - a vector with 2 elements of type f32.
|
|
10
|
-
* Also a constructor function for this vector value.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* const vector = d.vec2f(); // (0.0, 0.0)
|
|
14
|
-
* const vector = d.vec2f(1); // (1.0, 1.0)
|
|
15
|
-
* const vector = d.vec2f(0.5, 0.1); // (0.5, 0.1)
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* const buffer = root.createBuffer(d.vec2f, d.vec2f(0, 1)); // buffer holding a d.vec2f value, with an initial value of vec2f(0, 1);
|
|
19
|
-
*/
|
|
20
|
-
const vec2f = makeVecSchema(Vec2fImpl, f32);
|
|
10
|
+
* Schema representing vec2f - a vector with 2 elements of type f32.
|
|
11
|
+
* Also a constructor function for this vector value.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* const vector = d.vec2f(); // (0.0, 0.0)
|
|
15
|
+
* const vector = d.vec2f(1); // (1.0, 1.0)
|
|
16
|
+
* const vector = d.vec2f(0.5, 0.1); // (0.5, 0.1)
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* const buffer = root.createBuffer(d.vec2f, d.vec2f(0, 1)); // buffer holding a d.vec2f value, with an initial value of vec2f(0, 1);
|
|
20
|
+
*/
|
|
21
|
+
export const vec2f = makeVecSchema(Vec2fImpl, f32);
|
|
21
22
|
/**
|
|
22
|
-
* Schema representing vec2h - a vector with 2 elements of type f16.
|
|
23
|
-
* Also a constructor function for this vector value.
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* const vector = d.vec2h(); // (0.0, 0.0)
|
|
27
|
-
* const vector = d.vec2h(1); // (1.0, 1.0)
|
|
28
|
-
* const vector = d.vec2h(0.5, 0.1); // (0.5, 0.1)
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* const buffer = root.createBuffer(d.vec2h, d.vec2h(0, 1)); // buffer holding a d.vec2h value, with an initial value of vec2h(0, 1);
|
|
32
|
-
*/
|
|
33
|
-
const vec2h = makeVecSchema(Vec2hImpl, f16);
|
|
23
|
+
* Schema representing vec2h - a vector with 2 elements of type f16.
|
|
24
|
+
* Also a constructor function for this vector value.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* const vector = d.vec2h(); // (0.0, 0.0)
|
|
28
|
+
* const vector = d.vec2h(1); // (1.0, 1.0)
|
|
29
|
+
* const vector = d.vec2h(0.5, 0.1); // (0.5, 0.1)
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* const buffer = root.createBuffer(d.vec2h, d.vec2h(0, 1)); // buffer holding a d.vec2h value, with an initial value of vec2h(0, 1);
|
|
33
|
+
*/
|
|
34
|
+
export const vec2h = makeVecSchema(Vec2hImpl, f16);
|
|
34
35
|
/**
|
|
35
|
-
* Schema representing vec2i - a vector with 2 elements of type i32.
|
|
36
|
-
* Also a constructor function for this vector value.
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
* const vector = d.vec2i(); // (0, 0)
|
|
40
|
-
* const vector = d.vec2i(1); // (1, 1)
|
|
41
|
-
* const vector = d.vec2i(-1, 1); // (-1, 1)
|
|
42
|
-
*
|
|
43
|
-
* @example
|
|
44
|
-
* const buffer = root.createBuffer(d.vec2i, d.vec2i(0, 1)); // buffer holding a d.vec2i value, with an initial value of vec2i(0, 1);
|
|
45
|
-
*/
|
|
46
|
-
const vec2i = makeVecSchema(Vec2iImpl, i32);
|
|
36
|
+
* Schema representing vec2i - a vector with 2 elements of type i32.
|
|
37
|
+
* Also a constructor function for this vector value.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* const vector = d.vec2i(); // (0, 0)
|
|
41
|
+
* const vector = d.vec2i(1); // (1, 1)
|
|
42
|
+
* const vector = d.vec2i(-1, 1); // (-1, 1)
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* const buffer = root.createBuffer(d.vec2i, d.vec2i(0, 1)); // buffer holding a d.vec2i value, with an initial value of vec2i(0, 1);
|
|
46
|
+
*/
|
|
47
|
+
export const vec2i = makeVecSchema(Vec2iImpl, i32);
|
|
47
48
|
/**
|
|
48
|
-
* Schema representing vec2u - a vector with 2 elements of type u32.
|
|
49
|
-
* Also a constructor function for this vector value.
|
|
50
|
-
*
|
|
51
|
-
* @example
|
|
52
|
-
* const vector = d.vec2u(); // (0, 0)
|
|
53
|
-
* const vector = d.vec2u(1); // (1, 1)
|
|
54
|
-
* const vector = d.vec2u(1, 2); // (1, 2)
|
|
55
|
-
*
|
|
56
|
-
* @example
|
|
57
|
-
* const buffer = root.createBuffer(d.vec2u, d.vec2u(0, 1)); // buffer holding a d.vec2u value, with an initial value of vec2u(0, 1);
|
|
58
|
-
*/
|
|
59
|
-
const vec2u = makeVecSchema(Vec2uImpl, u32);
|
|
49
|
+
* Schema representing vec2u - a vector with 2 elements of type u32.
|
|
50
|
+
* Also a constructor function for this vector value.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* const vector = d.vec2u(); // (0, 0)
|
|
54
|
+
* const vector = d.vec2u(1); // (1, 1)
|
|
55
|
+
* const vector = d.vec2u(1, 2); // (1, 2)
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* const buffer = root.createBuffer(d.vec2u, d.vec2u(0, 1)); // buffer holding a d.vec2u value, with an initial value of vec2u(0, 1);
|
|
59
|
+
*/
|
|
60
|
+
export const vec2u = makeVecSchema(Vec2uImpl, u32);
|
|
60
61
|
/**
|
|
61
|
-
* Schema representing `vec2<bool>` - a vector with 2 elements of type `bool`.
|
|
62
|
-
* Also a constructor function for this vector value.
|
|
63
|
-
*
|
|
64
|
-
* @example
|
|
65
|
-
* const vector = d.vec2b(); // (false, false)
|
|
66
|
-
* const vector = d.vec2b(true); // (true, true)
|
|
67
|
-
* const vector = d.vec2b(false, true); // (false, true)
|
|
68
|
-
*/
|
|
69
|
-
const vec2b = makeVecSchema(Vec2bImpl, bool);
|
|
62
|
+
* Schema representing `vec2<bool>` - a vector with 2 elements of type `bool`.
|
|
63
|
+
* Also a constructor function for this vector value.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* const vector = d.vec2b(); // (false, false)
|
|
67
|
+
* const vector = d.vec2b(true); // (true, true)
|
|
68
|
+
* const vector = d.vec2b(false, true); // (false, true)
|
|
69
|
+
*/
|
|
70
|
+
export const vec2b = makeVecSchema(Vec2bImpl, bool);
|
|
70
71
|
/**
|
|
71
|
-
* Schema representing vec3f - a vector with 3 elements of type f32.
|
|
72
|
-
* Also a constructor function for this vector value.
|
|
73
|
-
*
|
|
74
|
-
* @example
|
|
75
|
-
* const vector = d.vec3f(); // (0.0, 0.0, 0.0)
|
|
76
|
-
* const vector = d.vec3f(1); // (1.0, 1.0, 1.0)
|
|
77
|
-
* const vector = d.vec3f(1, 2, 3.5); // (1.0, 2.0, 3.5)
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
* const buffer = root.createBuffer(d.vec3f, d.vec3f(0, 1, 2)); // buffer holding a d.vec3f value, with an initial value of vec3f(0, 1, 2);
|
|
81
|
-
*/
|
|
82
|
-
const vec3f = makeVecSchema(Vec3fImpl, f32);
|
|
72
|
+
* Schema representing vec3f - a vector with 3 elements of type f32.
|
|
73
|
+
* Also a constructor function for this vector value.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* const vector = d.vec3f(); // (0.0, 0.0, 0.0)
|
|
77
|
+
* const vector = d.vec3f(1); // (1.0, 1.0, 1.0)
|
|
78
|
+
* const vector = d.vec3f(1, 2, 3.5); // (1.0, 2.0, 3.5)
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* const buffer = root.createBuffer(d.vec3f, d.vec3f(0, 1, 2)); // buffer holding a d.vec3f value, with an initial value of vec3f(0, 1, 2);
|
|
82
|
+
*/
|
|
83
|
+
export const vec3f = makeVecSchema(Vec3fImpl, f32);
|
|
83
84
|
/**
|
|
84
|
-
* Schema representing vec3h - a vector with 3 elements of type f16.
|
|
85
|
-
* Also a constructor function for this vector value.
|
|
86
|
-
*
|
|
87
|
-
* @example
|
|
88
|
-
* const vector = d.vec3h(); // (0.0, 0.0, 0.0)
|
|
89
|
-
* const vector = d.vec3h(1); // (1.0, 1.0, 1.0)
|
|
90
|
-
* const vector = d.vec3h(1, 2, 3.5); // (1.0, 2.0, 3.5)
|
|
91
|
-
*
|
|
92
|
-
* @example
|
|
93
|
-
* const buffer = root.createBuffer(d.vec3h, d.vec3h(0, 1, 2)); // buffer holding a d.vec3h value, with an initial value of vec3h(0, 1, 2);
|
|
94
|
-
*/
|
|
95
|
-
const vec3h = makeVecSchema(Vec3hImpl, f16);
|
|
85
|
+
* Schema representing vec3h - a vector with 3 elements of type f16.
|
|
86
|
+
* Also a constructor function for this vector value.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* const vector = d.vec3h(); // (0.0, 0.0, 0.0)
|
|
90
|
+
* const vector = d.vec3h(1); // (1.0, 1.0, 1.0)
|
|
91
|
+
* const vector = d.vec3h(1, 2, 3.5); // (1.0, 2.0, 3.5)
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* const buffer = root.createBuffer(d.vec3h, d.vec3h(0, 1, 2)); // buffer holding a d.vec3h value, with an initial value of vec3h(0, 1, 2);
|
|
95
|
+
*/
|
|
96
|
+
export const vec3h = makeVecSchema(Vec3hImpl, f16);
|
|
96
97
|
/**
|
|
97
|
-
* Schema representing vec3i - a vector with 3 elements of type i32.
|
|
98
|
-
* Also a constructor function for this vector value.
|
|
99
|
-
*
|
|
100
|
-
* @example
|
|
101
|
-
* const vector = d.vec3i(); // (0, 0, 0)
|
|
102
|
-
* const vector = d.vec3i(1); // (1, 1, 1)
|
|
103
|
-
* const vector = d.vec3i(1, 2, -3); // (1, 2, -3)
|
|
104
|
-
*
|
|
105
|
-
* @example
|
|
106
|
-
* const buffer = root.createBuffer(d.vec3i, d.vec3i(0, 1, 2)); // buffer holding a d.vec3i value, with an initial value of vec3i(0, 1, 2);
|
|
107
|
-
*/
|
|
108
|
-
const vec3i = makeVecSchema(Vec3iImpl, i32);
|
|
98
|
+
* Schema representing vec3i - a vector with 3 elements of type i32.
|
|
99
|
+
* Also a constructor function for this vector value.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* const vector = d.vec3i(); // (0, 0, 0)
|
|
103
|
+
* const vector = d.vec3i(1); // (1, 1, 1)
|
|
104
|
+
* const vector = d.vec3i(1, 2, -3); // (1, 2, -3)
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* const buffer = root.createBuffer(d.vec3i, d.vec3i(0, 1, 2)); // buffer holding a d.vec3i value, with an initial value of vec3i(0, 1, 2);
|
|
108
|
+
*/
|
|
109
|
+
export const vec3i = makeVecSchema(Vec3iImpl, i32);
|
|
109
110
|
/**
|
|
110
|
-
* Schema representing vec3u - a vector with 3 elements of type u32.
|
|
111
|
-
* Also a constructor function for this vector value.
|
|
112
|
-
*
|
|
113
|
-
* @example
|
|
114
|
-
* const vector = d.vec3u(); // (0, 0, 0)
|
|
115
|
-
* const vector = d.vec3u(1); // (1, 1, 1)
|
|
116
|
-
* const vector = d.vec3u(1, 2, 3); // (1, 2, 3)
|
|
117
|
-
*
|
|
118
|
-
* @example
|
|
119
|
-
* const buffer = root.createBuffer(d.vec3u, d.vec3u(0, 1, 2)); // buffer holding a d.vec3u value, with an initial value of vec3u(0, 1, 2);
|
|
120
|
-
*/
|
|
121
|
-
const vec3u = makeVecSchema(Vec3uImpl, u32);
|
|
111
|
+
* Schema representing vec3u - a vector with 3 elements of type u32.
|
|
112
|
+
* Also a constructor function for this vector value.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* const vector = d.vec3u(); // (0, 0, 0)
|
|
116
|
+
* const vector = d.vec3u(1); // (1, 1, 1)
|
|
117
|
+
* const vector = d.vec3u(1, 2, 3); // (1, 2, 3)
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* const buffer = root.createBuffer(d.vec3u, d.vec3u(0, 1, 2)); // buffer holding a d.vec3u value, with an initial value of vec3u(0, 1, 2);
|
|
121
|
+
*/
|
|
122
|
+
export const vec3u = makeVecSchema(Vec3uImpl, u32);
|
|
122
123
|
/**
|
|
123
|
-
* Schema representing `vec3<bool>` - a vector with 3 elements of type `bool`.
|
|
124
|
-
* Also a constructor function for this vector value.
|
|
125
|
-
*
|
|
126
|
-
* @example
|
|
127
|
-
* const vector = d.vec3b(); // (false, false, false)
|
|
128
|
-
* const vector = d.vec3b(true); // (true, true, true)
|
|
129
|
-
* const vector = d.vec3b(false, true, false); // (false, true, false)
|
|
130
|
-
*/
|
|
131
|
-
const vec3b = makeVecSchema(Vec3bImpl, bool);
|
|
124
|
+
* Schema representing `vec3<bool>` - a vector with 3 elements of type `bool`.
|
|
125
|
+
* Also a constructor function for this vector value.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* const vector = d.vec3b(); // (false, false, false)
|
|
129
|
+
* const vector = d.vec3b(true); // (true, true, true)
|
|
130
|
+
* const vector = d.vec3b(false, true, false); // (false, true, false)
|
|
131
|
+
*/
|
|
132
|
+
export const vec3b = makeVecSchema(Vec3bImpl, bool);
|
|
132
133
|
/**
|
|
133
|
-
* Schema representing vec4f - a vector with 4 elements of type f32.
|
|
134
|
-
* Also a constructor function for this vector value.
|
|
135
|
-
*
|
|
136
|
-
* @example
|
|
137
|
-
* const vector = d.vec4f(); // (0.0, 0.0, 0.0, 0.0)
|
|
138
|
-
* const vector = d.vec4f(1); // (1.0, 1.0, 1.0, 1.0)
|
|
139
|
-
* const vector = d.vec4f(1, 2, 3, 4.5); // (1.0, 2.0, 3.0, 4.5)
|
|
140
|
-
*
|
|
141
|
-
* @example
|
|
142
|
-
* const buffer = root.createBuffer(d.vec4f, d.vec4f(0, 1, 2, 3)); // buffer holding a d.vec4f value, with an initial value of vec4f(0, 1, 2, 3);
|
|
143
|
-
*/
|
|
144
|
-
const vec4f = makeVecSchema(Vec4fImpl, f32);
|
|
134
|
+
* Schema representing vec4f - a vector with 4 elements of type f32.
|
|
135
|
+
* Also a constructor function for this vector value.
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* const vector = d.vec4f(); // (0.0, 0.0, 0.0, 0.0)
|
|
139
|
+
* const vector = d.vec4f(1); // (1.0, 1.0, 1.0, 1.0)
|
|
140
|
+
* const vector = d.vec4f(1, 2, 3, 4.5); // (1.0, 2.0, 3.0, 4.5)
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* const buffer = root.createBuffer(d.vec4f, d.vec4f(0, 1, 2, 3)); // buffer holding a d.vec4f value, with an initial value of vec4f(0, 1, 2, 3);
|
|
144
|
+
*/
|
|
145
|
+
export const vec4f = makeVecSchema(Vec4fImpl, f32);
|
|
145
146
|
/**
|
|
146
|
-
* Schema representing vec4h - a vector with 4 elements of type f16.
|
|
147
|
-
* Also a constructor function for this vector value.
|
|
148
|
-
*
|
|
149
|
-
* @example
|
|
150
|
-
* const vector = d.vec4h(); // (0.0, 0.0, 0.0, 0.0)
|
|
151
|
-
* const vector = d.vec4h(1); // (1.0, 1.0, 1.0, 1.0)
|
|
152
|
-
* const vector = d.vec4h(1, 2, 3, 4.5); // (1.0, 2.0, 3.0, 4.5)
|
|
153
|
-
*
|
|
154
|
-
* @example
|
|
155
|
-
* const buffer = root.createBuffer(d.vec4h, d.vec4h(0, 1, 2, 3)); // buffer holding a d.vec4h value, with an initial value of vec4h(0, 1, 2, 3);
|
|
156
|
-
*/
|
|
157
|
-
const vec4h = makeVecSchema(Vec4hImpl, f16);
|
|
147
|
+
* Schema representing vec4h - a vector with 4 elements of type f16.
|
|
148
|
+
* Also a constructor function for this vector value.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* const vector = d.vec4h(); // (0.0, 0.0, 0.0, 0.0)
|
|
152
|
+
* const vector = d.vec4h(1); // (1.0, 1.0, 1.0, 1.0)
|
|
153
|
+
* const vector = d.vec4h(1, 2, 3, 4.5); // (1.0, 2.0, 3.0, 4.5)
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* const buffer = root.createBuffer(d.vec4h, d.vec4h(0, 1, 2, 3)); // buffer holding a d.vec4h value, with an initial value of vec4h(0, 1, 2, 3);
|
|
157
|
+
*/
|
|
158
|
+
export const vec4h = makeVecSchema(Vec4hImpl, f16);
|
|
158
159
|
/**
|
|
159
|
-
* Schema representing vec4i - a vector with 4 elements of type i32.
|
|
160
|
-
* Also a constructor function for this vector value.
|
|
161
|
-
*
|
|
162
|
-
* @example
|
|
163
|
-
* const vector = d.vec4i(); // (0, 0, 0, 0)
|
|
164
|
-
* const vector = d.vec4i(1); // (1, 1, 1, 1)
|
|
165
|
-
* const vector = d.vec4i(1, 2, 3, -4); // (1, 2, 3, -4)
|
|
166
|
-
*
|
|
167
|
-
* @example
|
|
168
|
-
* const buffer = root.createBuffer(d.vec4i, d.vec4i(0, 1, 2, 3)); // buffer holding a d.vec4i value, with an initial value of vec4i(0, 1, 2, 3);
|
|
169
|
-
*/
|
|
170
|
-
const vec4i = makeVecSchema(Vec4iImpl, i32);
|
|
160
|
+
* Schema representing vec4i - a vector with 4 elements of type i32.
|
|
161
|
+
* Also a constructor function for this vector value.
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* const vector = d.vec4i(); // (0, 0, 0, 0)
|
|
165
|
+
* const vector = d.vec4i(1); // (1, 1, 1, 1)
|
|
166
|
+
* const vector = d.vec4i(1, 2, 3, -4); // (1, 2, 3, -4)
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* const buffer = root.createBuffer(d.vec4i, d.vec4i(0, 1, 2, 3)); // buffer holding a d.vec4i value, with an initial value of vec4i(0, 1, 2, 3);
|
|
170
|
+
*/
|
|
171
|
+
export const vec4i = makeVecSchema(Vec4iImpl, i32);
|
|
171
172
|
/**
|
|
172
|
-
* Schema representing vec4u - a vector with 4 elements of type u32.
|
|
173
|
-
* Also a constructor function for this vector value.
|
|
174
|
-
*
|
|
175
|
-
* @example
|
|
176
|
-
* const vector = d.vec4u(); // (0, 0, 0, 0)
|
|
177
|
-
* const vector = d.vec4u(1); // (1, 1, 1, 1)
|
|
178
|
-
* const vector = d.vec4u(1, 2, 3, 4); // (1, 2, 3, 4)
|
|
179
|
-
*
|
|
180
|
-
* @example
|
|
181
|
-
* const buffer = root.createBuffer(d.vec4u, d.vec4u(0, 1, 2, 3)); // buffer holding a d.vec4u value, with an initial value of vec4u(0, 1, 2, 3);
|
|
182
|
-
*/
|
|
183
|
-
const vec4u = makeVecSchema(Vec4uImpl, u32);
|
|
173
|
+
* Schema representing vec4u - a vector with 4 elements of type u32.
|
|
174
|
+
* Also a constructor function for this vector value.
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* const vector = d.vec4u(); // (0, 0, 0, 0)
|
|
178
|
+
* const vector = d.vec4u(1); // (1, 1, 1, 1)
|
|
179
|
+
* const vector = d.vec4u(1, 2, 3, 4); // (1, 2, 3, 4)
|
|
180
|
+
*
|
|
181
|
+
* @example
|
|
182
|
+
* const buffer = root.createBuffer(d.vec4u, d.vec4u(0, 1, 2, 3)); // buffer holding a d.vec4u value, with an initial value of vec4u(0, 1, 2, 3);
|
|
183
|
+
*/
|
|
184
|
+
export const vec4u = makeVecSchema(Vec4uImpl, u32);
|
|
184
185
|
/**
|
|
185
|
-
* Schema representing `vec4<bool>` - a vector with 4 elements of type `bool`.
|
|
186
|
-
* Also a constructor function for this vector value.
|
|
187
|
-
*
|
|
188
|
-
* @example
|
|
189
|
-
* const vector = d.vec4b(); // (false, false, false, false)
|
|
190
|
-
* const vector = d.vec4b(true); // (true, true, true, true)
|
|
191
|
-
* const vector = d.vec4b(false, true, false, true); // (false, true, false, true)
|
|
192
|
-
*/
|
|
193
|
-
const vec4b = makeVecSchema(Vec4bImpl, bool);
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
186
|
+
* Schema representing `vec4<bool>` - a vector with 4 elements of type `bool`.
|
|
187
|
+
* Also a constructor function for this vector value.
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* const vector = d.vec4b(); // (false, false, false, false)
|
|
191
|
+
* const vector = d.vec4b(true); // (true, true, true, true)
|
|
192
|
+
* const vector = d.vec4b(false, true, false, true); // (false, true, false, true)
|
|
193
|
+
*/
|
|
194
|
+
export const vec4b = makeVecSchema(Vec4bImpl, bool);
|
|
195
|
+
// --------------
|
|
196
|
+
// Implementation
|
|
197
|
+
// --------------
|
|
198
|
+
export const vecTypeToConstructor = {
|
|
199
|
+
vec2f,
|
|
200
|
+
vec2h,
|
|
201
|
+
vec2i,
|
|
202
|
+
vec2u,
|
|
203
|
+
'vec2<bool>': vec2b,
|
|
204
|
+
vec3f,
|
|
205
|
+
vec3h,
|
|
206
|
+
vec3i,
|
|
207
|
+
vec3u,
|
|
208
|
+
'vec3<bool>': vec3b,
|
|
209
|
+
vec4f,
|
|
210
|
+
vec4h,
|
|
211
|
+
vec4i,
|
|
212
|
+
vec4u,
|
|
213
|
+
'vec4<bool>': vec4b,
|
|
210
214
|
};
|
|
211
215
|
function makeVecSchema(VecImpl, primitive) {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
216
|
+
const { kind: type, length } = new VecImpl();
|
|
217
|
+
const componentCount = length;
|
|
218
|
+
const cpuConstruct = (...args) => {
|
|
219
|
+
const values = Array.from({ length: args.length });
|
|
220
|
+
let j = 0;
|
|
221
|
+
for (const arg of args) {
|
|
222
|
+
if (typeof arg === 'number' || typeof arg === 'boolean') {
|
|
223
|
+
values[j++] = arg;
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
for (let c = 0; c < arg.length; ++c) {
|
|
227
|
+
values[j++] = arg[c];
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (values.length <= 1 || values.length === componentCount) {
|
|
232
|
+
return new VecImpl(...values);
|
|
233
|
+
}
|
|
234
|
+
throw new Error(`'${type}' constructor called with invalid number of arguments.`);
|
|
235
|
+
};
|
|
236
|
+
const construct = callableSchema({
|
|
237
|
+
name: type,
|
|
238
|
+
schema: () => schema,
|
|
239
|
+
argTypes: (...args) => args.map((arg) => (isVec(arg) ? arg : primitive)),
|
|
240
|
+
normalImpl: cpuConstruct,
|
|
241
|
+
codegenImpl: (ctx, args) => ctx.gen.typeInstantiation(schema, args),
|
|
242
|
+
});
|
|
243
|
+
const schema = Object.assign(construct, {
|
|
244
|
+
[$internal]: {},
|
|
245
|
+
type,
|
|
246
|
+
primitive,
|
|
247
|
+
componentCount,
|
|
248
|
+
[$repr]: undefined,
|
|
249
|
+
});
|
|
250
|
+
// TODO: Remove workaround
|
|
251
|
+
// it's a workaround for circular dependencies caused by us using schemas in the shader generator
|
|
252
|
+
VecImpl.prototype.schema = schema;
|
|
253
|
+
return schema;
|
|
238
254
|
}
|
|
239
|
-
|
|
240
|
-
//#endregion
|
|
241
|
-
export { vec2b, vec2f, vec2h, vec2i, vec2u, vec3b, vec3f, vec3h, vec3i, vec3u, vec4b, vec4f, vec4h, vec4i, vec4u, vecTypeToConstructor };
|