@flighthq/render-wgpu 0.5.1-next.920.da8f530 → 0.5.1-next.973.788d3d7
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
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/render-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/render-wgpu@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/render-wgpu@0.5.1-next.973.788d3d7](https://github.com/flighthq/flight/tree/788d3d7375cca3a0233cecedda1a4e031bd26dec/packages/render-wgpu)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/788d3d7375cca3a0233cecedda1a4e031bd26dec/LICENSE.md)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EntityConstruction, WgpuFullscreenPipeline, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
export declare function createWgpuFullscreenPipeline(state: WgpuRenderState, fragmentWgsl: string, textureInputCount?: number, format?: GPUTextureFormat): WgpuFullscreenPipeline;
|
|
3
3
|
export declare function destroyWgpuFullscreenPipeline(_state: WgpuRenderState, _pipeline: WgpuFullscreenPipeline): void;
|
|
4
|
-
export declare function drawWgpuFullscreenPass(state: WgpuRenderState, wgpuPipeline: Readonly<WgpuFullscreenPipeline>, inputs: ReadonlyArray<Readonly<WgpuRenderTarget>>,
|
|
4
|
+
export declare function drawWgpuFullscreenPass(state: WgpuRenderState, wgpuPipeline: Readonly<WgpuFullscreenPipeline>, inputs: ReadonlyArray<Readonly<WgpuRenderTarget>>, setUniforms: ((state: WgpuRenderState, uniformBindGroupLayout: GPUBindGroupLayout) => GPUBindGroup) | null): void;
|
|
5
5
|
export declare function initializeWgpuFullscreenPipeline(out: EntityConstruction<WgpuFullscreenPipeline>, state: WgpuRenderState, fragmentWgsl: string, textureInputCount?: number, format?: GPUTextureFormat): void;
|
|
6
6
|
//# sourceMappingURL=wgpuFullscreenPass.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuFullscreenPass.d.ts","sourceRoot":"","sources":["../src/wgpuFullscreenPass.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAIlC,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,MAAM,EACpB,iBAAiB,SAAI,EACrB,MAAM,GAAE,gBAA+B,GACtC,sBAAsB,CAIxB;AAKD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,sBAAsB,GAAG,IAAI,CAG9G;
|
|
1
|
+
{"version":3,"file":"wgpuFullscreenPass.d.ts","sourceRoot":"","sources":["../src/wgpuFullscreenPass.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAIlC,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,MAAM,EACpB,iBAAiB,SAAI,EACrB,MAAM,GAAE,gBAA+B,GACtC,sBAAsB,CAIxB;AAKD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,sBAAsB,GAAG,IAAI,CAG9G;AAQD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAC9C,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EACjD,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,kBAAkB,KAAK,YAAY,CAAC,GAAG,IAAI,GACzG,IAAI,CAyBN;AAOD,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,EAC/C,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,MAAM,EACpB,iBAAiB,SAAI,EACrB,MAAM,GAAE,gBAA+B,GACtC,IAAI,CAyCN"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
|
-
import {
|
|
2
|
+
import { getWgpuRenderStateRuntime } from './wgpuRenderState';
|
|
3
3
|
export function createWgpuFullscreenPipeline(state, fragmentWgsl, textureInputCount = 1, format = state.format) {
|
|
4
4
|
const out = allocateEntity();
|
|
5
5
|
initializeWgpuFullscreenPipeline(out, state, fragmentWgsl, textureInputCount, format);
|
|
@@ -12,24 +12,23 @@ export function destroyWgpuFullscreenPipeline(_state, _pipeline) {
|
|
|
12
12
|
// WebGPU pipelines and layouts have no destroy() — they are GC-managed. Drop the reference
|
|
13
13
|
// on the caller's side to allow collection.
|
|
14
14
|
}
|
|
15
|
-
// Draws a fullscreen pass into the current render target
|
|
16
|
-
//
|
|
17
|
-
//
|
|
15
|
+
// Draws a fullscreen pass into the current render target. Binds `inputs[i]` as texture
|
|
16
|
+
// @group(1+i) @binding(0), calls `setUniforms` for per-pass uploads (pass null if the shader
|
|
17
|
+
// declares no uniforms), then draws 3 vertices.
|
|
18
18
|
//
|
|
19
19
|
// Requires an open render pass (renderWgpuBackground or beginWgpuRenderPass must have been
|
|
20
|
-
// called first).
|
|
21
|
-
|
|
22
|
-
export function drawWgpuFullscreenPass(state, wgpuPipeline, inputs, dest, setUniforms) {
|
|
20
|
+
// called first). The destination is fixed when the caller opens the render pass.
|
|
21
|
+
export function drawWgpuFullscreenPass(state, wgpuPipeline, inputs, setUniforms) {
|
|
23
22
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
24
|
-
const pass =
|
|
25
|
-
|
|
23
|
+
const pass = runtime.renderPass;
|
|
24
|
+
const resources = runtime.context.resources;
|
|
25
|
+
if (pass === null || resources === null)
|
|
26
26
|
return;
|
|
27
27
|
pass.setPipeline(wgpuPipeline.pipeline);
|
|
28
28
|
if (setUniforms !== null) {
|
|
29
29
|
const uniformBindGroup = setUniforms(state, wgpuPipeline.uniformBindGroupLayout);
|
|
30
30
|
pass.setBindGroup(0, uniformBindGroup);
|
|
31
31
|
}
|
|
32
|
-
const resources = getWgpuRenderStateDeviceResources(state);
|
|
33
32
|
for (let i = 0; i < inputs.length; i++) {
|
|
34
33
|
const input = inputs[i];
|
|
35
34
|
const layout = wgpuPipeline.textureBindGroupLayouts[i];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuFullscreenPass.js","sourceRoot":"","sources":["../src/wgpuFullscreenPass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAQzE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wgpuFullscreenPass.js","sourceRoot":"","sources":["../src/wgpuFullscreenPass.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.973.788d3d7",
|
|
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.973.788d3d7",
|
|
42
|
+
"@flighthq/entity": "0.5.1-next.973.788d3d7",
|
|
43
|
+
"@flighthq/geometry": "0.5.1-next.973.788d3d7",
|
|
44
|
+
"@flighthq/log": "0.5.1-next.973.788d3d7",
|
|
45
|
+
"@flighthq/render": "0.5.1-next.973.788d3d7",
|
|
46
|
+
"@flighthq/registry": "0.5.1-next.973.788d3d7",
|
|
47
|
+
"@flighthq/signals": "0.5.1-next.973.788d3d7",
|
|
48
|
+
"@flighthq/bitmap": "0.5.1-next.973.788d3d7",
|
|
49
|
+
"@flighthq/texture": "0.5.1-next.973.788d3d7",
|
|
50
|
+
"@flighthq/types": "0.5.1-next.973.788d3d7"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
53
53
|
"@webgpu/types": "^0.1.70"
|
|
@@ -52,7 +52,7 @@ describe('drawWgpuFullscreenPass', () => {
|
|
|
52
52
|
renderWgpuBackground(state);
|
|
53
53
|
const pipeline = createWgpuFullscreenPipeline(state, SIMPLE_FRAGMENT_WGSL, 1);
|
|
54
54
|
const target = createWgpuRenderTarget(state, 64, 64);
|
|
55
|
-
expect(() => drawWgpuFullscreenPass(state, pipeline, [target], null
|
|
55
|
+
expect(() => drawWgpuFullscreenPass(state, pipeline, [target], null)).not.toThrow();
|
|
56
56
|
submitWgpuRenderPass(state);
|
|
57
57
|
});
|
|
58
58
|
|
|
@@ -60,7 +60,7 @@ describe('drawWgpuFullscreenPass', () => {
|
|
|
60
60
|
const state = await createWgpuRenderStateForTest();
|
|
61
61
|
const pipeline = createWgpuFullscreenPipeline(state, SIMPLE_FRAGMENT_WGSL, 1);
|
|
62
62
|
const target = createWgpuRenderTarget(state, 64, 64);
|
|
63
|
-
expect(() => drawWgpuFullscreenPass(state, pipeline, [target], null
|
|
63
|
+
expect(() => drawWgpuFullscreenPass(state, pipeline, [target], null)).not.toThrow();
|
|
64
64
|
});
|
|
65
65
|
});
|
|
66
66
|
describe('initializeWgpuFullscreenPipeline', () => {
|