@nodetool-ai/game-renderer 0.8.4-a24.3 → 0.8.5

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 (184) hide show
  1. package/README.md +13 -0
  2. package/dist/.nodetool-build-stamp +1 -1
  3. package/dist/audio/player.d.ts +1 -0
  4. package/dist/audio/player.d.ts.map +1 -1
  5. package/dist/audio/player.js +13 -2
  6. package/dist/audio/player.js.map +1 -1
  7. package/dist/build-fingerprint.d.ts +3 -0
  8. package/dist/build-fingerprint.d.ts.map +1 -0
  9. package/dist/build-fingerprint.js +9 -0
  10. package/dist/build-fingerprint.js.map +1 -0
  11. package/dist/build-tauri.d.ts +3 -1
  12. package/dist/build-tauri.d.ts.map +1 -1
  13. package/dist/build-tauri.js +54 -8
  14. package/dist/build-tauri.js.map +1 -1
  15. package/dist/build.d.ts +4 -1
  16. package/dist/build.d.ts.map +1 -1
  17. package/dist/build.js +24 -11
  18. package/dist/build.js.map +1 -1
  19. package/dist/build3d.d.ts +2 -0
  20. package/dist/build3d.d.ts.map +1 -1
  21. package/dist/build3d.js +21 -6
  22. package/dist/build3d.js.map +1 -1
  23. package/dist/canvas2d.d.ts +1 -0
  24. package/dist/canvas2d.d.ts.map +1 -1
  25. package/dist/canvas2d.js +22 -14
  26. package/dist/canvas2d.js.map +1 -1
  27. package/dist/export-media.d.ts +7 -0
  28. package/dist/export-media.d.ts.map +1 -0
  29. package/dist/export-media.js +73 -0
  30. package/dist/export-media.js.map +1 -0
  31. package/dist/frame.d.ts +5 -0
  32. package/dist/frame.d.ts.map +1 -1
  33. package/dist/frame.js +7 -1
  34. package/dist/frame.js.map +1 -1
  35. package/dist/game3d-capture-page.js +306 -276
  36. package/dist/game3d-player.js +399 -350
  37. package/dist/index.d.ts +2 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +2 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/lighting.d.ts +1 -1
  42. package/dist/lighting.d.ts.map +1 -1
  43. package/dist/lighting.js +7 -6
  44. package/dist/lighting.js.map +1 -1
  45. package/dist/mouse-input.d.ts +18 -0
  46. package/dist/mouse-input.d.ts.map +1 -0
  47. package/dist/mouse-input.js +135 -0
  48. package/dist/mouse-input.js.map +1 -0
  49. package/dist/node.d.ts.map +1 -1
  50. package/dist/node.js +2 -2
  51. package/dist/node.js.map +1 -1
  52. package/dist/node3d.d.ts.map +1 -1
  53. package/dist/node3d.js +5 -3
  54. package/dist/node3d.js.map +1 -1
  55. package/dist/particles/particles3d.d.ts +12 -10
  56. package/dist/particles/particles3d.d.ts.map +1 -1
  57. package/dist/particles/particles3d.js +81 -60
  58. package/dist/particles/particles3d.js.map +1 -1
  59. package/dist/particles/pass3d.d.ts +6 -4
  60. package/dist/particles/pass3d.d.ts.map +1 -1
  61. package/dist/particles/pass3d.js +28 -15
  62. package/dist/particles/pass3d.js.map +1 -1
  63. package/dist/particles/render2d.d.ts +3 -2
  64. package/dist/particles/render2d.d.ts.map +1 -1
  65. package/dist/particles/render2d.js +9 -2
  66. package/dist/particles/render2d.js.map +1 -1
  67. package/dist/particles/simulator.d.ts +13 -1
  68. package/dist/particles/simulator.d.ts.map +1 -1
  69. package/dist/particles/simulator.js +173 -44
  70. package/dist/particles/simulator.js.map +1 -1
  71. package/dist/particles/transparency3d.d.ts +17 -0
  72. package/dist/particles/transparency3d.d.ts.map +1 -0
  73. package/dist/particles/transparency3d.js +117 -0
  74. package/dist/particles/transparency3d.js.map +1 -0
  75. package/dist/player-v1.js +340 -321
  76. package/dist/renderer3d/animation/index.d.ts +2 -0
  77. package/dist/renderer3d/animation/index.d.ts.map +1 -1
  78. package/dist/renderer3d/animation/index.js +24 -10
  79. package/dist/renderer3d/animation/index.js.map +1 -1
  80. package/dist/renderer3d/assets/image-preparation.d.ts +9 -0
  81. package/dist/renderer3d/assets/image-preparation.d.ts.map +1 -1
  82. package/dist/renderer3d/assets/image-preparation.js +14 -4
  83. package/dist/renderer3d/assets/image-preparation.js.map +1 -1
  84. package/dist/renderer3d/assets/instances.d.ts.map +1 -1
  85. package/dist/renderer3d/assets/instances.js +38 -1
  86. package/dist/renderer3d/assets/instances.js.map +1 -1
  87. package/dist/renderer3d/decals/geometry.d.ts +27 -0
  88. package/dist/renderer3d/decals/geometry.d.ts.map +1 -0
  89. package/dist/renderer3d/decals/geometry.js +142 -0
  90. package/dist/renderer3d/decals/geometry.js.map +1 -0
  91. package/dist/renderer3d/decals/index.d.ts +29 -0
  92. package/dist/renderer3d/decals/index.d.ts.map +1 -0
  93. package/dist/renderer3d/decals/index.js +284 -0
  94. package/dist/renderer3d/decals/index.js.map +1 -0
  95. package/dist/renderer3d/environment/height-fog.d.ts +14 -0
  96. package/dist/renderer3d/environment/height-fog.d.ts.map +1 -0
  97. package/dist/renderer3d/environment/height-fog.js +114 -0
  98. package/dist/renderer3d/environment/height-fog.js.map +1 -0
  99. package/dist/renderer3d/environment/index.d.ts.map +1 -1
  100. package/dist/renderer3d/environment/index.js +4 -1
  101. package/dist/renderer3d/environment/index.js.map +1 -1
  102. package/dist/renderer3d/environment/sky.d.ts +1 -0
  103. package/dist/renderer3d/environment/sky.d.ts.map +1 -1
  104. package/dist/renderer3d/environment/sky.js +33 -16
  105. package/dist/renderer3d/environment/sky.js.map +1 -1
  106. package/dist/renderer3d/import.d.ts.map +1 -1
  107. package/dist/renderer3d/import.js +19 -3
  108. package/dist/renderer3d/import.js.map +1 -1
  109. package/dist/renderer3d/index.d.ts.map +1 -1
  110. package/dist/renderer3d/index.js +27 -4
  111. package/dist/renderer3d/index.js.map +1 -1
  112. package/dist/renderer3d/material-hooks.d.ts +8 -0
  113. package/dist/renderer3d/material-hooks.d.ts.map +1 -0
  114. package/dist/renderer3d/material-hooks.js +53 -0
  115. package/dist/renderer3d/material-hooks.js.map +1 -0
  116. package/dist/renderer3d/pipeline.d.ts +1 -0
  117. package/dist/renderer3d/pipeline.d.ts.map +1 -1
  118. package/dist/renderer3d/pipeline.js.map +1 -1
  119. package/dist/renderer3d/preparation.d.ts +1 -0
  120. package/dist/renderer3d/preparation.d.ts.map +1 -1
  121. package/dist/renderer3d/preparation.js +37 -4
  122. package/dist/renderer3d/preparation.js.map +1 -1
  123. package/dist/renderer3d/scene-sync.d.ts.map +1 -1
  124. package/dist/renderer3d/scene-sync.js +16 -1
  125. package/dist/renderer3d/scene-sync.js.map +1 -1
  126. package/dist/renderer3d/shadows/cascades.d.ts +2 -1
  127. package/dist/renderer3d/shadows/cascades.d.ts.map +1 -1
  128. package/dist/renderer3d/shadows/cascades.js +19 -37
  129. package/dist/renderer3d/shadows/cascades.js.map +1 -1
  130. package/dist/renderer3d/shadows/index.d.ts +1 -0
  131. package/dist/renderer3d/shadows/index.d.ts.map +1 -1
  132. package/dist/renderer3d/shadows/index.js +3 -2
  133. package/dist/renderer3d/shadows/index.js.map +1 -1
  134. package/dist/renderer3d/types.d.ts +1 -0
  135. package/dist/renderer3d/types.d.ts.map +1 -1
  136. package/dist/save-storage.d.ts.map +1 -1
  137. package/dist/save-storage.js +23 -7
  138. package/dist/save-storage.js.map +1 -1
  139. package/dist/smoke.d.ts.map +1 -1
  140. package/dist/smoke.js +27 -12
  141. package/dist/smoke.js.map +1 -1
  142. package/dist/standalone-assets.d.ts +25 -0
  143. package/dist/standalone-assets.d.ts.map +1 -0
  144. package/dist/standalone-assets.js +111 -0
  145. package/dist/standalone-assets.js.map +1 -0
  146. package/dist/standalone-frame.d.ts +7 -0
  147. package/dist/standalone-frame.d.ts.map +1 -0
  148. package/dist/standalone-frame.js +2 -0
  149. package/dist/standalone-frame.js.map +1 -0
  150. package/dist/standalone-player.d.ts +3 -2
  151. package/dist/standalone-player.d.ts.map +1 -1
  152. package/dist/standalone-player.js +246 -76
  153. package/dist/standalone-player.js.map +1 -1
  154. package/dist/standalone-player3d.d.ts +4 -3
  155. package/dist/standalone-player3d.d.ts.map +1 -1
  156. package/dist/standalone-player3d.js +193 -115
  157. package/dist/standalone-player3d.js.map +1 -1
  158. package/dist/touch-controls.d.ts +10 -1
  159. package/dist/touch-controls.d.ts.map +1 -1
  160. package/dist/touch-controls.js +98 -10
  161. package/dist/touch-controls.js.map +1 -1
  162. package/dist/touch-input.d.ts +13 -0
  163. package/dist/touch-input.d.ts.map +1 -0
  164. package/dist/touch-input.js +71 -0
  165. package/dist/touch-input.js.map +1 -0
  166. package/dist/ui/controller.d.ts +7 -0
  167. package/dist/ui/controller.d.ts.map +1 -1
  168. package/dist/ui/controller.js +40 -9
  169. package/dist/ui/controller.js.map +1 -1
  170. package/dist/webgpu/lighting.d.ts +1 -1
  171. package/dist/webgpu/lighting.d.ts.map +1 -1
  172. package/dist/webgpu/lighting.js +4 -3
  173. package/dist/webgpu/lighting.js.map +1 -1
  174. package/dist/webgpu/sprites.d.ts +2 -2
  175. package/dist/webgpu/sprites.d.ts.map +1 -1
  176. package/dist/webgpu/sprites.js +4 -3
  177. package/dist/webgpu/sprites.js.map +1 -1
  178. package/dist/webgpu/types.d.ts +3 -1
  179. package/dist/webgpu/types.d.ts.map +1 -1
  180. package/dist/webgpu.d.ts +10 -1
  181. package/dist/webgpu.d.ts.map +1 -1
  182. package/dist/webgpu.js +141 -48
  183. package/dist/webgpu.js.map +1 -1
  184. package/package.json +5 -5
package/dist/webgpu.js CHANGED
@@ -49,7 +49,8 @@ export class WebGPUGameRenderer {
49
49
  lightFallback;
50
50
  lightTarget;
51
51
  textures = new Map();
52
- validatedLuts = new Set();
52
+ assetGenerations = new Set();
53
+ liveAssetTextures = new Set();
53
54
  fallback;
54
55
  particleDot;
55
56
  placeholders = new Map();
@@ -58,6 +59,7 @@ export class WebGPUGameRenderer {
58
59
  hudCanvas;
59
60
  hudTexture;
60
61
  hudKey = "";
62
+ hudRevision = 0;
61
63
  disposed = false;
62
64
  lost = false;
63
65
  constructor(canvas, device, context, format, assets, adapterType = "unknown") {
@@ -173,7 +175,7 @@ export class WebGPUGameRenderer {
173
175
  const dotTexture = device.createTexture({ size: [PARTICLE_DOT_SIZE, PARTICLE_DOT_SIZE], format: "rgba8unorm",
174
176
  usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST });
175
177
  device.queue.writeTexture({ texture: dotTexture }, particleDotPixels(), { bytesPerRow: PARTICLE_DOT_SIZE * 4 }, [PARTICLE_DOT_SIZE, PARTICLE_DOT_SIZE]);
176
- this.particleDot = this.textureEntry(dotTexture, PARTICLE_DOT_SIZE, PARTICLE_DOT_SIZE, "linear");
178
+ this.particleDot = this.textureEntry(dotTexture, PARTICLE_DOT_SIZE, PARTICLE_DOT_SIZE);
177
179
  void device.lost.then(() => { this.lost = true; });
178
180
  }
179
181
  get capabilities() {
@@ -290,22 +292,24 @@ export class WebGPUGameRenderer {
290
292
  pass.end();
291
293
  output.markWritten();
292
294
  }
293
- textureEntry(texture, width, height, sampling = "nearest") {
295
+ textureEntry(texture, width, height) {
296
+ const view = texture.createView();
297
+ const bindGroup = (sampler) => this.device.createBindGroup({
298
+ layout: this.pipeline.getBindGroupLayout(0),
299
+ entries: [
300
+ { binding: 0, resource: { buffer: this.cameraBuffer } },
301
+ { binding: 1, resource: sampler },
302
+ { binding: 2, resource: view },
303
+ ],
304
+ });
294
305
  return {
295
306
  texture,
296
307
  width,
297
308
  height,
298
- bindGroup: this.device.createBindGroup({
299
- layout: this.pipeline.getBindGroupLayout(0),
300
- entries: [
301
- { binding: 0, resource: { buffer: this.cameraBuffer } },
302
- { binding: 1, resource: sampling === "linear" ? this.linearSampler : this.sampler },
303
- { binding: 2, resource: texture.createView() },
304
- ],
305
- }),
309
+ bindGroups: { nearest: bindGroup(this.sampler), linear: bindGroup(this.linearSampler) },
306
310
  };
307
311
  }
308
- upload(image, sampling = "nearest") {
312
+ upload(image) {
309
313
  const width = image instanceof HTMLCanvasElement ? image.width : imageWidth(image);
310
314
  const height = image instanceof HTMLCanvasElement ? image.height : imageHeight(image);
311
315
  if (width <= 0 || height <= 0) {
@@ -314,31 +318,97 @@ export class WebGPUGameRenderer {
314
318
  // copyExternalImageToTexture requires RENDER_ATTACHMENT on the destination as well as COPY_DST.
315
319
  const texture = this.device.createTexture({ size: [width, height], format: "rgba8unorm",
316
320
  usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT });
317
- this.device.queue.copyExternalImageToTexture({ source: image }, { texture, premultipliedAlpha: false }, [width, height]);
318
- return this.textureEntry(texture, width, height, sampling);
321
+ try {
322
+ this.device.queue.copyExternalImageToTexture({ source: image }, { texture, premultipliedAlpha: false }, [width, height]);
323
+ return this.textureEntry(texture, width, height);
324
+ }
325
+ catch (error) {
326
+ texture.destroy();
327
+ throw error;
328
+ }
319
329
  }
320
- async getTexture(assetId, sampling) {
321
- if (assetId === PARTICLE_DOT_ASSET) {
322
- return { texture: this.particleDot, uploadedBytes: 0 };
330
+ assertUsable() {
331
+ if (this.disposed || this.lost) {
332
+ throw new Error(this.lost ? "WebGPU device was lost" : "Game renderer is disposed");
323
333
  }
324
- const cached = this.textures.get(assetId);
325
- if (cached) {
326
- return { texture: cached, uploadedBytes: 0 };
334
+ }
335
+ assetGeneration(assetId, frame) {
336
+ this.assertUsable();
337
+ let generation = this.textures.get(assetId);
338
+ if (!generation) {
339
+ generation = { image: this.assets.get(assetId), readers: 0, retired: false, opaque: false };
340
+ this.textures.set(assetId, generation);
341
+ this.assetGenerations.add(generation);
342
+ }
343
+ if (!frame.generations.has(generation)) {
344
+ frame.generations.add(generation);
345
+ generation.readers++;
346
+ }
347
+ return generation;
348
+ }
349
+ retireGeneration(generation) {
350
+ if (!generation.retired || generation.readers !== 0) {
351
+ return;
352
+ }
353
+ if (generation.entry && this.liveAssetTextures.delete(generation.entry)) {
354
+ generation.entry.texture.destroy();
355
+ }
356
+ generation.entry = undefined;
357
+ this.assetGenerations.delete(generation);
358
+ }
359
+ releaseFrameAssets(frame) {
360
+ for (const generation of frame.generations) {
361
+ generation.readers--;
362
+ this.retireGeneration(generation);
363
+ }
364
+ frame.generations.clear();
365
+ }
366
+ async uploadGeneration(assetId, generation, frame) {
367
+ const image = await generation.image;
368
+ this.assertUsable();
369
+ if (generation.retired && generation.readers === 0) {
370
+ throw new Error(`Asset ${assetId} was invalidated before upload`);
327
371
  }
328
- const image = await this.assets.get(assetId);
329
372
  if (!image) {
330
- return { texture: this.placeholder(assetId), uploadedBytes: 0 };
373
+ return this.placeholder(assetId);
374
+ }
375
+ const texture = this.upload(image);
376
+ if (texture !== this.fallback) {
377
+ generation.entry = texture;
378
+ this.liveAssetTextures.add(texture);
379
+ frame.uploadedBytes += texture.width * texture.height * 4;
380
+ }
381
+ return texture;
382
+ }
383
+ generationTexture(assetId, generation, frame) {
384
+ if (!generation.upload) {
385
+ const upload = this.uploadGeneration(assetId, generation, frame);
386
+ generation.upload = upload;
387
+ void upload.catch(() => {
388
+ if (generation.upload === upload && !generation.entry) {
389
+ generation.upload = undefined;
390
+ }
391
+ });
392
+ }
393
+ return generation.upload;
394
+ }
395
+ async getTexture(assetId, frame) {
396
+ if (assetId === PARTICLE_DOT_ASSET) {
397
+ return this.particleDot;
331
398
  }
332
- const texture = this.upload(image, sampling);
333
- this.textures.set(assetId, texture);
334
- return { texture, uploadedBytes: texture.width * texture.height * 4 };
399
+ const generation = this.assetGeneration(assetId, frame);
400
+ const texture = await this.generationTexture(assetId, generation, frame);
401
+ this.assertUsable();
402
+ return texture;
335
403
  }
336
- async getLutTexture(assetId, size) {
337
- const image = await this.assets.get(assetId);
404
+ async getLutTexture(assetId, size, frame) {
405
+ const generation = this.assetGeneration(assetId, frame);
406
+ const image = await generation.image;
407
+ this.assertUsable();
338
408
  if (!image || imageWidth(image) !== size * size || imageHeight(image) !== size) {
339
409
  throw new Error(`LUT ${assetId} is missing or has invalid dimensions`);
340
410
  }
341
- if (!this.validatedLuts.has(assetId)) {
411
+ if (!generation.opaque) {
342
412
  const canvas = document.createElement("canvas");
343
413
  canvas.width = imageWidth(image);
344
414
  canvas.height = imageHeight(image);
@@ -353,9 +423,10 @@ export class WebGPUGameRenderer {
353
423
  throw new Error(`LUT ${assetId} must be opaque`);
354
424
  }
355
425
  }
356
- this.validatedLuts.add(assetId);
426
+ generation.opaque = true;
357
427
  }
358
- const { texture } = await this.getTexture(assetId, "nearest");
428
+ const texture = await this.generationTexture(assetId, generation, frame);
429
+ this.assertUsable();
359
430
  return new LabeledTexture(texture.texture, { label: `game-lut-${assetId}`, format: "rgba8unorm",
360
431
  width: texture.width, height: texture.height,
361
432
  meta: { colorSpace: "srgb", alpha: "premultiplied", bindingKind: "texture_2d" } });
@@ -402,15 +473,26 @@ export class WebGPUGameRenderer {
402
473
  }
403
474
  }
404
475
  async renderFrame(frame, interpolation, particles) {
476
+ const assets = { generations: new Set(), uploadedBytes: 0 };
477
+ try {
478
+ return await this.renderAssetFrame(frame, interpolation, assets, particles);
479
+ }
480
+ finally {
481
+ this.releaseFrameAssets(assets);
482
+ }
483
+ }
484
+ async renderAssetFrame(frame, interpolation, assets, particles) {
405
485
  const bloomRadius = this.effects.reduce((maximum, effect) => effect.kind === "bloom" ? Math.max(maximum, effect.radius) : maximum, 0);
406
486
  const overscanPixels = Math.ceil(bloomRadius * 2);
407
487
  const overscanWorld = overscanPixels * frame.width / (Math.max(1, this.canvas.width) * projectedCamera(frame, interpolation).zoom);
408
488
  const items = visibleItems(frame, interpolation, overscanWorld, particles && { field: particles });
409
- const sampling = new Map(items.map((item) => [item.assetId, item.sampling]));
410
- const assetIds = [...sampling.keys()];
411
- const textureResults = await Promise.all(assetIds.map((assetId) => this.getTexture(assetId, sampling.get(assetId) ?? "nearest")));
489
+ const assetIds = [...new Set(items.map((item) => item.assetId))];
490
+ const textureResults = await Promise.all(assetIds.map((assetId) => this.getTexture(assetId, assets)));
412
491
  const textureById = new Map(assetIds.map((assetId, index) => [assetId, textureResults[index]]));
413
- const hudTexture = this.updateHud(frame, await loadGameUiImages(frame, (assetId) => this.assets.get(assetId)));
492
+ const hudRevision = this.hudRevision;
493
+ const hudImages = await loadGameUiImages(frame, (assetId) => this.assets.get(assetId));
494
+ this.assertUsable();
495
+ const hudTexture = this.updateHud(frame, hudImages, hudRevision);
414
496
  const count = items.length + (hudTexture ? 1 : 0);
415
497
  this.ensureInstanceCapacity(count);
416
498
  const instances = new Float32Array(count * INSTANCE_FLOATS);
@@ -421,7 +503,7 @@ export class WebGPUGameRenderer {
421
503
  if (!item || !result) {
422
504
  continue;
423
505
  }
424
- const texture = result.texture;
506
+ const texture = result;
425
507
  const rect = texture.width === 1 && texture.height === 1 ? { x: 0, y: 0, width: 1, height: 1 } : sourceRect(item, texture.width, texture.height);
426
508
  const tint = parseTint(item.tint);
427
509
  const subRect = item.frame !== undefined || item.cell !== undefined;
@@ -432,13 +514,13 @@ export class WebGPUGameRenderer {
432
514
  const du = (rect.width - 2 * insetX) / texture.width;
433
515
  const dv = (rect.height - 2 * insetY) / texture.height;
434
516
  writeInstance(instances, index, item.x, item.y, item.width, item.height, item.flipX ? u + du : u, item.flipY ? v + dv : v, item.flipX ? -du : du, item.flipY ? -dv : dv, tint[0], tint[1], tint[2], item.opacity, item.rotation, item.unlit ? 1 : 0);
435
- appendBatch(batches, texture, item.blend, index);
517
+ appendBatch(batches, texture, item.blend, index, item.sampling);
436
518
  }
437
519
  if (hudTexture) {
438
520
  const scale = frame.camera.zoom;
439
521
  const projected = projectedCamera(frame, interpolation);
440
522
  writeInstance(instances, items.length, projected.x, projected.y, frame.width / scale, frame.height / scale, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1);
441
- appendBatch(batches, hudTexture, "normal", items.length);
523
+ appendBatch(batches, hudTexture, "normal", items.length, "nearest");
442
524
  }
443
525
  const projected = projectedCamera(frame, interpolation);
444
526
  const camera = new Float32Array([projected.x, projected.y,
@@ -447,7 +529,7 @@ export class WebGPUGameRenderer {
447
529
  frame.camera.zoom, 0, 0, 0]);
448
530
  this.device.queue.writeBuffer(this.cameraBuffer, 0, camera);
449
531
  const sceneLighting = frame.lighting;
450
- const lighting = gameLightingUniforms(frame);
532
+ const lighting = gameLightingUniforms(frame, interpolation);
451
533
  this.device.queue.writeBuffer(this.lightingBuffer, 0, lighting);
452
534
  if (count > 0 && this.instanceBuffer) {
453
535
  this.device.queue.writeBuffer(this.instanceBuffer, 0, instances);
@@ -504,7 +586,7 @@ export class WebGPUGameRenderer {
504
586
  ? hasEffects ? this.effectAdditivePipeline : this.additivePipeline
505
587
  : hasEffects ? this.effectSpritePipeline : this.pipeline);
506
588
  }
507
- pass.setBindGroup(0, batch.texture.bindGroup);
589
+ pass.setBindGroup(0, batch.bindGroup);
508
590
  pass.draw(6, batch.count, 0, batch.first);
509
591
  }
510
592
  }
@@ -518,7 +600,7 @@ export class WebGPUGameRenderer {
518
600
  effectContext: this.effectContext, effectExecutor: this.effectExecutor,
519
601
  effectRecipeRunner: this.effectRecipeRunner, effectRegistry: this.effectRegistry,
520
602
  srgbTarget: this.srgbTarget, lutTarget: this.lutTarget, toSrgbPipeline: this.toSrgbPipeline,
521
- toLinearPipeline: this.toLinearPipeline, getLutTexture: (id, size) => this.getLutTexture(id, size),
603
+ toLinearPipeline: this.toLinearPipeline, getLutTexture: (id, size) => this.getLutTexture(id, size, assets),
522
604
  convertColor: (command, input, target, pipeline) => this.convertColor(command, input, target, pipeline) });
523
605
  const presentGroup = this.device.createBindGroup({ layout: this.presentLayout, entries: [
524
606
  { binding: 0, resource: this.sampler }, { binding: 1, resource: source.createView() },
@@ -548,14 +630,16 @@ export class WebGPUGameRenderer {
548
630
  }
549
631
  }
550
632
  });
633
+ this.assertUsable();
551
634
  this.device.queue.submit([encoder.finish()]);
552
- const textureBytes = [...this.textures.values(), ...this.placeholders.values(), this.fallback, this.particleDot,
635
+ this.releaseFrameAssets(assets);
636
+ const textureBytes = [...this.liveAssetTextures, ...this.placeholders.values(), this.fallback, this.particleDot,
553
637
  ...(this.hudTexture ? [this.hudTexture] : [])].reduce((sum, entry) => sum + entry.width * entry.height * 4, 0);
554
638
  return {
555
639
  backend: this.backend,
556
640
  visibleSprites: items.length,
557
641
  drawCalls: batches.length + this.effects.reduce((sum, effect) => sum + (effect.kind === "bloom" ? 4 : effect.kind === "lut" ? 3 : 1), 0) + (hasEffects ? 1 : 0) + (sceneLighting ? 1 : 0),
558
- uploadedBytes: textureResults.reduce((sum, result) => sum + result.uploadedBytes, 0),
642
+ uploadedBytes: assets.uploadedBytes,
559
643
  textureBytes,
560
644
  targetBytes: (this.sourceTarget && this.effectTarget ? (this.sourceTarget.width * this.sourceTarget.height +
561
645
  this.effectTarget.width * this.effectTarget.height + (this.effects.some((effect) => effect.kind === "bloom") ?
@@ -565,11 +649,12 @@ export class WebGPUGameRenderer {
565
649
  instanceBufferBytes: this.instanceCapacity * INSTANCE_FLOATS * 4,
566
650
  };
567
651
  }
568
- updateHud(frame, images) {
652
+ updateHud(frame, images, revision) {
569
653
  if (frame.hud.length === 0 && !frame.ui) {
570
654
  return undefined;
571
655
  }
572
- const key = JSON.stringify([this.canvas.width, this.canvas.height, frame.hud, frame.ui, [...images.keys()]]);
656
+ const key = JSON.stringify([this.canvas.width, this.canvas.height, frame.gameId, frame.fonts,
657
+ frame.hud, frame.ui, [...images.keys()], revision]);
573
658
  if (key !== this.hudKey) {
574
659
  const canvas = this.hudCanvas ?? document.createElement("canvas");
575
660
  paintWebGPUHud(canvas, this.canvas.width, this.canvas.height, frame, images);
@@ -605,11 +690,14 @@ export class WebGPUGameRenderer {
605
690
  this.lutTarget = undefined;
606
691
  }
607
692
  invalidateAsset(assetId) {
693
+ this.hudRevision++;
608
694
  this.assets.invalidate(assetId);
609
- const texture = this.textures.get(assetId);
610
- texture?.texture.destroy();
695
+ const generation = this.textures.get(assetId);
611
696
  this.textures.delete(assetId);
612
- this.validatedLuts.delete(assetId);
697
+ if (generation) {
698
+ generation.retired = true;
699
+ this.retireGeneration(generation);
700
+ }
613
701
  }
614
702
  dispose() {
615
703
  if (this.disposed) {
@@ -635,9 +723,14 @@ export class WebGPUGameRenderer {
635
723
  entry.texture.destroy();
636
724
  }
637
725
  this.placeholders.clear();
638
- for (const entry of this.textures.values()) {
726
+ for (const generation of this.assetGenerations) {
727
+ generation.retired = true;
728
+ }
729
+ for (const entry of this.liveAssetTextures) {
639
730
  entry.texture.destroy();
640
731
  }
732
+ this.liveAssetTextures.clear();
733
+ this.assetGenerations.clear();
641
734
  this.textures.clear();
642
735
  this.assets.clear();
643
736
  this.context.unconfigure();
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu.js","sourceRoot":"","sources":["../src/webgpu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu.js","sourceRoot":"","sources":["../src/webgpu.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nodetool-ai/game-renderer",
3
- "version": "0.8.4-a24.3",
3
+ "version": "0.8.5",
4
4
  "description": "Native 2D and 3D rendering, capture and web export",
5
5
  "type": "module",
6
6
  "engines": {
@@ -19,14 +19,14 @@
19
19
  "dependencies": {
20
20
  "@jitl/quickjs-ng-wasmfile-release-sync": "0.31.0",
21
21
  "@napi-rs/canvas": "^0.1.65",
22
- "@nodetool-ai/game-runtime": "0.8.4-a24.3",
23
- "@nodetool-ai/gpu": "0.8.4-a24.3",
24
- "@nodetool-ai/protocol": "0.8.4-a24.3",
22
+ "@nodetool-ai/game-runtime": "0.8.5",
23
+ "@nodetool-ai/gpu": "0.8.5",
24
+ "@nodetool-ai/protocol": "0.8.5",
25
25
  "esbuild": "^0.28.1",
26
26
  "three": "0.185.1",
27
27
  "typegpu": "^0.11.6",
28
28
  "zod": "^4.6.5",
29
- "@nodetool-ai/config": "0.8.4-a24.3"
29
+ "@nodetool-ai/config": "0.8.5"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@playwright/test": "^1.60.0",