typegpu 0.11.8 → 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 +37 -38
- 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 -0
- package/core/function/fnCore.js +148 -92
- 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 +18 -20
- 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 +90 -93
- package/core/resolve/externals.d.ts +25 -7
- package/core/resolve/externals.js +79 -62
- 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 -55
- 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 -454
- package/core/root/rootTypes.d.ts +461 -627
- 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 -214
- 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 -192
- 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 -120
- 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 +428 -398
- package/package.json +9 -3
- package/resolutionCtx.d.ts +162 -22
- package/resolutionCtx.js +911 -624
- 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 -100
- package/tgsl/accessStructProp.d.ts +5 -0
- package/tgsl/accessStructProp.js +18 -0
- 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 +272 -193
- 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 -747
- package/types.d.ts +287 -221
- 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/std/operators.d.ts
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AnyIntegerVecInstance, AnyMatInstance, AnyNumericVecInstance, mBaseForVec, vBaseForMat, vecIToVecU } from "../data/wgslTypes.js";
|
|
3
|
-
|
|
4
|
-
//#region src/std/operators.d.ts
|
|
1
|
+
import { type AnyIntegerVecInstance, type AnyMatInstance, type AnyNumericVecInstance, type mBaseForVec, type vBaseForMat, type vecIToVecU } from '../data/wgslTypes.ts';
|
|
5
2
|
type NumVec = AnyNumericVecInstance;
|
|
6
3
|
type Mat = AnyMatInstance;
|
|
7
4
|
declare function cpuAdd(lhs: number, rhs: number): number;
|
|
8
5
|
declare function cpuAdd<T extends NumVec>(lhs: number, rhs: T): T;
|
|
9
6
|
declare function cpuAdd<T extends NumVec>(lhs: T, rhs: number): T;
|
|
10
7
|
declare function cpuAdd<T extends NumVec | Mat>(lhs: T, rhs: T): T;
|
|
11
|
-
declare function cpuAdd<Lhs extends number | NumVec | Mat, Rhs extends
|
|
12
|
-
declare const add: DualFn<typeof cpuAdd>;
|
|
8
|
+
declare function cpuAdd<Lhs extends number | NumVec | Mat, Rhs extends Lhs extends number ? number | NumVec : Lhs extends NumVec ? number | Lhs : Lhs extends Mat ? Lhs : never>(lhs: Lhs, rhs: Rhs): Lhs | Rhs;
|
|
9
|
+
export declare const add: import("../types.ts").DualFn<typeof cpuAdd>;
|
|
13
10
|
declare function cpuSub(lhs: number, rhs: number): number;
|
|
14
11
|
declare function cpuSub<T extends NumVec>(lhs: number, rhs: T): T;
|
|
15
12
|
declare function cpuSub<T extends NumVec>(lhs: T, rhs: number): T;
|
|
16
13
|
declare function cpuSub<T extends NumVec | Mat>(lhs: T, rhs: T): T;
|
|
17
|
-
declare function cpuSub<Lhs extends number | NumVec | Mat, Rhs extends
|
|
18
|
-
declare const sub: DualFn<typeof cpuSub>;
|
|
14
|
+
declare function cpuSub<Lhs extends number | NumVec | Mat, Rhs extends Lhs extends number ? number | NumVec : Lhs extends NumVec ? number | Lhs : Lhs extends Mat ? Lhs : never>(lhs: Lhs, rhs: Rhs): Lhs | Rhs;
|
|
15
|
+
export declare const sub: import("../types.ts").DualFn<typeof cpuSub>;
|
|
19
16
|
declare function cpuMul(lhs: number, rhs: number): number;
|
|
20
17
|
declare function cpuMul<MV extends NumVec | Mat>(lhs: number, rhs: MV): MV;
|
|
21
18
|
declare function cpuMul<MV extends NumVec | Mat>(lhs: MV, rhs: number): MV;
|
|
@@ -23,34 +20,29 @@ declare function cpuMul<V extends NumVec>(lhs: V, rhs: V): V;
|
|
|
23
20
|
declare function cpuMul<M extends Mat, V extends vBaseForMat<M>>(lhs: V, rhs: M): V;
|
|
24
21
|
declare function cpuMul<M extends Mat, V extends vBaseForMat<M>>(lhs: M, rhs: V): V;
|
|
25
22
|
declare function cpuMul<M extends Mat>(lhs: M, rhs: M): M;
|
|
26
|
-
declare function cpuMul<Lhs extends number | NumVec | Mat, Rhs extends
|
|
27
|
-
declare const mul: DualFn<typeof cpuMul>;
|
|
23
|
+
declare function cpuMul<Lhs extends number | NumVec | Mat, Rhs extends Lhs extends number ? number | NumVec | Mat : Lhs extends NumVec ? number | Lhs | mBaseForVec<Lhs> : Lhs extends Mat ? number | vBaseForMat<Lhs> | Lhs : never>(lhs: Lhs, rhs: Rhs): Lhs | Rhs;
|
|
24
|
+
export declare const mul: import("../types.ts").DualFn<typeof cpuMul>;
|
|
28
25
|
declare function cpuDiv(lhs: number, rhs: number): number;
|
|
29
26
|
declare function cpuDiv<T extends NumVec>(lhs: T, rhs: T): T;
|
|
30
27
|
declare function cpuDiv<T extends NumVec>(lhs: number, rhs: T): T;
|
|
31
28
|
declare function cpuDiv<T extends NumVec>(lhs: T, rhs: number): T;
|
|
32
|
-
declare const div: DualFn<typeof cpuDiv>;
|
|
29
|
+
export declare const div: import("../types.ts").DualFn<typeof cpuDiv>;
|
|
33
30
|
type ModOverload = {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
(a: number, b: number): number;
|
|
32
|
+
<T extends NumVec>(a: T, b: T): T;
|
|
33
|
+
<T extends NumVec>(a: number, b: T): T;
|
|
34
|
+
<T extends NumVec>(a: T, b: number): T;
|
|
38
35
|
};
|
|
39
36
|
/**
|
|
40
37
|
* @privateRemarks
|
|
41
38
|
* Both JS and WGSL implementations use truncated definition of modulo
|
|
42
39
|
*/
|
|
43
|
-
declare const mod: DualFn<ModOverload>;
|
|
40
|
+
export declare const mod: import("../types.ts").DualFn<ModOverload>;
|
|
44
41
|
declare function cpuNeg(value: number): number;
|
|
45
42
|
declare function cpuNeg<T extends NumVec>(value: T): T;
|
|
46
|
-
declare const neg: DualFn<typeof cpuNeg>;
|
|
47
|
-
declare function cpuBitShiftLeft(lhs:
|
|
48
|
-
declare
|
|
49
|
-
declare function
|
|
50
|
-
declare const
|
|
51
|
-
|
|
52
|
-
declare function cpuBitShiftRight<T extends AnyIntegerVecInstance>(lhs: T, rhs: number): T;
|
|
53
|
-
declare function cpuBitShiftRight<T extends AnyIntegerVecInstance>(lhs: T, rhs: vecIToVecU<T>): T;
|
|
54
|
-
declare const bitShiftRight: DualFn<typeof cpuBitShiftRight>;
|
|
55
|
-
//#endregion
|
|
56
|
-
export { add, bitShiftLeft, bitShiftRight, div, mod, mul, neg, sub };
|
|
43
|
+
export declare const neg: import("../types.ts").DualFn<typeof cpuNeg>;
|
|
44
|
+
declare function cpuBitShiftLeft<T extends AnyIntegerVecInstance>(lhs: T, rhs: number | vecIToVecU<T>): T;
|
|
45
|
+
export declare const bitShiftLeft: import("../types.ts").DualFn<typeof cpuBitShiftLeft>;
|
|
46
|
+
declare function cpuBitShiftRight<T extends AnyIntegerVecInstance>(lhs: T, rhs: number | vecIToVecU<T>): T;
|
|
47
|
+
export declare const bitShiftRight: import("../types.ts").DualFn<typeof cpuBitShiftRight>;
|
|
48
|
+
export {};
|
package/std/operators.js
CHANGED
|
@@ -1,229 +1,263 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { SignatureNotSupportedError } from "../errors.js";
|
|
1
|
+
import { dualImpl } from "../core/function/dualImpl.js";
|
|
3
2
|
import { stitch } from "../core/resolve/stitch.js";
|
|
4
|
-
import {
|
|
5
|
-
import { abstractFloat, f16, f32, i32, u32 } from "../data/numeric.js";
|
|
3
|
+
import { abstractFloat, f16, f32, u32 } from "../data/numeric.js";
|
|
6
4
|
import { vec2i, vec2u, vec3i, vec3u, vec4i, vec4u, vecTypeToConstructor } from "../data/vector.js";
|
|
7
|
-
import { dualImpl } from "../core/function/dualImpl.js";
|
|
8
5
|
import { VectorOps } from "../data/vectorOps.js";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
import { isFloat32VecInstance, isInteger32VecInstance, isMat, isMatInstance, isUint32VecInstance, isVec, isVecInstance, } from "../data/wgslTypes.js";
|
|
7
|
+
import { SignatureNotSupportedError } from "../errors.js";
|
|
8
|
+
import { unify } from "../tgsl/conversion.js";
|
|
9
|
+
const getPrimitive = (t) => ('primitive' in t ? t.primitive : t);
|
|
12
10
|
const makeBinarySignature = (opts) => (lhs, rhs) => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
11
|
+
const { restrict } = opts ?? {};
|
|
12
|
+
const fail = (msg) => {
|
|
13
|
+
if (restrict) {
|
|
14
|
+
throw new SignatureNotSupportedError([lhs, rhs], restrict);
|
|
15
|
+
}
|
|
16
|
+
throw new Error(`Cannot apply operator to ${lhs.type} and ${rhs.type}: ${msg}`);
|
|
17
|
+
};
|
|
18
|
+
if (opts?.noMat && (isMat(lhs) || isMat(rhs))) {
|
|
19
|
+
return fail('matrices not supported');
|
|
20
|
+
}
|
|
21
|
+
const lhsC = isVec(lhs) || isMat(lhs);
|
|
22
|
+
const rhsC = isVec(rhs) || isMat(rhs);
|
|
23
|
+
if (!lhsC && !rhsC) {
|
|
24
|
+
// scalar × scalar
|
|
25
|
+
const unified = unify([lhs, rhs], restrict);
|
|
26
|
+
if (!unified)
|
|
27
|
+
return fail('incompatible scalar types');
|
|
28
|
+
return { argTypes: unified, returnType: unified[0] };
|
|
29
|
+
}
|
|
30
|
+
if (lhsC && rhsC) {
|
|
31
|
+
// vec × mat or mat × vec
|
|
32
|
+
if (opts?.matVecProduct && isVec(lhs) !== isVec(rhs)) {
|
|
33
|
+
return { argTypes: [lhs, rhs], returnType: isVec(lhs) ? lhs : rhs };
|
|
34
|
+
}
|
|
35
|
+
// composite × composite (same kind)
|
|
36
|
+
if (lhs.type !== rhs.type)
|
|
37
|
+
return fail('operands must have the same type');
|
|
38
|
+
return { argTypes: [lhs, rhs], returnType: lhs };
|
|
39
|
+
}
|
|
40
|
+
// scalar × composite
|
|
41
|
+
const [scalar, composite] = lhsC ? [rhs, lhs] : [lhs, rhs];
|
|
42
|
+
const unified = unify([scalar], [getPrimitive(composite)]);
|
|
43
|
+
if (!unified) {
|
|
44
|
+
return fail(`scalar not convertible to ${getPrimitive(composite).type}`);
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
argTypes: lhsC ? [lhs, unified[0]] : [unified[0], rhs],
|
|
48
|
+
returnType: composite,
|
|
49
|
+
};
|
|
47
50
|
};
|
|
48
51
|
const binaryArithmeticSignature = makeBinarySignature();
|
|
49
52
|
const binaryMulSignature = makeBinarySignature({ matVecProduct: true });
|
|
50
53
|
const binaryDivSignature = makeBinarySignature({
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
f32,
|
|
54
|
-
f16,
|
|
55
|
-
abstractFloat
|
|
56
|
-
]
|
|
54
|
+
noMat: true,
|
|
55
|
+
restrict: [f32, f16, abstractFloat],
|
|
57
56
|
});
|
|
58
57
|
function cpuAdd(lhs, rhs) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
58
|
+
if (typeof lhs === 'number' && typeof rhs === 'number') {
|
|
59
|
+
return lhs + rhs; // default addition
|
|
60
|
+
}
|
|
61
|
+
if (typeof lhs === 'number' && isVecInstance(rhs)) {
|
|
62
|
+
return VectorOps.addMixed[rhs.kind](rhs, lhs); // mixed addition
|
|
63
|
+
}
|
|
64
|
+
if (isVecInstance(lhs) && typeof rhs === 'number') {
|
|
65
|
+
return VectorOps.addMixed[lhs.kind](lhs, rhs); // mixed addition
|
|
66
|
+
}
|
|
67
|
+
if ((isVecInstance(lhs) && isVecInstance(rhs)) || (isMatInstance(lhs) && isMatInstance(rhs))) {
|
|
68
|
+
return VectorOps.add[lhs.kind](lhs, rhs); // component-wise addition
|
|
69
|
+
}
|
|
70
|
+
throw new Error('Add/Sub called with invalid arguments.');
|
|
64
71
|
}
|
|
65
|
-
const add = dualImpl({
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
72
|
+
export const add = dualImpl({
|
|
73
|
+
name: 'add',
|
|
74
|
+
signature: binaryArithmeticSignature,
|
|
75
|
+
normalImpl: cpuAdd,
|
|
76
|
+
codegenImpl: (ctx, [lhs, rhs]) => ctx.gen.emitBinaryOp(lhs, '+', rhs),
|
|
77
|
+
sideEffects: false,
|
|
70
78
|
});
|
|
71
79
|
function cpuSub(lhs, rhs) {
|
|
72
|
-
|
|
80
|
+
// while illegal on the wgsl side, we can do this in js
|
|
81
|
+
return cpuAdd(lhs, cpuMul(-1, rhs));
|
|
73
82
|
}
|
|
74
|
-
const sub = dualImpl({
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
83
|
+
export const sub = dualImpl({
|
|
84
|
+
name: 'sub',
|
|
85
|
+
signature: binaryArithmeticSignature,
|
|
86
|
+
normalImpl: cpuSub,
|
|
87
|
+
codegenImpl: (ctx, [lhs, rhs]) => ctx.gen.emitBinaryOp(lhs, '-', rhs),
|
|
88
|
+
sideEffects: false,
|
|
79
89
|
});
|
|
80
90
|
function cpuMul(lhs, rhs) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
91
|
+
if (typeof lhs === 'number' && typeof rhs === 'number') {
|
|
92
|
+
return lhs * rhs; // default multiplication
|
|
93
|
+
}
|
|
94
|
+
if (typeof lhs === 'number' && (isVecInstance(rhs) || isMatInstance(rhs))) {
|
|
95
|
+
return VectorOps.mulSxV[rhs.kind](lhs, rhs); // scale
|
|
96
|
+
}
|
|
97
|
+
if ((isVecInstance(lhs) || isMatInstance(lhs)) && typeof rhs === 'number') {
|
|
98
|
+
return VectorOps.mulSxV[lhs.kind](rhs, lhs); // scale
|
|
99
|
+
}
|
|
100
|
+
if (isVecInstance(lhs) && isVecInstance(rhs)) {
|
|
101
|
+
return VectorOps.mulVxV[lhs.kind](lhs, rhs); // component-wise
|
|
102
|
+
}
|
|
103
|
+
if (isFloat32VecInstance(lhs) && isMatInstance(rhs)) {
|
|
104
|
+
return VectorOps.mulVxM[rhs.kind](lhs, rhs); // row-vector-matrix
|
|
105
|
+
}
|
|
106
|
+
if (isMatInstance(lhs) && isFloat32VecInstance(rhs)) {
|
|
107
|
+
return VectorOps.mulMxV[lhs.kind](lhs, rhs); // matrix-column-vector
|
|
108
|
+
}
|
|
109
|
+
if (isMatInstance(lhs) && isMatInstance(rhs)) {
|
|
110
|
+
return VectorOps.mulVxV[lhs.kind](lhs, rhs); // matrix multiplication
|
|
111
|
+
}
|
|
112
|
+
throw new Error('Mul called with invalid arguments.');
|
|
89
113
|
}
|
|
90
|
-
const mul = dualImpl({
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
114
|
+
export const mul = dualImpl({
|
|
115
|
+
name: 'mul',
|
|
116
|
+
signature: binaryMulSignature,
|
|
117
|
+
normalImpl: cpuMul,
|
|
118
|
+
codegenImpl: (ctx, [lhs, rhs]) => ctx.gen.emitBinaryOp(lhs, '*', rhs),
|
|
119
|
+
sideEffects: false,
|
|
95
120
|
});
|
|
96
121
|
function cpuDiv(lhs, rhs) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
122
|
+
if (typeof lhs === 'number' && typeof rhs === 'number') {
|
|
123
|
+
return lhs / rhs;
|
|
124
|
+
}
|
|
125
|
+
if (typeof lhs === 'number' && isVecInstance(rhs)) {
|
|
126
|
+
const schema = vecTypeToConstructor[rhs.kind];
|
|
127
|
+
return VectorOps.div[rhs.kind](schema(lhs), rhs);
|
|
128
|
+
}
|
|
129
|
+
if (isVecInstance(lhs) && typeof rhs === 'number') {
|
|
130
|
+
const schema = vecTypeToConstructor[lhs.kind];
|
|
131
|
+
return VectorOps.div[lhs.kind](lhs, schema(rhs));
|
|
132
|
+
}
|
|
133
|
+
if (isVecInstance(lhs) && isVecInstance(rhs)) {
|
|
134
|
+
return VectorOps.div[lhs.kind](lhs, rhs);
|
|
135
|
+
}
|
|
136
|
+
throw new Error('Div called with invalid arguments.');
|
|
108
137
|
}
|
|
109
|
-
const div = dualImpl({
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
138
|
+
export const div = dualImpl({
|
|
139
|
+
name: 'div',
|
|
140
|
+
signature: binaryDivSignature,
|
|
141
|
+
normalImpl: cpuDiv,
|
|
142
|
+
codegenImpl: (ctx, [lhs, rhs]) => ctx.gen.emitBinaryOp(lhs, '/', rhs),
|
|
143
|
+
ignoreImplicitCastWarning: true,
|
|
144
|
+
sideEffects: false,
|
|
115
145
|
});
|
|
116
146
|
/**
|
|
117
|
-
* @privateRemarks
|
|
118
|
-
* Both JS and WGSL implementations use truncated definition of modulo
|
|
119
|
-
*/
|
|
120
|
-
const mod = dualImpl({
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
147
|
+
* @privateRemarks
|
|
148
|
+
* Both JS and WGSL implementations use truncated definition of modulo
|
|
149
|
+
*/
|
|
150
|
+
export const mod = dualImpl({
|
|
151
|
+
name: 'mod',
|
|
152
|
+
signature: binaryDivSignature,
|
|
153
|
+
normalImpl: ((a, b) => {
|
|
154
|
+
if (typeof a === 'number' && typeof b === 'number') {
|
|
155
|
+
return (a % b); // scalar % scalar
|
|
156
|
+
}
|
|
157
|
+
if (typeof a === 'number' && isVecInstance(b)) {
|
|
158
|
+
// scalar % vector
|
|
159
|
+
const schema = vecTypeToConstructor[b.kind];
|
|
160
|
+
return VectorOps.mod[b.kind](schema(a), b);
|
|
161
|
+
}
|
|
162
|
+
if (isVecInstance(a) && typeof b === 'number') {
|
|
163
|
+
const schema = vecTypeToConstructor[a.kind];
|
|
164
|
+
// vector % scalar
|
|
165
|
+
return VectorOps.mod[a.kind](a, schema(b));
|
|
166
|
+
}
|
|
167
|
+
if (isVecInstance(a) && isVecInstance(b)) {
|
|
168
|
+
// vector % vector
|
|
169
|
+
return VectorOps.mod[a.kind](a, b);
|
|
170
|
+
}
|
|
171
|
+
throw new Error('Mod called with invalid arguments, expected types: number or vector.');
|
|
172
|
+
}),
|
|
173
|
+
codegenImpl: (ctx, [lhs, rhs]) => ctx.gen.emitBinaryOp(lhs, '%', rhs),
|
|
174
|
+
sideEffects: false,
|
|
137
175
|
});
|
|
138
176
|
function cpuNeg(value) {
|
|
139
|
-
|
|
140
|
-
|
|
177
|
+
if (typeof value === 'number') {
|
|
178
|
+
return -value;
|
|
179
|
+
}
|
|
180
|
+
return VectorOps.neg[value.kind](value);
|
|
141
181
|
}
|
|
142
|
-
const neg = dualImpl({
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
182
|
+
export const neg = dualImpl({
|
|
183
|
+
name: 'neg',
|
|
184
|
+
signature: (arg) => ({
|
|
185
|
+
argTypes: [arg],
|
|
186
|
+
returnType: arg,
|
|
187
|
+
}),
|
|
188
|
+
normalImpl: cpuNeg,
|
|
189
|
+
codegenImpl: (_ctx, [arg]) => stitch `-(${arg})`,
|
|
190
|
+
sideEffects: false,
|
|
150
191
|
});
|
|
151
|
-
const anyConcreteInteger = [
|
|
152
|
-
i32,
|
|
153
|
-
u32,
|
|
154
|
-
vec2i,
|
|
155
|
-
vec3i,
|
|
156
|
-
vec4i,
|
|
157
|
-
vec2u,
|
|
158
|
-
vec3u,
|
|
159
|
-
vec4u
|
|
160
|
-
];
|
|
161
192
|
const intVecToUnsignedVec = {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
193
|
+
vec2i: vec2u,
|
|
194
|
+
vec2u: vec2u,
|
|
195
|
+
vec3i: vec3u,
|
|
196
|
+
vec3u: vec3u,
|
|
197
|
+
vec4i: vec4u,
|
|
198
|
+
vec4u: vec4u,
|
|
168
199
|
};
|
|
169
200
|
const bitShiftSignature = (lhs, rhs) => {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
201
|
+
const lhsUnified = unify([lhs], [vec2i, vec3i, vec4i, vec2u, vec3u, vec4u])?.[0];
|
|
202
|
+
if (!lhsUnified || !isVec(lhsUnified)) {
|
|
203
|
+
throw new SignatureNotSupportedError([lhs], [vec2i, vec3i, vec4i, vec2u, vec3u, vec4u]);
|
|
204
|
+
}
|
|
205
|
+
const cc = lhsUnified.componentCount;
|
|
206
|
+
const vecU = cc === 2 ? vec2u : cc === 3 ? vec3u : vec4u;
|
|
207
|
+
const rhsUnified = unify([rhs], [u32, vecU])?.[0];
|
|
208
|
+
if (!rhsUnified) {
|
|
209
|
+
throw new SignatureNotSupportedError([rhs], [u32, vecU]);
|
|
210
|
+
}
|
|
211
|
+
return {
|
|
212
|
+
argTypes: [lhsUnified, rhsUnified],
|
|
213
|
+
returnType: lhsUnified,
|
|
214
|
+
};
|
|
184
215
|
};
|
|
185
216
|
function cpuBitShiftLeft(lhs, rhs) {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
217
|
+
if (isInteger32VecInstance(lhs) && isUint32VecInstance(rhs) && lhs.length == rhs.length) {
|
|
218
|
+
return VectorOps.bitShiftLeft[lhs.kind](lhs, rhs);
|
|
219
|
+
}
|
|
220
|
+
if (isInteger32VecInstance(lhs) && typeof rhs === 'number') {
|
|
221
|
+
const rhsVec = intVecToUnsignedVec[lhs.kind](rhs);
|
|
222
|
+
return VectorOps.bitShiftLeft[lhs.kind](lhs, rhsVec);
|
|
223
|
+
}
|
|
224
|
+
throw new Error("'bitShiftLeft' called with invalid arguments, expected: left-hand side to be an integer vector, right-hand side to be a number or unsigned integer vector of the same arity as the left-hand side.");
|
|
193
225
|
}
|
|
194
|
-
const bitShiftLeft = dualImpl({
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
226
|
+
export const bitShiftLeft = dualImpl({
|
|
227
|
+
name: 'bitShiftLeft',
|
|
228
|
+
signature: bitShiftSignature,
|
|
229
|
+
normalImpl: cpuBitShiftLeft,
|
|
230
|
+
codegenImpl: (ctx, [lhs, rhs]) => {
|
|
231
|
+
if (isVec(lhs.dataType) && !isVec(rhs.dataType)) {
|
|
232
|
+
const cc = lhs.dataType.componentCount;
|
|
233
|
+
const schema = cc === 2 ? vec2u : cc === 3 ? vec3u : vec4u;
|
|
234
|
+
return ctx.gen.emitBinaryOp(lhs, '<<', ctx.gen.typeInstantiation(schema, [rhs]));
|
|
235
|
+
}
|
|
236
|
+
return ctx.gen.emitBinaryOp(lhs, '<<', rhs);
|
|
237
|
+
},
|
|
238
|
+
sideEffects: false,
|
|
205
239
|
});
|
|
206
240
|
function cpuBitShiftRight(lhs, rhs) {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
241
|
+
if (isInteger32VecInstance(lhs) && isUint32VecInstance(rhs) && lhs.length == rhs.length) {
|
|
242
|
+
return VectorOps.bitShiftRight[lhs.kind](lhs, rhs);
|
|
243
|
+
}
|
|
244
|
+
if (isInteger32VecInstance(lhs) && typeof rhs === 'number') {
|
|
245
|
+
const rhsVec = intVecToUnsignedVec[lhs.kind](rhs);
|
|
246
|
+
return VectorOps.bitShiftRight[lhs.kind](lhs, rhsVec);
|
|
247
|
+
}
|
|
248
|
+
throw new Error("'bitShiftRight' called with invalid arguments, expected: left-hand side to be an integer vector, right-hand side to be a number or unsigned integer vector of the same arity as the left-hand side.");
|
|
214
249
|
}
|
|
215
|
-
const bitShiftRight = dualImpl({
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
250
|
+
export const bitShiftRight = dualImpl({
|
|
251
|
+
name: 'bitShiftRight',
|
|
252
|
+
signature: bitShiftSignature,
|
|
253
|
+
normalImpl: cpuBitShiftRight,
|
|
254
|
+
codegenImpl: (ctx, [lhs, rhs]) => {
|
|
255
|
+
if (isVec(lhs.dataType) && !isVec(rhs.dataType)) {
|
|
256
|
+
const cc = lhs.dataType.componentCount;
|
|
257
|
+
const schema = cc === 2 ? vec2u : cc === 3 ? vec3u : vec4u;
|
|
258
|
+
return ctx.gen.emitBinaryOp(lhs, '>>', ctx.gen.typeInstantiation(schema, [rhs]));
|
|
259
|
+
}
|
|
260
|
+
return ctx.gen.emitBinaryOp(lhs, '>>', rhs);
|
|
261
|
+
},
|
|
262
|
+
sideEffects: false,
|
|
226
263
|
});
|
|
227
|
-
|
|
228
|
-
//#endregion
|
|
229
|
-
export { add, bitShiftLeft, bitShiftRight, div, mod, mul, neg, sub };
|
package/std/packing.d.ts
CHANGED
|
@@ -1,27 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { v2f, v4f } from "../data/wgslTypes.js";
|
|
3
|
-
|
|
4
|
-
//#region src/std/packing.d.ts
|
|
5
|
-
|
|
1
|
+
import type { v2f, v4f } from '../data/wgslTypes.ts';
|
|
6
2
|
/**
|
|
7
3
|
* @privateRemarks
|
|
8
4
|
* https://gpuweb.github.io/gpuweb/wgsl/#unpack2x16float-builtin
|
|
9
5
|
*/
|
|
10
|
-
declare const unpack2x16float: DualFn<(e: number) => v2f>;
|
|
6
|
+
export declare const unpack2x16float: import("../types.ts").DualFn<(e: number) => v2f>;
|
|
11
7
|
/**
|
|
12
8
|
* @privateRemarks
|
|
13
9
|
* https://gpuweb.github.io/gpuweb/wgsl/#pack2x16float-builtin
|
|
14
10
|
*/
|
|
15
|
-
declare const pack2x16float: DualFn<(e: v2f) => number>;
|
|
11
|
+
export declare const pack2x16float: import("../types.ts").DualFn<(e: v2f) => number>;
|
|
16
12
|
/**
|
|
17
13
|
* @privateRemarks
|
|
18
14
|
* https://gpuweb.github.io/gpuweb/wgsl/#unpack4x8unorm-builtin
|
|
19
15
|
*/
|
|
20
|
-
declare const unpack4x8unorm: DualFn<(e: number) => v4f>;
|
|
16
|
+
export declare const unpack4x8unorm: import("../types.ts").DualFn<(e: number) => v4f>;
|
|
21
17
|
/**
|
|
22
18
|
* @privateRemarks
|
|
23
19
|
* https://gpuweb.github.io/gpuweb/wgsl/#pack4x8unorm-builtin
|
|
24
20
|
*/
|
|
25
|
-
declare const pack4x8unorm: DualFn<(e: v4f) => number>;
|
|
26
|
-
//#endregion
|
|
27
|
-
export { pack2x16float, pack4x8unorm, unpack2x16float, unpack4x8unorm };
|
|
21
|
+
export declare const pack4x8unorm: import("../types.ts").DualFn<(e: v4f) => number>;
|