@flighthq/render-wgpu 0.5.1-next.1069.554a2ac → 0.5.1-next.1201.9b49dee

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.
Files changed (105) hide show
  1. package/README.md +2 -2
  2. package/dist/contract.d.ts +9 -6
  3. package/dist/contract.d.ts.map +1 -1
  4. package/dist/contract.js +9 -6
  5. package/dist/contract.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/wgpuDraw.js +1 -1
  11. package/dist/wgpuDraw.js.map +1 -1
  12. package/dist/wgpuFrame.d.ts +23 -0
  13. package/dist/wgpuFrame.d.ts.map +1 -0
  14. package/dist/{wgpuBackground.js → wgpuFrame.js} +67 -121
  15. package/dist/wgpuFrame.js.map +1 -0
  16. package/dist/wgpuFullscreenPass.d.ts +2 -2
  17. package/dist/wgpuFullscreenPass.d.ts.map +1 -1
  18. package/dist/wgpuFullscreenPass.js +1 -2
  19. package/dist/wgpuFullscreenPass.js.map +1 -1
  20. package/dist/wgpuHost.d.ts +6 -6
  21. package/dist/wgpuHost.d.ts.map +1 -1
  22. package/dist/wgpuHost.js +17 -3
  23. package/dist/wgpuHost.js.map +1 -1
  24. package/dist/wgpuRenderPass.d.ts +9 -0
  25. package/dist/wgpuRenderPass.d.ts.map +1 -0
  26. package/dist/wgpuRenderPass.js +222 -0
  27. package/dist/wgpuRenderPass.js.map +1 -0
  28. package/dist/wgpuRenderState.d.ts +3 -4
  29. package/dist/wgpuRenderState.d.ts.map +1 -1
  30. package/dist/wgpuRenderState.js +17 -88
  31. package/dist/wgpuRenderState.js.map +1 -1
  32. package/dist/wgpuRenderTarget.d.ts +12 -29
  33. package/dist/wgpuRenderTarget.d.ts.map +1 -1
  34. package/dist/wgpuRenderTarget.js +19 -252
  35. package/dist/wgpuRenderTarget.js.map +1 -1
  36. package/dist/wgpuRenderTargetPool.d.ts +5 -5
  37. package/dist/wgpuRenderTargetPool.d.ts.map +1 -1
  38. package/dist/wgpuRenderTargetPool.js +7 -7
  39. package/dist/wgpuRenderTargetPool.js.map +1 -1
  40. package/dist/wgpuRenderTexture.d.ts +5 -4
  41. package/dist/wgpuRenderTexture.d.ts.map +1 -1
  42. package/dist/wgpuRenderTexture.js +14 -16
  43. package/dist/wgpuRenderTexture.js.map +1 -1
  44. package/dist/wgpuRenderTexturePool.js +1 -3
  45. package/dist/wgpuRenderTexturePool.js.map +1 -1
  46. package/dist/wgpuScissor.d.ts +1 -1
  47. package/dist/wgpuScissor.d.ts.map +1 -1
  48. package/dist/wgpuScissor.js +7 -4
  49. package/dist/wgpuScissor.js.map +1 -1
  50. package/dist/wgpuScreenAntialias.d.ts +3 -0
  51. package/dist/wgpuScreenAntialias.d.ts.map +1 -0
  52. package/dist/wgpuScreenAntialias.js +119 -0
  53. package/dist/wgpuScreenAntialias.js.map +1 -0
  54. package/dist/wgpuScreenCapture.d.ts +5 -0
  55. package/dist/wgpuScreenCapture.d.ts.map +1 -0
  56. package/dist/{wgpuSurface.js → wgpuScreenCapture.js} +55 -73
  57. package/dist/wgpuScreenCapture.js.map +1 -0
  58. package/dist/wgpuScreenRenderTarget.d.ts +9 -0
  59. package/dist/wgpuScreenRenderTarget.d.ts.map +1 -0
  60. package/dist/wgpuScreenRenderTarget.js +123 -0
  61. package/dist/wgpuScreenRenderTarget.js.map +1 -0
  62. package/dist/wgpuShader.js +2 -2
  63. package/dist/wgpuShader.js.map +1 -1
  64. package/dist/wgpuTestHelper.d.ts +8 -2
  65. package/dist/wgpuTestHelper.d.ts.map +1 -1
  66. package/dist/wgpuTestHelper.js +38 -3
  67. package/dist/wgpuTestHelper.js.map +1 -1
  68. package/dist/wgpuTextureRenderTarget.d.ts +18 -0
  69. package/dist/wgpuTextureRenderTarget.d.ts.map +1 -0
  70. package/dist/wgpuTextureRenderTarget.js +122 -0
  71. package/dist/wgpuTextureRenderTarget.js.map +1 -0
  72. package/package.json +11 -11
  73. package/src/wgpuDraw.test.ts +8 -8
  74. package/src/{wgpuBackground.test.ts → wgpuFrame.test.ts} +34 -20
  75. package/src/wgpuFullscreenPass.test.ts +7 -7
  76. package/src/wgpuHost.test.ts +28 -82
  77. package/src/wgpuRenderPass.test.ts +258 -0
  78. package/src/wgpuRenderState.test.ts +34 -313
  79. package/src/wgpuRenderTarget.test.ts +44 -219
  80. package/src/wgpuRenderTargetPool.test.ts +21 -21
  81. package/src/wgpuRenderTexture.test.ts +17 -15
  82. package/src/wgpuScissor.test.ts +43 -13
  83. package/src/wgpuScreenAntialias.test.ts +60 -0
  84. package/src/wgpuScreenCapture.test.ts +156 -0
  85. package/src/wgpuScreenRenderTarget.test.ts +152 -0
  86. package/src/wgpuShader.test.ts +5 -6
  87. package/src/wgpuTextureRenderTarget.test.ts +129 -0
  88. package/src/wgpuTextureResolver.test.ts +5 -5
  89. package/dist/wgpuAntialias.d.ts +0 -14
  90. package/dist/wgpuAntialias.d.ts.map +0 -1
  91. package/dist/wgpuAntialias.js +0 -155
  92. package/dist/wgpuAntialias.js.map +0 -1
  93. package/dist/wgpuBackground.d.ts +0 -20
  94. package/dist/wgpuBackground.d.ts.map +0 -1
  95. package/dist/wgpuBackground.js.map +0 -1
  96. package/dist/wgpuElement.d.ts +0 -7
  97. package/dist/wgpuElement.d.ts.map +0 -1
  98. package/dist/wgpuElement.js +0 -20
  99. package/dist/wgpuElement.js.map +0 -1
  100. package/dist/wgpuSurface.d.ts +0 -6
  101. package/dist/wgpuSurface.d.ts.map +0 -1
  102. package/dist/wgpuSurface.js.map +0 -1
  103. package/src/wgpuAntialias.test.ts +0 -239
  104. package/src/wgpuElement.test.ts +0 -145
  105. package/src/wgpuSurface.test.ts +0 -141
@@ -0,0 +1,123 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
+ import { getWgpuHostBackend } from './wgpuHost';
3
+ // Acquires the color view a screen pass attaches to, sizing the target's storage to the surface first.
4
+ // The returned view is the supersample texture when antialiasing is enabled and the presentation view
5
+ // otherwise; either way `presentationView` names where the frame ultimately lands, so the submit can
6
+ // resolve and capture it. Internal: called by beginWgpuRenderPass.
7
+ export function bindWgpuScreenRenderTarget(state, target) {
8
+ syncWgpuScreenRenderTargetExtent(target);
9
+ ensureWgpuScreenRenderTargetDepthStencil(target);
10
+ if (target.presentationView === null) {
11
+ // With capture on, render into an offscreen COPY_SRC texture instead of the swap chain: software and
12
+ // headless adapters never present the swap chain and its texture reads back as zeros, so the readable
13
+ // copy must be the render target itself.
14
+ const presentationTexture = target.acquireCaptureTexture?.(target) ?? target.context.getCurrentTexture();
15
+ target.presentationView = presentationTexture.createView();
16
+ }
17
+ return target.acquireAntialiasView?.(state, target) ?? target.presentationView;
18
+ }
19
+ // A screen target's whole point is that it presents; a texture target's is that it can be sampled. Both
20
+ // creations are Entity allocations, so a factory is the only place either capability is decided.
21
+ export function createWgpuScreenRenderTarget(device, surface, options = {}) {
22
+ const out = allocateEntity();
23
+ initializeWgpuScreenRenderTarget(out, device, surface, options);
24
+ return finishEntity(out);
25
+ }
26
+ // Frees the GPU storage this target owns — depth-stencil, supersample, and capture — and unconfigures
27
+ // its canvas context. The target is invalid afterward. The storage is freed here even though the code
28
+ // that filled it lives in the opt-in modules: a target owns its allocations whoever wrote to them.
29
+ export function destroyWgpuScreenRenderTarget(target) {
30
+ target.depthStencilTexture.destroy();
31
+ target.antialiasTexture?.destroy();
32
+ target.antialiasTexture = null;
33
+ target.antialiasView = null;
34
+ target.antialiasResolveBindGroup = null;
35
+ target.captureTexture?.destroy();
36
+ target.captureTexture = null;
37
+ target.captureBuffer?.destroy();
38
+ target.captureBuffer = null;
39
+ target.presentationView = null;
40
+ target.context.unconfigure();
41
+ }
42
+ // Releases the per-frame swap-chain view. The next frame acquires a fresh one, which is the whole reason
43
+ // a screen target is not sampleable: nothing may hold this across frames.
44
+ export function endWgpuScreenRenderTargetFrame(target) {
45
+ target.presentationView = null;
46
+ }
47
+ export function initializeWgpuScreenRenderTarget(out, device, surface, options = {}) {
48
+ // The host owns how a surface yields a presentation context — the web adapter reaches for
49
+ // getContext('webgpu'), a native host for its own swap chain — so the binding goes through the backend
50
+ // rather than through a DOM call in the renderer.
51
+ const format = options.format ?? 'bgra8unorm';
52
+ const context = getWgpuHostBackend().attachSurface(surface, {
53
+ alphaMode: options.alphaMode ?? 'premultiplied',
54
+ device,
55
+ format,
56
+ });
57
+ if (context === null)
58
+ throw new Error('createWgpuScreenRenderTarget: the surface cannot present WebGPU.');
59
+ const width = Math.max(1, surface.width);
60
+ const height = Math.max(1, surface.height);
61
+ const depthStencilTexture = createWgpuScreenDepthStencilTexture(device, width, height);
62
+ out.acquireAntialiasView = null;
63
+ out.acquireCaptureTexture = null;
64
+ out.antialias = false;
65
+ out.antialiasResolveBindGroup = null;
66
+ out.antialiasTexture = null;
67
+ out.antialiasView = null;
68
+ out.captureBuffer = null;
69
+ out.captureBytesPerRow = 0;
70
+ out.captureEnabled = false;
71
+ out.captureHeight = 0;
72
+ out.captureTexture = null;
73
+ out.captureWidth = 0;
74
+ out.colorAttachments = 1;
75
+ out.colorSpace = options.colorSpace ?? 'srgb';
76
+ out.context = context;
77
+ out.depthStencilTexture = depthStencilTexture;
78
+ out.depthStencilView = depthStencilTexture.createView();
79
+ out.device = device;
80
+ out.encodeAntialiasResolve = null;
81
+ out.encodeCapture = null;
82
+ out.format = format;
83
+ out.height = height;
84
+ out.presentationView = null;
85
+ out.sampleCount = 1;
86
+ out.surface = surface;
87
+ out.width = width;
88
+ }
89
+ // The base type says which storage a target names through `context`; this is the narrowing that reads it.
90
+ // Sampling, present, and effect-input APIs take WgpuTextureRenderTarget precisely so they never have to
91
+ // ask — the swap chain has no sampleable texture handle to give them.
92
+ export function isWgpuScreenRenderTarget(target) {
93
+ return target.context !== null;
94
+ }
95
+ export function syncWgpuScreenRenderTargetExtent(target) {
96
+ const scale = target.antialias ? WGPU_SCREEN_SUPERSAMPLE_SCALE : 1;
97
+ target.width = Math.max(1, target.surface.width) * scale;
98
+ target.height = Math.max(1, target.surface.height) * scale;
99
+ }
100
+ function createWgpuScreenDepthStencilTexture(device, width, height) {
101
+ return device.createTexture({
102
+ size: [Math.max(1, width), Math.max(1, height), 1],
103
+ format: 'depth24plus-stencil8',
104
+ usage: GPUTextureUsage.RENDER_ATTACHMENT,
105
+ });
106
+ }
107
+ function ensureWgpuScreenRenderTargetDepthStencil(target) {
108
+ const texture = target.depthStencilTexture;
109
+ if (texture.width === target.width && texture.height === target.height)
110
+ return;
111
+ texture.destroy();
112
+ const replacement = createWgpuScreenDepthStencilTexture(target.device, target.width, target.height);
113
+ target.depthStencilTexture = replacement;
114
+ target.depthStencilView = replacement.createView();
115
+ }
116
+ // Brings the target's extent back in line with its surface — the surface is the authority on its own
117
+ // size, and it can be resized between any two frames. Every pass calls this, so a caller never has to
118
+ // announce a resize; enabling supersampling calls it too, because the factor it multiplies by changed.
119
+ // One place decides how much bigger a supersampled surface is than its logical extent.
120
+ // wgpuTextureRenderTarget.ts carries the same number for offscreen storage; they are the same concept
121
+ // applied to two surfaces.
122
+ const WGPU_SCREEN_SUPERSAMPLE_SCALE = 2;
123
+ //# sourceMappingURL=wgpuScreenRenderTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wgpuScreenRenderTarget.js","sourceRoot":"","sources":["../src/wgpuScreenRenderTarget.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  import { BlendMode } from '@flighthq/types/contract';
3
- import { getWgpuSurfaceRenderExtent } from './wgpuAntialias';
3
+ import { getWgpuRenderPassViewport } from './wgpuRenderPass';
4
4
  import { getWgpuRenderStateDeviceResources, getWgpuRenderStateRuntime } from './wgpuRenderState';
5
5
  // ---- WGSL source ----
6
6
  // Uniform buffer layout (per-draw slot in the ring, 256-byte aligned):
@@ -273,7 +273,7 @@ export function writeWgpuQuadUniforms(state, renderProxy, colorScaleBias, x0, y0
273
273
  const byteOffset = runtime.uniformOffset;
274
274
  const floatBase = byteOffset >> 2; // divide by 4
275
275
  const { uniformData, uniformDataU32, matrixArray } = runtime;
276
- const viewport = runtime.renderTargetViewport ?? getWgpuSurfaceRenderExtent(state);
276
+ const viewport = getWgpuRenderPassViewport(state);
277
277
  setWgpuMatrixFromTransform(matrixArray, renderProxy.transform2D, viewport);
278
278
  // mat3x3 columns with per-column padding (4 floats each = 16 bytes):
279
279
  uniformData[floatBase + 0] = matrixArray[0];
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuShader.js","sourceRoot":"","sources":["../src/wgpuShader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wgpuShader.js","sourceRoot":"","sources":["../src/wgpuShader.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
- import type { WgpuPresentationRenderState, WgpuRenderOptions } from '@flighthq/types/contract';
1
+ import type { RenderTargetClear, WgpuRenderOptions, WgpuRenderPass, WgpuRenderState, WgpuScreenRenderTarget, WgpuScreenRenderTargetOptions } from '@flighthq/types/contract';
2
+ export declare function beginWgpuScreenRenderPassForTest(state: WgpuRenderState, clear?: Readonly<RenderTargetClear>, options?: Readonly<WgpuScreenRenderTargetOptions & {
3
+ antialias?: boolean;
4
+ }>): WgpuRenderPass;
2
5
  export declare function createReadyImageElementForTest(width?: number, height?: number): HTMLImageElement;
3
- export declare function createWgpuRenderStateForTest(options?: WgpuRenderOptions): Promise<WgpuPresentationRenderState>;
6
+ export declare function createWgpuRenderStateForTest(options?: WgpuRenderOptions): Promise<WgpuRenderState>;
7
+ export declare function createWgpuScreenRenderTargetForTest(state: WgpuRenderState, options?: Readonly<WgpuScreenRenderTargetOptions & {
8
+ antialias?: boolean;
9
+ }>, width?: number, height?: number): WgpuScreenRenderTarget;
4
10
  export declare function installWgpuMock(): void;
5
11
  //# sourceMappingURL=wgpuTestHelper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuTestHelper.d.ts","sourceRoot":"","sources":["../src/wgpuTestHelper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AA+Q/F,wBAAgB,8BAA8B,CAAC,KAAK,SAAI,EAAE,MAAM,SAAI,GAAG,gBAAgB,CAUtF;AAED,wBAAsB,4BAA4B,CAChD,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,2BAA2B,CAAC,CAKtC;AAID,wBAAgB,eAAe,IAAI,IAAI,CAkCtC"}
1
+ {"version":3,"file":"wgpuTestHelper.d.ts","sourceRoot":"","sources":["../src/wgpuTestHelper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,0BAA0B,CAAC;AAmRlC,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,eAAe,EACtB,KAAK,GAAE,QAAQ,CAAC,iBAAiB,CAAuC,EACxE,OAAO,GAAE,QAAQ,CAAC,6BAA6B,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAM,GAC9E,cAAc,CAIhB;AAKD,wBAAgB,8BAA8B,CAAC,KAAK,SAAI,EAAE,MAAM,SAAI,GAAG,gBAAgB,CAUtF;AAED,wBAAsB,4BAA4B,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAO5G;AAID,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,QAAQ,CAAC,6BAA6B,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAM,EAC/E,KAAK,SAAM,EACX,MAAM,SAAM,GACX,sBAAsB,CAOxB;AAID,wBAAgB,eAAe,IAAI,IAAI,CAwCtC"}
@@ -1,5 +1,8 @@
1
1
  import { createEmptyWgpuRegistries, createWgpuPipeline } from './wgpuPipeline';
2
- import { createWgpuRenderStateFromCanvasElement } from './wgpuRenderState';
2
+ import { beginWgpuRenderPass } from './wgpuRenderPass';
3
+ import { createWgpuAcquisition, createWgpuRenderState } from './wgpuRenderState';
4
+ import { enableWgpuScreenRenderTargetAntialias } from './wgpuScreenAntialias';
5
+ import { createWgpuScreenRenderTarget } from './wgpuScreenRenderTarget';
3
6
  // Wgpu flag constants are only type-level in @webgpu/types; install runtime values for JSDOM.
4
7
  function installWgpuConstants() {
5
8
  const g = globalThis;
@@ -74,6 +77,8 @@ function makeRenderPassEncoder() {
74
77
  function makeCommandEncoder() {
75
78
  return {
76
79
  beginRenderPass: () => makeRenderPassEncoder(),
80
+ copyTextureToBuffer: () => { },
81
+ copyTextureToTexture: () => { },
77
82
  finish: () => ({}),
78
83
  };
79
84
  }
@@ -212,6 +217,14 @@ function makeAdapter() {
212
217
  requestDevice: () => Promise.resolve(makeDevice()),
213
218
  };
214
219
  }
220
+ // Opens a screen pass over a fresh 800x600 test surface — the shape of an ordinary frame, in one line,
221
+ // for the many tests whose subject is what happens INSIDE a pass rather than the bracket itself.
222
+ export function beginWgpuScreenRenderPassForTest(state, clear = { color: [0, 0, 0, 0], depth: 1.0 }, options = {}) {
223
+ const screen = createWgpuScreenRenderTargetForTest(state, options);
224
+ if (options.antialias === true)
225
+ enableWgpuScreenRenderTargetAntialias(screen);
226
+ return beginWgpuRenderPass(state, screen, clear);
227
+ }
215
228
  // JSDOM does not decode image elements, so a bare <img> remains incomplete even when its layout
216
229
  // width and height are assigned. Use this fixture when a test needs to exercise a successful external
217
230
  // image upload; readiness-failure tests should keep constructing the incomplete element directly.
@@ -230,7 +243,21 @@ export async function createWgpuRenderStateForTest(options = {}) {
230
243
  const canvas = document.createElement('canvas');
231
244
  canvas.width = 800;
232
245
  canvas.height = 600;
233
- return createWgpuRenderStateFromCanvasElement(canvas, _testWgpuPipeline, options);
246
+ const acquisition = await createWgpuAcquisition(canvas);
247
+ if (acquisition === null)
248
+ throw new Error('createWgpuRenderStateForTest: the mock adapter refused a device');
249
+ return createWgpuRenderState(acquisition.device, _testWgpuPipeline, { format: acquisition.format, ...options });
250
+ }
251
+ // The screen half of the test rig. A state and a screen target are independent, so a test that only
252
+ // compiles shaders or uploads textures takes the state alone and never allocates a surface.
253
+ export function createWgpuScreenRenderTargetForTest(state, options = {}, width = 800, height = 600) {
254
+ const canvas = document.createElement('canvas');
255
+ canvas.width = width;
256
+ canvas.height = height;
257
+ const screen = createWgpuScreenRenderTarget(state.device, canvas, { format: state.format, ...options });
258
+ if (options.antialias === true)
259
+ enableWgpuScreenRenderTargetAntialias(screen);
260
+ return screen;
234
261
  }
235
262
  const _testWgpuPipeline = createWgpuPipeline(createEmptyWgpuRegistries());
236
263
  export function installWgpuMock() {
@@ -252,14 +279,22 @@ export function installWgpuMock() {
252
279
  const origGetContext = HTMLCanvasElement.prototype.getContext;
253
280
  HTMLCanvasElement.prototype.getContext = function (contextId, options) {
254
281
  if (contextId === 'webgpu') {
255
- return {
282
+ // A canvas has ONE WebGPU context: getContext hands back the same object every call. Minting a new
283
+ // one per call let a test configure a context nothing else would ever see.
284
+ const existing = _mockCanvasContexts.get(this);
285
+ if (existing !== undefined)
286
+ return existing;
287
+ const context = {
256
288
  configure: () => { },
257
289
  getCurrentTexture: () => makeTexture(),
258
290
  unconfigure: () => { },
259
291
  };
292
+ _mockCanvasContexts.set(this, context);
293
+ return context;
260
294
  }
261
295
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
262
296
  return origGetContext.call(this, contextId, options);
263
297
  };
264
298
  }
299
+ const _mockCanvasContexts = new WeakMap();
265
300
  //# sourceMappingURL=wgpuTestHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wgpuTestHelper.js","sourceRoot":"","sources":["../src/wgpuTestHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wgpuTestHelper.js","sourceRoot":"","sources":["../src/wgpuTestHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { EntityConstruction, Material, Matrix, RenderTargetColorSpace, WgpuRenderState, WgpuTextureRenderTarget } from '@flighthq/types/contract';
2
+ export declare function createWgpuTextureRenderTarget(state: WgpuRenderState, width: number, height: number, format?: GPUTextureFormat, colorSpace?: RenderTargetColorSpace, sampleCount?: number): WgpuTextureRenderTarget;
3
+ export declare function destroyWgpuTextureRenderTarget(target: WgpuTextureRenderTarget): void;
4
+ export declare function drawWgpuTextureRenderTargetResult(state: WgpuRenderState, renderProxy: {
5
+ alpha: number;
6
+ material: Material | null;
7
+ transform2D: {
8
+ a: number;
9
+ b: number;
10
+ c: number;
11
+ d: number;
12
+ tx: number;
13
+ ty: number;
14
+ };
15
+ }, target: Readonly<WgpuTextureRenderTarget>, transform: Readonly<Matrix>): void;
16
+ export declare function initializeWgpuTextureRenderTarget(out: EntityConstruction<WgpuTextureRenderTarget>, state: WgpuRenderState, width: number, height: number, format?: GPUTextureFormat, colorSpace?: RenderTargetColorSpace, sampleCount?: number): void;
17
+ export declare function resizeWgpuTextureRenderTarget(state: WgpuRenderState, target: WgpuTextureRenderTarget, width: number, height: number, sampleCount?: number): void;
18
+ //# sourceMappingURL=wgpuTextureRenderTarget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wgpuTextureRenderTarget.d.ts","sourceRoot":"","sources":["../src/wgpuTextureRenderTarget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,QAAQ,EACR,MAAM,EACN,sBAAsB,EACtB,eAAe,EAEf,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,gBAA+B,EACvC,UAAU,GAAE,sBAA+B,EAC3C,WAAW,SAAI,GACd,uBAAuB,CAIzB;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAGpF;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,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,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EACzC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC1B,IAAI,CAwCN;AAID,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,EAChD,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,gBAA+B,EACvC,UAAU,GAAE,sBAA+B,EAC3C,WAAW,SAAI,GACd,IAAI,CAmCN;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,WAAW,SAAqB,GAC/B,IAAI,CAqCN"}
@@ -0,0 +1,122 @@
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
+ import { drawWgpuQuadWithTransform } from './wgpuDraw';
3
+ import { getWgpuRenderStateRuntime } from './wgpuRenderState';
4
+ export function createWgpuTextureRenderTarget(state, width, height, format = state.format, colorSpace = 'srgb', sampleCount = 1) {
5
+ const out = allocateEntity();
6
+ initializeWgpuTextureRenderTarget(out, state, width, height, format, colorSpace, sampleCount);
7
+ return finishEntity(out);
8
+ }
9
+ export function destroyWgpuTextureRenderTarget(target) {
10
+ target.texture.destroy();
11
+ target.depthStencilTexture.destroy();
12
+ }
13
+ export function drawWgpuTextureRenderTargetResult(state, renderProxy, target, transform) {
14
+ if (target.width <= 0 || target.height <= 0)
15
+ return;
16
+ const runtime = getWgpuRenderStateRuntime(state);
17
+ if (runtime.renderPass === null)
18
+ return;
19
+ // Compose the render node's transform with the cache offset transform
20
+ const { a, b, c, d, tx, ty } = renderProxy.transform2D;
21
+ const { a: ta, b: tb, c: tc, d: td, tx: ttx, ty: tty } = transform;
22
+ const composedTransform = {
23
+ a: a * ta + c * tb,
24
+ b: b * ta + d * tb,
25
+ c: a * tc + c * td,
26
+ d: b * tc + d * td,
27
+ tx: a * ttx + c * tty + tx,
28
+ ty: b * ttx + d * tty + ty,
29
+ };
30
+ // Render target textures are stored with Y flipped relative to canvas (bottom-left origin)
31
+ drawWgpuQuadWithTransform(state, renderProxy, composedTransform, (() => {
32
+ const out = allocateEntity();
33
+ out.bindings = target.bindings;
34
+ out.mipLevelCount = target.mipLevelCount;
35
+ out.texture = target.texture;
36
+ out.view = target.view;
37
+ return finishEntity(out);
38
+ })(), 0, 0, target.width, target.height, 0, 1, 1, 0);
39
+ }
40
+ // `format` defaults to the canvas format. Pass 'rgba16float' for an HDR effect target (bloom, tone
41
+ // mapping). The chosen format is recorded on the target so the effect-target pool matches on it.
42
+ export function initializeWgpuTextureRenderTarget(out, state, width, height, format = state.format, colorSpace = 'srgb', sampleCount = 1) {
43
+ const device = state.device;
44
+ const resolved = resolveWgpuTextureRenderTargetExtent(width, height, sampleCount);
45
+ const { height: h, sampleCount: samples, width: w } = resolved;
46
+ const maxDimension = device.limits.maxTextureDimension2D;
47
+ if (w > maxDimension || h > maxDimension) {
48
+ throw new Error(`Wgpu render target sampleCount ${samples} requires a ${w}x${h} texture, exceeding maxTextureDimension2D ${maxDimension}.`);
49
+ }
50
+ const texture = device.createTexture({
51
+ size: [w, h, 1],
52
+ format,
53
+ usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC,
54
+ });
55
+ const view = texture.createView();
56
+ const depthStencilTexture = device.createTexture({
57
+ size: [w, h, 1],
58
+ format: 'depth24plus-stencil8',
59
+ usage: GPUTextureUsage.RENDER_ATTACHMENT,
60
+ });
61
+ const depthStencilView = depthStencilTexture.createView();
62
+ out.bindings = new Map();
63
+ out.colorAttachments = 1;
64
+ out.context = null;
65
+ out.mipLevelCount = 1;
66
+ out.colorSpace = colorSpace;
67
+ out.texture = texture;
68
+ out.view = view;
69
+ out.depthStencilTexture = depthStencilTexture;
70
+ out.depthStencilView = depthStencilView;
71
+ out.format = format;
72
+ out.sampleCount = samples;
73
+ out.width = w;
74
+ out.height = h;
75
+ }
76
+ export function resizeWgpuTextureRenderTarget(state, target, width, height, sampleCount = target.sampleCount) {
77
+ const device = state.device;
78
+ const format = target.format;
79
+ const resolved = resolveWgpuTextureRenderTargetExtent(width, height, sampleCount);
80
+ const { height: h, sampleCount: samples, width: w } = resolved;
81
+ const maxDimension = device.limits.maxTextureDimension2D;
82
+ if (w > maxDimension || h > maxDimension) {
83
+ throw new Error(`Wgpu render target sampleCount ${samples} requires a ${w}x${h} texture, exceeding maxTextureDimension2D ${maxDimension}.`);
84
+ }
85
+ if (w === target.width && h === target.height && samples === target.sampleCount)
86
+ return;
87
+ target.width = w;
88
+ target.height = h;
89
+ target.sampleCount = samples;
90
+ target.texture.destroy();
91
+ target.depthStencilTexture.destroy();
92
+ const newTexture = device.createTexture({
93
+ size: [w, h, 1],
94
+ format,
95
+ usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC,
96
+ });
97
+ target.texture = newTexture;
98
+ target.view = newTexture.createView();
99
+ // Every cached bind group referenced the old view; drop them so they rebuild against the new one.
100
+ target.bindings.clear();
101
+ const newDepth = device.createTexture({
102
+ size: [w, h, 1],
103
+ format: 'depth24plus-stencil8',
104
+ usage: GPUTextureUsage.RENDER_ATTACHMENT,
105
+ });
106
+ target.depthStencilTexture = newDepth;
107
+ target.depthStencilView = newDepth.createView();
108
+ }
109
+ function resolveWgpuTextureRenderTargetExtent(width, height, sampleCount) {
110
+ const samples = sampleCount > 1 ? 4 : 1;
111
+ const scale = samples === 4 ? WGPU_TEXTURE_RENDER_TARGET_SUPERSAMPLE_SCALE : 1;
112
+ return {
113
+ height: Math.max(1, Math.ceil(height)) * scale,
114
+ sampleCount: samples,
115
+ width: Math.max(1, Math.ceil(width)) * scale,
116
+ };
117
+ }
118
+ // One place decides how much bigger a supersampled target is than its logical extent.
119
+ // wgpuScreenRenderTarget.ts carries the same number for the swap-chain surface; they are the same
120
+ // concept applied to two surfaces.
121
+ const WGPU_TEXTURE_RENDER_TARGET_SUPERSAMPLE_SCALE = 2;
122
+ //# sourceMappingURL=wgpuTextureRenderTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wgpuTextureRenderTarget.js","sourceRoot":"","sources":["../src/wgpuTextureRenderTarget.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.1069.554a2ac",
3
+ "version": "0.5.1-next.1201.9b49dee",
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.1069.554a2ac",
42
- "@flighthq/entity": "0.5.1-next.1069.554a2ac",
43
- "@flighthq/geometry": "0.5.1-next.1069.554a2ac",
44
- "@flighthq/log": "0.5.1-next.1069.554a2ac",
45
- "@flighthq/render": "0.5.1-next.1069.554a2ac",
46
- "@flighthq/registry": "0.5.1-next.1069.554a2ac",
47
- "@flighthq/signals": "0.5.1-next.1069.554a2ac",
48
- "@flighthq/bitmap": "0.5.1-next.1069.554a2ac",
49
- "@flighthq/texture": "0.5.1-next.1069.554a2ac",
50
- "@flighthq/types": "0.5.1-next.1069.554a2ac"
41
+ "@flighthq/color": "0.5.1-next.1201.9b49dee",
42
+ "@flighthq/entity": "0.5.1-next.1201.9b49dee",
43
+ "@flighthq/geometry": "0.5.1-next.1201.9b49dee",
44
+ "@flighthq/log": "0.5.1-next.1201.9b49dee",
45
+ "@flighthq/render": "0.5.1-next.1201.9b49dee",
46
+ "@flighthq/registry": "0.5.1-next.1201.9b49dee",
47
+ "@flighthq/signals": "0.5.1-next.1201.9b49dee",
48
+ "@flighthq/bitmap": "0.5.1-next.1201.9b49dee",
49
+ "@flighthq/texture": "0.5.1-next.1201.9b49dee",
50
+ "@flighthq/types": "0.5.1-next.1201.9b49dee"
51
51
  },
52
52
  "peerDependencies": {
53
53
  "@webgpu/types": "^0.1.70"
@@ -15,7 +15,6 @@ import {
15
15
  ImageTextureSourceKind,
16
16
  } from '@flighthq/types/contract';
17
17
 
18
- import { renderWgpuBackground, submitWgpuRenderPass } from './wgpuBackground';
19
18
  import { registerWgpuCompressedTextureDecoder, registerWgpuCompressedTextureUpload } from './wgpuCompressedTexture';
20
19
  import {
21
20
  applyWgpuBlendMode,
@@ -36,9 +35,10 @@ import {
36
35
  updateWgpuTextureEntry,
37
36
  warmWgpuPipelines,
38
37
  } from './wgpuDraw';
38
+ import { submitWgpuFrame } from './wgpuFrame';
39
39
  import { registerWgpuMipmapGeneration } from './wgpuMipmap';
40
40
  import { getWgpuRenderStateDeviceResources, getWgpuRenderStateRuntime } from './wgpuRenderState';
41
- import { createWgpuRenderStateForTest, installWgpuMock } from './wgpuTestHelper';
41
+ import { beginWgpuScreenRenderPassForTest, createWgpuRenderStateForTest, installWgpuMock } from './wgpuTestHelper';
42
42
 
43
43
  beforeAll(() => {
44
44
  installWgpuMock();
@@ -426,7 +426,7 @@ describe('destroyWgpuVideoTexture', () => {
426
426
  describe('drawWgpuQuad', () => {
427
427
  it('does not throw when render pass is open', async () => {
428
428
  const state = await createWgpuRenderStateForTest();
429
- renderWgpuBackground(state);
429
+ beginWgpuScreenRenderPassForTest(state);
430
430
  const bitmap = createSprite();
431
431
  prepareScene2DRender(state, bitmap);
432
432
  const renderProxy = getOrCreateRenderProxy2D(state, bitmap);
@@ -435,14 +435,14 @@ describe('drawWgpuQuad', () => {
435
435
  canvas.height = 4;
436
436
  const entry = requireTextureEntry(bindWgpuTexture(state, canvas));
437
437
  expect(() => drawWgpuQuad(state, renderProxy, entry, 0, 0, 4, 4, 0, 0, 1, 1)).not.toThrow();
438
- submitWgpuRenderPass(state);
438
+ submitWgpuFrame(state);
439
439
  });
440
440
  });
441
441
 
442
442
  describe('drawWgpuQuadWithTransform', () => {
443
443
  it('does not throw when render pass is open', async () => {
444
444
  const state = await createWgpuRenderStateForTest();
445
- renderWgpuBackground(state);
445
+ beginWgpuScreenRenderPassForTest(state);
446
446
  const bitmap = createSprite();
447
447
  prepareScene2DRender(state, bitmap);
448
448
  const renderProxy = getOrCreateRenderProxy2D(state, bitmap);
@@ -452,7 +452,7 @@ describe('drawWgpuQuadWithTransform', () => {
452
452
  const entry = requireTextureEntry(bindWgpuTexture(state, canvas));
453
453
  const t = { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 };
454
454
  expect(() => drawWgpuQuadWithTransform(state, renderProxy, t, entry, 0, 0, 4, 4, 0, 0, 1, 1)).not.toThrow();
455
- submitWgpuRenderPass(state);
455
+ submitWgpuFrame(state);
456
456
  });
457
457
  });
458
458
 
@@ -568,13 +568,13 @@ describe('resolveWgpuSmoothingBindGroup', () => {
568
568
  describe('submitWgpuQuadDraw', () => {
569
569
  it('does not throw when render pass is open', async () => {
570
570
  const state = await createWgpuRenderStateForTest();
571
- renderWgpuBackground(state);
571
+ beginWgpuScreenRenderPassForTest(state);
572
572
  const canvas = document.createElement('canvas');
573
573
  canvas.width = 4;
574
574
  canvas.height = 4;
575
575
  const entry = requireTextureEntry(bindWgpuTexture(state, canvas));
576
576
  expect(() => submitWgpuQuadDraw(state, 0, resolveWgpuSmoothingBindGroup(state, entry, null))).not.toThrow();
577
- submitWgpuRenderPass(state);
577
+ submitWgpuFrame(state);
578
578
  });
579
579
 
580
580
  it('is a no-op when render pass is null', async () => {