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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typegpu",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "A thin layer between JS and WebGPU/WGSL that improves development experience and allows for faster iteration.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"compute",
|
|
@@ -41,6 +41,10 @@
|
|
|
41
41
|
"./common": {
|
|
42
42
|
"types": "./common/index.d.ts",
|
|
43
43
|
"default": "./common/index.js"
|
|
44
|
+
},
|
|
45
|
+
"./~internal": {
|
|
46
|
+
"types": "./internal.d.ts",
|
|
47
|
+
"default": "./internal.js"
|
|
44
48
|
}
|
|
45
49
|
},
|
|
46
50
|
"dependencies": {
|
package/resolutionCtx.d.ts
CHANGED
|
@@ -1,30 +1,170 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import type { Namespace } from './core/resolve/namespace.ts';
|
|
2
|
+
import type { Configurable, ExperimentalTgpuRoot } from './core/root/rootTypes.ts';
|
|
3
|
+
import { type Eventual, type SlotValuePair, type TgpuLazy, type TgpuSlot } from './core/slot/slotTypes.ts';
|
|
4
|
+
import { UnknownData } from './data/dataTypes.ts';
|
|
5
|
+
import { type ResolvedSnippet, type Snippet } from './data/snippet.ts';
|
|
6
|
+
import { type BaseData } from './data/wgslTypes.ts';
|
|
7
|
+
import { $internal } from './shared/symbols.ts';
|
|
8
|
+
import { type TgpuBindGroup, type TgpuBindGroupLayout, type TgpuLayoutEntry } from './tgpuBindGroupLayout.ts';
|
|
9
|
+
import type { LogResources, SupportedLogOp } from './tgsl/consoleLog/types.ts';
|
|
10
|
+
import type { ShaderGenerator } from './tgsl/shaderGenerator.ts';
|
|
11
|
+
import type { BlockScopeLayer, ExecMode, ExecState, ResolveFunctionOptions, FunctionArgumentAccess, FunctionScopeLayer, ItemLayer, ItemStateStack, ResolutionCtx, StackLayer, ShaderStage, Wgsl } from './types.ts';
|
|
12
|
+
import type { WgslEnableExtension } from './wgslExtensions.ts';
|
|
13
|
+
export type ResolutionCtxImplOptions = {
|
|
14
|
+
readonly enableExtensions?: WgslEnableExtension[] | undefined;
|
|
15
|
+
readonly shaderGenerator?: ShaderGenerator | undefined;
|
|
16
|
+
readonly config?: ((cfg: Configurable) => Configurable) | undefined;
|
|
17
|
+
readonly root?: ExperimentalTgpuRoot | undefined;
|
|
18
|
+
readonly namespace: Namespace;
|
|
19
|
+
readonly minify: boolean;
|
|
20
|
+
};
|
|
21
|
+
declare class ItemStateStackImpl implements ItemStateStack {
|
|
22
|
+
private _stack;
|
|
23
|
+
private _itemDepth;
|
|
24
|
+
get itemDepth(): number;
|
|
25
|
+
get topItem(): ItemLayer;
|
|
26
|
+
get topFunctionScope(): FunctionScopeLayer | undefined;
|
|
27
|
+
get topBlockScope(): BlockScopeLayer | undefined;
|
|
28
|
+
get blockDepth(): number;
|
|
29
|
+
pushItem(): void;
|
|
30
|
+
pushSlotBindings(pairs: SlotValuePair[]): void;
|
|
31
|
+
pushFunctionScope(functionType: 'normal' | ShaderStage, argAccess: Record<string, FunctionArgumentAccess>, returnType: BaseData | undefined, externalMap: Record<string, unknown>): FunctionScopeLayer;
|
|
32
|
+
pushBlockScope(): void;
|
|
33
|
+
pop<T extends StackLayer['type']>(type: T): Extract<StackLayer, {
|
|
34
|
+
type: T;
|
|
35
|
+
}>;
|
|
36
|
+
pop(): StackLayer | undefined;
|
|
37
|
+
readSlot<T>(slot: TgpuSlot<T>): T | undefined;
|
|
38
|
+
getSnippetById(id: string): Snippet | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Returns whether the given identifier is taken in any block scope up to the nearest function scope.
|
|
41
|
+
*/
|
|
42
|
+
isIdentifierTakenLocally(id: string): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Returns whether the given identifier is taken in any block scope on the stack.
|
|
45
|
+
*
|
|
46
|
+
* This is useful when resolving a global identifier for the first time within a nested function.
|
|
47
|
+
*/
|
|
48
|
+
isIdentifierTakenInCallStack(id: string): boolean;
|
|
49
|
+
defineBlockVariable(id: string, snippet: Snippet): void;
|
|
50
|
+
setBlockExternals(externals: Record<string, Snippet>): void;
|
|
51
|
+
clearBlockExternals(): void;
|
|
52
|
+
}
|
|
53
|
+
export declare class IndentController {
|
|
54
|
+
identLevel: number;
|
|
55
|
+
get pre(): string;
|
|
56
|
+
indent(): string;
|
|
57
|
+
dedent(): string;
|
|
58
|
+
withResetLevel<T>(callback: () => T): T;
|
|
59
|
+
}
|
|
60
|
+
interface FixedBindingConfig {
|
|
61
|
+
layoutEntry: TgpuLayoutEntry;
|
|
62
|
+
resource: object;
|
|
63
|
+
}
|
|
64
|
+
export declare class ResolutionCtxImpl implements ResolutionCtx {
|
|
65
|
+
#private;
|
|
66
|
+
private readonly _indentController;
|
|
67
|
+
private readonly _itemStateStack;
|
|
68
|
+
private readonly _declarations;
|
|
69
|
+
private _varyingLocations;
|
|
70
|
+
readonly gen: ShaderGenerator;
|
|
71
|
+
get varyingLocations(): Record<string, number> | undefined;
|
|
72
|
+
readonly [$internal]: {
|
|
73
|
+
itemStateStack: ItemStateStackImpl;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* A map from registered bind group layouts to random strings put in
|
|
77
|
+
* place of their group index. The whole tree has to be traversed to
|
|
78
|
+
* collect every use of a typed bind group layout, since they can be
|
|
79
|
+
* explicitly imposed group indices, and they cannot collide.
|
|
80
|
+
*/
|
|
81
|
+
readonly bindGroupLayoutsToPlaceholderMap: Map<TgpuBindGroupLayout<Record<string, TgpuLayoutEntry | null>>, string>;
|
|
82
|
+
private _nextFreeLayoutPlaceholderIdx;
|
|
83
|
+
readonly fixedBindings: FixedBindingConfig[];
|
|
84
|
+
readonly enableExtensions: WgslEnableExtension[] | undefined;
|
|
85
|
+
expectedType: BaseData | undefined;
|
|
86
|
+
constructor(opts: ResolutionCtxImplOptions);
|
|
87
|
+
isIdentifierBanned(name: string): boolean;
|
|
88
|
+
isIdentifierTaken(name: string, scope: 'global' | 'block'): boolean;
|
|
89
|
+
makeUniqueIdentifier(primer: string | undefined, scope: 'global' | 'block'): string;
|
|
90
|
+
reserveIdentifier(name: string, scope: 'global' | 'block'): void;
|
|
91
|
+
get pre(): string;
|
|
92
|
+
get topFunctionScope(): FunctionScopeLayer | undefined;
|
|
93
|
+
get topFunctionReturnType(): BaseData | undefined;
|
|
94
|
+
get shelllessRepo(): import("./tgsl/shellless.ts").ShelllessRepository;
|
|
95
|
+
get blockDepth(): number;
|
|
96
|
+
indent(): string;
|
|
97
|
+
dedent(): string;
|
|
98
|
+
getDedented(code: string): string;
|
|
99
|
+
withResetIndentLevel<T>(callback: () => T): T;
|
|
100
|
+
getById(id: string): Snippet | null;
|
|
101
|
+
defineVariable(id: string, snippet: Snippet): void;
|
|
102
|
+
reportReturnType(dataType: BaseData): void;
|
|
103
|
+
pushBlockScope(): void;
|
|
104
|
+
popBlockScope(): void;
|
|
105
|
+
setBlockExternals(externals: Record<string, Snippet>): void;
|
|
106
|
+
clearBlockExternals(): void;
|
|
107
|
+
generateLog(op: SupportedLogOp, args: Snippet[]): Snippet;
|
|
108
|
+
get logResources(): LogResources | undefined;
|
|
109
|
+
resolveFunction(options: ResolveFunctionOptions): {
|
|
110
|
+
code: string;
|
|
111
|
+
returnType: BaseData;
|
|
112
|
+
};
|
|
113
|
+
addDeclaration(declaration: string, name?: string): void;
|
|
114
|
+
get declarations(): readonly ResolvedDeclaration[];
|
|
115
|
+
allocateLayoutEntry(layout: TgpuBindGroupLayout): string;
|
|
116
|
+
allocateFixedEntry(layoutEntry: TgpuLayoutEntry, resource: object): {
|
|
117
|
+
group: string;
|
|
118
|
+
binding: number;
|
|
119
|
+
};
|
|
120
|
+
readSlot<T>(slot: TgpuSlot<T>): T;
|
|
121
|
+
withSlots<T>(pairs: SlotValuePair[], callback: () => T): T;
|
|
122
|
+
withVaryingLocations<T>(locations: Record<string, number>, callback: () => T): T;
|
|
123
|
+
withRenamed<T>(item: object, name: string | undefined, callback: () => T): T;
|
|
124
|
+
unwrap<T>(eventual: Eventual<T>): T;
|
|
125
|
+
_getOrCompute<T>(lazy: TgpuLazy<T>): T;
|
|
126
|
+
/**
|
|
127
|
+
* @param item The item whose resolution should be either retrieved from the cache (if there is a cache hit), or resolved.
|
|
128
|
+
*/
|
|
129
|
+
_getOrInstantiate(item: object): ResolvedSnippet;
|
|
130
|
+
resolve(item: unknown, schema?: BaseData | UnknownData): ResolvedSnippet;
|
|
131
|
+
resolveSnippet(snippet: Snippet): ResolvedSnippet;
|
|
132
|
+
pushMode(mode: ExecState): void;
|
|
133
|
+
popMode(expected?: ExecMode): void;
|
|
134
|
+
get mode(): ExecState;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* A single module-scope declaration emitted during resolution.
|
|
138
|
+
*
|
|
139
|
+
* @property name - The resolved identifier the declaration declares (a fn, struct, var, const or
|
|
140
|
+
* alias name), or `undefined` for declarations that don't declare a single identifier (e.g.
|
|
141
|
+
* `tgpu['~unstable'].declare`).
|
|
142
|
+
* @property code - The WGSL code of the declaration.
|
|
143
|
+
*/
|
|
144
|
+
export interface ResolvedDeclaration {
|
|
145
|
+
name: string | undefined;
|
|
146
|
+
code: string;
|
|
147
|
+
}
|
|
15
148
|
/**
|
|
16
149
|
* The results of a WGSL resolution.
|
|
17
150
|
*
|
|
18
151
|
* @param code - The resolved code.
|
|
152
|
+
* @param declarations - The module-scope declarations emitted by TypeGPU
|
|
153
|
+
* during this resolution, in emission order. When resolving an array without a
|
|
154
|
+
* template, `code` equals `declarations.map((d) => d.code).join('\n\n')` (unless extensions are enabled or minification is enabled).
|
|
155
|
+
* When resolving a template, the template itself is not included in `declarations`.
|
|
156
|
+
* With a shared namespace, only declarations emitted by *this* resolution are
|
|
157
|
+
* included (memoized ones are not re-emitted).
|
|
19
158
|
* @param usedBindGroupLayouts - List of used `tgpu.bindGroupLayout`s.
|
|
20
|
-
* @param catchall - Automatically constructed bind group for buffer usages and buffer
|
|
159
|
+
* @param catchall - Automatically constructed bind group for buffer usages and buffer bindings, preceded by its index.
|
|
21
160
|
* @param logResources - Buffers and information about used console.logs needed to decode the raw data.
|
|
22
161
|
*/
|
|
23
|
-
interface ResolutionResult {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
162
|
+
export interface ResolutionResult {
|
|
163
|
+
code: string;
|
|
164
|
+
declarations: ResolvedDeclaration[];
|
|
165
|
+
usedBindGroupLayouts: TgpuBindGroupLayout[];
|
|
166
|
+
catchall: [number, TgpuBindGroup] | undefined;
|
|
167
|
+
logResources: LogResources | undefined;
|
|
28
168
|
}
|
|
29
|
-
|
|
30
|
-
export {
|
|
169
|
+
export declare function resolve(item: Wgsl, options: ResolutionCtxImplOptions): ResolutionResult;
|
|
170
|
+
export {};
|