typegpu 0.11.9 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin.mjs +28 -6
- 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 +283 -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/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/pipeline/webgpuLimitations.d.ts +10 -0
- package/core/pipeline/webgpuLimitations.js +81 -0
- 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 +17 -9
- package/data/array.js +57 -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/generalizeFn.d.ts +25 -0
- package/data/generalizeFn.js +89 -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 +5 -0
- package/data/numberOps.js +21 -21
- 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 +25 -0
- package/data/vectorOps.js +118 -669
- 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 -292
- 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 +150 -146
- package/std/numeric.js +771 -727
- package/std/operators.d.ts +19 -27
- package/std/operators.js +195 -194
- 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 +64 -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 +1345 -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/core/pipeline/limitsOverflow.js +0 -13
- 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,230 @@
|
|
|
1
|
-
import { isFloat32VecInstance, isInteger32VecInstance, isMat, isMatInstance, isUint32VecInstance, isVec, isVecInstance } from "../data/wgslTypes.js";
|
|
2
|
-
import { SignatureNotSupportedError } from "../errors.js";
|
|
3
|
-
import { stitch } from "../core/resolve/stitch.js";
|
|
4
|
-
import { unify } from "../tgsl/conversion.js";
|
|
5
|
-
import { abstractFloat, f16, f32, i32, u32 } from "../data/numeric.js";
|
|
6
|
-
import { vec2i, vec2u, vec3i, vec3u, vec4i, vec4u, vecTypeToConstructor } from "../data/vector.js";
|
|
7
1
|
import { dualImpl } from "../core/function/dualImpl.js";
|
|
2
|
+
import { stitch } from "../core/resolve/stitch.js";
|
|
3
|
+
import { abstractFloat, f16, f32, u32 } from "../data/numeric.js";
|
|
4
|
+
import { vec2i, vec2u, vec3i, vec3u, vec4i, vec4u } from "../data/vector.js";
|
|
8
5
|
import { VectorOps } from "../data/vectorOps.js";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
import { generalizeFn, upCast } from "../data/generalizeFn.js";
|
|
7
|
+
import { isFloat32VecInstance, isInteger32VecInstance, isMat, isMatInstance, isUint32VecInstance, isVec, isVecInstance, } from "../data/wgslTypes.js";
|
|
8
|
+
import { SignatureNotSupportedError } from "../errors.js";
|
|
9
|
+
import { unify } from "../tgsl/conversion.js";
|
|
10
|
+
const getPrimitive = (t) => ('primitive' in t ? t.primitive : t);
|
|
12
11
|
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
|
-
|
|
12
|
+
const { restrict } = opts ?? {};
|
|
13
|
+
const fail = (msg) => {
|
|
14
|
+
if (restrict) {
|
|
15
|
+
throw new SignatureNotSupportedError([lhs, rhs], restrict);
|
|
16
|
+
}
|
|
17
|
+
throw new Error(`Cannot apply operator to ${lhs.type} and ${rhs.type}: ${msg}`);
|
|
18
|
+
};
|
|
19
|
+
if (opts?.noMat && (isMat(lhs) || isMat(rhs))) {
|
|
20
|
+
return fail('matrices not supported');
|
|
21
|
+
}
|
|
22
|
+
const lhsC = isVec(lhs) || isMat(lhs);
|
|
23
|
+
const rhsC = isVec(rhs) || isMat(rhs);
|
|
24
|
+
if (!lhsC && !rhsC) {
|
|
25
|
+
// scalar × scalar
|
|
26
|
+
const unified = unify([lhs, rhs], restrict);
|
|
27
|
+
if (!unified)
|
|
28
|
+
return fail('incompatible scalar types');
|
|
29
|
+
return { argTypes: unified, returnType: unified[0] };
|
|
30
|
+
}
|
|
31
|
+
if (lhsC && rhsC) {
|
|
32
|
+
// vec × mat or mat × vec
|
|
33
|
+
if (opts?.matVecProduct && isVec(lhs) !== isVec(rhs)) {
|
|
34
|
+
return { argTypes: [lhs, rhs], returnType: isVec(lhs) ? lhs : rhs };
|
|
35
|
+
}
|
|
36
|
+
// composite × composite (same kind)
|
|
37
|
+
if (lhs.type !== rhs.type)
|
|
38
|
+
return fail('operands must have the same type');
|
|
39
|
+
return { argTypes: [lhs, rhs], returnType: lhs };
|
|
40
|
+
}
|
|
41
|
+
// scalar × composite
|
|
42
|
+
const [scalar, composite] = lhsC ? [rhs, lhs] : [lhs, rhs];
|
|
43
|
+
const unified = unify([scalar], [getPrimitive(composite)]);
|
|
44
|
+
if (!unified) {
|
|
45
|
+
return fail(`scalar not convertible to ${getPrimitive(composite).type}`);
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
argTypes: lhsC ? [lhs, unified[0]] : [unified[0], rhs],
|
|
49
|
+
returnType: composite,
|
|
50
|
+
};
|
|
47
51
|
};
|
|
48
52
|
const binaryArithmeticSignature = makeBinarySignature();
|
|
49
53
|
const binaryMulSignature = makeBinarySignature({ matVecProduct: true });
|
|
50
54
|
const binaryDivSignature = makeBinarySignature({
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
f32,
|
|
54
|
-
f16,
|
|
55
|
-
abstractFloat
|
|
56
|
-
]
|
|
55
|
+
noMat: true,
|
|
56
|
+
restrict: [f32, f16, abstractFloat],
|
|
57
57
|
});
|
|
58
58
|
function cpuAdd(lhs, rhs) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
if (typeof lhs === 'number' && typeof rhs === 'number') {
|
|
60
|
+
return lhs + rhs; // default addition
|
|
61
|
+
}
|
|
62
|
+
if (typeof lhs === 'number' && isVecInstance(rhs)) {
|
|
63
|
+
return generalizeFn((e) => lhs + e, [rhs]); // mixed addition
|
|
64
|
+
}
|
|
65
|
+
if (isVecInstance(lhs) && typeof rhs === 'number') {
|
|
66
|
+
return generalizeFn((e) => e + rhs, [lhs]); // mixed addition
|
|
67
|
+
}
|
|
68
|
+
if ((isVecInstance(lhs) && isVecInstance(rhs)) || (isMatInstance(lhs) && isMatInstance(rhs))) {
|
|
69
|
+
return generalizeFn((a, b) => a + b, [lhs, rhs]); // component-wise addition
|
|
70
|
+
}
|
|
71
|
+
throw new Error('Add/Sub called with invalid arguments.');
|
|
64
72
|
}
|
|
65
|
-
const add = dualImpl({
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
73
|
+
export const add = dualImpl({
|
|
74
|
+
name: 'add',
|
|
75
|
+
signature: binaryArithmeticSignature,
|
|
76
|
+
normalImpl: cpuAdd,
|
|
77
|
+
codegenImpl: (ctx, [lhs, rhs]) => ctx.gen.emitBinaryOp(lhs, '+', rhs),
|
|
78
|
+
sideEffects: false,
|
|
70
79
|
});
|
|
71
80
|
function cpuSub(lhs, rhs) {
|
|
72
|
-
|
|
81
|
+
// while illegal on the wgsl side, we can do this in js
|
|
82
|
+
return cpuAdd(lhs, cpuMul(-1, rhs));
|
|
73
83
|
}
|
|
74
|
-
const sub = dualImpl({
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
84
|
+
export const sub = dualImpl({
|
|
85
|
+
name: 'sub',
|
|
86
|
+
signature: binaryArithmeticSignature,
|
|
87
|
+
normalImpl: cpuSub,
|
|
88
|
+
codegenImpl: (ctx, [lhs, rhs]) => ctx.gen.emitBinaryOp(lhs, '-', rhs),
|
|
89
|
+
sideEffects: false,
|
|
79
90
|
});
|
|
80
91
|
function cpuMul(lhs, rhs) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
92
|
+
if (typeof lhs === 'number' && typeof rhs === 'number') {
|
|
93
|
+
return lhs * rhs; // default multiplication
|
|
94
|
+
}
|
|
95
|
+
if (typeof lhs === 'number' && (isVecInstance(rhs) || isMatInstance(rhs))) {
|
|
96
|
+
return generalizeFn((e) => lhs * e, [rhs]); // scale
|
|
97
|
+
}
|
|
98
|
+
if ((isVecInstance(lhs) || isMatInstance(lhs)) && typeof rhs === 'number') {
|
|
99
|
+
return generalizeFn((e) => e * rhs, [lhs]); // scale
|
|
100
|
+
}
|
|
101
|
+
if (isVecInstance(lhs) && isVecInstance(rhs)) {
|
|
102
|
+
return generalizeFn((a, b) => a * b, [lhs, rhs]); // component-wise
|
|
103
|
+
}
|
|
104
|
+
if (isFloat32VecInstance(lhs) && isMatInstance(rhs)) {
|
|
105
|
+
return VectorOps.mulVxM[rhs.kind](lhs, rhs); // row-vector-matrix
|
|
106
|
+
}
|
|
107
|
+
if (isMatInstance(lhs) && isFloat32VecInstance(rhs)) {
|
|
108
|
+
return VectorOps.mulMxV[lhs.kind](lhs, rhs); // matrix-column-vector
|
|
109
|
+
}
|
|
110
|
+
if (isMatInstance(lhs) && isMatInstance(rhs)) {
|
|
111
|
+
return VectorOps.mulMxM[lhs.kind](lhs, rhs); // matrix multiplication
|
|
112
|
+
}
|
|
113
|
+
throw new Error('Mul called with invalid arguments.');
|
|
89
114
|
}
|
|
90
|
-
const mul = dualImpl({
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
115
|
+
export const mul = dualImpl({
|
|
116
|
+
name: 'mul',
|
|
117
|
+
signature: binaryMulSignature,
|
|
118
|
+
normalImpl: cpuMul,
|
|
119
|
+
codegenImpl: (ctx, [lhs, rhs]) => ctx.gen.emitBinaryOp(lhs, '*', rhs),
|
|
120
|
+
sideEffects: false,
|
|
95
121
|
});
|
|
96
122
|
function cpuDiv(lhs, rhs) {
|
|
97
|
-
|
|
98
|
-
if (typeof lhs === "number" && isVecInstance(rhs)) {
|
|
99
|
-
const schema = vecTypeToConstructor[rhs.kind];
|
|
100
|
-
return VectorOps.div[rhs.kind](schema(lhs), rhs);
|
|
101
|
-
}
|
|
102
|
-
if (isVecInstance(lhs) && typeof rhs === "number") {
|
|
103
|
-
const schema = vecTypeToConstructor[lhs.kind];
|
|
104
|
-
return VectorOps.div[lhs.kind](lhs, schema(rhs));
|
|
105
|
-
}
|
|
106
|
-
if (isVecInstance(lhs) && isVecInstance(rhs)) return VectorOps.div[lhs.kind](lhs, rhs);
|
|
107
|
-
throw new Error("Div called with invalid arguments.");
|
|
123
|
+
return generalizeFn((a, b) => a / b, upCast([lhs, rhs]));
|
|
108
124
|
}
|
|
109
|
-
const div = dualImpl({
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
125
|
+
export const div = dualImpl({
|
|
126
|
+
name: 'div',
|
|
127
|
+
signature: binaryDivSignature,
|
|
128
|
+
normalImpl: cpuDiv,
|
|
129
|
+
codegenImpl: (ctx, [lhs, rhs]) => ctx.gen.emitBinaryOp(lhs, '/', rhs),
|
|
130
|
+
ignoreImplicitCastWarning: true,
|
|
131
|
+
sideEffects: false,
|
|
115
132
|
});
|
|
116
133
|
/**
|
|
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
|
-
if (isVecInstance(a) && typeof b === "number") {
|
|
130
|
-
const schema = vecTypeToConstructor[a.kind];
|
|
131
|
-
return VectorOps.mod[a.kind](a, schema(b));
|
|
132
|
-
}
|
|
133
|
-
if (isVecInstance(a) && isVecInstance(b)) return VectorOps.mod[a.kind](a, b);
|
|
134
|
-
throw new Error("Mod called with invalid arguments, expected types: number or vector.");
|
|
135
|
-
}),
|
|
136
|
-
codegenImpl: (_ctx, [lhs, rhs]) => stitch`(${lhs} % ${rhs})`
|
|
134
|
+
* @privateRemarks
|
|
135
|
+
* Both JS and WGSL implementations use truncated definition of modulo
|
|
136
|
+
*/
|
|
137
|
+
export const mod = dualImpl({
|
|
138
|
+
name: 'mod',
|
|
139
|
+
signature: binaryDivSignature,
|
|
140
|
+
normalImpl: ((a, b) => {
|
|
141
|
+
return generalizeFn((a, b) => a % b, upCast([a, b]));
|
|
142
|
+
}),
|
|
143
|
+
codegenImpl: (ctx, [lhs, rhs]) => ctx.gen.emitBinaryOp(lhs, '%', rhs),
|
|
144
|
+
sideEffects: false,
|
|
137
145
|
});
|
|
138
146
|
function cpuNeg(value) {
|
|
139
|
-
|
|
140
|
-
return VectorOps.neg[value.kind](value);
|
|
147
|
+
return generalizeFn((value) => -value, [value]);
|
|
141
148
|
}
|
|
142
|
-
const neg = dualImpl({
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
149
|
+
export const neg = dualImpl({
|
|
150
|
+
name: 'neg',
|
|
151
|
+
signature: (arg) => ({
|
|
152
|
+
argTypes: [arg],
|
|
153
|
+
returnType: arg,
|
|
154
|
+
}),
|
|
155
|
+
normalImpl: cpuNeg,
|
|
156
|
+
codegenImpl: (_ctx, [arg]) => stitch `-(${arg})`,
|
|
157
|
+
sideEffects: false,
|
|
150
158
|
});
|
|
151
|
-
const anyConcreteInteger = [
|
|
152
|
-
i32,
|
|
153
|
-
u32,
|
|
154
|
-
vec2i,
|
|
155
|
-
vec3i,
|
|
156
|
-
vec4i,
|
|
157
|
-
vec2u,
|
|
158
|
-
vec3u,
|
|
159
|
-
vec4u
|
|
160
|
-
];
|
|
161
159
|
const intVecToUnsignedVec = {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
160
|
+
vec2i: vec2u,
|
|
161
|
+
vec2u: vec2u,
|
|
162
|
+
vec3i: vec3u,
|
|
163
|
+
vec3u: vec3u,
|
|
164
|
+
vec4i: vec4u,
|
|
165
|
+
vec4u: vec4u,
|
|
168
166
|
};
|
|
169
167
|
const bitShiftSignature = (lhs, rhs) => {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
168
|
+
const lhsUnified = unify([lhs], [vec2i, vec3i, vec4i, vec2u, vec3u, vec4u])?.[0];
|
|
169
|
+
if (!lhsUnified || !isVec(lhsUnified)) {
|
|
170
|
+
throw new SignatureNotSupportedError([lhs], [vec2i, vec3i, vec4i, vec2u, vec3u, vec4u]);
|
|
171
|
+
}
|
|
172
|
+
const cc = lhsUnified.componentCount;
|
|
173
|
+
const vecU = cc === 2 ? vec2u : cc === 3 ? vec3u : vec4u;
|
|
174
|
+
const rhsUnified = unify([rhs], [u32, vecU])?.[0];
|
|
175
|
+
if (!rhsUnified) {
|
|
176
|
+
throw new SignatureNotSupportedError([rhs], [u32, vecU]);
|
|
177
|
+
}
|
|
178
|
+
return {
|
|
179
|
+
argTypes: [lhsUnified, rhsUnified],
|
|
180
|
+
returnType: lhsUnified,
|
|
181
|
+
};
|
|
184
182
|
};
|
|
185
183
|
function cpuBitShiftLeft(lhs, rhs) {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
184
|
+
if (isInteger32VecInstance(lhs) && isUint32VecInstance(rhs) && lhs.length == rhs.length) {
|
|
185
|
+
return VectorOps.bitShiftLeft[lhs.kind](lhs, rhs);
|
|
186
|
+
}
|
|
187
|
+
if (isInteger32VecInstance(lhs) && typeof rhs === 'number') {
|
|
188
|
+
const rhsVec = intVecToUnsignedVec[lhs.kind](rhs);
|
|
189
|
+
return VectorOps.bitShiftLeft[lhs.kind](lhs, rhsVec);
|
|
190
|
+
}
|
|
191
|
+
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
192
|
}
|
|
194
|
-
const bitShiftLeft = dualImpl({
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
193
|
+
export const bitShiftLeft = dualImpl({
|
|
194
|
+
name: 'bitShiftLeft',
|
|
195
|
+
signature: bitShiftSignature,
|
|
196
|
+
normalImpl: cpuBitShiftLeft,
|
|
197
|
+
codegenImpl: (ctx, [lhs, rhs]) => {
|
|
198
|
+
if (isVec(lhs.dataType) && !isVec(rhs.dataType)) {
|
|
199
|
+
const cc = lhs.dataType.componentCount;
|
|
200
|
+
const schema = cc === 2 ? vec2u : cc === 3 ? vec3u : vec4u;
|
|
201
|
+
return ctx.gen.emitBinaryOp(lhs, '<<', ctx.gen.typeInstantiation(schema, [rhs]));
|
|
202
|
+
}
|
|
203
|
+
return ctx.gen.emitBinaryOp(lhs, '<<', rhs);
|
|
204
|
+
},
|
|
205
|
+
sideEffects: false,
|
|
205
206
|
});
|
|
206
207
|
function cpuBitShiftRight(lhs, rhs) {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
208
|
+
if (isInteger32VecInstance(lhs) && isUint32VecInstance(rhs) && lhs.length == rhs.length) {
|
|
209
|
+
return VectorOps.bitShiftRight[lhs.kind](lhs, rhs);
|
|
210
|
+
}
|
|
211
|
+
if (isInteger32VecInstance(lhs) && typeof rhs === 'number') {
|
|
212
|
+
const rhsVec = intVecToUnsignedVec[lhs.kind](rhs);
|
|
213
|
+
return VectorOps.bitShiftRight[lhs.kind](lhs, rhsVec);
|
|
214
|
+
}
|
|
215
|
+
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
216
|
}
|
|
215
|
-
const bitShiftRight = dualImpl({
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
217
|
+
export const bitShiftRight = dualImpl({
|
|
218
|
+
name: 'bitShiftRight',
|
|
219
|
+
signature: bitShiftSignature,
|
|
220
|
+
normalImpl: cpuBitShiftRight,
|
|
221
|
+
codegenImpl: (ctx, [lhs, rhs]) => {
|
|
222
|
+
if (isVec(lhs.dataType) && !isVec(rhs.dataType)) {
|
|
223
|
+
const cc = lhs.dataType.componentCount;
|
|
224
|
+
const schema = cc === 2 ? vec2u : cc === 3 ? vec3u : vec4u;
|
|
225
|
+
return ctx.gen.emitBinaryOp(lhs, '>>', ctx.gen.typeInstantiation(schema, [rhs]));
|
|
226
|
+
}
|
|
227
|
+
return ctx.gen.emitBinaryOp(lhs, '>>', rhs);
|
|
228
|
+
},
|
|
229
|
+
sideEffects: false,
|
|
226
230
|
});
|
|
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>;
|