@flighthq/effects-wgpu 0.5.1-next.1556.ff9e615 → 0.5.1-next.1629.669e7c5
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/README.md +2 -2
- package/dist/wgpuEffectRegistry.d.ts.map +1 -1
- package/dist/wgpuEffectRegistry.js +8 -9
- package/dist/wgpuEffectRegistry.js.map +1 -1
- package/dist/wgpuEffectState.d.ts +2 -3
- package/dist/wgpuEffectState.d.ts.map +1 -1
- package/dist/wgpuEffectState.js +13 -17
- package/dist/wgpuEffectState.js.map +1 -1
- package/package.json +10 -10
- package/src/wgpuEffectRegistry.test.ts +2 -5
- package/src/wgpuEffectState.test.ts +8 -16
- package/src/wgpuRenderTextureEffect.test.ts +8 -11
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/effects-wgpu`. The `
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/effects-wgpu@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/effects-wgpu@0.5.1-next.1629.669e7c5](https://github.com/flighthq/flight/tree/669e7c57b5177f4dba43dd9e861db543c4d72d2d/packages/effects-wgpu)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/669e7c57b5177f4dba43dd9e861db543c4d72d2d/LICENSE.md)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuEffectRegistry.d.ts","sourceRoot":"","sources":["../src/wgpuEffectRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuEffectRegistry.d.ts","sourceRoot":"","sources":["../src/wgpuEffectRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAU9G,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAGjG;AAMD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAIhG;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,EACxB,YAAY,CAAC,EAAE,kBAAkB,GAChC,IAAI,CAMN"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { withKindMapEntry } from '@flighthq/registry/contract';
|
|
2
2
|
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
3
|
-
import { RegistryEntryState } from '@flighthq/types/contract';
|
|
4
3
|
// Per-state registry mapping an effect `kind` string to its Wgpu runner — the material-renderer
|
|
5
4
|
// pattern one tier up. Registration is opt-in (import a runner only to register it) and dispatch is a
|
|
6
5
|
// Map lookup, so there is no monolithic switch and unused effect recipes tree-shake away. Register an
|
|
@@ -9,25 +8,25 @@ import { RegistryEntryState } from '@flighthq/types/contract';
|
|
|
9
8
|
// A built-in registerWgpu<Kind>Effect wrapper is pure ergonomics: it calls this function with the
|
|
10
9
|
// literal kind and public default runner, and installs no padding, shader-source, or backdrop companions.
|
|
11
10
|
export function getWgpuEffectRunner(state, kind) {
|
|
12
|
-
const entry = getWgpuRenderStateRuntime(state).registries.effects.
|
|
13
|
-
return entry?.
|
|
11
|
+
const entry = getWgpuRenderStateRuntime(state).registries.effects.get(kind);
|
|
12
|
+
return entry?.runner ?? null;
|
|
14
13
|
}
|
|
15
14
|
// Returns true if a runner is registered for the given kind in this state. Symmetric with
|
|
16
15
|
// hasGlEffectRunner. Use to validate an effect chain before dispatching — the pipeline
|
|
17
16
|
// silently skips unregistered kinds; check up front to apply your own policy (warn, filter)
|
|
18
17
|
// rather than relying on silent no-ops.
|
|
19
18
|
export function hasWgpuEffectRunner(state, kind) {
|
|
20
|
-
return getWgpuRenderStateRuntime(state).registries.effects.
|
|
19
|
+
return getWgpuRenderStateRuntime(state).registries.effects.has(kind);
|
|
21
20
|
}
|
|
22
21
|
export function isWgpuEffectResolvable(state, effect) {
|
|
23
|
-
const entry = getWgpuRenderStateRuntime(state).registries.effects.
|
|
24
|
-
if (entry
|
|
22
|
+
const entry = getWgpuRenderStateRuntime(state).registries.effects.get(effect.kind);
|
|
23
|
+
if (entry == null)
|
|
25
24
|
return false;
|
|
26
|
-
return entry.
|
|
25
|
+
return entry.isResolvable === undefined || entry.isResolvable(state, effect);
|
|
27
26
|
}
|
|
28
27
|
export function registerWgpuEffect(state, kind, runner, isResolvable) {
|
|
29
28
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
30
|
-
runtime.registries.effects =
|
|
29
|
+
runtime.registries.effects = withKindMapEntry(runtime.registries.effects, kind, {
|
|
31
30
|
isResolvable,
|
|
32
31
|
runner,
|
|
33
32
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuEffectRegistry.js","sourceRoot":"","sources":["../src/wgpuEffectRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wgpuEffectRegistry.js","sourceRoot":"","sources":["../src/wgpuEffectRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,gGAAgG;AAChG,sGAAsG;AACtG,sGAAsG;AACtG,8FAA8F;AAC9F,6FAA6F;AAC7F,kGAAkG;AAClG,0GAA0G;AAE1G,MAAM,UAAU,mBAAmB,CAAC,KAAsB,EAAE,IAAY;IACtE,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5E,OAAO,KAAK,EAAE,MAAM,IAAI,IAAI,CAAC;AAC/B,CAAC;AAED,0FAA0F;AAC1F,uFAAuF;AACvF,4FAA4F;AAC5F,wCAAwC;AACxC,MAAM,UAAU,mBAAmB,CAAC,KAAsB,EAAE,IAAY;IACtE,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAsB,EAAE,MAAwB;IACrF,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnF,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,OAAO,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAsB,EACtB,IAAY,EACZ,MAAwB,EACxB,YAAiC;IAEjC,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,CAAC,UAAU,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE;QAC9E,YAAY;QACZ,MAAM;KACP,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type { Adjustment,
|
|
1
|
+
import type { Adjustment, Effect, EffectStateOptions, NonEntityCreateResult, RenderTargetClear, RenderTargetColorSpace, WgpuEffectState, WgpuEffectStateSampleCountGuard, WgpuEffectStateSkipGuard, WgpuRenderPass, WgpuRenderState } from '@flighthq/types/contract';
|
|
2
2
|
export declare function beginWgpuEffectPass(pass: WgpuRenderPass, pipeline: WgpuEffectState, clear?: Readonly<RenderTargetClear>, colorSpace?: RenderTargetColorSpace): WgpuRenderPass;
|
|
3
|
-
export declare function createWgpuEffectState(state: WgpuRenderState, options?: Readonly<EffectStateOptions>): WgpuEffectState
|
|
3
|
+
export declare function createWgpuEffectState(state: WgpuRenderState, options?: Readonly<EffectStateOptions>): NonEntityCreateResult<WgpuEffectState, 'descriptor'>;
|
|
4
4
|
export declare function destroyWgpuEffectState(state: WgpuRenderState, pipeline: WgpuEffectState): void;
|
|
5
5
|
export declare function endWgpuEffectPass(scenePass: WgpuRenderPass, pipeline: WgpuEffectState, operations: ReadonlyArray<Effect | Adjustment>): void;
|
|
6
|
-
export declare function initializeWgpuEffectState(out: EntityConstruction<WgpuEffectState>, state: WgpuRenderState, options?: Readonly<EffectStateOptions>): void;
|
|
7
6
|
export declare function setWgpuEffectStateSampleCountGuard(state: WgpuRenderState, guard: WgpuEffectStateSampleCountGuard | null): void;
|
|
8
7
|
export declare function setWgpuEffectStateSkipGuard(state: WgpuRenderState, guard: WgpuEffectStateSkipGuard | null): void;
|
|
9
8
|
export declare function setWgpuEffectVelocityTexture(pipeline: WgpuEffectState, texture: GPUTexture | null): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuEffectState.d.ts","sourceRoot":"","sources":["../src/wgpuEffectState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuEffectState.d.ts","sourceRoot":"","sources":["../src/wgpuEffectState.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,UAAU,EACV,MAAM,EACN,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,+BAA+B,EAC/B,wBAAwB,EACxB,cAAc,EACd,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAqBlC,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,eAAe,EACzB,KAAK,GAAE,QAAQ,CAAC,iBAAiB,CAAuC,EACxE,UAAU,GAAE,sBAA+B,GAC1C,cAAc,CAYhB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,QAAQ,CAAC,kBAAkB,CAAM,GACzC,qBAAqB,CAAC,eAAe,EAAE,YAAY,CAAC,CActD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAY9F;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,GAC7C,IAAI,CAgFN;AAID,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,+BAA+B,GAAG,IAAI,GAC5C,IAAI,CAGN;AAOD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,wBAAwB,GAAG,IAAI,GAAG,IAAI,CAGhH;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAExG"}
|
package/dist/wgpuEffectState.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { bakeColorLutForRun, createColorLutCache, fuseColorMatrices, getAdjustmentColorMatrix, isColorLutAdjustment, } from '@flighthq/adjustments/contract';
|
|
2
2
|
import { srgbChannelToLinear } from '@flighthq/color/contract';
|
|
3
|
-
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
4
3
|
import { acquireWgpuTextureRenderTarget, beginWgpuRenderPass, createWgpuTextureRenderTarget, createWgpuRenderTargetPool, destroyWgpuTextureRenderTarget, destroyWgpuRenderTargetPool, endWgpuRenderPass, getWgpuActiveRenderPass, getWgpuRenderStateRuntime, resumeWgpuRenderPass, releaseWgpuTextureRenderTarget, resizeWgpuTextureRenderTarget, } from '@flighthq/render-wgpu/contract';
|
|
5
4
|
import { applyColorLutPassToWgpu } from './wgpuColorLutPass';
|
|
6
5
|
import { applyColorMatrixPassToWgpu } from './wgpuColorMatrixPass';
|
|
@@ -33,9 +32,19 @@ export function beginWgpuEffectPass(pass, pipeline, clear = { color: [0, 0, 0, 0
|
|
|
33
32
|
return beginWgpuRenderPass(state, pipeline.sceneTarget, colorSpace === 'linear' ? linearizeClear(clear) : clear);
|
|
34
33
|
}
|
|
35
34
|
export function createWgpuEffectState(state, options = {}) {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
const requestedSampleCount = options.sampleCount ?? 1;
|
|
36
|
+
const appliedSampleCount = requestedSampleCount > 1 ? 4 : 1;
|
|
37
|
+
if (requestedSampleCount !== appliedSampleCount) {
|
|
38
|
+
_sampleCountGuards.get(state)?.(state, requestedSampleCount, appliedSampleCount);
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
options: { ...options, sampleCount: appliedSampleCount },
|
|
42
|
+
sceneTarget: null,
|
|
43
|
+
pool: createWgpuRenderTargetPool(),
|
|
44
|
+
lutCache: createColorLutCache(),
|
|
45
|
+
lutTexture: { texture: null, size: 0, lut: null },
|
|
46
|
+
velocityTexture: null,
|
|
47
|
+
};
|
|
39
48
|
}
|
|
40
49
|
export function destroyWgpuEffectState(state, pipeline) {
|
|
41
50
|
if (pipeline.sceneTarget) {
|
|
@@ -131,19 +140,6 @@ export function endWgpuEffectPass(scenePass, pipeline, operations) {
|
|
|
131
140
|
if (scratchB !== null)
|
|
132
141
|
releaseWgpuTextureRenderTarget(pipeline.pool, scratchB);
|
|
133
142
|
}
|
|
134
|
-
export function initializeWgpuEffectState(out, state, options = {}) {
|
|
135
|
-
const requestedSampleCount = options.sampleCount ?? 1;
|
|
136
|
-
const appliedSampleCount = requestedSampleCount > 1 ? 4 : 1;
|
|
137
|
-
if (requestedSampleCount !== appliedSampleCount) {
|
|
138
|
-
_sampleCountGuards.get(state)?.(state, requestedSampleCount, appliedSampleCount);
|
|
139
|
-
}
|
|
140
|
-
out.options = { ...options, sampleCount: appliedSampleCount };
|
|
141
|
-
out.sceneTarget = null;
|
|
142
|
-
out.pool = createWgpuRenderTargetPool();
|
|
143
|
-
out.lutCache = createColorLutCache();
|
|
144
|
-
out.lutTexture = { texture: null, size: 0, lut: null };
|
|
145
|
-
out.velocityTexture = null;
|
|
146
|
-
}
|
|
147
143
|
// The diagnostics seam for sample-count substitutions. Core stays free of warning strings and
|
|
148
144
|
// @flighthq/log; the separately-importable guard module installs the reporter when wanted.
|
|
149
145
|
export function setWgpuEffectStateSampleCountGuard(state, guard) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuEffectState.js","sourceRoot":"","sources":["../src/wgpuEffectState.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"wgpuEffectState.js","sourceRoot":"","sources":["../src/wgpuEffectState.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/effects-wgpu",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.1629.669e7c5",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,15 +38,15 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/adjustments": "0.5.1-next.
|
|
42
|
-
"@flighthq/color": "0.5.1-next.
|
|
43
|
-
"@flighthq/effects": "0.5.1-next.
|
|
44
|
-
"@flighthq/entity": "0.5.1-next.
|
|
45
|
-
"@flighthq/geometry": "0.5.1-next.
|
|
46
|
-
"@flighthq/log": "0.5.1-next.
|
|
47
|
-
"@flighthq/render-wgpu": "0.5.1-next.
|
|
48
|
-
"@flighthq/registry": "0.5.1-next.
|
|
49
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/adjustments": "0.5.1-next.1629.669e7c5",
|
|
42
|
+
"@flighthq/color": "0.5.1-next.1629.669e7c5",
|
|
43
|
+
"@flighthq/effects": "0.5.1-next.1629.669e7c5",
|
|
44
|
+
"@flighthq/entity": "0.5.1-next.1629.669e7c5",
|
|
45
|
+
"@flighthq/geometry": "0.5.1-next.1629.669e7c5",
|
|
46
|
+
"@flighthq/log": "0.5.1-next.1629.669e7c5",
|
|
47
|
+
"@flighthq/render-wgpu": "0.5.1-next.1629.669e7c5",
|
|
48
|
+
"@flighthq/registry": "0.5.1-next.1629.669e7c5",
|
|
49
|
+
"@flighthq/types": "0.5.1-next.1629.669e7c5"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"@webgpu/types": "^0.1.70"
|
|
@@ -87,7 +87,7 @@ describe('registerWgpuEffect', () => {
|
|
|
87
87
|
registerWgpuEffect(state, 'VignetteEffect', runner);
|
|
88
88
|
expect(getWgpuEffectRunner(state, 'VignetteEffect')).toBe(runner);
|
|
89
89
|
expect(getWgpuRenderStateRuntime(state).registries.effects).not.toBe(before);
|
|
90
|
-
expect(before.
|
|
90
|
+
expect(before.size).toBe(0);
|
|
91
91
|
});
|
|
92
92
|
|
|
93
93
|
it('is last-write-wins without mutating the earlier snapshot', async () => {
|
|
@@ -100,9 +100,6 @@ describe('registerWgpuEffect', () => {
|
|
|
100
100
|
registerWgpuEffect(state, 'TestEffect', runnerB);
|
|
101
101
|
|
|
102
102
|
expect(getWgpuEffectRunner(state, 'TestEffect')).toBe(runnerB);
|
|
103
|
-
expect(before.
|
|
104
|
-
state: 'bound',
|
|
105
|
-
value: { isResolvable: undefined, runner: runnerA },
|
|
106
|
-
});
|
|
103
|
+
expect(before.get('TestEffect')).toEqual({ isResolvable: undefined, runner: runnerA });
|
|
107
104
|
});
|
|
108
105
|
});
|
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
installWgpuMock,
|
|
8
8
|
} from '@flighthq/render-wgpu/contract';
|
|
9
9
|
import type { Effect } from '@flighthq/types/contract';
|
|
10
|
-
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
11
10
|
|
|
12
11
|
import { getWgpuEffectPipeline } from './wgpuEffectProgramCache';
|
|
13
12
|
import {
|
|
@@ -15,7 +14,6 @@ import {
|
|
|
15
14
|
createWgpuEffectState,
|
|
16
15
|
destroyWgpuEffectState,
|
|
17
16
|
endWgpuEffectPass,
|
|
18
|
-
initializeWgpuEffectState,
|
|
19
17
|
setWgpuEffectStateSampleCountGuard,
|
|
20
18
|
setWgpuEffectStateSkipGuard,
|
|
21
19
|
setWgpuEffectVelocityTexture,
|
|
@@ -302,12 +300,6 @@ describe('endWgpuEffectPass', () => {
|
|
|
302
300
|
});
|
|
303
301
|
});
|
|
304
302
|
|
|
305
|
-
describe('initializeWgpuEffectState', () => {
|
|
306
|
-
it('is the construction initializer of createWgpuEffectState', () => {
|
|
307
|
-
expect(typeof initializeWgpuEffectState).toBe('function');
|
|
308
|
-
});
|
|
309
|
-
});
|
|
310
|
-
|
|
311
303
|
describe('setWgpuEffectStateSkipGuard', () => {
|
|
312
304
|
it('reports every effect kind the pass drops, and goes silent again when cleared', async () => {
|
|
313
305
|
const state = await createWgpuRenderStateForTest();
|
|
@@ -340,14 +332,14 @@ describe('setWgpuEffectStateSkipGuard', () => {
|
|
|
340
332
|
});
|
|
341
333
|
describe('setWgpuEffectVelocityTexture', () => {
|
|
342
334
|
it('sets the velocity texture on the pipeline', () => {
|
|
343
|
-
const
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
335
|
+
const pipeline = {
|
|
336
|
+
options: {},
|
|
337
|
+
sceneTarget: null,
|
|
338
|
+
pool: { free: [] },
|
|
339
|
+
lutCache: createColorLutCache(),
|
|
340
|
+
lutTexture: { texture: null, size: 0, lut: null },
|
|
341
|
+
velocityTexture: null,
|
|
342
|
+
} as any;
|
|
351
343
|
const texture = {} as GPUTexture;
|
|
352
344
|
setWgpuEffectVelocityTexture(pipeline, texture);
|
|
353
345
|
expect(pipeline.velocityTexture).toBe(texture);
|
|
@@ -4,7 +4,6 @@ import {
|
|
|
4
4
|
acquireWgpuRenderTexture,
|
|
5
5
|
beginWgpuFrame,
|
|
6
6
|
createWgpuOffscreenRenderState,
|
|
7
|
-
allocateEmptyWgpuRenderRegistries,
|
|
8
7
|
createWgpuRenderStateForTest,
|
|
9
8
|
createWgpuRenderTexturePool,
|
|
10
9
|
getWgpuRenderStateRuntime,
|
|
@@ -162,21 +161,19 @@ describe('offscreen effect pipeline snapshots', () => {
|
|
|
162
161
|
const first: WgpuEffectRunner = vi.fn();
|
|
163
162
|
const later: WgpuEffectRunner = vi.fn();
|
|
164
163
|
registerWgpuEffect(screen, 'acme.First', first);
|
|
165
|
-
const offscreen = createWgpuOffscreenRenderState(
|
|
166
|
-
screen.
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
);
|
|
164
|
+
const offscreen = createWgpuOffscreenRenderState(screen.deviceState, {
|
|
165
|
+
...getWgpuRenderStateRuntime(screen).registries,
|
|
166
|
+
format: screen.format,
|
|
167
|
+
});
|
|
170
168
|
registerWgpuEffect(screen, 'acme.Later', later);
|
|
171
169
|
|
|
172
170
|
expect(getWgpuEffectRunner(offscreen, 'acme.First')).toBe(first);
|
|
173
171
|
expect(getWgpuEffectRunner(offscreen, 'acme.Later')).toBeNull();
|
|
174
172
|
|
|
175
|
-
const refreshed = createWgpuOffscreenRenderState(
|
|
176
|
-
screen.
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
);
|
|
173
|
+
const refreshed = createWgpuOffscreenRenderState(screen.deviceState, {
|
|
174
|
+
...getWgpuRenderStateRuntime(screen).registries,
|
|
175
|
+
format: screen.format,
|
|
176
|
+
});
|
|
180
177
|
expect(getWgpuEffectRunner(refreshed, 'acme.Later')).toBe(later);
|
|
181
178
|
});
|
|
182
179
|
});
|