@flighthq/render-wgpu 0.5.1-next.731.0ae0aa4 → 0.5.1-next.799.62ef0c7
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/wgpuCompressedTexture.d.ts.map +1 -1
- package/dist/wgpuCompressedTexture.js +3 -2
- package/dist/wgpuCompressedTexture.js.map +1 -1
- package/dist/wgpuDraw.d.ts.map +1 -1
- package/dist/wgpuDraw.js +7 -6
- package/dist/wgpuDraw.js.map +1 -1
- package/dist/wgpuExternalTexture.d.ts.map +1 -1
- package/dist/wgpuExternalTexture.js +2 -2
- package/dist/wgpuExternalTexture.js.map +1 -1
- package/dist/wgpuFullscreenPass.d.ts.map +1 -1
- package/dist/wgpuFullscreenPass.js +2 -1
- package/dist/wgpuFullscreenPass.js.map +1 -1
- package/dist/wgpuHost.d.ts.map +1 -1
- package/dist/wgpuHost.js +4 -3
- package/dist/wgpuHost.js.map +1 -1
- package/dist/wgpuPipeline.js +2 -2
- package/dist/wgpuPipeline.js.map +1 -1
- package/dist/wgpuRenderState.js +3 -3
- package/dist/wgpuRenderState.js.map +1 -1
- package/dist/wgpuRenderTarget.d.ts.map +1 -1
- package/dist/wgpuRenderTarget.js +9 -3
- package/dist/wgpuRenderTarget.js.map +1 -1
- package/dist/wgpuRenderTargetPool.d.ts.map +1 -1
- package/dist/wgpuRenderTargetPool.js +2 -1
- package/dist/wgpuRenderTargetPool.js.map +1 -1
- package/dist/wgpuRenderTexturePool.d.ts.map +1 -1
- package/dist/wgpuRenderTexturePool.js +3 -2
- package/dist/wgpuRenderTexturePool.js.map +1 -1
- package/dist/wgpuShader.d.ts +2 -5
- package/dist/wgpuShader.d.ts.map +1 -1
- package/dist/wgpuShader.js +2 -1
- package/dist/wgpuShader.js.map +1 -1
- package/package.json +11 -11
- package/src/wgpuElement.test.ts +19 -13
- package/src/wgpuHost.test.ts +21 -16
- package/src/wgpuRenderState.test.ts +48 -30
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRenderTargetPool.d.ts","sourceRoot":"","sources":["../src/wgpuRenderTargetPool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuRenderTargetPool.d.ts","sourceRoot":"","sources":["../src/wgpuRenderTargetPool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAQlC,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,oBAAoB,EAC1B,UAAU,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC,GACD,gBAAgB,CAqBlB;AAED,wBAAgB,0BAA0B,IAAI,oBAAoB,CAEjE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAGpG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAElG"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
1
2
|
import { createWgpuRenderTarget, destroyWgpuRenderTarget } from './wgpuRenderTarget';
|
|
2
3
|
// Lends reusable intermediate targets to multi-pass effect recipes. acquire/release are paired
|
|
3
4
|
// brackets: every acquireWgpuRenderTarget must have a matching releaseWgpuRenderTarget. A released
|
|
@@ -23,7 +24,7 @@ export function acquireWgpuRenderTarget(state, pool, descriptor) {
|
|
|
23
24
|
return createWgpuRenderTarget(state, descriptor.width, descriptor.height, format, descriptor.colorSpace, sampleCount);
|
|
24
25
|
}
|
|
25
26
|
export function createWgpuRenderTargetPool() {
|
|
26
|
-
return { free: [] };
|
|
27
|
+
return createEntity({ free: [] });
|
|
27
28
|
}
|
|
28
29
|
export function destroyWgpuRenderTargetPool(state, pool) {
|
|
29
30
|
for (const target of pool.free)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRenderTargetPool.js","sourceRoot":"","sources":["../src/wgpuRenderTargetPool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuRenderTargetPool.js","sourceRoot":"","sources":["../src/wgpuRenderTargetPool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAQzD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAErF,+FAA+F;AAC/F,mGAAmG;AACnG,yFAAyF;AACzF,EAAE;AACF,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,IAA0B,EAC1B,UAME;IAEF,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,KAAK,SAAS,IAAI,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC;IAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;IAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,IACE,SAAS,CAAC,KAAK,KAAK,CAAC;YACrB,SAAS,CAAC,MAAM,KAAK,CAAC;YACtB,SAAS,CAAC,MAAM,KAAK,MAAM;YAC3B,SAAS,CAAC,WAAW,KAAK,WAAW,EACrC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,MAAM,CAAC;YACvD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACxH,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAsB,EAAE,IAA0B;IAC5F,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI;QAAE,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAA0B,EAAE,MAAwB;IAC1F,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRenderTexturePool.d.ts","sourceRoot":"","sources":["../src/wgpuRenderTexturePool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuRenderTexturePool.d.ts","sourceRoot":"","sources":["../src/wgpuRenderTexturePool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,qBAAqB,EAC3B,UAAU,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAC3C,aAAa,CASf;AAED,wBAAgB,2BAA2B,IAAI,qBAAqB,CAQnE;AAID,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAStG;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,qBAAqB,EAC3B,aAAa,EAAE,aAAa,GAC3B,IAAI,CAON;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,qBAAqB,EAC3B,WAAW,EAAE,aAAa,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,EAC5D,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,GACtD,CAAC,CAWH"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
1
2
|
import { createRenderTexture, resetTextureUvTransform } from '@flighthq/texture/contract';
|
|
2
3
|
import { createWgpuRenderTargetPool, destroyWgpuRenderTargetPool } from './wgpuRenderTargetPool';
|
|
3
4
|
import { destroyWgpuRenderTexture, invalidateWgpuRenderTexture } from './wgpuRenderTexture';
|
|
@@ -12,13 +13,13 @@ export function acquireWgpuRenderTexture(state, pool, descriptor) {
|
|
|
12
13
|
return renderTexture;
|
|
13
14
|
}
|
|
14
15
|
export function createWgpuRenderTexturePool() {
|
|
15
|
-
return {
|
|
16
|
+
return createEntity({
|
|
16
17
|
device: null,
|
|
17
18
|
destroyed: false,
|
|
18
19
|
effectTargets: createWgpuRenderTargetPool(),
|
|
19
20
|
free: [],
|
|
20
21
|
leased: new Set(),
|
|
21
|
-
};
|
|
22
|
+
});
|
|
22
23
|
}
|
|
23
24
|
// Destroys both free and outstanding handles. Shutdown does not require callers to recover every
|
|
24
25
|
// displayed lease first; the pool becomes permanently unusable afterward.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRenderTexturePool.js","sourceRoot":"","sources":["../src/wgpuRenderTexturePool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAS1F,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAE5F,MAAM,UAAU,wBAAwB,CACtC,KAAsB,EACtB,IAA2B,EAC3B,UAA4C;IAE5C,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACzE,2BAA2B,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9D,uBAAuB,CAAC,aAAa,CAAC,CAAC;IACvC,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,MAAM,CAAC;IAC3D,2BAA2B,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,OAAO;
|
|
1
|
+
{"version":3,"file":"wgpuRenderTexturePool.js","sourceRoot":"","sources":["../src/wgpuRenderTexturePool.ts"],"names":[],"mappings":"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"}
|
package/dist/wgpuShader.d.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import type { ColorScaleBias, RenderProxy, WgpuRenderState } from '@flighthq/types/contract';
|
|
1
|
+
import type { ColorScaleBias, RenderProxy, WgpuBindGroupLayouts, WgpuRenderState } from '@flighthq/types/contract';
|
|
2
2
|
import { BlendMode } from '@flighthq/types/contract';
|
|
3
3
|
export declare const UNIFORM_BYTE_SIZE = 128;
|
|
4
4
|
type StencilMode = 'normal' | 'masked' | 'maskwrite';
|
|
5
|
-
export declare function createWgpuBindGroupLayouts(device: GPUDevice):
|
|
6
|
-
uniformBindGroupLayout: GPUBindGroupLayout;
|
|
7
|
-
textureBindGroupLayout: GPUBindGroupLayout;
|
|
8
|
-
};
|
|
5
|
+
export declare function createWgpuBindGroupLayouts(device: GPUDevice): WgpuBindGroupLayouts;
|
|
9
6
|
export declare function createWgpuPipelineLayout(device: GPUDevice, uniformBindGroupLayout: GPUBindGroupLayout, textureBindGroupLayout: GPUBindGroupLayout): GPUPipelineLayout;
|
|
10
7
|
export declare function getActiveWgpuPipeline(state: WgpuRenderState): GPURenderPipeline;
|
|
11
8
|
export declare function getWgpuBlendState(blendMode: BlendMode | null): GPUBlendState;
|
package/dist/wgpuShader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuShader.d.ts","sourceRoot":"","sources":["../src/wgpuShader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuShader.d.ts","sourceRoot":"","sources":["../src/wgpuShader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACnH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAkBrD,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAiHrC,KAAK,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAyBrD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,oBAAoB,CAmBlF;AAID,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,EACjB,sBAAsB,EAAE,kBAAkB,EAC1C,sBAAsB,EAAE,kBAAkB,GACzC,iBAAiB,CAInB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,iBAAiB,CAQ/E;AAeD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,aAAa,CAE5E;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,WAAW,EAAE,WAAW,GACvB,iBAAiB,CAgDnB;AAID,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,YAAY,EACzB,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EACzE,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC1C,IAAI,CAgBN;AAID,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EACjF,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,MAAM,CAcR;AAKD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACrF,EACD,cAAc,EAAE,cAAc,GAAG,IAAI,EACrC,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,oBAAoB,UAAQ,GAC3B,MAAM,CAsDR"}
|
package/dist/wgpuShader.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
1
2
|
import { BlendMode } from '@flighthq/types/contract';
|
|
2
3
|
import { getWgpuSurfaceRenderExtent } from './wgpuAntialias';
|
|
3
4
|
import { getWgpuRenderStateDeviceResources, getWgpuRenderStateRuntime } from './wgpuRenderState';
|
|
@@ -158,7 +159,7 @@ export function createWgpuBindGroupLayouts(device) {
|
|
|
158
159
|
{ binding: 1, visibility: GPUShaderStage.FRAGMENT, sampler: { type: 'filtering' } },
|
|
159
160
|
],
|
|
160
161
|
});
|
|
161
|
-
return { uniformBindGroupLayout, textureBindGroupLayout };
|
|
162
|
+
return createEntity({ uniformBindGroupLayout, textureBindGroupLayout });
|
|
162
163
|
}
|
|
163
164
|
// ---- Pipeline creation ----
|
|
164
165
|
export function createWgpuPipelineLayout(device, uniformBindGroupLayout, textureBindGroupLayout) {
|
package/dist/wgpuShader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuShader.js","sourceRoot":"","sources":["../src/wgpuShader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuShader.js","sourceRoot":"","sources":["../src/wgpuShader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/render-wgpu",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.799.62ef0c7",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,16 +38,16 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/color": "0.5.1-next.
|
|
42
|
-
"@flighthq/entity": "0.5.1-next.
|
|
43
|
-
"@flighthq/geometry": "0.5.1-next.
|
|
44
|
-
"@flighthq/log": "0.5.1-next.
|
|
45
|
-
"@flighthq/render": "0.5.1-next.
|
|
46
|
-
"@flighthq/registry": "0.5.1-next.
|
|
47
|
-
"@flighthq/signals": "0.5.1-next.
|
|
48
|
-
"@flighthq/bitmap": "0.5.1-next.
|
|
49
|
-
"@flighthq/texture": "0.5.1-next.
|
|
50
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/color": "0.5.1-next.799.62ef0c7",
|
|
42
|
+
"@flighthq/entity": "0.5.1-next.799.62ef0c7",
|
|
43
|
+
"@flighthq/geometry": "0.5.1-next.799.62ef0c7",
|
|
44
|
+
"@flighthq/log": "0.5.1-next.799.62ef0c7",
|
|
45
|
+
"@flighthq/render": "0.5.1-next.799.62ef0c7",
|
|
46
|
+
"@flighthq/registry": "0.5.1-next.799.62ef0c7",
|
|
47
|
+
"@flighthq/signals": "0.5.1-next.799.62ef0c7",
|
|
48
|
+
"@flighthq/bitmap": "0.5.1-next.799.62ef0c7",
|
|
49
|
+
"@flighthq/texture": "0.5.1-next.799.62ef0c7",
|
|
50
|
+
"@flighthq/types": "0.5.1-next.799.62ef0c7"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
53
53
|
"@webgpu/types": "^0.1.70"
|
package/src/wgpuElement.test.ts
CHANGED
|
@@ -6,12 +6,16 @@ import {
|
|
|
6
6
|
setWgpuRenderSurfaceProvider,
|
|
7
7
|
} from './wgpuElement';
|
|
8
8
|
|
|
9
|
+
function entityProvider(fields: Omit<WgpuRenderSurfaceProvider, keyof Entity>): WgpuRenderSurfaceProvider {
|
|
10
|
+
return createEntity(fields);
|
|
11
|
+
}
|
|
12
|
+
|
|
9
13
|
describe('createWgpuCanvasElement', () => {
|
|
10
14
|
afterEach(() => resetWgpuRenderSurfaceProviderForTest());
|
|
11
15
|
|
|
12
16
|
it('preserves the canonical provider result identity', () => {
|
|
13
17
|
const surface = {} as HTMLCanvasElement;
|
|
14
|
-
setWgpuRenderSurfaceProvider({ createRenderSurface: () => surface });
|
|
18
|
+
setWgpuRenderSurfaceProvider(entityProvider({ createRenderSurface: () => surface }));
|
|
15
19
|
expect(createWgpuCanvasElement(100, 200, 2)).toBe(surface);
|
|
16
20
|
});
|
|
17
21
|
|
|
@@ -22,7 +26,7 @@ describe('createWgpuCanvasElement', () => {
|
|
|
22
26
|
});
|
|
23
27
|
|
|
24
28
|
it('throws the same setup error when the provider refuses', () => {
|
|
25
|
-
setWgpuRenderSurfaceProvider({ createRenderSurface: () => null });
|
|
29
|
+
setWgpuRenderSurfaceProvider(entityProvider({ createRenderSurface: () => null }));
|
|
26
30
|
expect(() => createWgpuCanvasElement(100, 200)).toThrowError(/enableHostWebWgpuRenderSurface\(\)/);
|
|
27
31
|
});
|
|
28
32
|
});
|
|
@@ -37,7 +41,7 @@ describe('createWgpuRenderSurface', () => {
|
|
|
37
41
|
it('passes exact dimensions and the default pixel ratio to the selected provider', () => {
|
|
38
42
|
const surface = {} as HTMLCanvasElement;
|
|
39
43
|
const createRenderSurface = vi.fn(() => surface);
|
|
40
|
-
setWgpuRenderSurfaceProvider({ createRenderSurface });
|
|
44
|
+
setWgpuRenderSurfaceProvider(entityProvider({ createRenderSurface }));
|
|
41
45
|
expect(createWgpuRenderSurface(100, 200)).toBe(surface);
|
|
42
46
|
expect(createRenderSurface).toHaveBeenCalledOnce();
|
|
43
47
|
expect(createRenderSurface).toHaveBeenCalledWith(100, 200, 1);
|
|
@@ -46,7 +50,7 @@ describe('createWgpuRenderSurface', () => {
|
|
|
46
50
|
it('passes an explicit pixel ratio and preserves the provider result identity', () => {
|
|
47
51
|
const surface = {} as HTMLCanvasElement;
|
|
48
52
|
const createRenderSurface = vi.fn(() => surface);
|
|
49
|
-
setWgpuRenderSurfaceProvider({ createRenderSurface });
|
|
53
|
+
setWgpuRenderSurfaceProvider(entityProvider({ createRenderSurface }));
|
|
50
54
|
expect(createWgpuRenderSurface(300, 150, 2.5)).toBe(surface);
|
|
51
55
|
expect(createRenderSurface).toHaveBeenCalledWith(300, 150, 2.5);
|
|
52
56
|
});
|
|
@@ -54,8 +58,8 @@ describe('createWgpuRenderSurface', () => {
|
|
|
54
58
|
it('selects replacements and reset restores omission', () => {
|
|
55
59
|
const first = {} as HTMLCanvasElement;
|
|
56
60
|
const second = {} as HTMLCanvasElement;
|
|
57
|
-
const firstProvider = { createRenderSurface: vi.fn(() => first) };
|
|
58
|
-
const secondProvider = { createRenderSurface: vi.fn(() => second) };
|
|
61
|
+
const firstProvider = entityProvider({ createRenderSurface: vi.fn(() => first) });
|
|
62
|
+
const secondProvider = entityProvider({ createRenderSurface: vi.fn(() => second) });
|
|
59
63
|
setWgpuRenderSurfaceProvider(firstProvider);
|
|
60
64
|
expect(getWgpuRenderSurfaceProvider()).toBe(firstProvider);
|
|
61
65
|
expect(createWgpuRenderSurface(1, 2)).toBe(first);
|
|
@@ -68,20 +72,20 @@ describe('createWgpuRenderSurface', () => {
|
|
|
68
72
|
});
|
|
69
73
|
|
|
70
74
|
it('preserves provider refusal as null', () => {
|
|
71
|
-
setWgpuRenderSurfaceProvider({ createRenderSurface: () => null });
|
|
75
|
+
setWgpuRenderSurfaceProvider(entityProvider({ createRenderSurface: () => null }));
|
|
72
76
|
expect(createWgpuRenderSurface(100, 200)).toBeNull();
|
|
73
77
|
});
|
|
74
78
|
|
|
75
79
|
it('lets a native host provide a surface without reading document', () => {
|
|
76
80
|
const surface = {} as HTMLCanvasElement;
|
|
77
|
-
setWgpuRenderSurfaceProvider({ createRenderSurface: () => surface });
|
|
81
|
+
setWgpuRenderSurfaceProvider(entityProvider({ createRenderSurface: () => surface }));
|
|
78
82
|
withThrowingDocument(() => expect(createWgpuRenderSurface(100, 200)).toBe(surface));
|
|
79
83
|
});
|
|
80
84
|
|
|
81
85
|
it('returns null for omission and refusal without reading document', () => {
|
|
82
86
|
withThrowingDocument(() => {
|
|
83
87
|
expect(createWgpuRenderSurface(100, 200)).toBeNull();
|
|
84
|
-
setWgpuRenderSurfaceProvider({ createRenderSurface: () => null });
|
|
88
|
+
setWgpuRenderSurfaceProvider(entityProvider({ createRenderSurface: () => null }));
|
|
85
89
|
expect(createWgpuRenderSurface(100, 200)).toBeNull();
|
|
86
90
|
});
|
|
87
91
|
});
|
|
@@ -91,7 +95,7 @@ describe('getWgpuRenderSurfaceProvider', () => {
|
|
|
91
95
|
afterEach(() => resetWgpuRenderSurfaceProviderForTest());
|
|
92
96
|
|
|
93
97
|
it('returns the exact selected provider', () => {
|
|
94
|
-
const provider = { createRenderSurface: () => ({}) as HTMLCanvasElement };
|
|
98
|
+
const provider = entityProvider({ createRenderSurface: () => ({}) as HTMLCanvasElement });
|
|
95
99
|
setWgpuRenderSurfaceProvider(provider);
|
|
96
100
|
expect(getWgpuRenderSurfaceProvider()).toBe(provider);
|
|
97
101
|
});
|
|
@@ -99,7 +103,7 @@ describe('getWgpuRenderSurfaceProvider', () => {
|
|
|
99
103
|
|
|
100
104
|
describe('resetWgpuRenderSurfaceProviderForTest', () => {
|
|
101
105
|
it('restores provider omission', () => {
|
|
102
|
-
setWgpuRenderSurfaceProvider({ createRenderSurface: () => ({}) as HTMLCanvasElement });
|
|
106
|
+
setWgpuRenderSurfaceProvider(entityProvider({ createRenderSurface: () => ({}) as HTMLCanvasElement }));
|
|
103
107
|
resetWgpuRenderSurfaceProviderForTest();
|
|
104
108
|
expect(getWgpuRenderSurfaceProvider()).toBeNull();
|
|
105
109
|
expect(createWgpuRenderSurface(1, 1)).toBeNull();
|
|
@@ -110,8 +114,8 @@ describe('setWgpuRenderSurfaceProvider', () => {
|
|
|
110
114
|
afterEach(() => resetWgpuRenderSurfaceProviderForTest());
|
|
111
115
|
|
|
112
116
|
it('replaces the selected provider', () => {
|
|
113
|
-
const first = { createRenderSurface: () => ({}) as HTMLCanvasElement };
|
|
114
|
-
const second = { createRenderSurface: () => ({}) as HTMLCanvasElement };
|
|
117
|
+
const first = entityProvider({ createRenderSurface: () => ({}) as HTMLCanvasElement });
|
|
118
|
+
const second = entityProvider({ createRenderSurface: () => ({}) as HTMLCanvasElement });
|
|
115
119
|
setWgpuRenderSurfaceProvider(first);
|
|
116
120
|
setWgpuRenderSurfaceProvider(second);
|
|
117
121
|
expect(getWgpuRenderSurfaceProvider()).toBe(second);
|
|
@@ -133,3 +137,5 @@ function withThrowingDocument(run: () => void): void {
|
|
|
133
137
|
else Object.defineProperty(globalThis, 'document', descriptor);
|
|
134
138
|
}
|
|
135
139
|
}
|
|
140
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
141
|
+
import type { Entity, WgpuRenderSurfaceProvider } from '@flighthq/types/contract';
|
package/src/wgpuHost.test.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
2
|
+
import type { Entity, WgpuHostBackend } from '@flighthq/types/contract';
|
|
2
3
|
import { afterEach, beforeAll, describe, expect, it, vi } from 'vitest';
|
|
3
4
|
|
|
4
5
|
import {
|
|
@@ -17,11 +18,15 @@ import {
|
|
|
17
18
|
import { installWgpuMock } from './wgpuTestHelper';
|
|
18
19
|
|
|
19
20
|
function fakeBackend(): WgpuHostBackend {
|
|
20
|
-
return {
|
|
21
|
+
return entityBackend({
|
|
21
22
|
acquire: vi.fn(),
|
|
22
23
|
isSupported: vi.fn(() => true),
|
|
23
24
|
release: vi.fn(),
|
|
24
|
-
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function entityBackend(fields: Omit<WgpuHostBackend, keyof Entity>): WgpuHostBackend {
|
|
29
|
+
return createEntity(fields);
|
|
25
30
|
}
|
|
26
31
|
|
|
27
32
|
beforeAll(installWgpuMock);
|
|
@@ -51,7 +56,7 @@ describe('createWebWgpuHostBackend', () => {
|
|
|
51
56
|
it('tears down whatever it is handed, leaving the ownership decision to the caller', async () => {
|
|
52
57
|
const backend = createWebWgpuHostBackend();
|
|
53
58
|
const acquired = await backend.acquire(document.createElement('canvas'), {});
|
|
54
|
-
const acquisition = { ...acquired, ownership: 'caller'
|
|
59
|
+
const acquisition = createEntity({ ...acquired, ownership: 'caller' as const });
|
|
55
60
|
const unconfigure = vi.spyOn(acquisition.context, 'unconfigure');
|
|
56
61
|
const destroy = vi.spyOn(acquisition.device, 'destroy');
|
|
57
62
|
|
|
@@ -111,12 +116,12 @@ describe('setWgpuHostBackend', () => {
|
|
|
111
116
|
const acquired = await web.acquire(document.createElement('canvas'), {});
|
|
112
117
|
// Flight-owned: the state acquired these, so destroying it releases them. The caller-owned case is the
|
|
113
118
|
// opposite assertion and lives in its own test below.
|
|
114
|
-
const acquisition = { ...acquired, ownership: 'flight'
|
|
115
|
-
const backend
|
|
119
|
+
const acquisition = createEntity({ ...acquired, ownership: 'flight' as const });
|
|
120
|
+
const backend = entityBackend({
|
|
116
121
|
acquire: vi.fn(async () => acquisition),
|
|
117
122
|
isSupported: vi.fn(() => true),
|
|
118
123
|
release: vi.fn(),
|
|
119
|
-
};
|
|
124
|
+
});
|
|
120
125
|
const canvas = document.createElement('canvas');
|
|
121
126
|
setWgpuHostBackend(backend);
|
|
122
127
|
|
|
@@ -135,15 +140,15 @@ describe('setWgpuHostBackend', () => {
|
|
|
135
140
|
it('releases flight-owned handles through the selected backend when initialization fails', async () => {
|
|
136
141
|
const web = createWebWgpuHostBackend();
|
|
137
142
|
const acquired = await web.acquire(document.createElement('canvas'), {});
|
|
138
|
-
const acquisition = { ...acquired, ownership: 'flight'
|
|
143
|
+
const acquisition = createEntity({ ...acquired, ownership: 'flight' as const });
|
|
139
144
|
const configure = vi.spyOn(acquisition.context, 'configure').mockImplementationOnce(() => {
|
|
140
145
|
throw new Error('configure failed');
|
|
141
146
|
});
|
|
142
|
-
const backend
|
|
147
|
+
const backend = entityBackend({
|
|
143
148
|
acquire: vi.fn(async () => acquisition),
|
|
144
149
|
isSupported: vi.fn(() => true),
|
|
145
150
|
release: vi.fn(),
|
|
146
|
-
};
|
|
151
|
+
});
|
|
147
152
|
setWgpuHostBackend(backend);
|
|
148
153
|
|
|
149
154
|
expect(() => createWgpuRenderState(acquisition, _pipeline)).toThrow('configure failed');
|
|
@@ -161,20 +166,20 @@ describe('setWgpuHostBackend', () => {
|
|
|
161
166
|
it('O2: never releases caller-owned handles when initialization fails, whatever the backend does', async () => {
|
|
162
167
|
const web = createWebWgpuHostBackend();
|
|
163
168
|
const acquired = await web.acquire(document.createElement('canvas'), {});
|
|
164
|
-
const acquisition = { ...acquired, ownership: 'caller'
|
|
169
|
+
const acquisition = createEntity({ ...acquired, ownership: 'caller' as const });
|
|
165
170
|
const configure = vi.spyOn(acquisition.context, 'configure').mockImplementationOnce(() => {
|
|
166
171
|
throw new Error('configure failed');
|
|
167
172
|
});
|
|
168
173
|
const destroy = vi.spyOn(acquisition.device, 'destroy');
|
|
169
174
|
const unconfigure = vi.spyOn(acquisition.context, 'unconfigure');
|
|
170
|
-
const backend
|
|
175
|
+
const backend = entityBackend({
|
|
171
176
|
acquire: vi.fn(async () => acquisition),
|
|
172
177
|
isSupported: vi.fn(() => true),
|
|
173
178
|
release: vi.fn((held) => {
|
|
174
179
|
held.context.unconfigure();
|
|
175
180
|
held.device.destroy();
|
|
176
181
|
}),
|
|
177
|
-
};
|
|
182
|
+
});
|
|
178
183
|
setWgpuHostBackend(backend);
|
|
179
184
|
|
|
180
185
|
expect(() => createWgpuRenderState(acquisition, _pipeline)).toThrow('configure failed');
|
|
@@ -192,15 +197,15 @@ describe('setWgpuHostBackend', () => {
|
|
|
192
197
|
it('O1: never releases caller-owned handles when the state is destroyed', async () => {
|
|
193
198
|
const web = createWebWgpuHostBackend();
|
|
194
199
|
const acquired = await web.acquire(document.createElement('canvas'), {});
|
|
195
|
-
const acquisition = { ...acquired, ownership: 'caller'
|
|
200
|
+
const acquisition = createEntity({ ...acquired, ownership: 'caller' as const });
|
|
196
201
|
const destroy = vi.spyOn(acquisition.device, 'destroy');
|
|
197
|
-
const backend
|
|
202
|
+
const backend = entityBackend({
|
|
198
203
|
acquire: vi.fn(async () => acquisition),
|
|
199
204
|
isSupported: vi.fn(() => true),
|
|
200
205
|
release: vi.fn((held) => {
|
|
201
206
|
held.device.destroy();
|
|
202
207
|
}),
|
|
203
|
-
};
|
|
208
|
+
});
|
|
204
209
|
setWgpuHostBackend(backend);
|
|
205
210
|
|
|
206
211
|
const state = createWgpuRenderState(acquisition, _pipeline);
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
} from '@flighthq/render/contract';
|
|
16
16
|
import { createDisplayObject } from '@flighthq/scene2d/contract';
|
|
17
17
|
import type {
|
|
18
|
+
Entity,
|
|
18
19
|
RenderEffectPaddingResolver,
|
|
19
20
|
RenderRootGuard,
|
|
20
21
|
RenderState,
|
|
@@ -59,6 +60,13 @@ import {
|
|
|
59
60
|
import { createWgpuRenderStateForTest, installWgpuMock } from './wgpuTestHelper';
|
|
60
61
|
import { registerWgpuTextureResolver } from './wgpuTextureResolver';
|
|
61
62
|
|
|
63
|
+
function expectEntitySlot(slot: object & { readonly [EntityRuntimeKey]?: unknown }, fields: object): void {
|
|
64
|
+
const { [EntityRuntimeKey]: entityRuntime, ...slotFields } = slot;
|
|
65
|
+
expect(slotFields).toEqual(fields);
|
|
66
|
+
expect(Object.hasOwn(slot, EntityRuntimeKey)).toBe(true);
|
|
67
|
+
expect(entityRuntime).toBeUndefined();
|
|
68
|
+
}
|
|
69
|
+
|
|
62
70
|
beforeAll(() => {
|
|
63
71
|
installWgpuMock();
|
|
64
72
|
});
|
|
@@ -80,6 +88,10 @@ function createWgpuRenderStateRuntime(deviceState: ReturnType<typeof createWgpuD
|
|
|
80
88
|
return createWgpuRenderStateRuntimeWithPipeline(deviceState, _testPipeline);
|
|
81
89
|
}
|
|
82
90
|
|
|
91
|
+
function entityHostBackend(fields: Omit<WgpuHostBackend, keyof Entity>): WgpuHostBackend {
|
|
92
|
+
return createEntity(fields);
|
|
93
|
+
}
|
|
94
|
+
|
|
83
95
|
function createWgpuOffscreenRenderState(source: WgpuRenderState): WgpuRenderState {
|
|
84
96
|
const pipeline: WgpuPipeline = createWgpuPipeline(getWgpuRenderStateRuntime(source).registries);
|
|
85
97
|
const state = createDeviceOnlyWgpuRenderState(source.deviceState, pipeline, {
|
|
@@ -129,13 +141,15 @@ describe('createWgpuAcquisitionFromCanvasElement', () => {
|
|
|
129
141
|
// ★ NULL, NOT THROW. "This environment cannot give me WebGPU" is an expected outcome, not API misuse, so
|
|
130
142
|
// it reports through the return value like every other expected failure in this SDK.
|
|
131
143
|
it('returns null when the host cannot acquire, rather than rejecting', async () => {
|
|
132
|
-
setWgpuHostBackend(
|
|
133
|
-
|
|
134
|
-
|
|
144
|
+
setWgpuHostBackend(
|
|
145
|
+
entityHostBackend({
|
|
146
|
+
acquire: vi.fn(async () => {
|
|
147
|
+
throw new Error('no adapter');
|
|
148
|
+
}),
|
|
149
|
+
isSupported: vi.fn(() => false),
|
|
150
|
+
release: vi.fn(),
|
|
135
151
|
}),
|
|
136
|
-
|
|
137
|
-
release: vi.fn(),
|
|
138
|
-
});
|
|
152
|
+
);
|
|
139
153
|
|
|
140
154
|
await expect(createWgpuAcquisitionFromCanvasElement(document.createElement('canvas'))).resolves.toBeNull();
|
|
141
155
|
setWgpuHostBackend(null);
|
|
@@ -455,13 +469,13 @@ describe('createWgpuRenderState', () => {
|
|
|
455
469
|
it('keeps exact caller-owned handles usable through every shared-state teardown', async () => {
|
|
456
470
|
const owner = await createWgpuRenderStateForTest();
|
|
457
471
|
const canvas = document.createElement('canvas');
|
|
458
|
-
const acquisition = {
|
|
472
|
+
const acquisition = createEntity({
|
|
459
473
|
context: owner.context,
|
|
460
474
|
device: owner.device,
|
|
461
475
|
format: owner.format,
|
|
462
|
-
ownership: 'caller',
|
|
476
|
+
ownership: 'caller' as const,
|
|
463
477
|
surface: owner.surface,
|
|
464
|
-
}
|
|
478
|
+
});
|
|
465
479
|
let contextUsable = true;
|
|
466
480
|
let deviceUsable = true;
|
|
467
481
|
const originalCreateBuffer = acquisition.device.createBuffer.bind(acquisition.device);
|
|
@@ -557,11 +571,13 @@ describe('createWgpuRenderStateFromCanvasElement', () => {
|
|
|
557
571
|
const owner = await createWgpuRenderStateForTest();
|
|
558
572
|
const acquisition = { ...ownerAcquisition(owner), ownership: 'flight' } as const;
|
|
559
573
|
const released: Readonly<WgpuHostAcquisition>[] = [];
|
|
560
|
-
setWgpuHostBackend(
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
574
|
+
setWgpuHostBackend(
|
|
575
|
+
entityHostBackend({
|
|
576
|
+
acquire: vi.fn(async () => acquisition),
|
|
577
|
+
isSupported: vi.fn(() => true),
|
|
578
|
+
release: vi.fn((held: Readonly<WgpuHostAcquisition>) => released.push(held)),
|
|
579
|
+
}),
|
|
580
|
+
);
|
|
565
581
|
|
|
566
582
|
const state = await createWgpuRenderStateFromCanvasElement(document.createElement('canvas'));
|
|
567
583
|
destroyWgpuRenderState(state);
|
|
@@ -574,7 +590,7 @@ describe('createWgpuRenderStateFromCanvasElement', () => {
|
|
|
574
590
|
it('forwards the acquisition options, which the render options no longer carry', async () => {
|
|
575
591
|
const owner = await createWgpuRenderStateForTest();
|
|
576
592
|
const acquire = vi.fn(async () => ({ ...ownerAcquisition(owner), ownership: 'flight' }) as const);
|
|
577
|
-
setWgpuHostBackend({ acquire, isSupported: vi.fn(() => true), release: vi.fn() });
|
|
593
|
+
setWgpuHostBackend(entityHostBackend({ acquire, isSupported: vi.fn(() => true), release: vi.fn() }));
|
|
578
594
|
const canvas = document.createElement('canvas');
|
|
579
595
|
|
|
580
596
|
const state = await createWgpuRenderStateFromCanvasElement(canvas, {
|
|
@@ -623,26 +639,26 @@ describe('createWgpuRenderStateRuntime', () => {
|
|
|
623
639
|
registry: 'WgpuRenderEffect',
|
|
624
640
|
shape: 'keyed',
|
|
625
641
|
});
|
|
626
|
-
|
|
642
|
+
expectEntitySlot(runtime.registries.compressedTextureDecoder, {
|
|
627
643
|
entry: null,
|
|
628
644
|
onMiss: 'Unregistered',
|
|
629
645
|
registry: 'WgpuCompressedTextureDecoder',
|
|
630
646
|
shape: 'slot',
|
|
631
647
|
});
|
|
632
648
|
expect(runtime.registries.colorAdjustments).toBeUndefined();
|
|
633
|
-
|
|
649
|
+
expectEntitySlot(runtime.registries.compressedTextureUpload, {
|
|
634
650
|
entry: null,
|
|
635
651
|
onMiss: 'Unregistered',
|
|
636
652
|
registry: 'WgpuCompressedTextureUpload',
|
|
637
653
|
shape: 'slot',
|
|
638
654
|
});
|
|
639
|
-
|
|
655
|
+
expectEntitySlot(runtime.registries.shapeRasterizer, {
|
|
640
656
|
entry: null,
|
|
641
657
|
onMiss: 'Unregistered',
|
|
642
658
|
registry: 'WgpuShapeRasterizer',
|
|
643
659
|
shape: 'slot',
|
|
644
660
|
});
|
|
645
|
-
|
|
661
|
+
expectEntitySlot(runtime.registries.strokeTessellator, {
|
|
646
662
|
entry: null,
|
|
647
663
|
onMiss: 'Rasterize',
|
|
648
664
|
registry: 'StrokeTessellator',
|
|
@@ -965,11 +981,13 @@ describe('releaseWgpuAcquisition', () => {
|
|
|
965
981
|
const owner = await createWgpuRenderStateForTest();
|
|
966
982
|
const acquisition = { ...ownerAcquisition(owner), ownership: 'caller' } as const;
|
|
967
983
|
const released: Readonly<WgpuHostAcquisition>[] = [];
|
|
968
|
-
setWgpuHostBackend(
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
984
|
+
setWgpuHostBackend(
|
|
985
|
+
entityHostBackend({
|
|
986
|
+
acquire: vi.fn(async () => acquisition),
|
|
987
|
+
isSupported: vi.fn(() => true),
|
|
988
|
+
release: vi.fn((held: Readonly<WgpuHostAcquisition>) => released.push(held)),
|
|
989
|
+
}),
|
|
990
|
+
);
|
|
973
991
|
|
|
974
992
|
releaseWgpuAcquisition(acquisition);
|
|
975
993
|
|
|
@@ -997,14 +1015,14 @@ describe('wgpu acquisition lifecycle', () => {
|
|
|
997
1015
|
): { backend: WgpuHostBackend; released: Readonly<WgpuHostAcquisition>[] } => {
|
|
998
1016
|
const released: Readonly<WgpuHostAcquisition>[] = [];
|
|
999
1017
|
return {
|
|
1000
|
-
backend: {
|
|
1018
|
+
backend: entityHostBackend({
|
|
1001
1019
|
acquire: vi.fn(async () => acquisition),
|
|
1002
1020
|
isSupported: vi.fn(() => true),
|
|
1003
1021
|
release: vi.fn((held: Readonly<WgpuHostAcquisition>) => {
|
|
1004
1022
|
released.push(held);
|
|
1005
1023
|
held.device.destroy();
|
|
1006
1024
|
}),
|
|
1007
|
-
},
|
|
1025
|
+
}),
|
|
1008
1026
|
released,
|
|
1009
1027
|
};
|
|
1010
1028
|
};
|
|
@@ -1087,7 +1105,7 @@ describe('wgpu acquisition lifecycle', () => {
|
|
|
1087
1105
|
});
|
|
1088
1106
|
|
|
1089
1107
|
function ownerAcquisition(owner: WgpuPresentationRenderState): Omit<WgpuHostAcquisition, 'ownership'> {
|
|
1090
|
-
return { context: owner.context, device: owner.device, format: owner.format, surface: owner.surface };
|
|
1108
|
+
return createEntity({ context: owner.context, device: owner.device, format: owner.format, surface: owner.surface });
|
|
1091
1109
|
}
|
|
1092
1110
|
|
|
1093
1111
|
describe('WgpuPipeline snapshots', () => {
|
|
@@ -1164,13 +1182,13 @@ describe('WgpuPresentationSurface', () => {
|
|
|
1164
1182
|
return width;
|
|
1165
1183
|
},
|
|
1166
1184
|
};
|
|
1167
|
-
const acquisition = {
|
|
1185
|
+
const acquisition = createEntity({
|
|
1168
1186
|
context: owner.context,
|
|
1169
1187
|
device: owner.device,
|
|
1170
1188
|
format: owner.format,
|
|
1171
|
-
ownership: 'caller',
|
|
1189
|
+
ownership: 'caller' as const,
|
|
1172
1190
|
surface,
|
|
1173
|
-
}
|
|
1191
|
+
});
|
|
1174
1192
|
const canvas = document.createElement('canvas');
|
|
1175
1193
|
|
|
1176
1194
|
const state = createWgpuRenderState(acquisition);
|